diff --git a/README.md b/README.md index 12696d169a..e8b928f2fb 100644 --- a/README.md +++ b/README.md @@ -43,8 +43,9 @@
- + ### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/) +
# TanStack Form diff --git a/docs/config.json b/docs/config.json index 9bacc7edee..61d9b390fe 100644 --- a/docs/config.json +++ b/docs/config.json @@ -54,6 +54,15 @@ } ] }, + { + "label": "octane", + "children": [ + { + "label": "Quick Start", + "to": "framework/octane/quick-start" + } + ] + }, { "label": "vue", "children": [ @@ -247,6 +256,63 @@ } ] }, + { + "label": "octane", + "children": [ + { + "label": "Basic Concepts", + "to": "framework/octane/guides/basic-concepts" + }, + { + "label": "Form Validation", + "to": "framework/octane/guides/validation" + }, + { + "label": "Dynamic Validation", + "to": "framework/octane/guides/dynamic-validation" + }, + { + "label": "Arrays", + "to": "framework/octane/guides/arrays" + }, + { + "label": "Form Groups", + "to": "framework/octane/guides/form-groups" + }, + { + "label": "Linked Fields", + "to": "framework/octane/guides/linked-fields" + }, + { + "label": "Reactivity", + "to": "framework/octane/guides/reactivity" + }, + { + "label": "Listeners", + "to": "framework/octane/guides/listeners" + }, + { + "label": "Custom Errors", + "to": "framework/octane/guides/custom-errors" + }, + { + "label": "Submission Handling", + "to": "framework/octane/guides/submission-handling" + }, + { + "label": "Focus Management", + "to": "framework/octane/guides/focus-management" + }, + { + "label": "Form Composition", + "to": "framework/octane/guides/form-composition" + }, + { + "label": "Debugging", + "to": "framework/octane/guides/debugging" + } + ] + }, { "label": "vue", "children": [ @@ -555,6 +621,111 @@ } ] }, + { + "label": "octane", + "children": [ + { + "label": "Octane Reference", + "to": "framework/octane/reference/index" + }, + { + "label": "Variables / Field", + "to": "framework/octane/reference/variables/Field" + }, + { + "label": "Variables / FormGroup", + "to": "framework/octane/reference/variables/FormGroup" + }, + { + "label": "Variables / useIsomorphicLayoutEffect", + "to": "framework/octane/reference/variables/useIsomorphicLayoutEffect" + }, + { + "label": "Functions / createFormHook", + "to": "framework/octane/reference/functions/createFormHook" + }, + { + "label": "Functions / createFormHookContexts", + "to": "framework/octane/reference/functions/createFormHookContexts" + }, + { + "label": "Functions / useField", + "to": "framework/octane/reference/functions/useField" + }, + { + "label": "Functions / useFieldGroup", + "to": "framework/octane/reference/functions/useFieldGroup" + }, + { + "label": "Functions / useForm", + "to": "framework/octane/reference/functions/useForm" + }, + { + "label": "Functions / useFormGroup", + "to": "framework/octane/reference/functions/useFormGroup" + }, + { + "label": "Functions / useSelector", + "to": "framework/octane/reference/functions/useSelector" + }, + { + "label": "Interfaces / CreateFormHookReturn", + "to": "framework/octane/reference/interfaces/CreateFormHookReturn" + }, + { + "label": "Interfaces / OctaneFormApi", + "to": "framework/octane/reference/interfaces/OctaneFormApi" + }, + { + "label": "Interfaces / SubscribeComponent", + "to": "framework/octane/reference/interfaces/SubscribeComponent" + }, + { + "label": "Interfaces / UseFieldOptions", + "to": "framework/octane/reference/interfaces/UseFieldOptions" + }, + { + "label": "Interfaces / UseFieldOptionsBound", + "to": "framework/octane/reference/interfaces/UseFieldOptionsBound" + }, + { + "label": "Interfaces / WithFieldGroupProps", + "to": "framework/octane/reference/interfaces/WithFieldGroupProps" + }, + { + "label": "Interfaces / WithFormProps", + "to": "framework/octane/reference/interfaces/WithFormProps" + }, + { + "label": "Types / FieldComponent", + "to": "framework/octane/reference/type-aliases/FieldComponent" + }, + { + "label": "Types / FormGroupComponent", + "to": "framework/octane/reference/type-aliases/FormGroupComponent" + }, + { + "label": "Types / LensFieldComponent", + "to": "framework/octane/reference/type-aliases/LensFieldComponent" + }, + { + "label": "Types / OctaneFormExtendedApi", + "to": "framework/octane/reference/type-aliases/OctaneFormExtendedApi" + }, + { + "label": "Types / ServerFormState", + "to": "framework/octane/reference/type-aliases/ServerFormState" + }, + { + "label": "Types / UseField", + "to": "framework/octane/reference/type-aliases/UseField" + }, + { + "label": "Types / UseFormGroup", + "to": "framework/octane/reference/type-aliases/UseFormGroup" + } + ] + }, { "label": "vue", "children": [ @@ -811,6 +982,19 @@ } ] }, + { + "label": "octane", + "children": [ + { + "label": "Simple", + "to": "framework/octane/examples/simple" + }, + { + "label": "Multi-Step Wizard", + "to": "framework/octane/examples/multi-step-wizard" + } + ] + }, { "label": "svelte", "children": [ diff --git a/docs/framework/angular/reference/classes/TanStackAppField.md b/docs/framework/angular/reference/classes/TanStackAppField.md index 8801c8a504..98db8b13ef 100644 --- a/docs/framework/angular/reference/classes/TanStackAppField.md +++ b/docs/framework/angular/reference/classes/TanStackAppField.md @@ -111,7 +111,7 @@ Defined in: [angular-form/src/app-field.ts:20](https://github.com/TanStack/form/ new TanStackAppField(): TanStackAppField; ``` -Defined in: [angular-form/src/app-field.ts:79](https://github.com/TanStack/form/blob/main/packages/angular-form/src/app-field.ts#L79) +Defined in: [angular-form/src/app-field.ts:75](https://github.com/TanStack/form/blob/main/packages/angular-form/src/app-field.ts#L75) #### Returns @@ -129,7 +129,7 @@ Defined in: [angular-form/src/app-field.ts:79](https://github.com/TanStack/form/ _api: Signal>; ``` -Defined in: [angular-form/src/tanstack-field.ts:150](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L150) +Defined in: [angular-form/src/tanstack-field.ts:146](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L146) #### Inherited from @@ -143,7 +143,7 @@ Defined in: [angular-form/src/tanstack-field.ts:150](https://github.com/TanStack asyncAlways: InputSignalWithTransform; ``` -Defined in: [angular-form/src/tanstack-field.ts:75](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L75) +Defined in: [angular-form/src/tanstack-field.ts:71](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L71) #### Inherited from @@ -157,7 +157,7 @@ Defined in: [angular-form/src/tanstack-field.ts:75](https://github.com/TanStack/ asyncDebounceMs: InputSignalWithTransform; ``` -Defined in: [angular-form/src/tanstack-field.ts:72](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L72) +Defined in: [angular-form/src/tanstack-field.ts:68](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L68) #### Inherited from @@ -171,7 +171,7 @@ Defined in: [angular-form/src/tanstack-field.ts:72](https://github.com/TanStack/ base: TanStackFieldInjectable; ``` -Defined in: [angular-form/src/app-field.ts:77](https://github.com/TanStack/form/blob/main/packages/angular-form/src/app-field.ts#L77) +Defined in: [angular-form/src/app-field.ts:73](https://github.com/TanStack/form/blob/main/packages/angular-form/src/app-field.ts#L73) *** @@ -181,7 +181,7 @@ Defined in: [angular-form/src/app-field.ts:77](https://github.com/TanStack/form/ cd: ChangeDetectorRef; ``` -Defined in: [angular-form/src/tanstack-field.ts:237](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L237) +Defined in: [angular-form/src/tanstack-field.ts:233](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L233) #### Inherited from @@ -197,7 +197,7 @@ defaultMeta: InputSignal< | undefined>; ``` -Defined in: [angular-form/src/tanstack-field.ts:117](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L117) +Defined in: [angular-form/src/tanstack-field.ts:113](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L113) #### Inherited from @@ -211,7 +211,7 @@ Defined in: [angular-form/src/tanstack-field.ts:117](https://github.com/TanStack defaultValue: InputSignal | undefined>; ``` -Defined in: [angular-form/src/tanstack-field.ts:71](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L71) +Defined in: [angular-form/src/tanstack-field.ts:67](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L67) #### Inherited from @@ -225,7 +225,7 @@ Defined in: [angular-form/src/tanstack-field.ts:71](https://github.com/TanStack/ disableErrorFlat: InputSignal; ``` -Defined in: [angular-form/src/tanstack-field.ts:148](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L148) +Defined in: [angular-form/src/tanstack-field.ts:144](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L144) #### Inherited from @@ -239,7 +239,7 @@ Defined in: [angular-form/src/tanstack-field.ts:148](https://github.com/TanStack injector: Injector; ``` -Defined in: [angular-form/src/tanstack-field.ts:221](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L221) +Defined in: [angular-form/src/tanstack-field.ts:217](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L217) #### Inherited from @@ -255,7 +255,7 @@ listeners: InputSignal< | undefined>; ``` -Defined in: [angular-form/src/tanstack-field.ts:116](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L116) +Defined in: [angular-form/src/tanstack-field.ts:112](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L112) #### Inherited from @@ -269,7 +269,7 @@ Defined in: [angular-form/src/tanstack-field.ts:116](https://github.com/TanStack mode: InputSignal<"value" | "array" | undefined>; ``` -Defined in: [angular-form/src/tanstack-field.ts:146](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L146) +Defined in: [angular-form/src/tanstack-field.ts:142](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L142) #### Inherited from @@ -283,7 +283,7 @@ Defined in: [angular-form/src/tanstack-field.ts:146](https://github.com/TanStack name: InputSignal; ``` -Defined in: [angular-form/src/tanstack-field.ts:70](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L70) +Defined in: [angular-form/src/tanstack-field.ts:66](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L66) #### Inherited from @@ -297,7 +297,7 @@ Defined in: [angular-form/src/tanstack-field.ts:70](https://github.com/TanStack/ options: Signal>; ``` -Defined in: [angular-form/src/tanstack-field.ts:182](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L182) +Defined in: [angular-form/src/tanstack-field.ts:178](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L178) #### Inherited from @@ -311,7 +311,7 @@ Defined in: [angular-form/src/tanstack-field.ts:182](https://github.com/TanStack tanstackField: InputSignal>; ``` -Defined in: [angular-form/src/tanstack-field.ts:78](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L78) +Defined in: [angular-form/src/tanstack-field.ts:74](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L74) #### Inherited from @@ -327,7 +327,7 @@ validators: InputSignal< | undefined>; ``` -Defined in: [angular-form/src/tanstack-field.ts:96](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L96) +Defined in: [angular-form/src/tanstack-field.ts:92](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L92) #### Inherited from @@ -343,7 +343,7 @@ Defined in: [angular-form/src/tanstack-field.ts:96](https://github.com/TanStack/ get api(): FieldApi; ``` -Defined in: [angular-form/src/tanstack-field.ts:154](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L154) +Defined in: [angular-form/src/tanstack-field.ts:150](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L150) ##### Returns @@ -361,7 +361,7 @@ Defined in: [angular-form/src/tanstack-field.ts:154](https://github.com/TanStack ngOnInit(): void; ``` -Defined in: [angular-form/src/tanstack-field.ts:239](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L239) +Defined in: [angular-form/src/tanstack-field.ts:235](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L235) A callback method that is invoked immediately after the default change detector has checked the directive's diff --git a/docs/framework/angular/reference/classes/TanStackField.md b/docs/framework/angular/reference/classes/TanStackField.md index de0582b13c..45c52065ba 100644 --- a/docs/framework/angular/reference/classes/TanStackField.md +++ b/docs/framework/angular/reference/classes/TanStackField.md @@ -115,7 +115,7 @@ Defined in: [angular-form/src/tanstack-field.ts:37](https://github.com/TanStack/ new TanStackField(): TanStackField; ``` -Defined in: [angular-form/src/tanstack-field.ts:223](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L223) +Defined in: [angular-form/src/tanstack-field.ts:219](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L219) #### Returns @@ -129,7 +129,7 @@ Defined in: [angular-form/src/tanstack-field.ts:223](https://github.com/TanStack _api: Signal>; ``` -Defined in: [angular-form/src/tanstack-field.ts:150](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L150) +Defined in: [angular-form/src/tanstack-field.ts:146](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L146) *** @@ -139,7 +139,7 @@ Defined in: [angular-form/src/tanstack-field.ts:150](https://github.com/TanStack asyncAlways: InputSignalWithTransform; ``` -Defined in: [angular-form/src/tanstack-field.ts:75](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L75) +Defined in: [angular-form/src/tanstack-field.ts:71](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L71) *** @@ -149,7 +149,7 @@ Defined in: [angular-form/src/tanstack-field.ts:75](https://github.com/TanStack/ asyncDebounceMs: InputSignalWithTransform; ``` -Defined in: [angular-form/src/tanstack-field.ts:72](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L72) +Defined in: [angular-form/src/tanstack-field.ts:68](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L68) *** @@ -159,7 +159,7 @@ Defined in: [angular-form/src/tanstack-field.ts:72](https://github.com/TanStack/ cd: ChangeDetectorRef; ``` -Defined in: [angular-form/src/tanstack-field.ts:237](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L237) +Defined in: [angular-form/src/tanstack-field.ts:233](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L233) *** @@ -171,7 +171,7 @@ defaultMeta: InputSignal< | undefined>; ``` -Defined in: [angular-form/src/tanstack-field.ts:117](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L117) +Defined in: [angular-form/src/tanstack-field.ts:113](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L113) *** @@ -181,7 +181,7 @@ Defined in: [angular-form/src/tanstack-field.ts:117](https://github.com/TanStack defaultValue: InputSignal | undefined>; ``` -Defined in: [angular-form/src/tanstack-field.ts:71](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L71) +Defined in: [angular-form/src/tanstack-field.ts:67](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L67) *** @@ -191,7 +191,7 @@ Defined in: [angular-form/src/tanstack-field.ts:71](https://github.com/TanStack/ disableErrorFlat: InputSignal; ``` -Defined in: [angular-form/src/tanstack-field.ts:148](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L148) +Defined in: [angular-form/src/tanstack-field.ts:144](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L144) *** @@ -201,7 +201,7 @@ Defined in: [angular-form/src/tanstack-field.ts:148](https://github.com/TanStack injector: Injector; ``` -Defined in: [angular-form/src/tanstack-field.ts:221](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L221) +Defined in: [angular-form/src/tanstack-field.ts:217](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L217) *** @@ -213,7 +213,7 @@ listeners: InputSignal< | undefined>; ``` -Defined in: [angular-form/src/tanstack-field.ts:116](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L116) +Defined in: [angular-form/src/tanstack-field.ts:112](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L112) *** @@ -223,7 +223,7 @@ Defined in: [angular-form/src/tanstack-field.ts:116](https://github.com/TanStack mode: InputSignal<"value" | "array" | undefined>; ``` -Defined in: [angular-form/src/tanstack-field.ts:146](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L146) +Defined in: [angular-form/src/tanstack-field.ts:142](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L142) *** @@ -233,7 +233,7 @@ Defined in: [angular-form/src/tanstack-field.ts:146](https://github.com/TanStack name: InputSignal; ``` -Defined in: [angular-form/src/tanstack-field.ts:70](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L70) +Defined in: [angular-form/src/tanstack-field.ts:66](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L66) *** @@ -243,7 +243,7 @@ Defined in: [angular-form/src/tanstack-field.ts:70](https://github.com/TanStack/ options: Signal>; ``` -Defined in: [angular-form/src/tanstack-field.ts:182](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L182) +Defined in: [angular-form/src/tanstack-field.ts:178](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L178) *** @@ -253,7 +253,7 @@ Defined in: [angular-form/src/tanstack-field.ts:182](https://github.com/TanStack tanstackField: InputSignal>; ``` -Defined in: [angular-form/src/tanstack-field.ts:78](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L78) +Defined in: [angular-form/src/tanstack-field.ts:74](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L74) *** @@ -265,7 +265,7 @@ validators: InputSignal< | undefined>; ``` -Defined in: [angular-form/src/tanstack-field.ts:96](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L96) +Defined in: [angular-form/src/tanstack-field.ts:92](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L92) ## Accessors @@ -277,7 +277,7 @@ Defined in: [angular-form/src/tanstack-field.ts:96](https://github.com/TanStack/ get api(): FieldApi; ``` -Defined in: [angular-form/src/tanstack-field.ts:154](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L154) +Defined in: [angular-form/src/tanstack-field.ts:150](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L150) ##### Returns @@ -291,7 +291,7 @@ Defined in: [angular-form/src/tanstack-field.ts:154](https://github.com/TanStack ngOnInit(): void; ``` -Defined in: [angular-form/src/tanstack-field.ts:239](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L239) +Defined in: [angular-form/src/tanstack-field.ts:235](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.ts#L235) A callback method that is invoked immediately after the default change detector has checked the directive's diff --git a/docs/framework/angular/reference/classes/TanStackFormGroup.md b/docs/framework/angular/reference/classes/TanStackFormGroup.md index 98cf444998..2eddf23864 100644 --- a/docs/framework/angular/reference/classes/TanStackFormGroup.md +++ b/docs/framework/angular/reference/classes/TanStackFormGroup.md @@ -123,7 +123,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:34](https://github.com/TanS new TanStackFormGroup(): TanStackFormGroup; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:303](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L303) +Defined in: [angular-form/src/tanstack-form-group.ts:296](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L296) #### Returns @@ -137,7 +137,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:303](https://github.com/Tan _api: Signal>; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:224](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L224) +Defined in: [angular-form/src/tanstack-form-group.ts:217](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L217) *** @@ -147,7 +147,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:224](https://github.com/Tan asyncAlways: InputSignalWithTransform; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:79](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L79) +Defined in: [angular-form/src/tanstack-form-group.ts:72](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L72) *** @@ -157,7 +157,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:79](https://github.com/TanS asyncDebounceMs: InputSignalWithTransform; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:76](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L76) +Defined in: [angular-form/src/tanstack-form-group.ts:69](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L69) *** @@ -167,7 +167,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:76](https://github.com/TanS canSubmitWhenInvalid: InputSignalWithTransform; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:82](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L82) +Defined in: [angular-form/src/tanstack-form-group.ts:75](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L75) *** @@ -177,7 +177,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:82](https://github.com/TanS cd: ChangeDetectorRef; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:317](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L317) +Defined in: [angular-form/src/tanstack-form-group.ts:310](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L310) *** @@ -189,7 +189,7 @@ defaultMeta: InputSignal< | undefined>; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:125](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L125) +Defined in: [angular-form/src/tanstack-form-group.ts:118](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L118) *** @@ -199,7 +199,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:125](https://github.com/Tan defaultState: InputSignal | undefined>; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:154](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L154) +Defined in: [angular-form/src/tanstack-form-group.ts:147](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L147) *** @@ -209,7 +209,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:154](https://github.com/Tan defaultValue: InputSignal | undefined>; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:75](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L75) +Defined in: [angular-form/src/tanstack-form-group.ts:68](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L68) *** @@ -219,7 +219,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:75](https://github.com/TanS injector: Injector; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:301](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L301) +Defined in: [angular-form/src/tanstack-form-group.ts:294](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L294) *** @@ -231,7 +231,7 @@ listeners: InputSignal< | undefined>; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:123](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L123) +Defined in: [angular-form/src/tanstack-form-group.ts:116](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L116) *** @@ -241,7 +241,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:123](https://github.com/Tan mode: InputSignal<"value" | "array" | undefined>; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:222](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L222) +Defined in: [angular-form/src/tanstack-form-group.ts:215](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L215) *** @@ -251,7 +251,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:222](https://github.com/Tan name: InputSignal; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:74](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L74) +Defined in: [angular-form/src/tanstack-form-group.ts:67](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L67) *** @@ -261,7 +261,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:74](https://github.com/TanS onGroupSubmit: InputSignal any | undefined> | undefined>; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:158](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L158) +Defined in: [angular-form/src/tanstack-form-group.ts:151](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L151) *** @@ -271,7 +271,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:158](https://github.com/Tan onGroupSubmitInvalid: InputSignal void | undefined> | undefined>; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:190](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L190) +Defined in: [angular-form/src/tanstack-form-group.ts:183](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L183) *** @@ -281,7 +281,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:190](https://github.com/Tan onSubmitMeta: InputSignal | undefined>; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:156](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L156) +Defined in: [angular-form/src/tanstack-form-group.ts:149](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L149) *** @@ -291,7 +291,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:156](https://github.com/Tan options: Signal>; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:257](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L257) +Defined in: [angular-form/src/tanstack-form-group.ts:250](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L250) *** @@ -301,7 +301,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:257](https://github.com/Tan tanstackFormGroup: InputSignal>; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:85](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L85) +Defined in: [angular-form/src/tanstack-form-group.ts:78](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L78) *** @@ -313,7 +313,7 @@ validators: InputSignal< | undefined>; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:103](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L103) +Defined in: [angular-form/src/tanstack-form-group.ts:96](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L96) ## Accessors @@ -325,7 +325,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:103](https://github.com/Tan get api(): FormGroupApi; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:228](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L228) +Defined in: [angular-form/src/tanstack-form-group.ts:221](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L221) ##### Returns @@ -339,7 +339,7 @@ Defined in: [angular-form/src/tanstack-form-group.ts:228](https://github.com/Tan ngOnInit(): void; ``` -Defined in: [angular-form/src/tanstack-form-group.ts:319](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L319) +Defined in: [angular-form/src/tanstack-form-group.ts:312](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-form-group.ts#L312) A callback method that is invoked immediately after the default change detector has checked the directive's diff --git a/docs/framework/lit/guides/form-composition.md b/docs/framework/lit/guides/form-composition.md index e9157095ae..f48da06f1f 100644 --- a/docs/framework/lit/guides/form-composition.md +++ b/docs/framework/lit/guides/form-composition.md @@ -45,11 +45,13 @@ export class TextField extends LitElement { this.field.handleChange((e.target as HTMLInputElement).value)} /> - ${this.field.state.meta.isTouched && this.field.state.meta.errors.length - ? html`
- ${this.field.state.meta.errors.join(', ')} -
` - : ''} + ${ + this.field.state.meta.isTouched && this.field.state.meta.errors.length + ? html`
+ ${this.field.state.meta.errors.join(', ')} +
` + : '' + } ` } } diff --git a/docs/framework/lit/guides/form-groups.md b/docs/framework/lit/guides/form-groups.md index 1736602ffa..dddf177fe8 100644 --- a/docs/framework/lit/guides/form-groups.md +++ b/docs/framework/lit/guides/form-groups.md @@ -70,61 +70,65 @@ export class MyForm extends LitElement { render() { return html` - ${this.step === 0 - ? this.#form.group( - { - name: 'step1', - onGroupSubmit: () => { - // We can move the step forward when validation passes - this.step++ + ${ + this.step === 0 + ? this.#form.group( + { + name: 'step1', + onGroupSubmit: () => { + // We can move the step forward when validation passes + this.step++ + }, + onGroupSubmitInvalid: () => { + // Or handle invalid submissions, just like a top-level form + }, + onSubmitMeta: {} as SomeType, }, - onGroupSubmitInvalid: () => { - // Or handle invalid submissions, just like a top-level form + (group) => html` +
{ + e.preventDefault() + e.stopPropagation() + // Use `group.handleSubmit()` to submit the sub-form, but not the parent form + group.handleSubmit() + }} + > + ${this.#form.field( + { name: 'step1.name' }, + (field) => html``, + )} +
+ `, + ) + : nothing + } + ${ + this.step === 1 + ? this.#form.group( + { + name: 'step2', + onGroupSubmit: () => { + // Then, use `this.#form.api.handleSubmit()` to submit the entire form + this.#form.api.handleSubmit() + }, }, - onSubmitMeta: {} as SomeType, - }, - (group) => html` -
{ - e.preventDefault() - e.stopPropagation() - // Use `group.handleSubmit()` to submit the sub-form, but not the parent form - group.handleSubmit() - }} - > - ${this.#form.field( - { name: 'step1.name' }, - (field) => html``, - )} -
- `, - ) - : nothing} - ${this.step === 1 - ? this.#form.group( - { - name: 'step2', - onGroupSubmit: () => { - // Then, use `this.#form.api.handleSubmit()` to submit the entire form - this.#form.api.handleSubmit() - }, - }, - (group) => html` -
{ - e.preventDefault() - e.stopPropagation() - group.handleSubmit() - }} - > - ${this.#form.field( - { name: 'step2.age' }, - (field) => html``, - )} -
- `, - ) - : nothing} + (group) => html` +
{ + e.preventDefault() + e.stopPropagation() + group.handleSubmit() + }} + > + ${this.#form.field( + { name: 'step2.age' }, + (field) => html``, + )} +
+ `, + ) + : nothing + } ` } } diff --git a/docs/framework/lit/guides/validation.md b/docs/framework/lit/guides/validation.md index 4c8b693c4b..359e98a04c 100644 --- a/docs/framework/lit/guides/validation.md +++ b/docs/framework/lit/guides/validation.md @@ -38,9 +38,11 @@ import { html, nothing } from 'lit' field.handleChange(target.valueAsNumber) }}" /> - ${!field.state.meta.isValid - ? html`${field.state.meta.errors.join(', ')}` - : nothing} + ${ + !field.state.meta.isValid + ? html`${field.state.meta.errors.join(', ')}` + : nothing + } ` }, )}` @@ -72,9 +74,11 @@ import { html, nothing } from 'lit' field.handleChange(target.valueAsNumber) }}" /> - ${!field.state.meta.isValid - ? html`${field.state.meta.errors.join(', ')}` - : nothing} + ${ + !field.state.meta.isValid + ? html`${field.state.meta.errors.join(', ')}` + : nothing + } ` }, )}` @@ -107,9 +111,11 @@ import { html, nothing } from 'lit' field.handleChange(target.valueAsNumber) }}" /> - ${!field.state.meta.isValid - ? html`${field.state.meta.errors.join(', ')}` - : nothing} + ${ + !field.state.meta.isValid + ? html`${field.state.meta.errors.join(', ')}` + : nothing + } ` }, )}` @@ -134,9 +140,11 @@ import { html, nothing } from 'lit' (field) => { return html` - ${!field.state.meta.isValid - ? html`${field.state.meta.errors.join(',')}` - : nothing} + ${ + !field.state.meta.isValid + ? html`${field.state.meta.errors.join(',')}` + : nothing + } ` }, )}` @@ -157,9 +165,11 @@ import { html, nothing } from 'lit' (field) => { return html` - ${field.state.meta.errorMap['onChange'] - ? html`${field.state.meta.errorMap['onChange']}` - : nothing} + ${ + field.state.meta.errorMap['onChange'] + ? html`${field.state.meta.errorMap['onChange']}` + : nothing + } ` }, )}` @@ -225,16 +235,18 @@ export class MyForm extends LitElement { return html`
- ${this.#form.api.state.errorMap.onChange - ? html` -
- There was an error on the form: - ${this.#form.api.state.errorMap.onChange} -
- ` - : nothing} + ${ + this.#form.api.state.errorMap.onChange + ? html` +
+ There was an error on the form: + ${this.#form.api.state.errorMap.onChange} +
+ ` + : nothing + }
` @@ -306,23 +318,27 @@ export class MyForm extends LitElement { field.handleChange(target.valueAsNumber) }}" /> - ${!field.state.meta.isValid - ? html`${field.state.meta.errors.join(', ')}` - : nothing} + ${ + !field.state.meta.isValid + ? html`${field.state.meta.errors.join(', ')}` + : nothing + } `, )} - ${this.#form.api.state.errorMap.onSubmit - ? html` -
- There was an error on the form: - ${this.#form.api.state.errorMap.onSubmit} -
- ` - : nothing} + ${ + this.#form.api.state.errorMap.onSubmit + ? html` +
+ There was an error on the form: + ${this.#form.api.state.errorMap.onSubmit} +
+ ` + : nothing + } @@ -400,9 +416,11 @@ import { html, nothing } from 'lit' field.handleChange(target.valueAsNumber) }}" /> - ${!field.state.meta.isValid - ? html`${field.state.meta.errors.join(', ')}` - : nothing} + ${ + !field.state.meta.isValid + ? html`${field.state.meta.errors.join(', ')}` + : nothing + } ` }, )}` @@ -438,9 +456,11 @@ import { html, nothing } from 'lit' field.handleChange(target.valueAsNumber) }}" /> - ${!field.state.meta.isValid - ? html`${field.state.meta.errors.join(', ')}` - : nothing} + ${ + !field.state.meta.isValid + ? html`${field.state.meta.errors.join(', ')}` + : nothing + } ` }, )}` @@ -613,9 +633,7 @@ You can access this flag via `this.#form.api.state` and use the value in order t ```ts class MyForm extends LitElement { - #form = new TanStackFormController(this, { - /* ... */ - }) + #form = new TanStackFormController(this, {/* ... */}) render() { return html` diff --git a/docs/framework/lit/reference/classes/TanStackFormController.md b/docs/framework/lit/reference/classes/TanStackFormController.md index f337c52d62..a17dea408d 100644 --- a/docs/framework/lit/reference/classes/TanStackFormController.md +++ b/docs/framework/lit/reference/classes/TanStackFormController.md @@ -3,7 +3,7 @@ id: TanStackFormController title: TanStackFormController --- -Defined in: [tanstack-form-controller.ts:226](https://github.com/TanStack/form/blob/main/packages/lit-form/src/tanstack-form-controller.ts#L226) +Defined in: [tanstack-form-controller.ts:218](https://github.com/TanStack/form/blob/main/packages/lit-form/src/tanstack-form-controller.ts#L218) ## Type Parameters @@ -67,7 +67,7 @@ Defined in: [tanstack-form-controller.ts:226](https://github.com/TanStack/form/b new TanStackFormController(host, config?): TanStackFormController; ``` -Defined in: [tanstack-form-controller.ts:255](https://github.com/TanStack/form/blob/main/packages/lit-form/src/tanstack-form-controller.ts#L255) +Defined in: [tanstack-form-controller.ts:247](https://github.com/TanStack/form/blob/main/packages/lit-form/src/tanstack-form-controller.ts#L247) #### Parameters @@ -91,7 +91,7 @@ Defined in: [tanstack-form-controller.ts:255](https://github.com/TanStack/form/b api: FormApi; ``` -Defined in: [tanstack-form-controller.ts:240](https://github.com/TanStack/form/blob/main/packages/lit-form/src/tanstack-form-controller.ts#L240) +Defined in: [tanstack-form-controller.ts:232](https://github.com/TanStack/form/blob/main/packages/lit-form/src/tanstack-form-controller.ts#L232) ## Methods @@ -101,7 +101,7 @@ Defined in: [tanstack-form-controller.ts:240](https://github.com/TanStack/form/b field(fieldConfig, render): object; ``` -Defined in: [tanstack-form-controller.ts:300](https://github.com/TanStack/form/blob/main/packages/lit-form/src/tanstack-form-controller.ts#L300) +Defined in: [tanstack-form-controller.ts:292](https://github.com/TanStack/form/blob/main/packages/lit-form/src/tanstack-form-controller.ts#L292) #### Type Parameters @@ -195,7 +195,7 @@ render: renderCallback(groupConfig, render): unknown; ``` -Defined in: [tanstack-form-controller.ts:390](https://github.com/TanStack/form/blob/main/packages/lit-form/src/tanstack-form-controller.ts#L390) +Defined in: [tanstack-form-controller.ts:378](https://github.com/TanStack/form/blob/main/packages/lit-form/src/tanstack-form-controller.ts#L378) #### Type Parameters @@ -277,7 +277,7 @@ Defined in: [tanstack-form-controller.ts:390](https://github.com/TanStack/form/b hostConnected(): void; ``` -Defined in: [tanstack-form-controller.ts:296](https://github.com/TanStack/form/blob/main/packages/lit-form/src/tanstack-form-controller.ts#L296) +Defined in: [tanstack-form-controller.ts:288](https://github.com/TanStack/form/blob/main/packages/lit-form/src/tanstack-form-controller.ts#L288) Called when the host is connected to the component tree. For custom element hosts, this corresponds to the `connectedCallback()` lifecycle, @@ -301,7 +301,7 @@ ReactiveController.hostConnected hostDisconnected(): void; ``` -Defined in: [tanstack-form-controller.ts:298](https://github.com/TanStack/form/blob/main/packages/lit-form/src/tanstack-form-controller.ts#L298) +Defined in: [tanstack-form-controller.ts:290](https://github.com/TanStack/form/blob/main/packages/lit-form/src/tanstack-form-controller.ts#L290) Called when the host is disconnected from the component tree. For custom element hosts, this corresponds to the `disconnectedCallback()` lifecycle, diff --git a/docs/framework/octane/guides/arrays.md b/docs/framework/octane/guides/arrays.md new file mode 100644 index 0000000000..4c9e4dee40 --- /dev/null +++ b/docs/framework/octane/guides/arrays.md @@ -0,0 +1,153 @@ +--- +id: arrays +title: Arrays +--- + +TanStack Form supports arrays as form values, including objects and nested fields inside an array. In TSRX, render array fields with a keyed `@for` loop. + +## Basic Usage + +Use `mode="array"` to manage the array and read its entries through `field.state.value`. Give an initially empty array a type so that field paths and new entries can be inferred: + +```tsrx +import { useForm } from '@tanstack/octane-form' + +type Person = { + id: string; + name: string; + age: number; +} + +function App() @{ + const form = useForm({ + defaultValues: { + people: [] as Person[], + }, + }) + +
+ @for (const person of field.state.value; index i; key person.id) { +

Person {i + 1}: {person.id}

+ } +
} + /> +} +``` + +Call `pushValue` to add an entry. The array field updates and the loop renders the new row: + +```tsrx + +``` + +Access an entry's nested fields using an indexed path: + +```tsrx + + subField.handleChange(event.currentTarget.value)} + onBlur={subField.handleBlur} + />} +/> +``` + +The loop's `key` identifies the row, while the field's `name` identifies its current position in the form. Use a stable key when rows can be removed or reordered, so Octane can preserve each row's DOM and component state. Native text inputs use `onInput` to update on each edit. + +## Full Example + +Save components that render templates in `.tsrx` files: + +```tsrx +// src/App.tsrx +import { useForm } from '@tanstack/octane-form' + +type Person = { + id: string; + name: string; + age: number; +} + +export function App() @{ + const form = useForm({ + defaultValues: { + people: [] as Person[], + }, + onSubmit: ({ value }) => { + alert(JSON.stringify(value)) + }, + }) + +
{ + event.preventDefault() + event.stopPropagation() + void form.handleSubmit() + }} + > +
+ @for (const person of field.state.value; index i; key person.id) { +
+ } + /> + +
+ } + +
} + /> + [state.canSubmit, state.isSubmitting]} + children={([canSubmit, isSubmitting]) => } + /> + +} +``` diff --git a/docs/framework/octane/guides/basic-concepts.md b/docs/framework/octane/guides/basic-concepts.md new file mode 100644 index 0000000000..559788b96c --- /dev/null +++ b/docs/framework/octane/guides/basic-concepts.md @@ -0,0 +1,407 @@ +--- +id: basic-concepts +title: Basic Concepts and Terminology +--- + +This page introduces the basic concepts and terminology used in the `@tanstack/octane-form` library. Familiarizing yourself with these concepts will help you better understand and work with the library. + +## Form Options + +You can customize your form by creating configuration options with the `formOptions` function. These options can be shared between multiple forms. + +Example: + +```ts +import { formOptions } from '@tanstack/octane-form' + +interface User { + firstName: string + lastName: string + hobbies: Array<{ + name: string + description: string + yearsOfExperience: number + }> +} +const defaultUser: User = { firstName: '', lastName: '', hobbies: [] } + +const formOpts = formOptions({ + defaultValues: defaultUser, +}) +``` + +## Form Instance + +A Form instance is an object that represents an individual form and provides methods and properties for working with the form. You create a Form instance using the `useForm` hook from `@tanstack/octane-form` inside an Octane component. The hook accepts an object with an `onSubmit` function, which is called when the form is submitted. + +```ts +const form = useForm({ + ...formOpts, + onSubmit: async ({ value }) => { + // Do something with form data + console.log(value) + }, +}) +``` + +You may also create a Form instance without using `formOptions` by using the standalone `useForm` API: + +```ts +interface User { + firstName: string + lastName: string + hobbies: Array<{ + name: string + description: string + yearsOfExperience: number + }> +} +const defaultUser: User = { firstName: '', lastName: '', hobbies: [] } + +const form = useForm({ + defaultValues: defaultUser, + onSubmit: async ({ value }) => { + // Do something with form data + console.log(value) + }, +}) +``` + +## Field + +A Field represents a single form input element, such as a text input or a checkbox. Fields are created using the `form.Field` component provided by the Form instance. The component accepts a `name` prop, which should match a key in the form's default values. It also accepts a `children` prop, which is a render prop function that takes a `field` object as its argument. + +Example: + +```tsrx + <> + field.handleChange(e.currentTarget.value)} + /> + + } +/> +``` + +In TSRX, pass function children explicitly with `children={...}`. Save rendering code in `.tsrx` files and compile it with the Octane Vite plugin described in the [Quick Start](../quick-start.md). + +Octane uses native DOM events. Use `onInput` for per-keystroke text updates, read the input through `event.currentTarget`, and pass its value to `field.handleChange`. `onChange` follows the browser's commit behavior. + +You can show metadata in a reusable component: + +```tsrx +import type { AnyFieldApi } from '@tanstack/octane-form' + +function FieldInfo({ field }: { field: AnyFieldApi }) @{ + <> + @if (field.state.meta.isTouched && !field.state.meta.isValid) { + {field.state.meta.errors.join(', ')} + } + @if (field.state.meta.isValidating) { + Validating... + } + +} +``` + +## Field State + +Each field has its own state, which includes its current value, validation status, error messages, and other metadata. You can access a field's state using the `field.state` property. + +Example: + +```ts +const { + value, + meta: { errors, isValidating }, +} = field.state +``` + +There are five states in the metadata that can be useful for seeing how the user interacts with a field: + +- **isTouched**: is `true` once the user changes or blurs the field +- **isDirty**: is `true` once the field's value is changed, even if it's reverted to the default. Opposite of `isPristine` +- **isPristine**: is `true` until the user changes the field's value. Opposite of `isDirty` +- **isBlurred**: is `true` once the field loses focus (is blurred) +- **isDefaultValue**: is `true` when the field's current value is the default value + +```ts +const { isTouched, isDirty, isPristine, isBlurred } = field.state.meta +``` + +![Field states](https://raw.githubusercontent.com/TanStack/form/main/docs/assets/field-states.png) + +## Understanding 'isDirty' in Different Libraries + +Non-Persistent `dirty` state + +- **Libraries**: React Hook Form (RHF), Formik, Final Form. +- **Behavior**: A field is 'dirty' if its value differs from the default. Reverting to the default value makes it 'clean' again. + +Persistent `dirty` state + +- **Libraries**: Angular Form, Vue FormKit. +- **Behavior**: A field remains 'dirty' once changed, even if reverted to the default value. + +We have chosen the persistent 'dirty' state model. However, we have introduced the `isDefaultValue` flag to also support a non-persistent 'dirty' state. + +```ts +const { isDefaultValue, isTouched } = field.state.meta + +// The following line will re-create the non-persistent `dirty` functionality. +const nonPersistentIsDirty = !isDefaultValue +``` + +![Field states extended](https://raw.githubusercontent.com/TanStack/form/main/docs/assets/field-states-extended.png) + +## Field API + +The Field API is an object passed to the render prop function when creating a field. It provides methods for working with the field's state. + +Example: + +```tsrx + field.handleChange(e.currentTarget.value)} +/> +``` + +## Validation + +`@tanstack/octane-form` provides both synchronous and asynchronous validation out of the box. Validation functions can be passed to the `form.Field` component using the `validators` prop. + +Example: + +```tsrx + !value + ? 'A first name is required' + : value.length < 3 + ? 'First name must be at least 3 characters' + : undefined, + onChangeAsync: async ({ value }) => { + await new Promise((resolve) => setTimeout(resolve, 1000)) + return value.includes('error') && 'No "error" allowed in first name' + }, + }} + children={(field) => <> + field.handleChange(e.currentTarget.value)} + /> + + } +/> +``` + +## Validation with Standard Schema Libraries + +In addition to hand-rolled validation options, we also support the [Standard Schema](https://github.com/standard-schema/standard-schema) specification. + +You can define a schema using any of the libraries implementing the specification and pass it to a form or field validator. + +Supported libraries include: + +- [Zod](https://zod.dev/) (v3.24.0 or higher) +- [Valibot](https://valibot.dev/) (v1.0.0 or higher) +- [ArkType](https://arktype.io/) (v2.1.20 or higher) +- [Yup](https://github.com/jquense/yup) (v1.7.0 or higher) + +```tsrx +import { useForm } from '@tanstack/octane-form' +import { z } from 'zod' + +const userSchema = z.object({ + age: z.number().gte(13, 'You must be 13 to make an account'), +}) + +function App() @{ + const form = useForm({ + defaultValues: { age: 0 }, + validators: { onChange: userSchema }, + }) + + + field.handleChange( + event.currentTarget.valueAsNumber, + )} + />} + /> +} +``` + +## Reactivity + +`@tanstack/octane-form` offers various ways to subscribe to form and field state changes, most notably the `useSelector(form.store, …)` hook and the `form.Subscribe` component. These methods allow you to optimize your form's rendering performance by only updating components when necessary. + +Example (inside a component): + +```tsrx +import { useSelector } from '@tanstack/octane-form' + +const firstName = useSelector(form.store, (state) => state.values.firstName) + +const submitButton = [state.canSubmit, state.isSubmitting]} + children={([canSubmit, isSubmitting]) => } +/> +``` + +It is important to remember that while the `useSelector` hook's `selector` prop is optional, it is strongly recommended to provide one, so that updates to unrelated form state do not update the component. + +```ts +// Subscribe to the values you use +const firstName = useSelector(form.store, (state) => state.values.firstName) +const errors = useSelector(form.store, (state) => state.errorMap) +// Subscribe to the entire state only when you need it +const state = useSelector(form.store) +``` + +The `form.Field` component already subscribes to its field state. For form state outside a field, use `useSelector` or `form.Subscribe`; reading `form.state` alone does not subscribe an Octane component. See [Reactivity](./reactivity.md) for more details. + +## Listeners + +`@tanstack/octane-form` allows you to react to specific triggers and "listen" to them to dispatch side effects. + +Example: + +```tsrx + { + console.log(`Country changed to: ${value}, resetting province`) + form.setFieldValue('province', '') + }, + }} + children={(field) => + field.handleChange(event.currentTarget.value)} + />} +/> +``` + +More information can be found at [Listeners](./listeners.md) + +## Array Fields + +Array fields allow you to manage a list of values within a form, such as a list of hobbies. You can create an array field using the `form.Field` component with the `mode="array"` prop. + +When working with array fields, you can use the `pushValue`, `removeValue`, `swapValues`, and `moveValue` methods to add, remove, swap, and move a value from one index to another within the array, respectively. Additional helper methods such as `insertValue`, `replaceValue`, and `clearValues` are also available for inserting, replacing, and clearing array values. + +Example: + +```tsrx +
+

Hobbies

+ @for (const hobby of hobbiesField.state.value; index i; key i) { +
+
+ + field.handleChange(event.currentTarget.value)} + /> + +
} + /> +
+ + field.handleChange(event.currentTarget.value)} + /> + +
} + /> + +
+ } @empty { +

No hobbies found.

+ } + +
} +/> +``` + +Use TSRX's keyed `@for` directive to render lists. This example binds field paths to array indices. If rows contain their own local state and have stable identifiers, use those identifiers as keys. See [Arrays](./arrays.md) for more details. + +## Reset Buttons + +When using ` + +} +``` + +### Async Validation + +Async validation can also be used with `onDynamicAsync` just like with other validation logic. You can even debounce the async validation to avoid excessive calls. + +```ts +const form = useForm({ + defaultValues: { + username: '', + }, + validationLogic: revalidateLogic(), + validators: { + onDynamicAsyncDebounceMs: 500, // Debounce the async validation by 500ms + onDynamicAsync: async ({ value }) => { + if (!value.username) { + return { username: 'Username is required' } + } + // Simulate an async validation + const isValid = await validateUsername(value.username) + return isValid ? undefined : { username: 'Username is already taken' } + }, + }, +}) +``` + +### Standard Schema Validation + +You can also use standard schema validation libraries like Valibot or Zod with `onDynamic` validation. This allows you to define complex validation rules that can change dynamically based on the form state. + +```ts +import { z } from 'zod' + +const schema = z.object({ + firstName: z.string().min(1, 'A first name is required'), + lastName: z.string().min(1, 'A last name is required'), +}) + +const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + }, + validationLogic: revalidateLogic(), + validators: { + onDynamic: schema, + }, +}) +``` diff --git a/docs/framework/octane/guides/focus-management.md b/docs/framework/octane/guides/focus-management.md new file mode 100644 index 0000000000..6ebb37924e --- /dev/null +++ b/docs/framework/octane/guides/focus-management.md @@ -0,0 +1,131 @@ +--- +id: focus-management +title: Focus Management +--- + +You may want to focus the first input with an error after an invalid submission. + +[Because TanStack Form does not control your markup](../../../philosophy.md), focus management belongs in your application. Octane provides native DOM refs that you can use to locate an input within the submitted form. + +## Finding an invalid input + +Set `aria-invalid` based on the field's validation state, then focus the first invalid element in `onSubmitInvalid`. Scope the search to the form so that another form on the page cannot receive focus accidentally. + +```tsrx +import { useRef } from 'octane' +import { useForm } from '@tanstack/octane-form' +import { z } from 'zod' + +export default function App() @{ + const formElement = useRef(null) + const form = useForm({ + defaultValues: { age: 0 }, + validators: { + onChange: z.object({ age: z.number().min(12) }), + }, + onSubmit() { + alert('Submitted!') + }, + onSubmitInvalid() { + requestAnimationFrame(() => { + formElement.current?.querySelector( + '[aria-invalid="true"]', + )?.focus() + }) + }, + }) + +
{ + event.preventDefault() + event.stopPropagation() + void form.handleSubmit() + }} + > + } + /> + + +} +``` + +The animation frame lets Octane commit the validation state to the DOM before checking `aria-invalid`. DOM order determines which invalid input receives focus. + +## Managing input refs directly + +For a custom input or a more specific focus order, keep refs to the focusable elements and inspect the corresponding field metadata. You can pass refs directly to DOM elements; Octane does not require `forwardRef`. + +```tsrx +import { useRef } from 'octane' +import { useForm } from '@tanstack/octane-form' + +function App() @{ + const firstNameInput = useRef(null) + const lastNameInput = useRef(null) + const form = useForm({ + defaultValues: { firstName: '', lastName: '' }, + onSubmitInvalid({ formApi }) { + if (formApi.getFieldMeta('firstName')?.isValid === false) { + firstNameInput.current?.focus() + } else if (formApi.getFieldMeta('lastName')?.isValid === false) { + lastNameInput.current?.focus() + } + }, + }) + +
{ + event.preventDefault() + event.stopPropagation() + void form.handleSubmit() + }} + > + !value ? 'First name is required' : undefined, + }} + children={(field) => + field.handleChange(event.currentTarget.value)} + />} + /> + !value ? 'Last name is required' : undefined, + }} + children={(field) => + field.handleChange(event.currentTarget.value)} + />} + /> + + +} +``` + +For a reusable custom input, accept a `ref` prop and pass it to the underlying input, or expose a focus method with Octane's `useImperativeHandle`. diff --git a/docs/framework/octane/guides/form-composition.md b/docs/framework/octane/guides/form-composition.md new file mode 100644 index 0000000000..68fc646f0b --- /dev/null +++ b/docs/framework/octane/guides/form-composition.md @@ -0,0 +1,609 @@ +--- +id: form-composition +title: Form Composition +--- + +TanStack Form's `form.Field` API gives you control over every input and validation message. That flexibility can also produce repetitive code. Custom form hooks let you bind reusable Octane components to your form while preserving field-name and value types. + +The examples in this guide use TSRX. Save modules that render templates with the `.tsrx` extension and compile them with Octane's Vite plugin, as described in the [quick start](../quick-start.md). + +## Custom Form Hooks + +`createFormHook` takes shared field and form contexts and returns a `useAppForm` hook. With no components registered, `useAppForm` accepts the same options as `useForm`: + +```ts +// src/hooks/form-context.ts +import { createFormHookContexts } from '@tanstack/octane-form' + +export const { fieldContext, formContext, useFieldContext, useFormContext } = + createFormHookContexts() +``` + +```ts +// src/hooks/form.ts +import { createFormHook } from '@tanstack/octane-form' +import { fieldContext, formContext } from './form-context' + +export const { useAppForm } = createFormHook({ + fieldContext, + formContext, + fieldComponents: {}, + formComponents: {}, +}) +``` + +```tsrx +// src/App.tsrx +import { useAppForm } from './hooks/form' + +export function App() @{ + const form = useAppForm({ + defaultValues: { firstName: 'John', lastName: 'Doe' }, + }) + + + field.handleChange(event.currentTarget.value)} + onBlur={field.handleBlur} + />} + /> +} +``` + +### Pre-bound Field Components + +Use the `useFieldContext` exported from your shared context module in custom field components. The generic specifies the value type that the component accepts. Use `useSelector` to subscribe to the field state the component needs: + +```tsrx +// src/components/text-field.tsrx +import { useSelector } from '@tanstack/octane-form' +import { useFieldContext } from '../hooks/form-context' + +export function TextField({ + label, + type = 'text', +}: { + label: string; + type?: 'text' | 'password'; +}) @{ + const field = useFieldContext() + const value = useSelector(field.store, (state) => state.value) + + +} +``` + +Register the component with your form hook: + +```tsrx +// src/hooks/form.tsrx +import { createFormHook } from '@tanstack/octane-form' +import { TextField } from '../components/text-field.tsrx' +import { fieldContext, formContext } from './form-context' + +export const { useAppForm } = createFormHook({ + fieldContext, + formContext, + fieldComponents: { TextField }, + formComponents: {}, +}) +``` + +Use `AppField` to provide the field context and access your registered component: + +```tsrx +function App() @{ + const form = useAppForm({ + defaultValues: { firstName: 'John', lastName: 'Doe' }, + }) + + } + /> +} +``` + +The field's `name` remains checked against the form's values. Mistyping `firstName` produces a TypeScript error. + +#### A note on performance + +These contexts provide stable form and field API instances. State subscriptions come from `useSelector`, `Field`, and `Subscribe`, so sharing an API instance through context does not subscribe every consumer to every form change. Select only the state that a component needs. + +### Pre-bound Form Components + +Form components can use `useFormContext` to share behavior such as a submission button. Wrap them in `form.AppForm` to provide the context: + +```tsrx +import { createFormHook } from '@tanstack/octane-form' +import { fieldContext, formContext, useFormContext } from './form-context' + +function SubscribeButton({ label }: { label: string }) @{ + const form = useFormContext() + + state.isSubmitting} + children={(isSubmitting) => + } + /> +} + +const { useAppForm, withForm } = createFormHook({ + fieldContext, + formContext, + fieldComponents: {}, + formComponents: { SubscribeButton }, +}) + +function App() @{ + const form = useAppForm({ + defaultValues: { firstName: 'John', lastName: 'Doe' }, + onSubmit: ({ value }) => console.log(value), + }) + +
{ + event.preventDefault() + event.stopPropagation() + void form.handleSubmit() + }} + > + + + +
+} +``` + +`AppForm` is a context provider. Use a native `
` element to handle browser submission. + +## Breaking big forms into smaller pieces + +`withForm` creates a component that receives a typed form instance. Its `defaultValues` describe the expected values for type checking; they do not initialize the parent form. `props` declares additional props and their defaults: + +```tsrx +const ChildForm = withForm({ + defaultValues: { firstName: 'John', lastName: 'Doe' }, + props: { title: 'Child Form' }, + render: ({ form, title }) =>
+

{title}

+ } + /> + + + +
, +}) + +function App() @{ + const form = useAppForm({ + defaultValues: { firstName: 'John', lastName: 'Doe' }, + }) + + +} +``` + +This example assumes `TextField` and `SubscribeButton` are both registered with the same `createFormHook` call. + +### `withForm` FAQ + +> Why a higher-order component instead of a hook? + +Passing the form through `withForm` lets TypeScript infer the expected form values and additional props without requiring you to supply the form's generics. + +> How should I write the render callback in TSRX? + +Use an arrow callback. A callback that only renders a template can use `render: ({ form }) =>
...
`. When you need local setup or hooks, use a regular TypeScript callback with an explicit `return`: + +```tsrx +const ChildForm = withForm({ + defaultValues: { firstName: 'John', lastName: 'Doe' }, + render: ({ form }) => { + const firstName = useSelector(form.store, (state) => state.values.firstName) + + return

Hello, {firstName}

+ }, +}) +``` + +Import `useSelector` from `@tanstack/octane-form`. Keep the `render` callback as an ordinary callback: `withForm` calls it with form props. Use TSRX statement containers (`@{ ... }`) and template directives such as `@if` in child components rendered by that callback. + +### Context as a last resort + +Some integrations render children without allowing you to pass the form through their props. `useTypedAppFormContext` provides a fallback for those situations: + +```tsrx +import { createFormHook, formOptions } from '@tanstack/octane-form' +import { fieldContext, formContext } from './hooks/form-context' +import { TextField } from './components/text-field.tsrx' + +const { useAppForm, useTypedAppFormContext } = createFormHook({ + fieldContext, + formContext, + fieldComponents: { TextField }, + formComponents: {}, +}) + +const formOpts = formOptions({ + defaultValues: { firstName: 'John', lastName: 'Doe' }, +}) + +function ParentComponent() @{ + const form = useAppForm(formOpts) + + + + +} + +function ChildComponent() @{ + const form = useTypedAppFormContext(formOpts) + + } + /> +} +``` + +> [!IMPORTANT] Type safety +> Prefer `withForm` when you can pass the form explicitly. Context cannot verify that the provider's actual form matches the options supplied to `useTypedAppFormContext`; mismatched types can cause runtime errors. + +## Reusing groups of fields in multiple forms + +`withFieldGroup` lets related fields, such as the password fields from the [linked fields guide](./linked-fields.md), be reused across forms with different shapes. + +The group's default values describe its fields for typing and mapping. They are not used to initialize the parent form. Validators on the parent can return different error types, so shared error components should accept unknown errors: + +```tsrx +function ErrorInfo() @{ + const field = useFieldContext() + const errors = useSelector(field.store, (state) => state.meta.errors) + +
+ @for (const error of errors; index i; key i) { +

+ {typeof error === 'string' ? error : JSON.stringify(error)} +

+ } +
+} + +const { useAppForm, withFieldGroup } = createFormHook({ + fieldContext, + formContext, + fieldComponents: { TextField, ErrorInfo }, + formComponents: { SubscribeButton }, +}) + +type PasswordFields = { + password: string; + confirm_password: string; +} + +const passwordDefaults: PasswordFields = { + password: '', + confirm_password: '', +} + +function PasswordHint({ password }: { password: string }) @{ + @if (password.length === 0) { +

Choose a password for this account.

+ } +} + +const PasswordGroup = withFieldGroup({ + defaultValues: passwordDefaults, + props: { title: 'Password' }, + render: ({ group, title }) => { + // A group's store exposes its relative values. + const password = useSelector(group.store, (state) => state.values.password) + // The parent form's store remains available too. + const isSubmitting = useSelector( + group.form.store, + (state) => state.isSubmitting, + ) + + return
+ {title} + + } + /> + value !== group.getFieldValue('password') + ? 'Passwords do not match' + : undefined, + }} + children={(field) =>
+ + +
} + /> + +
+ }, +}) +``` + +Inside the group, use relative field names and methods such as `group.getFieldValue('password')`. The parent form's overall values are typed as `unknown`, since the group can be attached to many different form shapes. + +Use `fields` to select where the group's values live: + +```tsrx +type Account = + PasswordFields & { + provider: string; + username: string; + } + +type FormValues = { + name: string; + age: number; + account_data: PasswordFields; + linked_accounts: Account[]; +} + +const defaultValues: FormValues = { + name: '', + age: 0, + account_data: { password: '', confirm_password: '' }, + linked_accounts: [ + { + provider: 'TanStack', + username: '', + password: '', + confirm_password: '', + }, + ], +} + +function App() @{ + const form = useAppForm({ + defaultValues, + onSubmitMeta: { action: '' }, + }) + + + +
+ @for (const account of field.state.value; index i; key account.provider) { + + } +
} + /> +
+} +``` + +This example uses a unique provider as each row's key. If your data allows multiple accounts with the same provider, give each account a stable ID and use that as the key. + +A group can also declare `onSubmitMeta` to restrict the forms that use it to a particular submit metadata type. If it omits that option, the parent form may use any submit metadata. + +### Mapping field group values to a different field + +Pass an object to `fields` to map the group's property names to paths in the parent form: + +```tsrx +function App() @{ + const form = useAppForm({ + defaultValues: { + name: '', + age: 0, + password: '', + passwordConfirmation: '', + }, + }) + + +} +``` + +> [!IMPORTANT] +> TypeScript only supports this property mapping for object groups. A group can have an array or record as its top-level value, but that value cannot use this field mapping. + +When the group property names match the parent field names, `createFieldMap` builds the mapping for you: + +```tsrx +import { createFieldMap } from '@tanstack/octane-form' + +const passwordFields = createFieldMap(passwordDefaults) +// { password: 'password', confirm_password: 'confirm_password' } + + +``` + +## Tree-shaking form and field components + +Registering many components in one shared hook can make every consumer import all of them. Use Octane's `lazy` to split a field component into a separate chunk: + +```tsrx +// src/components/text-field.tsrx +import { useSelector } from '@tanstack/octane-form' +import { useFieldContext } from '../hooks/form-context' + +export default function TextField({ + label, + type = 'text', +}: { + label: string; + type?: 'text' | 'password'; +}) @{ + const field = useFieldContext() + const value = useSelector(field.store, (state) => state.value) + + +} +``` + +```tsrx +// src/hooks/form.tsrx +import { lazy } from 'octane' +import { createFormHook } from '@tanstack/octane-form' +import { fieldContext, formContext } from './form-context' + +const TextField = lazy(() => import('../components/text-field.tsrx')) + +export const { useAppForm, withForm } = createFormHook({ + fieldContext, + formContext, + fieldComponents: { TextField }, + formComponents: {}, +}) +``` + +Wrap the form's page in a TSRX pending boundary to display a fallback while the component loads: + +```tsrx +// src/App.tsrx +import { PeoplePage } from './features/people/page.tsrx' + +export function App() @{ + @try { + + } @pending { +

Loading...

+ } +} +``` + +Keep the context module separate from the component module, so both the form hook and the lazy component import the same contexts without a circular dependency. + +## Putting it all together + +The following example combines shared contexts, bound components, reusable form options, and a typed child form: + +```tsrx +import { + createFormHook, + createFormHookContexts, + formOptions, + useSelector, +} from '@tanstack/octane-form' + +const { fieldContext, useFieldContext, formContext, useFormContext } = + createFormHookContexts() + +function TextField({ + label, + type = 'text', +}: { + label: string; + type?: 'text' | 'password'; +}) @{ + const field = useFieldContext() + const value = useSelector(field.store, (state) => state.value) + + +} + +function SubscribeButton({ label }: { label: string }) @{ + const form = useFormContext() + + state.isSubmitting} + children={(isSubmitting) => + } + /> +} + +const { useAppForm, withForm } = createFormHook({ + fieldComponents: { TextField }, + formComponents: { SubscribeButton }, + fieldContext, + formContext, +}) + +const formOpts = formOptions({ + defaultValues: { firstName: 'John', lastName: 'Doe' }, +}) + +const ChildForm = withForm({ + ...formOpts, + props: { title: 'Child Form' }, + render: ({ form, title }) =>
+

{title}

+ } + /> + + + +
, +}) + +export function Parent() @{ + const form = useAppForm({ + ...formOpts, + onSubmit: ({ value }) => console.log(value), + }) + + { + event.preventDefault() + event.stopPropagation() + void form.handleSubmit() + }} + > + + +} +``` + +## API Usage Guidance + +- Use `Field` for individual fields that need direct control over their UI. +- Use `createFormHook`, `AppField`, and `AppForm` to share your application's field and form components. +- Use `withForm` to split one typed form into smaller components. +- Use `withFieldGroup` to reuse related fields across different form shapes. +- Use `FormGroup` when a stage of a form needs its own validation and submission behavior. +- Use `useTypedAppFormContext` when an integration prevents passing a form explicitly. diff --git a/docs/framework/octane/guides/form-groups.md b/docs/framework/octane/guides/form-groups.md new file mode 100644 index 0000000000..1ba70b9879 --- /dev/null +++ b/docs/framework/octane/guides/form-groups.md @@ -0,0 +1,227 @@ +--- +id: form-groups +title: Form Groups +--- + +When building a multi-stage form, each step often needs its own validation and submission behavior: + +![Form stepper](https://raw.githubusercontent.com/TanStack/form/main/docs/assets/stepper.png) + +Creating a separate form instance for each step makes it harder to validate and submit all the values together. TanStack Form's `form.FormGroup` lets each step validate a portion of one shared form. + +## Usage + +Create a form with `useForm` or [`useAppForm`](./form-composition.md), then use its `FormGroup` component to select a nested value: + +```tsrx +import { useForm } from '@tanstack/octane-form' + +function App() @{ + const form = useForm({ + defaultValues: { + step1: { name: '' }, + step2: { age: 0 }, + }, + }) + +
{JSON.stringify(group.state.value)}
} + /> +} +``` + +The `group` exposes form-like methods, such as `deleteField`, `insertFieldValue`, and `handleSubmit`. `group.handleSubmit()` validates and submits that group without submitting the parent form. + +Pair a form group with Octane's `useState` and TSRX's `@if` to build a wizard. Field paths on the parent form still include the group name: + +```tsrx +// src/Wizard.tsrx +import { useState } from 'octane' +import { useForm } from '@tanstack/octane-form' + +export function Wizard() @{ + const [step, setStep] = useState(0) + const form = useForm({ + defaultValues: { + step1: { name: '' }, + step2: { age: 0 }, + }, + onSubmit: ({ value }) => { + console.log(value) + }, + }) + +
+ @if (step === 0) { + value.name.trim() + ? undefined + : 'Please enter your name', + }} + onGroupSubmit={() => setStep(1)} + onGroupSubmitInvalid={() => {}} + children={(group) =>
{ + event.preventDefault() + event.stopPropagation() + void group.handleSubmit() + }} + > + } + /> +

{group.state.meta.errors.join(', ')}

+ + } + /> + } @else { +
{ + event.preventDefault() + event.stopPropagation() + + void form.handleSubmit() + }} + > + } + /> +
{JSON.stringify(group.state.value)}
+ + + } + /> + } +
+} +``` + +You can also set `onSubmitMeta` on a group and pass the matching metadata to `group.handleSubmit(meta)`, independently of the parent's submit metadata. + +## Form Group Validation + +Groups can have their own validators. Read group errors from `group.state.meta.errorMap` and `group.state.meta.errors`: + +```tsrx + 'Group error' }} + children={(group) =>
{JSON.stringify(group.state.meta.errorMap)}
} +/> +``` + +Group validators can also set errors on individual fields. Error keys are relative to the group's value, so use `name` for `step1.name`: + +```tsrx + ({ + group: value.name === 'error' ? 'Group error' : undefined, + fields: { + name: value.name === 'error' ? 'Field error' : undefined, + }, + }), + }} + children={(group) =>
{JSON.stringify(group.state.meta.errors)}
} +/> +``` + +Standard Schema validators work with groups too: + +```tsrx +
{JSON.stringify(group.state.meta.errors)}
} +/> +``` + +Relative field paths let you reuse a group's schema inside the parent's schema: + +```ts +import { z } from 'zod' + +const step1Schema = z.object({ name: z.string().min(2) }) +const step2Schema = z.object({ age: z.number().min(18) }) +const schema = z.object({ + step1: step1Schema, + step2: step2Schema, +}) +``` + +Pass `step1Schema` to its group and `schema` to the parent form. Whole-form validation then checks all stages even if a step was bypassed. + +### Dynamic Group Validation + +With [dynamic validation](./dynamic-validation.md), configure `revalidateLogic()` on the parent and give each group its own `onDynamic` validator: + +```tsrx +const form = useForm({ + defaultValues: { + step1: { name: '' }, + step2: { age: 0 }, + }, + validationLogic: revalidateLogic(), + validators: { + // This follows the parent form's submission attempts. + onDynamic: schema, + }, +}) + + } +/> +``` + +Submitting a group does not increment the parent form's submission attempts. The group's dynamic validation instead uses `group.state.meta.submissionAttempts` to decide when to change its validation mode. + +## Form Group State + +Read the group's current value with `group.state.value`. Its metadata includes: + +- `group.state.meta.isFieldsValid`: whether field-level validators have no errors +- `group.state.meta.isGroupValid`: whether group-level validators have no errors +- `group.state.meta.isValid`: whether both field-level and group-level validators have no errors +- `group.state.meta.isSubmitting`: whether a group submission is in progress + +Within `FormGroup`'s render callback, these values update when the group's state changes. diff --git a/docs/framework/octane/guides/linked-fields.md b/docs/framework/octane/guides/linked-fields.md new file mode 100644 index 0000000000..51741883b9 --- /dev/null +++ b/docs/framework/octane/guides/linked-fields.md @@ -0,0 +1,71 @@ +--- +id: linked-fields +title: Link Two Form Fields Together +--- + +You may find yourself needing to link two fields together, such that one is validated when another's value has changed. +One such use case is when you have both a `password` and a `confirm_password` field. +Here, you want the `confirm_password` field to error out if its value doesn't match that of the `password` field, regardless of which field triggered the value change. + +Imagine the following user flow: + +- User updates the `confirm_password` field. +- User updates the `password` field. + +In this example, the form will still have errors present because the `confirm_password` field's validation has not been re-run to mark the field as valid. + +To solve this, you need to make sure that the `confirm_password` field's validation is re-run when the `password` field is updated. +To do this, add `onChangeListenTo` to the `confirm_password` field's `validators` option. In Octane, use the native `onInput` event to update text fields at each keystroke. + +```tsrx +import { useForm } from '@tanstack/octane-form' + +function App() @{ + const form = useForm({ + defaultValues: { + password: '', + confirm_password: '', + }, + // ... + }) + +
+ } + /> + { + if (value !== fieldApi.form.getFieldValue('password')) { + return 'Passwords do not match' + } + return undefined + }, + }} + children={(field) =>
+ + @for (const error of field.state.meta.errors; index i; key i) { +
{error}
+ } +
} + /> +
+} +``` + +This is similar to the `onBlurListenTo` validator option, which re-runs the validation when the linked field is blurred. Wire `onBlur={field.handleBlur}` on each input when using blur validation. diff --git a/docs/framework/octane/guides/listeners.md b/docs/framework/octane/guides/listeners.md new file mode 100644 index 0000000000..8a1d9794ea --- /dev/null +++ b/docs/framework/octane/guides/listeners.md @@ -0,0 +1,121 @@ +--- +id: listeners +title: Side effects for event triggers +--- + +Use the listener API to run side effects in response to form events. For example, you might need to reset a field when another field changes. + +Imagine the following user flow: + +- The user selects a country. +- The user selects a province. +- The user changes the country. + +The previously selected province may no longer be valid. A field's `onChange` listener can reset it whenever the country changes. + +Fields support listeners for: + +- `onChange` +- `onBlur` +- `onMount` +- `onSubmit` +- `onUnmount` + +```tsrx +import { useForm } from '@tanstack/octane-form' + +function App() @{ + const form = useForm({ + defaultValues: { + country: '', + province: '', + }, + }) + +
+ { + console.log(`Country changed to: ${value}, resetting province`) + form.setFieldValue('province', '') + }, + }} + children={(field) => } + /> + } + /> +
+} +``` + +`onChange` here is a TanStack Form listener, fired by `field.handleChange`. The native text input uses Octane's `onInput` handler so that the listener runs for each edit. + +## Built-in Debouncing + +When a listener makes an API request or performs expensive work, use `onChangeDebounceMs` or `onBlurDebounceMs` to debounce its calls. + +```tsrx + { + console.log(`Country changed to: ${value} without another edit for 500ms`) + form.setFieldValue('province', '') + }, + }} + children={(field) => + field.handleChange(event.currentTarget.value)} + />} +/> +``` + +## Form listeners + +Form-level listeners provide access to `onMount` and `onSubmit`, and receive `onChange` and `onBlur` events from the form's fields. You can also debounce form-level change and blur listeners. + +`onMount` and `onSubmit` listeners receive `formApi`. `onChange` and `onBlur` listeners receive both `formApi` and the `fieldApi` that triggered the event. + +```ts +const form = useForm({ + defaultValues: { country: '', province: '' }, + onSubmit: async ({ value }) => { + // Save the form values. + console.log(value) + }, + listeners: { + onMount: ({ formApi }) => { + console.log('Form mounted', formApi.state.values) + }, + onChange: ({ formApi, fieldApi }) => { + if (formApi.state.isValid) { + void formApi.handleSubmit() + } + console.log(fieldApi.name, fieldApi.state.value) + }, + onChangeDebounceMs: 500, + }, +}) +``` + +Listeners are for event-driven side effects. To display current values or metadata in your template, use the subscriptions described in [Reactivity](./reactivity.md). diff --git a/docs/framework/octane/guides/reactivity.md b/docs/framework/octane/guides/reactivity.md new file mode 100644 index 0000000000..e815ec03ab --- /dev/null +++ b/docs/framework/octane/guides/reactivity.md @@ -0,0 +1,98 @@ +--- +id: reactivity +title: Reactivity +--- + +Reading `form.state` gives you the current state, but it does not subscribe an Octane component to later changes. The Octane adapter provides `useSelector` and `form.Subscribe` to create those subscriptions. + +Use subscriptions to display current values, select UI based on field values, or use form state in component logic. The `form.Field` component already subscribes to its own field state, so reading `field.state` inside its render callback updates the field's UI. + +> To run side effects in response to form events, use the [listener](./listeners.md) API. + +## useSelector + +Import `useSelector` from `@tanstack/octane-form` to select a value from the form store. The hook subscribes the component that calls it to changes in that selected value. + +```tsrx +import { useForm, useSelector } from '@tanstack/octane-form' + +function App() @{ + const form = useForm({ + defaultValues: { firstName: '', lastName: '' }, + }) + const firstName = useSelector(form.store, (state) => state.values.firstName) + const errors = useSelector(form.store, (state) => state.errors) + +
+ + field.handleChange(event.currentTarget.value)} + />} + /> +

Hello, {firstName || 'stranger'}!

+

Form errors: {errors.length}

+
+} +``` + +The selector is optional, but selecting only the state you use avoids updates caused by unrelated changes. `useSelector(form.store)` subscribes to the entire form state. + +The hook is re-exported from `@tanstack/octane-store` and compares selected values by identity by default. Prefer selecting a primitive or an existing state object. If your selector creates a new object or array, provide an appropriate `compare` function when you need to avoid updates for equivalent selections. + +```ts +const status = useSelector( + form.store, + (state) => ({ canSubmit: state.canSubmit, isSubmitting: state.isSubmitting }), + { + compare: (previous, next) => + previous.canSubmit === next.canSubmit && + previous.isSubmitting === next.isSubmitting, + }, +) +``` + +## form.Subscribe + +Use `form.Subscribe` when the selected value is needed only within part of your template. Updates to its selection update the subscription component and its rendered content without requiring the containing component to subscribe to that state. + +```tsrx + state.values.firstName} + children={(firstName) =>
+ @if (firstName) { + } + /> + } @else { +

Enter your first name to continue.

+ } +
} +/> +``` + +Pass the render callback explicitly through `children={...}` in TSRX. You can select submission state in the same way: + +```tsrx + state.isSubmitting} + children={(isSubmitting) => } +/> +``` + +Choose `useSelector` when you need the selected value in component logic, and `form.Subscribe` when you can keep the subscription beside the UI that consumes it. Octane's compiler optimizes rendering, but it still needs a subscription to observe changes to TanStack Form's external store. diff --git a/docs/framework/octane/guides/submission-handling.md b/docs/framework/octane/guides/submission-handling.md new file mode 100644 index 0000000000..e5f8e53c6a --- /dev/null +++ b/docs/framework/octane/guides/submission-handling.md @@ -0,0 +1,99 @@ +--- +id: submission-handling +title: Submission handling +--- + +## Passing additional data to submission handling + +You may have multiple submission actions, such as continuing to another page or returning to a menu. Define the expected metadata with `onSubmitMeta`, and pass an action to `form.handleSubmit`. The metadata is available in `onSubmit` alongside the submitted value. + +> If `form.handleSubmit()` is called without metadata, it uses the default from `onSubmitMeta`. + +```tsrx +import { useForm } from '@tanstack/octane-form' + +type FormMeta = { + submitAction: 'continue' | 'backToMenu' | null; +} + +const defaultMeta: FormMeta = { + submitAction: null, +} + +function App() @{ + const form = useForm({ + defaultValues: { data: '' }, + onSubmitMeta: defaultMeta, + onSubmit: async ({ value, meta }) => { + console.log(`Selected action - ${meta.submitAction}`, value) + }, + }) + +
{ + event.preventDefault() + event.stopPropagation() + void form.handleSubmit() + }} + > + + field.handleChange(event.currentTarget.value)} + />} + /> + + + + +} +``` + +The action buttons use `type="button"` because they call `handleSubmit` themselves. The regular submit button and keyboard submission go through the form's native `onSubmit` handler, which prevents browser navigation and submits with the default metadata. + +## Transforming data with Standard Schemas + +TanStack Form supports [Standard Schemas for validation](./validation.md), but the value passed to `onSubmit` is the schema's input data. To obtain transformed output, parse the submitted value with your schema. + +```ts +import { useForm } from '@tanstack/octane-form' +import { z } from 'zod' + +const schema = z.object({ + age: z.string().transform((age) => Number(age)), +}) + +const defaultValues: z.input = { + age: '13', +} + +// Inside an Octane component: +const form = useForm({ + defaultValues, + validators: { onChange: schema }, + onSubmit: ({ value }) => { + const inputAge: string = value.age + const result = schema.parse(value) + const outputAge: number = result.age + console.log(inputAge, outputAge) + }, +}) +``` diff --git a/docs/framework/octane/guides/validation.md b/docs/framework/octane/guides/validation.md new file mode 100644 index 0000000000..a4586e7328 --- /dev/null +++ b/docs/framework/octane/guides/validation.md @@ -0,0 +1,534 @@ +--- +id: form-validation +title: Form and Field Validation +--- + +At the core of TanStack Form's functionality is the concept of validation. TanStack Form makes validation highly customizable: + +- You can control when to perform the validation (on change, on input, on blur, on submit, etc.) +- Validation rules can be defined at the field-level or at the form-level +- Validation can be synchronous or asynchronous (for example, as a result of an API call) + +## When is validation performed? + +It's up to you! The `` component accepts validation callbacks through its `validators` option, such as `onChange` or `onBlur`. Those callbacks are passed the current value of the field, as well as the `fieldApi` object, so that you can perform the validation. If you find a validation error, simply return the error message as a string, and it will be available in `field.state.meta.errors`. + +The snippets below belong in `.tsrx` components using `useForm` from `@tanstack/octane-form`. Octane uses native DOM events: `onInput` updates the value at each keystroke and triggers TanStack Form's `onChange` validation; the browser's `onChange` event fires when the input is committed. + +Here is an example: + +```tsrx + value < 13 + ? 'You must be 13 to make an account' + : undefined, + }} + children={(field) => <> + + field.handleChange(e.currentTarget.valueAsNumber)} + /> + @if (!field.state.meta.isValid) { + {field.state.meta.errors.join(', ')} + } + } +/> +``` + +In the example above, the validation is done at each keystroke (`onChange`). If, instead, we wanted the validation to be done when the field is blurred, we would change the code above like so: + +```tsrx + value < 13 + ? 'You must be 13 to make an account' + : undefined, + }} + children={(field) => <> + + field.handleChange(e.currentTarget.valueAsNumber)} + /> + @if (!field.state.meta.isValid) { + {field.state.meta.errors.join(', ')} + } + } +/> +``` + +So, you can control when the validation is done by implementing the desired callback. You can even perform different pieces of validation at different times: + +```tsrx + value < 13 + ? 'You must be 13 to make an account' + : undefined, + onBlur: ({ value }) => (value < 0 ? 'Invalid value' : undefined), + }} + children={(field) => <> + + field.handleChange(e.currentTarget.valueAsNumber)} + /> + @if (!field.state.meta.isValid) { + {field.state.meta.errors.join(', ')} + } + } +/> +``` + +In the example above, we are validating different things on the same field at different times (at each keystroke and when blurring the field). Since `field.state.meta.errors` is an array, all the relevant errors at a given time are displayed. You can also use `field.state.meta.errorMap` to get errors based on _when_ the validation was done (onChange, onBlur, etc.). More information about displaying errors is below. + +## Displaying Errors + +Once you have your validation in place, you can map the errors from an array to be displayed in your UI: + +```tsrx + value < 13 + ? 'You must be 13 to make an account' + : undefined, + }} + children={(field) => <> + {/* ... */} + @if (!field.state.meta.isValid) { + {field.state.meta.errors.join(',')} + } + } +/> +``` + +Or use the `errorMap` property to access the specific error you're looking for: + +```tsrx + value < 13 + ? 'You must be 13 to make an account' + : undefined, + }} + children={(field) => <> + {/* ... */} + @if (field.state.meta.errorMap['onChange']) { + {field.state.meta.errorMap['onChange']} + } + } +/> +``` + +It's worth mentioning that our `errors` array and the `errorMap` match the types returned by the validators. This means that: + +```tsrx + (value < 13 ? { isOldEnough: false } : undefined), + }} + children={(field) => <> + {/* ... */} + {/* errorMap.onChange is type `{isOldEnough: false} | undefined` */} + {/* meta.errors is type `Array<{isOldEnough: false} | undefined>` */} + @if (field.state.meta.errorMap.onChange?.isOldEnough === false) { + The user is not old enough + } + } +/> +``` + +## Validation at field-level vs at form-level + +As shown above, each `` accepts its own validation rules via the callbacks such as `onChange` and `onBlur`. It is also possible to define validation rules at the form-level (as opposed to field-by-field) by passing similar callbacks to the `useForm()` hook. + +Example: + +```tsrx +import { useForm, useSelector } from '@tanstack/octane-form' + +export default function App() @{ + const form = useForm({ + defaultValues: { + age: 0, + }, + onSubmit: async ({ value }) => { + console.log(value) + }, + validators: { + // Add validators to the form the same way you would add them to a field + onChange({ value }) { + if (value.age < 13) { + return 'Must be 13 or older to sign' + } + return undefined + }, + }, + }) + + // Subscribe to the form's `errorMap` so that updates to it will cause re-renders + // Alternatively, you can use `form.Subscribe` + const formErrorMap = useSelector(form.store, (state) => state.errorMap) + +
+ {/* ... */} + @if (formErrorMap.onChange) { +
+ There was an error on the form: {formErrorMap.onChange} +
+ } + {/* ... */} +
+} +``` + +### Setting field-level errors from the form's validators + +You can set errors on the fields from the form's validators. One common use case for this is validating all the fields on submit by calling a single API endpoint in the form's `onSubmitAsync` validator. In the example below, `verifyDataOnServer` represents your application's server validation function. + +```tsrx +import { useForm } from '@tanstack/octane-form' + +export default function App() @{ + const form = useForm({ + defaultValues: { + age: 0, + socials: [] as { url: string }[], + details: { + email: '', + }, + }, + validators: { + onSubmitAsync: async ({ value }) => { + // Validate the value on the server + const hasErrors = await verifyDataOnServer(value) + if (hasErrors) { + return { + form: 'Invalid data', // The `form` key is optional + fields: { + age: 'Must be 13 or older to sign', + // Set errors on nested fields with the field's name + 'socials[0].url': 'The provided URL does not exist', + 'details.email': 'An email is required', + }, + } + } + + return null + }, + }, + }) + +
+
{ + e.preventDefault() + e.stopPropagation() + void form.handleSubmit() + }} + > + <> + + field.handleChange(e.currentTarget.valueAsNumber)} + /> + @if (!field.state.meta.isValid) { + {field.state.meta.errors.join(', ')} + } + } + /> + state.errorMap} + children={(errorMap) => @if (errorMap.onSubmit) { +
+ There was an error on the form: {errorMap.onSubmit} +
+ }} + /> + {/*...*/} + +
+} +``` + +> Something worth mentioning is that if you have a form validation function that returns an error, that error may be overwritten by the field-specific validation. +> +> This means that: +> +> ```tsrx +> import { useForm } from '@tanstack/octane-form' +> +> function App() @{ +> const form = useForm({ +> defaultValues: { +> age: 0, +> }, +> validators: { +> onChange: ({ value }) => ({ +> fields: { +> age: value.age < 12 ? 'Too young!' : undefined, +> }, +> }), +> }, +> }) +> +> name="age" +> validators={{ +> onChange: ({ value }) => (value % 2 === 0 ? 'Must be odd!' : undefined), +> }} +> children={(field) => {field.state.meta.errors.join(', ')}} +> /> +> } +> ``` +> +> Will only show `'Must be odd!'` even if the 'Too young!' error is returned by the form-level validation. + +## Asynchronous Functional Validation + +While we suspect most validation will be synchronous, there are many instances where a network call or some other async operation would be useful to validate against. + +To do this, we have dedicated `onChangeAsync`, `onBlurAsync`, and other methods that can be used to validate against: + +```tsrx + { + await new Promise((resolve) => setTimeout(resolve, 1000)) + return value < 13 ? 'You must be 13 to make an account' : undefined + }, + }} + children={(field) => <> + + field.handleChange(e.currentTarget.valueAsNumber)} + /> + @if (!field.state.meta.isValid) { + {field.state.meta.errors.join(', ')} + } + } +/> +``` + +Synchronous and asynchronous validators can coexist. For example, it is possible to define both `onBlur` and `onBlurAsync` on the same field: + +```tsrx + (value < 13 ? 'You must be at least 13' : undefined), + onBlurAsync: async ({ value }) => { + const currentAge = await fetchCurrentAgeOnProfile() + return value < currentAge ? 'You can only increase the age' : undefined + }, + }} + children={(field) => <> + + field.handleChange(e.currentTarget.valueAsNumber)} + /> + @if (!field.state.meta.isValid) { + {field.state.meta.errors.join(', ')} + } + } +/> +``` + +The synchronous validation method (`onBlur`) is run first, and the asynchronous method (`onBlurAsync`) is only run if the synchronous one (`onBlur`) succeeds. To change this behaviour, set the `asyncAlways` option to `true`, and the async method will be run regardless of the result of the sync method. + +### Built-in Debouncing + +While async calls are the way to go when validating against the database, running a network request on every keystroke is a good way to DDoS your database. + +Instead, we enable an easy method for debouncing your `async` calls by adding a single property: + +```tsrx + { + // ... + }, + }} + children={(field) => <> + {/* ... */} + } +/> +``` + +This will debounce every async call with a 500ms delay. You can even override this property on a per-validation property: + +```tsrx + { + // ... + }, + onBlurAsync: async ({ value }) => { + // ... + }, + }} + children={(field) => <> + {/* ... */} + } +/> +``` + +This will run `onChangeAsync` every 1500ms, whereas `onBlurAsync` will run every 500ms. + +## Validation through Schema Libraries + +While functions provide more flexibility and customization over your validation, they can be a bit verbose. To help solve this, there are libraries that provide schema-based validation to make shorthand and type-strict validation substantially easier. You can also define a single schema for your entire form and pass it to the form-level validators; errors will automatically propagate to the fields. + +### Standard Schema Libraries + +TanStack Form natively supports all libraries following the [Standard Schema specification](https://github.com/standard-schema/standard-schema), most notably: + +- [Zod](https://zod.dev/) +- [Valibot](https://valibot.dev/) +- [ArkType](https://arktype.io/) +- [Effect/Schema](https://effect.website/docs/schema/standard-schema/) + +_Note:_ make sure to use the latest version of the schema libraries as older versions might not support Standard Schema yet. + +> Validation will not provide you with transformed values. See [submission handling](./submission-handling.md) for more information. + +To use schemas from these libraries you can pass them to the `validators` props as you would do with a custom function: + +```tsrx +import { useForm } from '@tanstack/octane-form' +import { z } from 'zod' + +const userSchema = z.object({ + age: z.number().gte(13, 'You must be 13 to make an account'), +}) + +function App() @{ + const form = useForm({ + defaultValues: { + age: 0, + }, + validators: { + onChange: userSchema, + }, + }) + +
+ + field.handleChange( + event.currentTarget.valueAsNumber, + )} + />} + /> +
+} +``` + +Async validators at the form- and field-level are supported as well: + +```tsrx + { + const currentAge = await fetchCurrentAgeOnProfile() + return value >= currentAge + }, { + message: 'You can only increase the age', + }), + }} + children={(field) => <> + {/* ... */} + } +/> +``` + +If you need even more control over your Standard Schema validation, you can combine a Standard Schema with a callback function like so: + +```tsrx + { + const errors = fieldApi.parseValueWithSchema( + z.number().gte(13, 'You must be 13 to make an account'), + ) + if (errors) return errors + // continue with your validation + }, + }} + children={(field) => <> + {/* ... */} + } +/> +``` + +## Preventing invalid forms from being submitted + +The callbacks, such as `onChange` and `onBlur`, are also run when the form is submitted and the submission is blocked because the form is invalid. + +The form state object has a `canSubmit` flag that is `false` when any field is invalid and the form has been touched (`canSubmit` is true until the form has been touched, even if some fields are "technically" invalid based on their `onChange`/`onBlur` props). + +You can subscribe to `canSubmit` via `form.Subscribe` and use the value in order to, for example, disable the submit button when the form is invalid (in practice, disabled buttons are not accessible, use `aria-disabled` instead). + +```tsrx + [state.canSubmit, state.isSubmitting]} + children={([canSubmit, isSubmitting]) => } +/> +``` + +To prevent the form from being submitted before any interaction, combine `canSubmit` with `isPristine` flags. A simple condition like `!canSubmit || isPristine` effectively disables submissions until the user has made changes. diff --git a/docs/framework/octane/quick-start.md b/docs/framework/octane/quick-start.md new file mode 100644 index 0000000000..a038eeb188 --- /dev/null +++ b/docs/framework/octane/quick-start.md @@ -0,0 +1,223 @@ +--- +id: quick-start +title: Quick Start +--- + +TanStack Form is designed for production usage, with a focus on type safety, performance, and composition. + +Our [philosophy around the library's usage](../../philosophy.md) values scalability and long-term developer experience. The Octane adapter follows the same approach, with components authored in TSRX. + +## Set up Octane and TSRX + +Install the form adapter and Octane, along with Vite and the TSRX TypeScript tooling: + +```sh +pnpm add @tanstack/octane-form octane zod +pnpm add -D vite typescript @tsrx/typescript-plugin +``` + +Configure Vite to compile your `.tsrx` files and the adapter's source modules: + +```ts +// vite.config.ts +import { defineConfig } from 'vite' +import { octane } from 'octane/compiler/vite' + +export default defineConfig({ + plugins: [octane()], +}) +``` + +For TypeScript and editor support, configure your project for Octane: + +```json +{ + "tsrx": { + "compiler": "octane/compiler/volar" + }, + "compilerOptions": { + "target": "ESNext", + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "module": "ESNext", + "moduleResolution": "Bundler", + "jsx": "preserve", + "jsxImportSource": "octane", + "allowImportingTsExtensions": true, + "strict": true, + "skipLibCheck": true, + "noEmit": true, + "plugins": [{ "name": "@tsrx/typescript-plugin" }] + }, + "include": ["src", "vite.config.ts"] +} +``` + +Use `tsrx-tsc --noEmit -p tsconfig.json` to check both TypeScript and TSRX. An HTML entry with `
` can load your form through ``. The [simple example](./examples/simple) includes the complete Vite setup. + +## Compose reusable form components + +The following `src/index.tsrx` example defines reusable inputs and a submit button, then binds them to a form hook. In a larger app, move these components and contexts into their own modules as described in [Form Composition](./guides/form-composition.md). + +```tsrx +import { createRoot } from 'octane' +import { createFormHook, createFormHookContexts } from '@tanstack/octane-form' +// Valibot, ArkType, and other Standard Schema libraries work too. +import { z } from 'zod' + +const { fieldContext, formContext, useFieldContext, useFormContext } = + createFormHookContexts() + +function TextField({ label }: { label: string }) @{ + const field = useFieldContext() + + +} + +function NumberField({ label }: { label: string }) @{ + const field = useFieldContext() + + +} + +function SubmitButton() @{ + const form = useFormContext() + + [state.canSubmit, state.isSubmitting] as const} + children={([canSubmit, isSubmitting]) => } + /> +} + +// Define this hook once for consistent, type-safe forms throughout your app. +const { useAppForm } = createFormHook({ + fieldComponents: { TextField, NumberField }, + formComponents: { SubmitButton }, + fieldContext, + formContext, +}) + +function PeoplePage() @{ + const form = useAppForm({ + defaultValues: { + username: '', + age: 0, + }, + validators: { + onChange: z.object({ + username: z.string(), + age: z.number().min(13), + }), + }, + onSubmit: ({ value }) => { + alert(JSON.stringify(value, null, 2)) + }, + }) + +
{ + event.preventDefault() + void form.handleSubmit() + }} + > +

Personal Information

+ } + /> + } + /> + + + + +} + +const rootElement = document.getElementById('root')! +createRoot(rootElement).render(PeoplePage) +``` + +Octane uses native DOM events. Use `onInput` to update text and number fields as the user types, while keeping TanStack Form's validator names such as `onChange`. Mount the component function with `createRoot(...).render(PeoplePage)`. + +## Use a form directly + +While we suggest `createFormHook` for shared components, `useForm` and `form.Field` also support one-off forms: + +```tsrx +import { createRoot } from 'octane' +import { useForm } from '@tanstack/octane-form' + +function PeoplePage() @{ + const form = useForm({ + defaultValues: { age: 0 }, + onSubmit: ({ value }) => { + alert(JSON.stringify(value, null, 2)) + }, + }) + +
{ + event.preventDefault() + void form.handleSubmit() + }} + > + value >= 13 + ? undefined + : 'Must be 13 or older', + }} + children={(field) => } + /> + + +} + +const rootElement = document.getElementById('root')! +createRoot(rootElement).render(PeoplePage) +``` + +All options from `useForm` can be used in `useAppForm`, and all properties from `form.Field` can be used in `form.AppField`. diff --git a/docs/framework/octane/reference/functions/createFormHook.md b/docs/framework/octane/reference/functions/createFormHook.md new file mode 100644 index 0000000000..0b373adf6c --- /dev/null +++ b/docs/framework/octane/reference/functions/createFormHook.md @@ -0,0 +1,30 @@ +--- +id: createFormHook +title: createFormHook +--- + +```ts +function createFormHook(__namedParameters): CreateFormHookReturn; +``` + +Defined in: [packages/octane-form/src/createFormHook.tsrx.d.ts:497](https://github.com/TanStack/form/blob/main/packages/octane-form/src/createFormHook.tsrx.d.ts#L497) + +## Type Parameters + +### TComponents + +`TComponents` *extends* `Record`\<`string`, `HookComponentType`\<`any`\>\> + +### TFormComponents + +`TFormComponents` *extends* `Record`\<`string`, `HookComponentType`\<`any`\>\> + +## Parameters + +### \_\_namedParameters + +`CreateFormHookProps`\<`TComponents`, `TFormComponents`\> + +## Returns + +[`CreateFormHookReturn`](../interfaces/CreateFormHookReturn.md)\<`TComponents`, `TFormComponents`\> diff --git a/docs/framework/octane/reference/functions/createFormHookContexts.md b/docs/framework/octane/reference/functions/createFormHookContexts.md new file mode 100644 index 0000000000..34fa245bd1 --- /dev/null +++ b/docs/framework/octane/reference/functions/createFormHookContexts.md @@ -0,0 +1,52 @@ +--- +id: createFormHookContexts +title: createFormHookContexts +--- + +```ts +function createFormHookContexts(): object; +``` + +Defined in: [packages/octane-form/src/createFormHook.tsrx.d.ts:73](https://github.com/TanStack/form/blob/main/packages/octane-form/src/createFormHook.tsrx.d.ts#L73) + +## Returns + +`object` + +### fieldContext + +```ts +fieldContext: Context; +``` + +### formContext + +```ts +formContext: Context; +``` + +### useFieldContext() + +```ts +useFieldContext: () => FieldApi; +``` + +#### Type Parameters + +##### TData + +`TData` + +#### Returns + +`FieldApi`\<`any`, `string`, `TData`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`\> + +### useFormContext() + +```ts +useFormContext: () => OctaneFormExtendedApi, any, any, any, any, any, any, any, any, any, any, any>; +``` + +#### Returns + +[`OctaneFormExtendedApi`](../type-aliases/OctaneFormExtendedApi.md)\<`Record`\<`string`, `never`\>, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`\> diff --git a/docs/framework/octane/reference/functions/useField.md b/docs/framework/octane/reference/functions/useField.md new file mode 100644 index 0000000000..c83939c8b4 --- /dev/null +++ b/docs/framework/octane/reference/functions/useField.md @@ -0,0 +1,120 @@ +--- +id: useField +title: useField +--- + +```ts +function useField(opts): FieldApi; +``` + +Defined in: [packages/octane-form/src/useField.tsrx.d.ts:95](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useField.tsrx.d.ts#L95) + +A hook for managing a field in a form. + +## Type Parameters + +### TParentData + +`TParentData` + +### TName + +`TName` *extends* `string` + +### TData + +`TData` + +### TOnMount + +`TOnMount` *extends* `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> \| `undefined` + +### TOnChange + +`TOnChange` *extends* `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> \| `undefined` + +### TOnChangeAsync + +`TOnChangeAsync` *extends* `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> \| `undefined` + +### TOnBlur + +`TOnBlur` *extends* `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> \| `undefined` + +### TOnBlurAsync + +`TOnBlurAsync` *extends* `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> \| `undefined` + +### TOnSubmit + +`TOnSubmit` *extends* `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> \| `undefined` + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> \| `undefined` + +### TOnDynamic + +`TOnDynamic` *extends* `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> \| `undefined` + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> \| `undefined` + +### TFormOnMount + +`TFormOnMount` *extends* `FormValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnChange + +`TFormOnChange` *extends* `FormValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnChangeAsync + +`TFormOnChangeAsync` *extends* `FormAsyncValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnBlur + +`TFormOnBlur` *extends* `FormValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnBlurAsync + +`TFormOnBlurAsync` *extends* `FormAsyncValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnSubmit + +`TFormOnSubmit` *extends* `FormValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnSubmitAsync + +`TFormOnSubmitAsync` *extends* `FormAsyncValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnDynamic + +`TFormOnDynamic` *extends* `FormValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnDynamicAsync + +`TFormOnDynamicAsync` *extends* `FormAsyncValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnServer + +`TFormOnServer` *extends* `FormAsyncValidateOrFn`\<`TParentData`\> \| `undefined` + +### TPatentSubmitMeta + +`TPatentSubmitMeta` + +## Parameters + +### opts + +[`UseFieldOptions`](../interfaces/UseFieldOptions.md)\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnDynamic`, `TFormOnDynamicAsync`, `TFormOnServer`, `TPatentSubmitMeta`\> + +An object with field options. + +## Returns + +`FieldApi`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnDynamic`, `TFormOnDynamicAsync`, `TFormOnServer`, `TPatentSubmitMeta`\> + +The `FieldApi` instance for the specified field. diff --git a/docs/framework/octane/reference/functions/useFieldGroup.md b/docs/framework/octane/reference/functions/useFieldGroup.md new file mode 100644 index 0000000000..99df8e1ef0 --- /dev/null +++ b/docs/framework/octane/reference/functions/useFieldGroup.md @@ -0,0 +1,107 @@ +--- +id: useFieldGroup +title: useFieldGroup +--- + +```ts +function useFieldGroup(opts): AppFieldExtendedOctaneFieldGroupApi; +``` + +Defined in: [packages/octane-form/src/useFieldGroup.tsrx.d.ts:75](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useFieldGroup.tsrx.d.ts#L75) + +## Type Parameters + +### TFormData + +`TFormData` + +### TFieldGroupData + +`TFieldGroupData` + +### TFields + +`TFields` *extends* + \| `string` + \| \{ \[K in string \| number \| symbol\]: DeepKeysOfType\ \} + +### TOnMount + +`TOnMount` *extends* `FormValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnChange + +`TOnChange` *extends* `FormValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnChangeAsync + +`TOnChangeAsync` *extends* `FormAsyncValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnBlur + +`TOnBlur` *extends* `FormValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnBlurAsync + +`TOnBlurAsync` *extends* `FormAsyncValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnSubmit + +`TOnSubmit` *extends* `FormValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* `FormAsyncValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnDynamic + +`TOnDynamic` *extends* `FormValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* `FormAsyncValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnServer + +`TOnServer` *extends* `FormAsyncValidateOrFn`\<`TFormData`\> \| `undefined` + +### TComponents + +`TComponents` *extends* `Record`\<`string`, `FieldGroupComponentType`\<`any`\>\> + +### TFormComponents + +`TFormComponents` *extends* `Record`\<`string`, `FieldGroupComponentType`\<`any`\>\> + +### TSubmitMeta + +`TSubmitMeta` = `never` + +## Parameters + +### opts + +#### defaultValues? + +`TFieldGroupData` + +#### fields + +`TFields` + +#### form + + \| `AppFieldExtendedOctaneFormApi`\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TOnServer`, `TSubmitMeta`, `TComponents`, `TFormComponents`\> + \| `AppFieldExtendedOctaneFieldGroupApi`\<`unknown`, `TFormData`, `string` \| `FieldsMap`\<`unknown`, `TFormData`\>, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `TSubmitMeta`, `TComponents`, `TFormComponents`\> + +#### formComponents + +`TFormComponents` + +#### onSubmitMeta? + +`TSubmitMeta` + +## Returns + +`AppFieldExtendedOctaneFieldGroupApi`\<`TFormData`, `TFieldGroupData`, `TFields`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TOnServer`, `TSubmitMeta`, `TComponents`, `TFormComponents`\> diff --git a/docs/framework/octane/reference/functions/useForm.md b/docs/framework/octane/reference/functions/useForm.md new file mode 100644 index 0000000000..23a421e455 --- /dev/null +++ b/docs/framework/octane/reference/functions/useForm.md @@ -0,0 +1,74 @@ +--- +id: useForm +title: useForm +--- + +```ts +function useForm(opts?): OctaneFormExtendedApi; +``` + +Defined in: [packages/octane-form/src/useForm.tsrx.d.ts:128](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useForm.tsrx.d.ts#L128) + +A custom hook that returns an extended instance of the `FormApi` class. + +This API encapsulates all the necessary functionalities related to the form. It allows you to manage form state, handle submissions, and interact with form fields + +## Type Parameters + +### TFormData + +`TFormData` + +### TOnMount + +`TOnMount` *extends* `FormValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnChange + +`TOnChange` *extends* `FormValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnChangeAsync + +`TOnChangeAsync` *extends* `FormAsyncValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnBlur + +`TOnBlur` *extends* `FormValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnBlurAsync + +`TOnBlurAsync` *extends* `FormAsyncValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnSubmit + +`TOnSubmit` *extends* `FormValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* `FormAsyncValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnDynamic + +`TOnDynamic` *extends* `FormValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* `FormAsyncValidateOrFn`\<`TFormData`\> \| `undefined` + +### TOnServer + +`TOnServer` *extends* `FormAsyncValidateOrFn`\<`TFormData`\> \| `undefined` + +### TSubmitMeta + +`TSubmitMeta` + +## Parameters + +### opts? + +`FormOptions`\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TOnServer`, `TSubmitMeta`\> + +## Returns + +[`OctaneFormExtendedApi`](../type-aliases/OctaneFormExtendedApi.md)\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TOnServer`, `TSubmitMeta`\> diff --git a/docs/framework/octane/reference/functions/useFormGroup.md b/docs/framework/octane/reference/functions/useFormGroup.md new file mode 100644 index 0000000000..7f41eb7fef --- /dev/null +++ b/docs/framework/octane/reference/functions/useFormGroup.md @@ -0,0 +1,126 @@ +--- +id: useFormGroup +title: useFormGroup +--- + +```ts +function useFormGroup(opts): FormGroupApi; +``` + +Defined in: [packages/octane-form/src/useFormGroup.tsrx.d.ts:101](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useFormGroup.tsrx.d.ts#L101) + +## Type Parameters + +### TParentData + +`TParentData` + +### TName + +`TName` *extends* `string` + +### TData + +`TData` + +### TOnMount + +`TOnMount` *extends* `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> \| `undefined` + +### TOnChange + +`TOnChange` *extends* `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> \| `undefined` + +### TOnChangeAsync + +`TOnChangeAsync` *extends* + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + \| `undefined` + +### TOnBlur + +`TOnBlur` *extends* `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> \| `undefined` + +### TOnBlurAsync + +`TOnBlurAsync` *extends* + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + \| `undefined` + +### TOnSubmit + +`TOnSubmit` *extends* `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> \| `undefined` + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + \| `undefined` + +### TOnDynamic + +`TOnDynamic` *extends* `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> \| `undefined` + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + \| `undefined` + +### TSubmitMeta + +`TSubmitMeta` + +### TFormOnMount + +`TFormOnMount` *extends* `FormValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnChange + +`TFormOnChange` *extends* `FormValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnChangeAsync + +`TFormOnChangeAsync` *extends* `FormAsyncValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnBlur + +`TFormOnBlur` *extends* `FormValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnBlurAsync + +`TFormOnBlurAsync` *extends* `FormAsyncValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnSubmit + +`TFormOnSubmit` *extends* `FormValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnSubmitAsync + +`TFormOnSubmitAsync` *extends* `FormAsyncValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnDynamic + +`TFormOnDynamic` *extends* `FormValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnDynamicAsync + +`TFormOnDynamicAsync` *extends* `FormAsyncValidateOrFn`\<`TParentData`\> \| `undefined` + +### TFormOnServer + +`TFormOnServer` *extends* `FormAsyncValidateOrFn`\<`TParentData`\> \| `undefined` + +### TParentSubmitMeta + +`TParentSubmitMeta` + +## Parameters + +### opts + +`FormGroupApiOptions`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TSubmitMeta`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnDynamic`, `TFormOnDynamicAsync`, `TFormOnServer`, `TParentSubmitMeta`\> + +## Returns + +`FormGroupApi`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TSubmitMeta`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnDynamic`, `TFormOnDynamicAsync`, `TFormOnServer`, `TParentSubmitMeta`\> diff --git a/docs/framework/octane/reference/functions/useSelector.md b/docs/framework/octane/reference/functions/useSelector.md new file mode 100644 index 0000000000..00e6075e2c --- /dev/null +++ b/docs/framework/octane/reference/functions/useSelector.md @@ -0,0 +1,60 @@ +--- +id: useSelector +title: useSelector +--- + +```ts +function useSelector( + source, + selector?, + options?): TSelected; +``` + +Defined in: node\_modules/.pnpm/@tanstack+octane-store@0.12.2\_octane@0.2.16\_@typescript-eslint+types@8.70.0\_react-dom@1\_a2e82070231a666c986adf906edd0514/node\_modules/@tanstack/octane-store/src/useSelector.ts:48 + +Selects a slice of state from an atom or store and subscribes the component +to that selection. + +This is the primary Octane read hook for TanStack Store. It works with any +source that exposes `get()` and `subscribe()`, including atoms, readonly +atoms, stores, and readonly stores. + +Omit the selector to subscribe to the whole value. + +## Type Parameters + +### TSource + +`TSource` + +### TSelected + +`TSelected` = `NoInfer`\<`TSource`\> + +## Parameters + +### source + +`SelectionSource`\<`TSource`\> + +### selector? + +(`snapshot`) => `TSelected` + +### options? + +`UseSelectorOptions`\<`TSelected`\> + +## Returns + +`TSelected` + +## Examples + +```tsx +const count = useSelector(counterStore, (state) => state.count) +``` + +```tsx +const value = useSelector(countAtom) +``` diff --git a/docs/framework/octane/reference/index.md b/docs/framework/octane/reference/index.md new file mode 100644 index 0000000000..b383db083d --- /dev/null +++ b/docs/framework/octane/reference/index.md @@ -0,0 +1,40 @@ +--- +id: "@tanstack/octane-form" +title: "@tanstack/octane-form" +--- + +## Interfaces + +- [CreateFormHookReturn](interfaces/CreateFormHookReturn.md) +- [OctaneFormApi](interfaces/OctaneFormApi.md) +- [SubscribeComponent](interfaces/SubscribeComponent.md) +- [UseFieldOptions](interfaces/UseFieldOptions.md) +- [UseFieldOptionsBound](interfaces/UseFieldOptionsBound.md) +- [WithFieldGroupProps](interfaces/WithFieldGroupProps.md) +- [WithFormProps](interfaces/WithFormProps.md) + +## Type Aliases + +- [FieldComponent](type-aliases/FieldComponent.md) +- [FormGroupComponent](type-aliases/FormGroupComponent.md) +- [LensFieldComponent](type-aliases/LensFieldComponent.md) +- [OctaneFormExtendedApi](type-aliases/OctaneFormExtendedApi.md) +- [ServerFormState](type-aliases/ServerFormState.md) +- [UseField](type-aliases/UseField.md) +- [UseFormGroup](type-aliases/UseFormGroup.md) + +## Variables + +- [Field](variables/Field.md) +- [FormGroup](variables/FormGroup.md) +- [useIsomorphicLayoutEffect](variables/useIsomorphicLayoutEffect.md) + +## Functions + +- [createFormHook](functions/createFormHook.md) +- [createFormHookContexts](functions/createFormHookContexts.md) +- [useField](functions/useField.md) +- [useFieldGroup](functions/useFieldGroup.md) +- [useForm](functions/useForm.md) +- [useFormGroup](functions/useFormGroup.md) +- [useSelector](functions/useSelector.md) diff --git a/docs/framework/octane/reference/interfaces/CreateFormHookReturn.md b/docs/framework/octane/reference/interfaces/CreateFormHookReturn.md new file mode 100644 index 0000000000..edfa068e91 --- /dev/null +++ b/docs/framework/octane/reference/interfaces/CreateFormHookReturn.md @@ -0,0 +1,92 @@ +--- +id: CreateFormHookReturn +title: CreateFormHookReturn +--- + +Defined in: [packages/octane-form/src/createFormHook.tsrx.d.ts:478](https://github.com/TanStack/form/blob/main/packages/octane-form/src/createFormHook.tsrx.d.ts#L478) + +## Type Parameters + +### TComponents + +`TComponents` *extends* `Record`\<`string`, `HookComponentType`\<`any`\>\> + +### TFormComponents + +`TFormComponents` *extends* `Record`\<`string`, `HookComponentType`\<`any`\>\> + +## Properties + +### extendForm() + +```ts +extendForm: (extension) => CreateFormHookReturn; +``` + +Defined in: [packages/octane-form/src/createFormHook.tsrx.d.ts:486](https://github.com/TanStack/form/blob/main/packages/octane-form/src/createFormHook.tsrx.d.ts#L486) + +#### Type Parameters + +##### TNewField + +`TNewField` *extends* `FieldComponentExtension`\<`TComponents`\> + +##### TNewForm + +`TNewForm` *extends* `FormComponentExtension`\<`TFormComponents`\> + +#### Parameters + +##### extension + +###### fieldComponents? + +`TNewField` + +###### formComponents? + +`TNewForm` + +#### Returns + +`CreateFormHookReturn`\<`TComponents` & `TNewField`, `TFormComponents` & `TNewForm`\> + +*** + +### useAppForm + +```ts +useAppForm: UseAppForm; +``` + +Defined in: [packages/octane-form/src/createFormHook.tsrx.d.ts:482](https://github.com/TanStack/form/blob/main/packages/octane-form/src/createFormHook.tsrx.d.ts#L482) + +*** + +### useTypedAppFormContext + +```ts +useTypedAppFormContext: UseTypedAppFormContext; +``` + +Defined in: [packages/octane-form/src/createFormHook.tsrx.d.ts:485](https://github.com/TanStack/form/blob/main/packages/octane-form/src/createFormHook.tsrx.d.ts#L485) + +*** + +### withFieldGroup + +```ts +withFieldGroup: WithFieldGroup; +``` + +Defined in: [packages/octane-form/src/createFormHook.tsrx.d.ts:484](https://github.com/TanStack/form/blob/main/packages/octane-form/src/createFormHook.tsrx.d.ts#L484) + +*** + +### withForm + +```ts +withForm: WithForm; +``` + +Defined in: [packages/octane-form/src/createFormHook.tsrx.d.ts:483](https://github.com/TanStack/form/blob/main/packages/octane-form/src/createFormHook.tsrx.d.ts#L483) diff --git a/docs/framework/octane/reference/interfaces/OctaneFormApi.md b/docs/framework/octane/reference/interfaces/OctaneFormApi.md new file mode 100644 index 0000000000..44d74f24a7 --- /dev/null +++ b/docs/framework/octane/reference/interfaces/OctaneFormApi.md @@ -0,0 +1,92 @@ +--- +id: OctaneFormApi +title: OctaneFormApi +--- + +Defined in: [packages/octane-form/src/useForm.tsrx.d.ts:15](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useForm.tsrx.d.ts#L15) + +Fields that are added onto the `FormAPI` from `@tanstack/form-core` and returned from `useForm` + +## Type Parameters + +### TFormData + +`TFormData` + +### TOnMount + +`TOnMount` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +### TOnChange + +`TOnChange` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +### TOnChangeAsync + +`TOnChangeAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +### TOnBlur + +`TOnBlur` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +### TOnBlurAsync + +`TOnBlurAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +### TOnSubmit + +`TOnSubmit` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +### TOnDynamic + +`TOnDynamic` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +### TOnServer + +`TOnServer` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +### TSubmitMeta + +`TSubmitMeta` + +## Properties + +### Field + +```ts +Field: FieldComponent; +``` + +Defined in: [packages/octane-form/src/useForm.tsrx.d.ts:32](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useForm.tsrx.d.ts#L32) + +A component to render form fields. With this, you can render and manage individual form fields. + +*** + +### FormGroup + +```ts +FormGroup: FormGroupComponent; +``` + +Defined in: [packages/octane-form/src/useForm.tsrx.d.ts:46](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useForm.tsrx.d.ts#L46) + +*** + +### Subscribe + +```ts +Subscribe: SubscribeComponent>; +``` + +Defined in: [packages/octane-form/src/useForm.tsrx.d.ts:63](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useForm.tsrx.d.ts#L63) + +A `Subscribe` function that allows you to listen and react to changes in the form's state. It's especially useful when you need to execute side effects or render specific components in response to state updates. diff --git a/docs/framework/octane/reference/interfaces/SubscribeComponent.md b/docs/framework/octane/reference/interfaces/SubscribeComponent.md new file mode 100644 index 0000000000..1ecc618e60 --- /dev/null +++ b/docs/framework/octane/reference/interfaces/SubscribeComponent.md @@ -0,0 +1,57 @@ +--- +id: SubscribeComponent +title: SubscribeComponent +--- + +Defined in: [packages/octane-form/src/types.ts:21](https://github.com/TanStack/form/blob/main/packages/octane-form/src/types.ts#L21) + +Subscribe to selected state, or render static Octane children. + +OctaneNode includes unknown, so combining it directly with a render callback +would erase the callback's contextual type. Infer static children separately +and exclude functions so callbacks always receive the selected state. + +## Type Parameters + +### TState + +`TState` + +```ts +SubscribeComponent(props): unknown; +``` + +Defined in: [packages/octane-form/src/types.ts:22](https://github.com/TanStack/form/blob/main/packages/octane-form/src/types.ts#L22) + +Subscribe to selected state, or render static Octane children. + +OctaneNode includes unknown, so combining it directly with a render callback +would erase the callback's contextual type. Infer static children separately +and exclude functions so callbacks always receive the selected state. + +## Type Parameters + +### TSelected + +`TSelected` = `NoInfer`\<`TState`\> + +### TChildren + +`TChildren` = `never` + +## Parameters + +### props + +#### children + + \| (`state`) => `unknown` + \| `TChildren` *extends* (...`args`) => `unknown` ? `never` : `TChildren` + +#### selector? + +(`state`) => `TSelected` + +## Returns + +`unknown` diff --git a/docs/framework/octane/reference/interfaces/UseFieldOptions.md b/docs/framework/octane/reference/interfaces/UseFieldOptions.md new file mode 100644 index 0000000000..280273065a --- /dev/null +++ b/docs/framework/octane/reference/interfaces/UseFieldOptions.md @@ -0,0 +1,122 @@ +--- +id: UseFieldOptions +title: UseFieldOptions +--- + +Defined in: [packages/octane-form/src/types.ts:37](https://github.com/TanStack/form/blob/main/packages/octane-form/src/types.ts#L37) + +The field options. + +## Extends + +- `FieldApiOptions`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnDynamic`, `TFormOnDynamicAsync`, `TFormOnServer`, `TSubmitMeta`\>.`FieldOptionsMode` + +## Type Parameters + +### TParentData + +`TParentData` + +### TName + +`TName` *extends* `DeepKeys`\<`TParentData`\> + +### TData + +`TData` *extends* `DeepValue`\<`TParentData`, `TName`\> + +### TOnMount + +`TOnMount` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChange + +`TOnChange` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChangeAsync + +`TOnChangeAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlur + +`TOnBlur` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlurAsync + +`TOnBlurAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmit + +`TOnSubmit` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamic + +`TOnDynamic` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TFormOnMount + +`TFormOnMount` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnChange + +`TFormOnChange` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnChangeAsync + +`TFormOnChangeAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnBlur + +`TFormOnBlur` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnBlurAsync + +`TFormOnBlurAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnSubmit + +`TFormOnSubmit` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnSubmitAsync + +`TFormOnSubmitAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnDynamic + +`TFormOnDynamic` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnDynamicAsync + +`TFormOnDynamicAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnServer + +`TFormOnServer` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TSubmitMeta + +`TSubmitMeta` + +## Properties + +### mode? + +```ts +optional mode: "value" | "array"; +``` + +Defined in: [packages/octane-form/src/types.ts:31](https://github.com/TanStack/form/blob/main/packages/octane-form/src/types.ts#L31) + +#### Inherited from + +```ts +FieldOptionsMode.mode +``` diff --git a/docs/framework/octane/reference/interfaces/UseFieldOptionsBound.md b/docs/framework/octane/reference/interfaces/UseFieldOptionsBound.md new file mode 100644 index 0000000000..d7f163794f --- /dev/null +++ b/docs/framework/octane/reference/interfaces/UseFieldOptionsBound.md @@ -0,0 +1,76 @@ +--- +id: UseFieldOptionsBound +title: UseFieldOptionsBound +--- + +Defined in: [packages/octane-form/src/types.ts:94](https://github.com/TanStack/form/blob/main/packages/octane-form/src/types.ts#L94) + +## Extends + +- `FieldOptions`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`\>.`FieldOptionsMode` + +## Type Parameters + +### TParentData + +`TParentData` + +### TName + +`TName` *extends* `DeepKeys`\<`TParentData`\> + +### TData + +`TData` *extends* `DeepValue`\<`TParentData`, `TName`\> + +### TOnMount + +`TOnMount` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChange + +`TOnChange` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChangeAsync + +`TOnChangeAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlur + +`TOnBlur` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlurAsync + +`TOnBlurAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmit + +`TOnSubmit` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamic + +`TOnDynamic` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +## Properties + +### mode? + +```ts +optional mode: "value" | "array"; +``` + +Defined in: [packages/octane-form/src/types.ts:31](https://github.com/TanStack/form/blob/main/packages/octane-form/src/types.ts#L31) + +#### Inherited from + +```ts +FieldOptionsMode.mode +``` diff --git a/docs/framework/octane/reference/interfaces/WithFieldGroupProps.md b/docs/framework/octane/reference/interfaces/WithFieldGroupProps.md new file mode 100644 index 0000000000..f23d9d3843 --- /dev/null +++ b/docs/framework/octane/reference/interfaces/WithFieldGroupProps.md @@ -0,0 +1,52 @@ +--- +id: WithFieldGroupProps +title: WithFieldGroupProps +--- + +Defined in: [packages/octane-form/src/createFormHook.tsrx.d.ts:216](https://github.com/TanStack/form/blob/main/packages/octane-form/src/createFormHook.tsrx.d.ts#L216) + +## Extends + +- `BaseFormOptions`\<`TFieldGroupData`, `TSubmitMeta`\> + +## Type Parameters + +### TFieldGroupData + +`TFieldGroupData` + +### TFieldComponents + +`TFieldComponents` *extends* `Record`\<`string`, `HookComponentType`\<`any`\>\> + +### TFormComponents + +`TFormComponents` *extends* `Record`\<`string`, `HookComponentType`\<`any`\>\> + +### TSubmitMeta + +`TSubmitMeta` + +### TRenderProps + +`TRenderProps` *extends* `object` = `Record`\<`string`, `never`\> + +## Properties + +### props? + +```ts +optional props: TRenderProps; +``` + +Defined in: [packages/octane-form/src/createFormHook.tsrx.d.ts:223](https://github.com/TanStack/form/blob/main/packages/octane-form/src/createFormHook.tsrx.d.ts#L223) + +*** + +### render + +```ts +render: HookFunctionComponent & object>>; +``` + +Defined in: [packages/octane-form/src/createFormHook.tsrx.d.ts:224](https://github.com/TanStack/form/blob/main/packages/octane-form/src/createFormHook.tsrx.d.ts#L224) diff --git a/docs/framework/octane/reference/interfaces/WithFormProps.md b/docs/framework/octane/reference/interfaces/WithFormProps.md new file mode 100644 index 0000000000..33ad2ad6b4 --- /dev/null +++ b/docs/framework/octane/reference/interfaces/WithFormProps.md @@ -0,0 +1,92 @@ +--- +id: WithFormProps +title: WithFormProps +--- + +Defined in: [packages/octane-form/src/createFormHook.tsrx.d.ts:162](https://github.com/TanStack/form/blob/main/packages/octane-form/src/createFormHook.tsrx.d.ts#L162) + +## Extends + +- `FormOptions`\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TOnServer`, `TSubmitMeta`\> + +## Type Parameters + +### TFormData + +`TFormData` + +### TOnMount + +`TOnMount` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +### TOnChange + +`TOnChange` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +### TOnChangeAsync + +`TOnChangeAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +### TOnBlur + +`TOnBlur` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +### TOnBlurAsync + +`TOnBlurAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +### TOnSubmit + +`TOnSubmit` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +### TOnDynamic + +`TOnDynamic` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +### TOnServer + +`TOnServer` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +### TSubmitMeta + +`TSubmitMeta` + +### TFieldComponents + +`TFieldComponents` *extends* `Record`\<`string`, `HookComponentType`\<`any`\>\> + +### TFormComponents + +`TFormComponents` *extends* `Record`\<`string`, `HookComponentType`\<`any`\>\> + +### TRenderProps + +`TRenderProps` *extends* `object` = `Record`\<`string`, `never`\> + +## Properties + +### props? + +```ts +optional props: TRenderProps; +``` + +Defined in: [packages/octane-form/src/createFormHook.tsrx.d.ts:192](https://github.com/TanStack/form/blob/main/packages/octane-form/src/createFormHook.tsrx.d.ts#L192) + +*** + +### render + +```ts +render: HookFunctionComponent & object>>; +``` + +Defined in: [packages/octane-form/src/createFormHook.tsrx.d.ts:193](https://github.com/TanStack/form/blob/main/packages/octane-form/src/createFormHook.tsrx.d.ts#L193) diff --git a/docs/framework/octane/reference/type-aliases/FieldComponent.md b/docs/framework/octane/reference/type-aliases/FieldComponent.md new file mode 100644 index 0000000000..8f46a4a462 --- /dev/null +++ b/docs/framework/octane/reference/type-aliases/FieldComponent.md @@ -0,0 +1,129 @@ +--- +id: FieldComponent +title: FieldComponent +--- + +```ts +type FieldComponent = ({ + children, + ...fieldOptions +}) => ReturnType; +``` + +Defined in: [packages/octane-form/src/useField.tsrx.d.ts:335](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useField.tsrx.d.ts#L335) + +A type alias representing a field component for a specific form data type. + +## Type Parameters + +### TParentData + +`TParentData` + +### TFormOnMount + +`TFormOnMount` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnChange + +`TFormOnChange` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnChangeAsync + +`TFormOnChangeAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnBlur + +`TFormOnBlur` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnBlurAsync + +`TFormOnBlurAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnSubmit + +`TFormOnSubmit` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnSubmitAsync + +`TFormOnSubmitAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnDynamic + +`TFormOnDynamic` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnDynamicAsync + +`TFormOnDynamicAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnServer + +`TFormOnServer` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TPatentSubmitMeta + +`TPatentSubmitMeta` + +### ExtendedApi + +`ExtendedApi` = \{ +\} + +## Type Parameters + +### TName + +`TName` *extends* `DeepKeys`\<`TParentData`\> + +### TData + +`TData` *extends* `DeepValue`\<`TParentData`, `TName`\> + +### TOnMount + +`TOnMount` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChange + +`TOnChange` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChangeAsync + +`TOnChangeAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlur + +`TOnBlur` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlurAsync + +`TOnBlurAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmit + +`TOnSubmit` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamic + +`TOnDynamic` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +## Parameters + +### \{ + children, + ...fieldOptions +\} + +`FieldComponentBoundProps`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnDynamic`, `TFormOnDynamicAsync`, `TFormOnServer`, `TPatentSubmitMeta`, `ExtendedApi`\> + +## Returns + +`ReturnType`\<`FieldFunctionComponent`\> diff --git a/docs/framework/octane/reference/type-aliases/FormGroupComponent.md b/docs/framework/octane/reference/type-aliases/FormGroupComponent.md new file mode 100644 index 0000000000..8858a793a3 --- /dev/null +++ b/docs/framework/octane/reference/type-aliases/FormGroupComponent.md @@ -0,0 +1,139 @@ +--- +id: FormGroupComponent +title: FormGroupComponent +--- + +```ts +type FormGroupComponent = ({ + children, + ...formGroupOptions +}) => ReturnType; +``` + +Defined in: [packages/octane-form/src/useFormGroup.tsrx.d.ts:364](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useFormGroup.tsrx.d.ts#L364) + +## Type Parameters + +### TParentData + +`TParentData` + +### TFormOnMount + +`TFormOnMount` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnChange + +`TFormOnChange` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnChangeAsync + +`TFormOnChangeAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnBlur + +`TFormOnBlur` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnBlurAsync + +`TFormOnBlurAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnSubmit + +`TFormOnSubmit` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnSubmitAsync + +`TFormOnSubmitAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnDynamic + +`TFormOnDynamic` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnDynamicAsync + +`TFormOnDynamicAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnServer + +`TFormOnServer` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TParentSubmitMeta + +`TParentSubmitMeta` + +### ExtendedApi + +`ExtendedApi` = \{ +\} + +## Type Parameters + +### TName + +`TName` *extends* `DeepKeys`\<`TParentData`\> + +### TData + +`TData` *extends* `DeepValue`\<`TParentData`, `TName`\> + +### TOnMount + +`TOnMount` *extends* `undefined` \| `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChange + +`TOnChange` *extends* `undefined` \| `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChangeAsync + +`TOnChangeAsync` *extends* + \| `undefined` + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlur + +`TOnBlur` *extends* `undefined` \| `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlurAsync + +`TOnBlurAsync` *extends* + \| `undefined` + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmit + +`TOnSubmit` *extends* `undefined` \| `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* + \| `undefined` + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamic + +`TOnDynamic` *extends* `undefined` \| `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* + \| `undefined` + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TSubmitMeta + +`TSubmitMeta` + +## Parameters + +### \{ + children, + ...formGroupOptions +\} + +`FormGroupComponentBoundProps`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TSubmitMeta`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnDynamic`, `TFormOnDynamicAsync`, `TFormOnServer`, `TParentSubmitMeta`, `ExtendedApi`\> + +## Returns + +`ReturnType`\<`FormGroupFunctionComponent`\> diff --git a/docs/framework/octane/reference/type-aliases/LensFieldComponent.md b/docs/framework/octane/reference/type-aliases/LensFieldComponent.md new file mode 100644 index 0000000000..0ee342442e --- /dev/null +++ b/docs/framework/octane/reference/type-aliases/LensFieldComponent.md @@ -0,0 +1,89 @@ +--- +id: LensFieldComponent +title: LensFieldComponent +--- + +```ts +type LensFieldComponent = ({ + children, + ...fieldOptions +}) => ReturnType; +``` + +Defined in: [packages/octane-form/src/useField.tsrx.d.ts:401](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useField.tsrx.d.ts#L401) + +A type alias representing a field component for a form lens data type. + +## Type Parameters + +### TLensData + +`TLensData` + +### TParentSubmitMeta + +`TParentSubmitMeta` + +### ExtendedApi + +`ExtendedApi` = \{ +\} + +## Type Parameters + +### TName + +`TName` *extends* `DeepKeys`\<`TLensData`\> + +### TData + +`TData` *extends* `DeepValue`\<`TLensData`, `TName`\> + +### TOnMount + +`TOnMount` *extends* `undefined` \| `FieldValidateOrFn`\<`unknown`, `string`, `TData`\> + +### TOnChange + +`TOnChange` *extends* `undefined` \| `FieldValidateOrFn`\<`unknown`, `string`, `TData`\> + +### TOnChangeAsync + +`TOnChangeAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`unknown`, `string`, `TData`\> + +### TOnBlur + +`TOnBlur` *extends* `undefined` \| `FieldValidateOrFn`\<`unknown`, `string`, `TData`\> + +### TOnBlurAsync + +`TOnBlurAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`unknown`, `string`, `TData`\> + +### TOnSubmit + +`TOnSubmit` *extends* `undefined` \| `FieldValidateOrFn`\<`unknown`, `string`, `TData`\> + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`unknown`, `string`, `TData`\> + +### TOnDynamic + +`TOnDynamic` *extends* `undefined` \| `FieldValidateOrFn`\<`unknown`, `string`, `TData`\> + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`unknown`, `string`, `TData`\> + +## Parameters + +### \{ + children, + ...fieldOptions +\} + +`Omit`\<`FieldComponentBoundProps`\<`unknown`, `string`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `undefined` \| `FormValidateOrFn`\<`unknown`\>, `undefined` \| `FormValidateOrFn`\<`unknown`\>, `undefined` \| `FormAsyncValidateOrFn`\<`unknown`\>, `undefined` \| `FormValidateOrFn`\<`unknown`\>, `undefined` \| `FormAsyncValidateOrFn`\<`unknown`\>, `undefined` \| `FormValidateOrFn`\<`unknown`\>, `undefined` \| `FormAsyncValidateOrFn`\<`unknown`\>, `undefined` \| `FormValidateOrFn`\<`unknown`\>, `undefined` \| `FormAsyncValidateOrFn`\<`unknown`\>, `undefined` \| `FormAsyncValidateOrFn`\<`unknown`\>, `TParentSubmitMeta`, `ExtendedApi`\>, `"name"` \| `"validators"`\> & `object` + +## Returns + +`ReturnType`\<`FieldFunctionComponent`\> diff --git a/docs/framework/octane/reference/type-aliases/OctaneFormExtendedApi.md b/docs/framework/octane/reference/type-aliases/OctaneFormExtendedApi.md new file mode 100644 index 0000000000..dae78824f2 --- /dev/null +++ b/docs/framework/octane/reference/type-aliases/OctaneFormExtendedApi.md @@ -0,0 +1,62 @@ +--- +id: OctaneFormExtendedApi +title: OctaneFormExtendedApi +--- + +```ts +type OctaneFormExtendedApi = FormApi & OctaneFormApi; +``` + +Defined in: [packages/octane-form/src/useForm.tsrx.d.ts:82](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useForm.tsrx.d.ts#L82) + +An extended version of the `FormApi` class that includes renderer-specific components from `OctaneFormApi` + +## Type Parameters + +### TFormData + +`TFormData` + +### TOnMount + +`TOnMount` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +### TOnChange + +`TOnChange` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +### TOnChangeAsync + +`TOnChangeAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +### TOnBlur + +`TOnBlur` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +### TOnBlurAsync + +`TOnBlurAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +### TOnSubmit + +`TOnSubmit` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +### TOnDynamic + +`TOnDynamic` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +### TOnServer + +`TOnServer` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +### TSubmitMeta + +`TSubmitMeta` diff --git a/docs/framework/octane/reference/type-aliases/ServerFormState.md b/docs/framework/octane/reference/type-aliases/ServerFormState.md new file mode 100644 index 0000000000..2d74dba424 --- /dev/null +++ b/docs/framework/octane/reference/type-aliases/ServerFormState.md @@ -0,0 +1,20 @@ +--- +id: ServerFormState +title: ServerFormState +--- + +```ts +type ServerFormState = Pick, "values" | "errors" | "errorMap">; +``` + +Defined in: [packages/octane-form/src/types.ts:129](https://github.com/TanStack/form/blob/main/packages/octane-form/src/types.ts#L129) + +## Type Parameters + +### TFormData + +`TFormData` + +### TOnServer + +`TOnServer` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> diff --git a/docs/framework/octane/reference/type-aliases/UseField.md b/docs/framework/octane/reference/type-aliases/UseField.md new file mode 100644 index 0000000000..c7f8e89d13 --- /dev/null +++ b/docs/framework/octane/reference/type-aliases/UseField.md @@ -0,0 +1,120 @@ +--- +id: UseField +title: UseField +--- + +```ts +type UseField = (opts) => FieldApi; +``` + +Defined in: [packages/octane-form/src/useField.tsrx.d.ts:20](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useField.tsrx.d.ts#L20) + +A type representing a hook for using a field in a form with the given form data type. + +A function that takes an optional object with a `name` property and field options, and returns a `FieldApi` instance for the specified field. + +## Type Parameters + +### TParentData + +`TParentData` + +### TFormOnMount + +`TFormOnMount` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnChange + +`TFormOnChange` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnChangeAsync + +`TFormOnChangeAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnBlur + +`TFormOnBlur` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnBlurAsync + +`TFormOnBlurAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnSubmit + +`TFormOnSubmit` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnSubmitAsync + +`TFormOnSubmitAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnDynamic + +`TFormOnDynamic` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnDynamicAsync + +`TFormOnDynamicAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnServer + +`TFormOnServer` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TPatentSubmitMeta + +`TPatentSubmitMeta` + +## Type Parameters + +### TName + +`TName` *extends* `DeepKeys`\<`TParentData`\> + +### TData + +`TData` *extends* `DeepValue`\<`TParentData`, `TName`\> + +### TOnMount + +`TOnMount` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChange + +`TOnChange` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChangeAsync + +`TOnChangeAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlur + +`TOnBlur` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlurAsync + +`TOnBlurAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmit + +`TOnSubmit` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamic + +`TOnDynamic` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +## Parameters + +### opts + +[`UseFieldOptionsBound`](../interfaces/UseFieldOptionsBound.md)\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`\> + +## Returns + +`FieldApi`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnDynamic`, `TFormOnDynamicAsync`, `TFormOnServer`, `TPatentSubmitMeta`\> diff --git a/docs/framework/octane/reference/type-aliases/UseFormGroup.md b/docs/framework/octane/reference/type-aliases/UseFormGroup.md new file mode 100644 index 0000000000..8d1e00dbfe --- /dev/null +++ b/docs/framework/octane/reference/type-aliases/UseFormGroup.md @@ -0,0 +1,128 @@ +--- +id: UseFormGroup +title: UseFormGroup +--- + +```ts +type UseFormGroup = (opts) => FormGroupApi; +``` + +Defined in: [packages/octane-form/src/useFormGroup.tsrx.d.ts:15](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useFormGroup.tsrx.d.ts#L15) + +## Type Parameters + +### TParentData + +`TParentData` + +### TFormOnMount + +`TFormOnMount` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnChange + +`TFormOnChange` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnChangeAsync + +`TFormOnChangeAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnBlur + +`TFormOnBlur` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnBlurAsync + +`TFormOnBlurAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnSubmit + +`TFormOnSubmit` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnSubmitAsync + +`TFormOnSubmitAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnDynamic + +`TFormOnDynamic` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnDynamicAsync + +`TFormOnDynamicAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnServer + +`TFormOnServer` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TParentSubmitMeta + +`TParentSubmitMeta` + +## Type Parameters + +### TName + +`TName` *extends* `DeepKeys`\<`TParentData`\> + +### TData + +`TData` *extends* `DeepValue`\<`TParentData`, `TName`\> + +### TOnMount + +`TOnMount` *extends* `undefined` \| `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChange + +`TOnChange` *extends* `undefined` \| `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChangeAsync + +`TOnChangeAsync` *extends* + \| `undefined` + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlur + +`TOnBlur` *extends* `undefined` \| `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlurAsync + +`TOnBlurAsync` *extends* + \| `undefined` + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmit + +`TOnSubmit` *extends* `undefined` \| `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* + \| `undefined` + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamic + +`TOnDynamic` *extends* `undefined` \| `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* + \| `undefined` + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TSubmitMeta + +`TSubmitMeta` + +## Parameters + +### opts + +`FormGroupApiOptions`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TSubmitMeta`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnDynamic`, `TFormOnDynamicAsync`, `TFormOnServer`, `TParentSubmitMeta`\> + +## Returns + +`FormGroupApi`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TSubmitMeta`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnDynamic`, `TFormOnDynamicAsync`, `TFormOnServer`, `TParentSubmitMeta`\> diff --git a/docs/framework/octane/reference/variables/Field.md b/docs/framework/octane/reference/variables/Field.md new file mode 100644 index 0000000000..e8c24107ce --- /dev/null +++ b/docs/framework/octane/reference/variables/Field.md @@ -0,0 +1,124 @@ +--- +id: Field +title: Field +--- + +```ts +const Field: ({ + children, + ...fieldOptions +}) => ReturnType; +``` + +Defined in: [packages/octane-form/src/useField.tsrx.d.ts:486](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useField.tsrx.d.ts#L486) + +A function component that takes field options and a render function as children. + +The `Field` component uses the `useField` hook internally to manage the field instance. + +## Type Parameters + +### TParentData + +`TParentData` + +### TName + +`TName` *extends* `DeepKeys`\<`TParentData`\> + +### TData + +`TData` *extends* `DeepValue`\<`TParentData`, `TName`\> + +### TOnMount + +`TOnMount` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChange + +`TOnChange` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChangeAsync + +`TOnChangeAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlur + +`TOnBlur` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlurAsync + +`TOnBlurAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmit + +`TOnSubmit` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamic + +`TOnDynamic` *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TFormOnMount + +`TFormOnMount` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnChange + +`TFormOnChange` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnChangeAsync + +`TFormOnChangeAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnBlur + +`TFormOnBlur` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnBlurAsync + +`TFormOnBlurAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnSubmit + +`TFormOnSubmit` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnSubmitAsync + +`TFormOnSubmitAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnDynamic + +`TFormOnDynamic` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnDynamicAsync + +`TFormOnDynamicAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnServer + +`TFormOnServer` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TPatentSubmitMeta + +`TPatentSubmitMeta` + +## Parameters + +### \{ + children, + ...fieldOptions +\} + +`FieldComponentProps`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnDynamic`, `TFormOnDynamicAsync`, `TFormOnServer`, `TPatentSubmitMeta`\> + +## Returns + +`ReturnType`\<`FieldFunctionComponent`\> diff --git a/docs/framework/octane/reference/variables/FormGroup.md b/docs/framework/octane/reference/variables/FormGroup.md new file mode 100644 index 0000000000..f5bc27bf34 --- /dev/null +++ b/docs/framework/octane/reference/variables/FormGroup.md @@ -0,0 +1,132 @@ +--- +id: FormGroup +title: FormGroup +--- + +```ts +const FormGroup: ({ + children, + ...formGroupOptions +}) => ReturnType; +``` + +Defined in: [packages/octane-form/src/useFormGroup.tsrx.d.ts:432](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useFormGroup.tsrx.d.ts#L432) + +## Type Parameters + +### TParentData + +`TParentData` + +### TName + +`TName` *extends* `DeepKeys`\<`TParentData`\> + +### TData + +`TData` *extends* `DeepValue`\<`TParentData`, `TName`\> + +### TOnMount + +`TOnMount` *extends* `undefined` \| `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChange + +`TOnChange` *extends* `undefined` \| `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnChangeAsync + +`TOnChangeAsync` *extends* + \| `undefined` + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlur + +`TOnBlur` *extends* `undefined` \| `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnBlurAsync + +`TOnBlurAsync` *extends* + \| `undefined` + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmit + +`TOnSubmit` *extends* `undefined` \| `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnSubmitAsync + +`TOnSubmitAsync` *extends* + \| `undefined` + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamic + +`TOnDynamic` *extends* `undefined` \| `FormGroupValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TOnDynamicAsync + +`TOnDynamicAsync` *extends* + \| `undefined` + \| `FormGroupAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +### TSubmitMeta + +`TSubmitMeta` + +### TFormOnMount + +`TFormOnMount` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnChange + +`TFormOnChange` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnChangeAsync + +`TFormOnChangeAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnBlur + +`TFormOnBlur` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnBlurAsync + +`TFormOnBlurAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnSubmit + +`TFormOnSubmit` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnSubmitAsync + +`TFormOnSubmitAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnDynamic + +`TFormOnDynamic` *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +### TFormOnDynamicAsync + +`TFormOnDynamicAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TFormOnServer + +`TFormOnServer` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +### TParentSubmitMeta + +`TParentSubmitMeta` + +## Parameters + +### \{ + children, + ...formGroupOptions +\} + +`FormGroupComponentProps`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TSubmitMeta`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnDynamic`, `TFormOnDynamicAsync`, `TFormOnServer`, `TParentSubmitMeta`\> + +## Returns + +`ReturnType`\<`FormGroupFunctionComponent`\> diff --git a/docs/framework/octane/reference/variables/useIsomorphicLayoutEffect.md b/docs/framework/octane/reference/variables/useIsomorphicLayoutEffect.md new file mode 100644 index 0000000000..1ad059c8d6 --- /dev/null +++ b/docs/framework/octane/reference/variables/useIsomorphicLayoutEffect.md @@ -0,0 +1,28 @@ +--- +id: useIsomorphicLayoutEffect +title: useIsomorphicLayoutEffect +--- + +```ts +const useIsomorphicLayoutEffect: (fn, deps?, slot?) => void; +``` + +Defined in: [packages/octane-form/src/useIsomorphicLayoutEffect.ts:3](https://github.com/TanStack/form/blob/main/packages/octane-form/src/useIsomorphicLayoutEffect.ts#L3) + +## Parameters + +### fn + +`EffectFn` + +### deps? + +`any`[] | `null` + +### slot? + +`symbol` + +## Returns + +`void` diff --git a/docs/framework/preact/guides/form-composition.md b/docs/framework/preact/guides/form-composition.md index 207863b6ae..84efa7b10f 100644 --- a/docs/framework/preact/guides/form-composition.md +++ b/docs/framework/preact/guides/form-composition.md @@ -282,9 +282,7 @@ Usage: ```tsx // sharedOpts.ts -const formOpts = formOptions({ - /* ... */ -}) +const formOpts = formOptions({/* ... */}) function ParentComponent() { const form = useAppForm({ ...formOptions /* ... */ }) diff --git a/docs/framework/preact/reference/functions/useField.md b/docs/framework/preact/reference/functions/useField.md index 1678afaf63..b1d22935a1 100644 --- a/docs/framework/preact/reference/functions/useField.md +++ b/docs/framework/preact/reference/functions/useField.md @@ -7,7 +7,7 @@ title: useField function useField(opts): FieldApi; ``` -Defined in: [packages/preact-form/src/useField.tsx:104](https://github.com/TanStack/form/blob/main/packages/preact-form/src/useField.tsx#L104) +Defined in: [packages/preact-form/src/useField.tsx:100](https://github.com/TanStack/form/blob/main/packages/preact-form/src/useField.tsx#L100) A hook for managing a field in a form. diff --git a/docs/framework/preact/reference/functions/useFormGroup.md b/docs/framework/preact/reference/functions/useFormGroup.md index cb1e3beea9..c4b36bf35d 100644 --- a/docs/framework/preact/reference/functions/useFormGroup.md +++ b/docs/framework/preact/reference/functions/useFormGroup.md @@ -7,7 +7,7 @@ title: useFormGroup function useFormGroup(opts): FormGroupApi; ``` -Defined in: [packages/preact-form/src/useFormGroup.tsx:111](https://github.com/TanStack/form/blob/main/packages/preact-form/src/useFormGroup.tsx#L111) +Defined in: [packages/preact-form/src/useFormGroup.tsx:104](https://github.com/TanStack/form/blob/main/packages/preact-form/src/useFormGroup.tsx#L104) ## Type Parameters diff --git a/docs/framework/preact/reference/functions/useSelector.md b/docs/framework/preact/reference/functions/useSelector.md index 0172c96baa..7b33a5b744 100644 --- a/docs/framework/preact/reference/functions/useSelector.md +++ b/docs/framework/preact/reference/functions/useSelector.md @@ -10,7 +10,7 @@ function useSelector( options?): TSelected; ``` -Defined in: node\_modules/.pnpm/@tanstack+preact-store@0.13.1\_preact@10.29.2/node\_modules/@tanstack/preact-store/dist/useSelector.d.ts:29 +Defined in: node\_modules/.pnpm/@tanstack+preact-store@0.13.2\_preact@10.29.8/node\_modules/@tanstack/preact-store/dist/useSelector.d.ts:29 Selects a slice of state from an atom or store and subscribes the component to that selection. diff --git a/docs/framework/preact/reference/interfaces/UseFieldOptionsBound.md b/docs/framework/preact/reference/interfaces/UseFieldOptionsBound.md index 8ec3e5da8c..3bce5282de 100644 --- a/docs/framework/preact/reference/interfaces/UseFieldOptionsBound.md +++ b/docs/framework/preact/reference/interfaces/UseFieldOptionsBound.md @@ -3,7 +3,7 @@ id: UseFieldOptionsBound title: UseFieldOptionsBound --- -Defined in: [packages/preact-form/src/types.ts:82](https://github.com/TanStack/form/blob/main/packages/preact-form/src/types.ts#L82) +Defined in: [packages/preact-form/src/types.ts:78](https://github.com/TanStack/form/blob/main/packages/preact-form/src/types.ts#L78) ## Extends diff --git a/docs/framework/preact/reference/type-aliases/FieldComponent.md b/docs/framework/preact/reference/type-aliases/FieldComponent.md index 9ebe02f7d3..a6f387df81 100644 --- a/docs/framework/preact/reference/type-aliases/FieldComponent.md +++ b/docs/framework/preact/reference/type-aliases/FieldComponent.md @@ -10,7 +10,7 @@ type FieldComponent ReturnType; ``` -Defined in: [packages/preact-form/src/useField.tsx:472](https://github.com/TanStack/form/blob/main/packages/preact-form/src/useField.tsx#L472) +Defined in: [packages/preact-form/src/useField.tsx:456](https://github.com/TanStack/form/blob/main/packages/preact-form/src/useField.tsx#L456) A type alias representing a field component for a specific form data type. diff --git a/docs/framework/preact/reference/type-aliases/FormGroupComponent.md b/docs/framework/preact/reference/type-aliases/FormGroupComponent.md index d46b0ce464..25ef604133 100644 --- a/docs/framework/preact/reference/type-aliases/FormGroupComponent.md +++ b/docs/framework/preact/reference/type-aliases/FormGroupComponent.md @@ -10,7 +10,7 @@ type FormGroupComponent ReturnType; ``` -Defined in: [packages/preact-form/src/useFormGroup.tsx:559](https://github.com/TanStack/form/blob/main/packages/preact-form/src/useFormGroup.tsx#L559) +Defined in: [packages/preact-form/src/useFormGroup.tsx:531](https://github.com/TanStack/form/blob/main/packages/preact-form/src/useFormGroup.tsx#L531) ## Type Parameters diff --git a/docs/framework/preact/reference/type-aliases/LensFieldComponent.md b/docs/framework/preact/reference/type-aliases/LensFieldComponent.md index 1d46c5808c..3cc0f51a03 100644 --- a/docs/framework/preact/reference/type-aliases/LensFieldComponent.md +++ b/docs/framework/preact/reference/type-aliases/LensFieldComponent.md @@ -10,7 +10,7 @@ type LensFieldComponent = ReturnType; ``` -Defined in: [packages/preact-form/src/useField.tsx:547](https://github.com/TanStack/form/blob/main/packages/preact-form/src/useField.tsx#L547) +Defined in: [packages/preact-form/src/useField.tsx:523](https://github.com/TanStack/form/blob/main/packages/preact-form/src/useField.tsx#L523) A type alias representing a field component for a form lens data type. diff --git a/docs/framework/preact/reference/type-aliases/PropsWithChildren.md b/docs/framework/preact/reference/type-aliases/PropsWithChildren.md index 94fdc49e14..cdceae7512 100644 --- a/docs/framework/preact/reference/type-aliases/PropsWithChildren.md +++ b/docs/framework/preact/reference/type-aliases/PropsWithChildren.md @@ -7,7 +7,7 @@ title: PropsWithChildren type PropsWithChildren

= P & object; ``` -Defined in: [packages/preact-form/src/types.ts:141](https://github.com/TanStack/form/blob/main/packages/preact-form/src/types.ts#L141) +Defined in: [packages/preact-form/src/types.ts:133](https://github.com/TanStack/form/blob/main/packages/preact-form/src/types.ts#L133) ## Type Declaration diff --git a/docs/framework/preact/reference/type-aliases/ServerFormState.md b/docs/framework/preact/reference/type-aliases/ServerFormState.md index 368fb0a5ab..c183e270a1 100644 --- a/docs/framework/preact/reference/type-aliases/ServerFormState.md +++ b/docs/framework/preact/reference/type-aliases/ServerFormState.md @@ -7,7 +7,7 @@ title: ServerFormState type ServerFormState = Pick, "values" | "errors" | "errorMap">; ``` -Defined in: [packages/preact-form/src/types.ts:121](https://github.com/TanStack/form/blob/main/packages/preact-form/src/types.ts#L121) +Defined in: [packages/preact-form/src/types.ts:113](https://github.com/TanStack/form/blob/main/packages/preact-form/src/types.ts#L113) ## Type Parameters diff --git a/docs/framework/preact/reference/variables/Field.md b/docs/framework/preact/reference/variables/Field.md index 257306059c..d23f86690c 100644 --- a/docs/framework/preact/reference/variables/Field.md +++ b/docs/framework/preact/reference/variables/Field.md @@ -7,7 +7,7 @@ title: Field const Field: (__namedParameters) => ComponentChildren; ``` -Defined in: [packages/preact-form/src/useField.tsx:637](https://github.com/TanStack/form/blob/main/packages/preact-form/src/useField.tsx#L637) +Defined in: [packages/preact-form/src/useField.tsx:609](https://github.com/TanStack/form/blob/main/packages/preact-form/src/useField.tsx#L609) A function component that takes field options and a render function as children and returns a React component. diff --git a/docs/framework/preact/reference/variables/FormGroup.md b/docs/framework/preact/reference/variables/FormGroup.md index 72430f4c9c..65a2e288d6 100644 --- a/docs/framework/preact/reference/variables/FormGroup.md +++ b/docs/framework/preact/reference/variables/FormGroup.md @@ -7,7 +7,7 @@ title: FormGroup const FormGroup: (__namedParameters) => ComponentChildren; ``` -Defined in: [packages/preact-form/src/useFormGroup.tsx:639](https://github.com/TanStack/form/blob/main/packages/preact-form/src/useFormGroup.tsx#L639) +Defined in: [packages/preact-form/src/useFormGroup.tsx:600](https://github.com/TanStack/form/blob/main/packages/preact-form/src/useFormGroup.tsx#L600) ## Type Parameters diff --git a/docs/framework/preact/reference/variables/useStore.md b/docs/framework/preact/reference/variables/useStore.md index b94bfac78e..573a966fca 100644 --- a/docs/framework/preact/reference/variables/useStore.md +++ b/docs/framework/preact/reference/variables/useStore.md @@ -7,7 +7,7 @@ title: useStore const useStore: (source, selector?, compare?) => TSelected; ``` -Defined in: node\_modules/.pnpm/@tanstack+preact-store@0.13.1\_preact@10.29.2/node\_modules/@tanstack/preact-store/dist/useStore.d.ts:12 +Defined in: node\_modules/.pnpm/@tanstack+preact-store@0.13.2\_preact@10.29.8/node\_modules/@tanstack/preact-store/dist/useStore.d.ts:12 Deprecated alias for [useSelector](../functions/useSelector.md). diff --git a/docs/framework/react/guides/form-composition.md b/docs/framework/react/guides/form-composition.md index cf2db1cc19..ddaa63ce9a 100644 --- a/docs/framework/react/guides/form-composition.md +++ b/docs/framework/react/guides/form-composition.md @@ -355,9 +355,7 @@ Usage: ```tsx // sharedOpts.ts -const formOpts = formOptions({ - /* ... */ -}) +const formOpts = formOptions({/* ... */}) function ParentComponent() { const form = useAppForm({ ...formOptions /* ... */ }) diff --git a/docs/framework/react/reference/functions/useField.md b/docs/framework/react/reference/functions/useField.md index 540fde644d..ae0f3962cd 100644 --- a/docs/framework/react/reference/functions/useField.md +++ b/docs/framework/react/reference/functions/useField.md @@ -7,7 +7,7 @@ title: useField function useField(opts): FieldApi; ``` -Defined in: [packages/react-form/src/useField.tsx:106](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L106) +Defined in: [packages/react-form/src/useField.tsx:102](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L102) A hook for managing a field in a form. diff --git a/docs/framework/react/reference/functions/useFormGroup.md b/docs/framework/react/reference/functions/useFormGroup.md index 3c8e880246..2d5b328a1c 100644 --- a/docs/framework/react/reference/functions/useFormGroup.md +++ b/docs/framework/react/reference/functions/useFormGroup.md @@ -7,7 +7,7 @@ title: useFormGroup function useFormGroup(opts): FormGroupApi; ``` -Defined in: [packages/react-form/src/useFormGroup.tsx:113](https://github.com/TanStack/form/blob/main/packages/react-form/src/useFormGroup.tsx#L113) +Defined in: [packages/react-form/src/useFormGroup.tsx:106](https://github.com/TanStack/form/blob/main/packages/react-form/src/useFormGroup.tsx#L106) ## Type Parameters diff --git a/docs/framework/react/reference/functions/useSelector.md b/docs/framework/react/reference/functions/useSelector.md index 053e273c31..4d374d3c8d 100644 --- a/docs/framework/react/reference/functions/useSelector.md +++ b/docs/framework/react/reference/functions/useSelector.md @@ -10,7 +10,7 @@ function useSelector( options?): TSelected; ``` -Defined in: node\_modules/.pnpm/@tanstack+react-store@0.11.0\_react-dom@19.1.0\_react@19.1.0\_\_react@19.1.0/node\_modules/@tanstack/react-store/dist/useSelector.d.ts:31 +Defined in: node\_modules/.pnpm/@tanstack+react-store@0.11.1\_react-dom@19.1.0\_react@19.1.0\_\_react@19.1.0/node\_modules/@tanstack/react-store/dist/useSelector.d.ts:31 Selects a slice of state from an atom or store and subscribes the component to that selection. diff --git a/docs/framework/react/reference/interfaces/UseFieldOptionsBound.md b/docs/framework/react/reference/interfaces/UseFieldOptionsBound.md index 910bb6e1f1..bd1b57b4e5 100644 --- a/docs/framework/react/reference/interfaces/UseFieldOptionsBound.md +++ b/docs/framework/react/reference/interfaces/UseFieldOptionsBound.md @@ -3,7 +3,7 @@ id: UseFieldOptionsBound title: UseFieldOptionsBound --- -Defined in: [packages/react-form/src/types.ts:81](https://github.com/TanStack/form/blob/main/packages/react-form/src/types.ts#L81) +Defined in: [packages/react-form/src/types.ts:77](https://github.com/TanStack/form/blob/main/packages/react-form/src/types.ts#L77) ## Extends diff --git a/docs/framework/react/reference/type-aliases/FieldComponent.md b/docs/framework/react/reference/type-aliases/FieldComponent.md index bdb244912c..b5c3bd8018 100644 --- a/docs/framework/react/reference/type-aliases/FieldComponent.md +++ b/docs/framework/react/reference/type-aliases/FieldComponent.md @@ -10,7 +10,7 @@ type FieldComponent ReturnType; ``` -Defined in: [packages/react-form/src/useField.tsx:480](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L480) +Defined in: [packages/react-form/src/useField.tsx:464](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L464) A type alias representing a field component for a specific form data type. diff --git a/docs/framework/react/reference/type-aliases/FormGroupComponent.md b/docs/framework/react/reference/type-aliases/FormGroupComponent.md index 7cea16091f..6b3cb8ee90 100644 --- a/docs/framework/react/reference/type-aliases/FormGroupComponent.md +++ b/docs/framework/react/reference/type-aliases/FormGroupComponent.md @@ -10,7 +10,7 @@ type FormGroupComponent ReturnType; ``` -Defined in: [packages/react-form/src/useFormGroup.tsx:562](https://github.com/TanStack/form/blob/main/packages/react-form/src/useFormGroup.tsx#L562) +Defined in: [packages/react-form/src/useFormGroup.tsx:534](https://github.com/TanStack/form/blob/main/packages/react-form/src/useFormGroup.tsx#L534) ## Type Parameters diff --git a/docs/framework/react/reference/type-aliases/LensFieldComponent.md b/docs/framework/react/reference/type-aliases/LensFieldComponent.md index 23a2f73532..106b1b9e86 100644 --- a/docs/framework/react/reference/type-aliases/LensFieldComponent.md +++ b/docs/framework/react/reference/type-aliases/LensFieldComponent.md @@ -10,7 +10,7 @@ type LensFieldComponent = ReturnType; ``` -Defined in: [packages/react-form/src/useField.tsx:555](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L555) +Defined in: [packages/react-form/src/useField.tsx:531](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L531) A type alias representing a field component for a form lens data type. diff --git a/docs/framework/react/reference/type-aliases/ServerFormState.md b/docs/framework/react/reference/type-aliases/ServerFormState.md index b1caa57741..78729bde8d 100644 --- a/docs/framework/react/reference/type-aliases/ServerFormState.md +++ b/docs/framework/react/reference/type-aliases/ServerFormState.md @@ -7,7 +7,7 @@ title: ServerFormState type ServerFormState = Pick, "values" | "errors" | "errorMap">; ``` -Defined in: [packages/react-form/src/types.ts:120](https://github.com/TanStack/form/blob/main/packages/react-form/src/types.ts#L120) +Defined in: [packages/react-form/src/types.ts:112](https://github.com/TanStack/form/blob/main/packages/react-form/src/types.ts#L112) ## Type Parameters diff --git a/docs/framework/react/reference/variables/Field.md b/docs/framework/react/reference/variables/Field.md index 24ad7900b5..5b14c6d262 100644 --- a/docs/framework/react/reference/variables/Field.md +++ b/docs/framework/react/reference/variables/Field.md @@ -7,7 +7,7 @@ title: Field const Field: (__namedParameters) => ReactNode | Promise; ``` -Defined in: [packages/react-form/src/useField.tsx:645](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L645) +Defined in: [packages/react-form/src/useField.tsx:617](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L617) A function component that takes field options and a render function as children and returns a React component. diff --git a/docs/framework/react/reference/variables/FormGroup.md b/docs/framework/react/reference/variables/FormGroup.md index a35f736cc9..18e8f442ba 100644 --- a/docs/framework/react/reference/variables/FormGroup.md +++ b/docs/framework/react/reference/variables/FormGroup.md @@ -7,7 +7,7 @@ title: FormGroup const FormGroup: (__namedParameters) => ReactNode | Promise; ``` -Defined in: [packages/react-form/src/useFormGroup.tsx:642](https://github.com/TanStack/form/blob/main/packages/react-form/src/useFormGroup.tsx#L642) +Defined in: [packages/react-form/src/useFormGroup.tsx:603](https://github.com/TanStack/form/blob/main/packages/react-form/src/useFormGroup.tsx#L603) ## Type Parameters diff --git a/docs/framework/react/reference/variables/useStore.md b/docs/framework/react/reference/variables/useStore.md index c68281ded5..af600704e0 100644 --- a/docs/framework/react/reference/variables/useStore.md +++ b/docs/framework/react/reference/variables/useStore.md @@ -7,7 +7,7 @@ title: useStore const useStore: (source, selector?, compare?) => TSelected; ``` -Defined in: node\_modules/.pnpm/@tanstack+react-store@0.11.0\_react-dom@19.1.0\_react@19.1.0\_\_react@19.1.0/node\_modules/@tanstack/react-store/dist/useStore.d.ts:12 +Defined in: node\_modules/.pnpm/@tanstack+react-store@0.11.1\_react-dom@19.1.0\_react@19.1.0\_\_react@19.1.0/node\_modules/@tanstack/react-store/dist/useStore.d.ts:12 Deprecated alias for [useSelector](../functions/useSelector.md). diff --git a/docs/framework/solid/guides/validation.md b/docs/framework/solid/guides/validation.md index c1ff12dbf0..712d8afafd 100644 --- a/docs/framework/solid/guides/validation.md +++ b/docs/framework/solid/guides/validation.md @@ -543,9 +543,7 @@ The form state object has a `canSubmit` flag that is false when any field is inv You can subscribe to it via `form.Subscribe` and use the value in order to, for example, disable the submit button when the form is invalid (in practice, disabled buttons are not accessible, use `aria-disabled` instead). ```tsx -const form = createForm(() => ({ - /* ... */ -})) +const form = createForm(() => ({/* ... */})) return ( /* ... */ diff --git a/docs/framework/solid/reference/functions/Field.md b/docs/framework/solid/reference/functions/Field.md index 0cd65eedec..c6bdaa25fb 100644 --- a/docs/framework/solid/reference/functions/Field.md +++ b/docs/framework/solid/reference/functions/Field.md @@ -7,7 +7,7 @@ title: Field function Field(props): Element; ``` -Defined in: [packages/solid-form/src/createField.tsx:660](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx#L660) +Defined in: [packages/solid-form/src/createField.tsx:632](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx#L632) ## Type Parameters diff --git a/docs/framework/solid/reference/functions/FormGroup.md b/docs/framework/solid/reference/functions/FormGroup.md index 60ae240f42..238c54db3b 100644 --- a/docs/framework/solid/reference/functions/FormGroup.md +++ b/docs/framework/solid/reference/functions/FormGroup.md @@ -7,7 +7,7 @@ title: FormGroup function FormGroup(props): Element; ``` -Defined in: [packages/solid-form/src/createFormGroup.tsx:524](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createFormGroup.tsx#L524) +Defined in: [packages/solid-form/src/createFormGroup.tsx:485](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createFormGroup.tsx#L485) ## Type Parameters diff --git a/docs/framework/solid/reference/functions/createField.md b/docs/framework/solid/reference/functions/createField.md index 72d113996e..a47f767b8b 100644 --- a/docs/framework/solid/reference/functions/createField.md +++ b/docs/framework/solid/reference/functions/createField.md @@ -7,7 +7,7 @@ title: createField function createField(opts): () => FieldApi & SolidFieldApi; ``` -Defined in: [packages/solid-form/src/createField.tsx:218](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx#L218) +Defined in: [packages/solid-form/src/createField.tsx:214](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx#L214) ## Type Parameters diff --git a/docs/framework/solid/reference/functions/createFormGroup.md b/docs/framework/solid/reference/functions/createFormGroup.md index eb41f65a67..a87d3da953 100644 --- a/docs/framework/solid/reference/functions/createFormGroup.md +++ b/docs/framework/solid/reference/functions/createFormGroup.md @@ -7,7 +7,7 @@ title: createFormGroup function createFormGroup(opts): () => FormGroupApi; ``` -Defined in: [packages/solid-form/src/createFormGroup.tsx:127](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createFormGroup.tsx#L127) +Defined in: [packages/solid-form/src/createFormGroup.tsx:120](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createFormGroup.tsx#L120) ## Type Parameters diff --git a/docs/framework/solid/reference/functions/useSelector.md b/docs/framework/solid/reference/functions/useSelector.md index 51d0d73d07..25a2658247 100644 --- a/docs/framework/solid/reference/functions/useSelector.md +++ b/docs/framework/solid/reference/functions/useSelector.md @@ -10,7 +10,7 @@ function useSelector( options?): Accessor; ``` -Defined in: node\_modules/.pnpm/@tanstack+solid-store@0.11.0\_solid-js@1.9.13/node\_modules/@tanstack/solid-store/dist/useSelector.d.ts:34 +Defined in: node\_modules/.pnpm/@tanstack+solid-store@0.11.1\_solid-js@1.9.15/node\_modules/@tanstack/solid-store/dist/useSelector.d.ts:34 Selects a slice of state from an atom or store and subscribes the component to that selection. diff --git a/docs/framework/solid/reference/interfaces/CreateFieldOptionsBound.md b/docs/framework/solid/reference/interfaces/CreateFieldOptionsBound.md index 573bf35620..60b2d81aeb 100644 --- a/docs/framework/solid/reference/interfaces/CreateFieldOptionsBound.md +++ b/docs/framework/solid/reference/interfaces/CreateFieldOptionsBound.md @@ -3,7 +3,7 @@ id: CreateFieldOptionsBound title: CreateFieldOptionsBound --- -Defined in: [packages/solid-form/src/types.ts:80](https://github.com/TanStack/form/blob/main/packages/solid-form/src/types.ts#L80) +Defined in: [packages/solid-form/src/types.ts:76](https://github.com/TanStack/form/blob/main/packages/solid-form/src/types.ts#L76) ## Extends diff --git a/docs/framework/solid/reference/type-aliases/FieldComponent.md b/docs/framework/solid/reference/type-aliases/FieldComponent.md index 9f02739f01..d7a2c6fabc 100644 --- a/docs/framework/solid/reference/type-aliases/FieldComponent.md +++ b/docs/framework/solid/reference/type-aliases/FieldComponent.md @@ -10,7 +10,7 @@ type FieldComponent JSX.Element; ``` -Defined in: [packages/solid-form/src/createField.tsx:414](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx#L414) +Defined in: [packages/solid-form/src/createField.tsx:402](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx#L402) A type alias representing a field component for a specific form data type. diff --git a/docs/framework/solid/reference/type-aliases/FormGroupComponent.md b/docs/framework/solid/reference/type-aliases/FormGroupComponent.md index 40e2df8bb3..8560de96f7 100644 --- a/docs/framework/solid/reference/type-aliases/FormGroupComponent.md +++ b/docs/framework/solid/reference/type-aliases/FormGroupComponent.md @@ -7,7 +7,7 @@ title: FormGroupComponent type FormGroupComponent = (props) => JSXElement; ``` -Defined in: [packages/solid-form/src/createFormGroup.tsx:350](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createFormGroup.tsx#L350) +Defined in: [packages/solid-form/src/createFormGroup.tsx:329](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createFormGroup.tsx#L329) A type alias representing a form group component for a specific form data type. diff --git a/docs/framework/solid/reference/type-aliases/LensFieldComponent.md b/docs/framework/solid/reference/type-aliases/LensFieldComponent.md index 8f31433b7b..7b294cfc89 100644 --- a/docs/framework/solid/reference/type-aliases/LensFieldComponent.md +++ b/docs/framework/solid/reference/type-aliases/LensFieldComponent.md @@ -10,7 +10,7 @@ type LensFieldComponent = JSX.Element; ``` -Defined in: [packages/solid-form/src/createField.tsx:575](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx#L575) +Defined in: [packages/solid-form/src/createField.tsx:551](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx#L551) A type alias representing a field component for a form lens data type. diff --git a/docs/framework/solid/reference/variables/useStore.md b/docs/framework/solid/reference/variables/useStore.md index 4c5e0bc529..b8a963f07a 100644 --- a/docs/framework/solid/reference/variables/useStore.md +++ b/docs/framework/solid/reference/variables/useStore.md @@ -7,7 +7,7 @@ title: useStore const useStore: (source, selector?, compare?) => Accessor; ``` -Defined in: node\_modules/.pnpm/@tanstack+solid-store@0.11.0\_solid-js@1.9.13/node\_modules/@tanstack/solid-store/dist/useStore.d.ts:14 +Defined in: node\_modules/.pnpm/@tanstack+solid-store@0.11.1\_solid-js@1.9.15/node\_modules/@tanstack/solid-store/dist/useStore.d.ts:14 Deprecated alias for [useSelector](../functions/useSelector.md). diff --git a/docs/framework/vue/reference/functions/useField.md b/docs/framework/vue/reference/functions/useField.md index e0b034e064..795748b6ab 100644 --- a/docs/framework/vue/reference/functions/useField.md +++ b/docs/framework/vue/reference/functions/useField.md @@ -7,7 +7,7 @@ title: useField function useField(opts): object; ``` -Defined in: [packages/vue-form/src/useField.tsx:189](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L189) +Defined in: [packages/vue-form/src/useField.tsx:185](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L185) ## Type Parameters diff --git a/docs/framework/vue/reference/functions/useFormGroup.md b/docs/framework/vue/reference/functions/useFormGroup.md index cc250b5e90..54836eb975 100644 --- a/docs/framework/vue/reference/functions/useFormGroup.md +++ b/docs/framework/vue/reference/functions/useFormGroup.md @@ -7,7 +7,7 @@ title: useFormGroup function useFormGroup(opts): object; ``` -Defined in: [packages/vue-form/src/useFormGroup.tsx:221](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useFormGroup.tsx#L221) +Defined in: [packages/vue-form/src/useFormGroup.tsx:214](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useFormGroup.tsx#L214) ## Type Parameters diff --git a/docs/framework/vue/reference/functions/useSelector.md b/docs/framework/vue/reference/functions/useSelector.md index fe1fdfc927..a0c98f3210 100644 --- a/docs/framework/vue/reference/functions/useSelector.md +++ b/docs/framework/vue/reference/functions/useSelector.md @@ -10,7 +10,7 @@ function useSelector( options?): Readonly>; ``` -Defined in: node\_modules/.pnpm/@tanstack+vue-store@0.11.0\_vue@3.5.34\_typescript@5.9.3\_/node\_modules/@tanstack/vue-store/dist/useSelector.d.ts:33 +Defined in: node\_modules/.pnpm/@tanstack+vue-store@0.11.1\_vue@3.5.43\_typescript@5.9.3\_/node\_modules/@tanstack/vue-store/dist/useSelector.d.ts:33 Selects a slice of state from an atom or store and subscribes the component to that selection. diff --git a/docs/framework/vue/reference/interfaces/VueFieldApi.md b/docs/framework/vue/reference/interfaces/VueFieldApi.md index 4016e7e5d7..018c909818 100644 --- a/docs/framework/vue/reference/interfaces/VueFieldApi.md +++ b/docs/framework/vue/reference/interfaces/VueFieldApi.md @@ -3,7 +3,7 @@ id: VueFieldApi title: VueFieldApi --- -Defined in: [packages/vue-form/src/useField.tsx:159](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L159) +Defined in: [packages/vue-form/src/useField.tsx:155](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L155) ## Type Parameters @@ -63,4 +63,4 @@ Defined in: [packages/vue-form/src/useField.tsx:159](https://github.com/TanStack Field: FieldComponent; ``` -Defined in: [packages/vue-form/src/useField.tsx:173](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L173) +Defined in: [packages/vue-form/src/useField.tsx:169](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L169) diff --git a/docs/framework/vue/reference/interfaces/VueFormGroupApi.md b/docs/framework/vue/reference/interfaces/VueFormGroupApi.md index 677c652736..afa52256fa 100644 --- a/docs/framework/vue/reference/interfaces/VueFormGroupApi.md +++ b/docs/framework/vue/reference/interfaces/VueFormGroupApi.md @@ -3,7 +3,7 @@ id: VueFormGroupApi title: VueFormGroupApi --- -Defined in: [packages/vue-form/src/useFormGroup.tsx:191](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useFormGroup.tsx#L191) +Defined in: [packages/vue-form/src/useFormGroup.tsx:184](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useFormGroup.tsx#L184) ## Type Parameters @@ -63,4 +63,4 @@ Defined in: [packages/vue-form/src/useFormGroup.tsx:191](https://github.com/TanS FormGroup: FormGroupComponent; ``` -Defined in: [packages/vue-form/src/useFormGroup.tsx:205](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useFormGroup.tsx#L205) +Defined in: [packages/vue-form/src/useFormGroup.tsx:198](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useFormGroup.tsx#L198) diff --git a/docs/framework/vue/reference/type-aliases/FieldComponentBoundProps.md b/docs/framework/vue/reference/type-aliases/FieldComponentBoundProps.md index e33e21948f..cf4a0df49c 100644 --- a/docs/framework/vue/reference/type-aliases/FieldComponentBoundProps.md +++ b/docs/framework/vue/reference/type-aliases/FieldComponentBoundProps.md @@ -7,7 +7,7 @@ title: FieldComponentBoundProps type FieldComponentBoundProps = UseFieldOptionsBound; ``` -Defined in: [packages/vue-form/src/useField.tsx:444](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L444) +Defined in: [packages/vue-form/src/useField.tsx:432](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L432) ## Type Parameters diff --git a/docs/framework/vue/reference/type-aliases/FieldComponentProps.md b/docs/framework/vue/reference/type-aliases/FieldComponentProps.md index 212a14e332..3d3650d4f7 100644 --- a/docs/framework/vue/reference/type-aliases/FieldComponentProps.md +++ b/docs/framework/vue/reference/type-aliases/FieldComponentProps.md @@ -7,7 +7,7 @@ title: FieldComponentProps type FieldComponentProps = UseFieldOptions; ``` -Defined in: [packages/vue-form/src/useField.tsx:386](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L386) +Defined in: [packages/vue-form/src/useField.tsx:378](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L378) ## Type Parameters diff --git a/docs/framework/vue/reference/type-aliases/FormGroupComponentBoundProps.md b/docs/framework/vue/reference/type-aliases/FormGroupComponentBoundProps.md index 72750c90eb..83504d7193 100644 --- a/docs/framework/vue/reference/type-aliases/FormGroupComponentBoundProps.md +++ b/docs/framework/vue/reference/type-aliases/FormGroupComponentBoundProps.md @@ -7,7 +7,7 @@ title: FormGroupComponentBoundProps type FormGroupComponentBoundProps = FormGroupOptions; ``` -Defined in: [packages/vue-form/src/useFormGroup.tsx:384](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useFormGroup.tsx#L384) +Defined in: [packages/vue-form/src/useFormGroup.tsx:363](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useFormGroup.tsx#L363) ## Type Parameters diff --git a/docs/framework/vue/reference/type-aliases/FormGroupComponentProps.md b/docs/framework/vue/reference/type-aliases/FormGroupComponentProps.md index bce3f5bd20..9895554300 100644 --- a/docs/framework/vue/reference/type-aliases/FormGroupComponentProps.md +++ b/docs/framework/vue/reference/type-aliases/FormGroupComponentProps.md @@ -7,7 +7,7 @@ title: FormGroupComponentProps type FormGroupComponentProps = FormGroupApiOptions; ``` -Defined in: [packages/vue-form/src/useFormGroup.tsx:318](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useFormGroup.tsx#L318) +Defined in: [packages/vue-form/src/useFormGroup.tsx:304](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useFormGroup.tsx#L304) ## Type Parameters diff --git a/docs/framework/vue/reference/variables/Field.md b/docs/framework/vue/reference/variables/Field.md index 4114e57f7a..7f66263594 100644 --- a/docs/framework/vue/reference/variables/Field.md +++ b/docs/framework/vue/reference/variables/Field.md @@ -20,7 +20,7 @@ const Field: ; ``` -Defined in: [packages/vue-form/src/useField.tsx:480](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L480) +Defined in: [packages/vue-form/src/useField.tsx:464](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L464) ## Parameters diff --git a/docs/framework/vue/reference/variables/FormGroup.md b/docs/framework/vue/reference/variables/FormGroup.md index 8bb5526f2a..35574dbe4d 100644 --- a/docs/framework/vue/reference/variables/FormGroup.md +++ b/docs/framework/vue/reference/variables/FormGroup.md @@ -20,7 +20,7 @@ const FormGroup: ; ``` -Defined in: [packages/vue-form/src/useFormGroup.tsx:450](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useFormGroup.tsx#L450) +Defined in: [packages/vue-form/src/useFormGroup.tsx:422](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useFormGroup.tsx#L422) ## Parameters diff --git a/docs/framework/vue/reference/variables/useStore.md b/docs/framework/vue/reference/variables/useStore.md index 59c7e1df9f..5945e5d52a 100644 --- a/docs/framework/vue/reference/variables/useStore.md +++ b/docs/framework/vue/reference/variables/useStore.md @@ -7,7 +7,7 @@ title: useStore const useStore: (source, selector?, compare?) => Readonly>; ``` -Defined in: node\_modules/.pnpm/@tanstack+vue-store@0.11.0\_vue@3.5.34\_typescript@5.9.3\_/node\_modules/@tanstack/vue-store/dist/useStore.d.ts:14 +Defined in: node\_modules/.pnpm/@tanstack+vue-store@0.11.1\_vue@3.5.43\_typescript@5.9.3\_/node\_modules/@tanstack/vue-store/dist/useStore.d.ts:14 Deprecated alias for [useSelector](../functions/useSelector.md). diff --git a/docs/installation.md b/docs/installation.md index e23e6ecd90..10c49822bc 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -13,6 +13,7 @@ angular: @tanstack/angular-form solid: @tanstack/solid-form lit: @tanstack/lit-form svelte: @tanstack/svelte-form +octane: @tanstack/octane-form diff --git a/docs/overview.md b/docs/overview.md index 4ea563e014..e23f0fea9b 100644 --- a/docs/overview.md +++ b/docs/overview.md @@ -779,18 +779,22 @@ export class TanStackFormDemo extends LitElement { field.handleChange(target.value) }}" /> - ${field.state.meta.isTouched && !field.state.meta.isValid - ? html`${repeat( - field.state.meta.errors, - (__, idx) => idx, - (error) => { - return html`

${error}
` - }, - )}` - : nothing} - ${field.state.meta.isValidating - ? html`

Validating...

` - : nothing} + ${ + field.state.meta.isTouched && !field.state.meta.isValid + ? html`${repeat( + field.state.meta.errors, + (__, idx) => idx, + (error) => { + return html`
${error}
` + }, + )}` + : nothing + } + ${ + field.state.meta.isValidating + ? html`

Validating...

` + : nothing + } ` }, )} diff --git a/docs/reference/classes/FieldApi.md b/docs/reference/classes/FieldApi.md index 0510de5191..2fc7757006 100644 --- a/docs/reference/classes/FieldApi.md +++ b/docs/reference/classes/FieldApi.md @@ -3,7 +3,7 @@ id: FieldApi title: FieldApi --- -Defined in: [packages/form-core/src/FieldApi.ts:520](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L520) +Defined in: [packages/form-core/src/FieldApi.ts:494](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L494) A class representing the API for managing a form field. @@ -115,7 +115,7 @@ the `new FieldApi` constructor. new FieldApi(opts): FieldApi; ``` -Defined in: [packages/form-core/src/FieldApi.ts:712](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L712) +Defined in: [packages/form-core/src/FieldApi.ts:673](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L673) Initializes a new `FieldApi` instance. @@ -137,7 +137,7 @@ Initializes a new `FieldApi` instance. form: FormApi; ``` -Defined in: [packages/form-core/src/FieldApi.ts:612](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L612) +Defined in: [packages/form-core/src/FieldApi.ts:573](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L573) A reference to the form API instance. @@ -155,7 +155,7 @@ FieldLikeAPI.form name: TName; ``` -Defined in: [packages/form-core/src/FieldApi.ts:640](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L640) +Defined in: [packages/form-core/src/FieldApi.ts:601](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L601) The field name. @@ -173,7 +173,7 @@ FieldLikeAPI.name options: FieldApiOptions; ``` -Defined in: [packages/form-core/src/FieldApi.ts:644](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L644) +Defined in: [packages/form-core/src/FieldApi.ts:605](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L605) The field options. @@ -191,7 +191,7 @@ FieldLikeAPI.options store: ReadonlyStore>; ``` -Defined in: [packages/form-core/src/FieldApi.ts:672](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L672) +Defined in: [packages/form-core/src/FieldApi.ts:633](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L633) The field state store. @@ -209,7 +209,7 @@ FieldLikeAPI.store timeoutIds: object; ``` -Defined in: [packages/form-core/src/FieldApi.ts:703](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L703) +Defined in: [packages/form-core/src/FieldApi.ts:664](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L664) #### formListeners @@ -239,7 +239,7 @@ validations: Record | null>; get state(): FieldLikeState; ``` -Defined in: [packages/form-core/src/FieldApi.ts:700](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L700) +Defined in: [packages/form-core/src/FieldApi.ts:661](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L661) The current field state. @@ -255,7 +255,7 @@ The current field state. clearValues(options?): void; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1214](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1214) +Defined in: [packages/form-core/src/FieldApi.ts:1175](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1175) Clear all values from the array. @@ -277,7 +277,7 @@ Clear all values from the array. getInfo(): FieldInfo; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1100](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1100) +Defined in: [packages/form-core/src/FieldApi.ts:1061](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1061) Gets the field information object. @@ -299,7 +299,7 @@ FieldLikeAPI.getInfo getMeta(): FieldLikeMeta; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1064](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1064) +Defined in: [packages/form-core/src/FieldApi.ts:1025](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1025) #### Returns @@ -319,7 +319,7 @@ FieldLikeAPI.getMeta getValue(): TData; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1041](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1041) +Defined in: [packages/form-core/src/FieldApi.ts:1002](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1002) Gets the current field value. @@ -339,7 +339,7 @@ Use `field.state.value` instead. handleBlur(): void; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1739](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1739) +Defined in: [packages/form-core/src/FieldApi.ts:1700](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1700) Handles the blur event. @@ -355,7 +355,7 @@ Handles the blur event. handleChange(updater): void; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1732](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1732) +Defined in: [packages/form-core/src/FieldApi.ts:1693](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1693) Handles the change event. @@ -380,7 +380,7 @@ insertValue( options?): void; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1123](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1123) +Defined in: [packages/form-core/src/FieldApi.ts:1084](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1084) Inserts a value at the specified index, shifting the subsequent values to the right. @@ -410,7 +410,7 @@ Inserts a value at the specified index, shifting the subsequent values to the ri mount(): () => void; ``` -Defined in: [packages/form-core/src/FieldApi.ts:859](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L859) +Defined in: [packages/form-core/src/FieldApi.ts:820](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L820) Mounts the field instance to the form. @@ -443,7 +443,7 @@ moveValue( options?): void; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1198](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1198) +Defined in: [packages/form-core/src/FieldApi.ts:1159](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1159) Moves the value at the first specified index to the second specified index. @@ -475,7 +475,7 @@ parseValueWithSchema(schema): | undefined; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1782](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1782) +Defined in: [packages/form-core/src/FieldApi.ts:1743](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1743) Parses the field's value with the given schema and returns issues (if any). This method does NOT set any internal errors. @@ -503,7 +503,7 @@ parseValueWithSchemaAsync(schema): Promise< | undefined>; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1794](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1794) +Defined in: [packages/form-core/src/FieldApi.ts:1755](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1755) Parses the field's value with the given schema and returns issues (if any). This method does NOT set any internal errors. @@ -530,7 +530,7 @@ The standard schema to parse this field's value with. pushValue(value, options?): void; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1105](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1105) +Defined in: [packages/form-core/src/FieldApi.ts:1066](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1066) Pushes a new value to the field. @@ -556,7 +556,7 @@ Pushes a new value to the field. removeValue(index, options?): void; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1163](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1163) +Defined in: [packages/form-core/src/FieldApi.ts:1124](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1124) Removes a value at the specified index. @@ -585,7 +585,7 @@ replaceValue( options?): void; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1143](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1143) +Defined in: [packages/form-core/src/FieldApi.ts:1104](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1104) Replaces a value at the specified index. @@ -615,7 +615,7 @@ Replaces a value at the specified index. setErrorMap(errorMap): void; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1755](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1755) +Defined in: [packages/form-core/src/FieldApi.ts:1716](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1716) Updates the field's errorMap @@ -637,7 +637,7 @@ Updates the field's errorMap setMeta(updater): void; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1069](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1069) +Defined in: [packages/form-core/src/FieldApi.ts:1030](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1030) Sets the field metadata. @@ -665,7 +665,7 @@ FieldLikeAPI.setMeta setValue(updater, options?): void; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1048](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1048) +Defined in: [packages/form-core/src/FieldApi.ts:1009](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1009) Sets the field value and run the `change` validator. @@ -700,7 +700,7 @@ swapValues( options?): void; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1178](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1178) +Defined in: [packages/form-core/src/FieldApi.ts:1139](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1139) Swaps the values at the specified indices. @@ -730,7 +730,7 @@ Swaps the values at the specified indices. update(opts): void; ``` -Defined in: [packages/form-core/src/FieldApi.ts:990](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L990) +Defined in: [packages/form-core/src/FieldApi.ts:951](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L951) Updates the field instance with new options. @@ -752,7 +752,7 @@ Updates the field instance with new options. validate(cause, opts?): unknown[] | Promise; ``` -Defined in: [packages/form-core/src/FieldApi.ts:1615](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1615) +Defined in: [packages/form-core/src/FieldApi.ts:1576](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1576) Validates the field value. diff --git a/docs/reference/classes/FormApi.md b/docs/reference/classes/FormApi.md index 65eb5f3386..e81fd8d30a 100644 --- a/docs/reference/classes/FormApi.md +++ b/docs/reference/classes/FormApi.md @@ -3,7 +3,7 @@ id: FormApi title: FormApi --- -Defined in: [packages/form-core/src/FormApi.ts:954](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L954) +Defined in: [packages/form-core/src/FormApi.ts:952](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L952) A class representing the Form API. It handles the logic and interactions with the form state. @@ -69,7 +69,7 @@ However, if you need to create a new instance manually, you can do so by calling new FormApi(opts?): FormApi; ``` -Defined in: [packages/form-core/src/FormApi.ts:1073](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1073) +Defined in: [packages/form-core/src/FormApi.ts:1071](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1071) Constructs a new `FormApi` instance with the given form options. @@ -91,7 +91,7 @@ Constructs a new `FormApi` instance with the given form options. baseStore: Store>; ``` -Defined in: [packages/form-core/src/FormApi.ts:986](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L986) +Defined in: [packages/form-core/src/FormApi.ts:984](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L984) *** @@ -101,7 +101,7 @@ Defined in: [packages/form-core/src/FormApi.ts:986](https://github.com/TanStack/ fieldInfo: Partial, FieldInfo>> = {}; ``` -Defined in: [packages/form-core/src/FormApi.ts:1042](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1042) +Defined in: [packages/form-core/src/FormApi.ts:1040](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1040) A record of field information for each field in the form. @@ -113,7 +113,7 @@ A record of field information for each field in the form. fieldMetaDerived: Store, AnyFieldLikeMeta>>>; ``` -Defined in: [packages/form-core/src/FormApi.ts:1001](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1001) +Defined in: [packages/form-core/src/FormApi.ts:999](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L999) *** @@ -123,7 +123,7 @@ Defined in: [packages/form-core/src/FormApi.ts:1001](https://github.com/TanStack formGroupApis: Set; ``` -Defined in: [packages/form-core/src/FormApi.ts:1048](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1048) +Defined in: [packages/form-core/src/FormApi.ts:1046](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1046) The set of currently-mounted `FormGroupApi` instances belonging to this form. Used by `FieldApi.validate` to cascade field-level changes @@ -137,7 +137,7 @@ into the validators of any group that encompasses the field. formGroupMetaDerived: ReadonlyStore>; ``` -Defined in: [packages/form-core/src/FormApi.ts:1023](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1023) +Defined in: [packages/form-core/src/FormApi.ts:1021](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1021) A derived store of every mounted `FormGroupApi`'s `meta`, keyed by group name. Mirrors `fieldMetaDerived` for fields: per-group `meta` @@ -153,7 +153,7 @@ from a `FormGroupApi.store` instance stay minimal. options: FormOptions = {}; ``` -Defined in: [packages/form-core/src/FormApi.ts:971](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L971) +Defined in: [packages/form-core/src/FormApi.ts:969](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L969) The options for the form. @@ -165,7 +165,7 @@ The options for the form. store: ReadonlyStore>; ``` -Defined in: [packages/form-core/src/FormApi.ts:1024](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1024) +Defined in: [packages/form-core/src/FormApi.ts:1022](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1022) ## Accessors @@ -177,7 +177,7 @@ Defined in: [packages/form-core/src/FormApi.ts:1024](https://github.com/TanStack get formId(): string; ``` -Defined in: [packages/form-core/src/FormApi.ts:1629](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1629) +Defined in: [packages/form-core/src/FormApi.ts:1625](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1625) ##### Returns @@ -193,7 +193,7 @@ Defined in: [packages/form-core/src/FormApi.ts:1629](https://github.com/TanStack get state(): FormState; ``` -Defined in: [packages/form-core/src/FormApi.ts:1049](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1049) +Defined in: [packages/form-core/src/FormApi.ts:1047](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1047) ##### Returns @@ -207,7 +207,7 @@ Defined in: [packages/form-core/src/FormApi.ts:1049](https://github.com/TanStack _handleSubmit(submitMeta?): Promise; ``` -Defined in: [packages/form-core/src/FormApi.ts:2420](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2420) +Defined in: [packages/form-core/src/FormApi.ts:2413](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2413) Handles the form submission, performs validation, and calls the appropriate onSubmit or onSubmitInvalid callbacks. @@ -229,7 +229,7 @@ Handles the form submission, performs validation, and calls the appropriate onSu clearFieldValues(field, options?): void; ``` -Defined in: [packages/form-core/src/FormApi.ts:2903](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2903) +Defined in: [packages/form-core/src/FormApi.ts:2896](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2896) Clear all values within an array field. @@ -267,7 +267,7 @@ FormLikeAPI.clearFieldValues deleteField(field): void; ``` -Defined in: [packages/form-core/src/FormApi.ts:2691](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2691) +Defined in: [packages/form-core/src/FormApi.ts:2684](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2684) #### Type Parameters @@ -299,7 +299,7 @@ FormLikeAPI.deleteField getAllErrors(): object; ``` -Defined in: [packages/form-core/src/FormApi.ts:3026](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L3026) +Defined in: [packages/form-core/src/FormApi.ts:3019](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L3019) Returns form and field level errors @@ -352,7 +352,7 @@ errors: NonNullable< getFieldInfo(field): FieldInfo; ``` -Defined in: [packages/form-core/src/FormApi.ts:2595](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2595) +Defined in: [packages/form-core/src/FormApi.ts:2588](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2588) Gets the field info of the specified field. @@ -380,7 +380,7 @@ Gets the field info of the specified field. getFieldMeta(field): AnyFieldLikeMeta | undefined; ``` -Defined in: [packages/form-core/src/FormApi.ts:2577](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2577) +Defined in: [packages/form-core/src/FormApi.ts:2570](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2570) Gets the metadata of the specified field. @@ -414,7 +414,7 @@ FormLikeAPI.getFieldMeta getFieldValue(field): DeepValue; ``` -Defined in: [packages/form-core/src/FormApi.ts:2570](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2570) +Defined in: [packages/form-core/src/FormApi.ts:2563](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2563) Gets the value of the specified field. @@ -448,7 +448,7 @@ FormLikeAPI.getFieldValue getFormGroupMeta(name): AnyFormGroupMeta | undefined; ``` -Defined in: [packages/form-core/src/FormApi.ts:2588](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2588) +Defined in: [packages/form-core/src/FormApi.ts:2581](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2581) Gets the derived `meta` of the form group registered at the given name. Mirrors `getFieldMeta` for fields. Returns `undefined` if no @@ -474,7 +474,7 @@ name. Mirrors `getFieldMeta` for fields. Returns `undefined` if no handleSubmit(): Promise; ``` -Defined in: [packages/form-core/src/FormApi.ts:2411](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2411) +Defined in: [packages/form-core/src/FormApi.ts:2404](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2404) Handles the form submission, performs validation, and calls the appropriate onSubmit or onSubmitInvalid callbacks. @@ -494,7 +494,7 @@ FormLikeAPI.handleSubmit handleSubmit(submitMeta): Promise; ``` -Defined in: [packages/form-core/src/FormApi.ts:2412](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2412) +Defined in: [packages/form-core/src/FormApi.ts:2405](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2405) ##### Parameters @@ -524,7 +524,7 @@ insertFieldValue( options?): Promise; ``` -Defined in: [packages/form-core/src/FormApi.ts:2731](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2731) +Defined in: [packages/form-core/src/FormApi.ts:2724](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2724) #### Type Parameters @@ -568,7 +568,7 @@ FormLikeAPI.insertFieldValue mount(): () => void; ``` -Defined in: [packages/form-core/src/FormApi.ts:1658](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1658) +Defined in: [packages/form-core/src/FormApi.ts:1654](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1654) #### Returns @@ -592,7 +592,7 @@ moveFieldValues( options?): void; ``` -Defined in: [packages/form-core/src/FormApi.ts:2871](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2871) +Defined in: [packages/form-core/src/FormApi.ts:2864](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2864) Moves the value at the first specified index to the second specified index within an array field. @@ -643,7 +643,7 @@ parseValuesWithSchema(schema): | undefined; ``` -Defined in: [packages/form-core/src/FormApi.ts:3092](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L3092) +Defined in: [packages/form-core/src/FormApi.ts:3085](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L3085) Parses the form's values with a given standard schema and returns issues (if any). This method does NOT set any internal errors. @@ -677,7 +677,7 @@ parseValuesWithSchemaAsync(schema): Promise< | undefined>; ``` -Defined in: [packages/form-core/src/FormApi.ts:3104](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L3104) +Defined in: [packages/form-core/src/FormApi.ts:3097](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L3097) Parses the form's values with a given standard schema and returns issues (if any). This method does NOT set any internal errors. @@ -710,7 +710,7 @@ pushFieldValue( options?): void; ``` -Defined in: [packages/form-core/src/FormApi.ts:2715](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2715) +Defined in: [packages/form-core/src/FormApi.ts:2708](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2708) Pushes a value into an array field. @@ -755,7 +755,7 @@ removeFieldValue( options?): Promise; ``` -Defined in: [packages/form-core/src/FormApi.ts:2799](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2799) +Defined in: [packages/form-core/src/FormApi.ts:2792](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2792) Removes a value from an array field at the specified index. @@ -801,7 +801,7 @@ replaceFieldValue( options?): Promise; ``` -Defined in: [packages/form-core/src/FormApi.ts:2768](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2768) +Defined in: [packages/form-core/src/FormApi.ts:2761](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2761) Replaces a value into an array field at the specified index. @@ -847,7 +847,7 @@ FormLikeAPI.replaceFieldValue reset(values?, opts?): void; ``` -Defined in: [packages/form-core/src/FormApi.ts:1810](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1810) +Defined in: [packages/form-core/src/FormApi.ts:1806](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1806) Resets the form state to the default values. If values are provided, the form will be reset to those values instead and the default values will be updated. @@ -880,7 +880,7 @@ Optional options to control the reset behavior. resetField(field): void; ``` -Defined in: [packages/form-core/src/FormApi.ts:2938](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2938) +Defined in: [packages/form-core/src/FormApi.ts:2931](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2931) Resets the field value and meta to default state @@ -914,7 +914,7 @@ FormLikeAPI.resetField resetFieldMeta(fieldMeta): Partial>; ``` -Defined in: [packages/form-core/src/FormApi.ts:2635](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2635) +Defined in: [packages/form-core/src/FormApi.ts:2628](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2628) resets every field's meta @@ -942,7 +942,7 @@ resets every field's meta setErrorMap(errorMap): void; ``` -Defined in: [packages/form-core/src/FormApi.ts:2962](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2962) +Defined in: [packages/form-core/src/FormApi.ts:2955](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2955) Updates the form's errorMap @@ -964,7 +964,7 @@ Updates the form's errorMap setFieldMeta(field, updater): void; ``` -Defined in: [packages/form-core/src/FormApi.ts:2614](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2614) +Defined in: [packages/form-core/src/FormApi.ts:2607](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2607) Updates the metadata of the specified field. @@ -1005,7 +1005,7 @@ setFieldValue( opts?): void; ``` -Defined in: [packages/form-core/src/FormApi.ts:2651](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2651) +Defined in: [packages/form-core/src/FormApi.ts:2644](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2644) Sets the value of the specified field and optionally updates the touched state. @@ -1051,7 +1051,7 @@ swapFieldValues( options?): void; ``` -Defined in: [packages/form-core/src/FormApi.ts:2839](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2839) +Defined in: [packages/form-core/src/FormApi.ts:2832](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L2832) Swaps the values at the specified indices within an array field. @@ -1097,7 +1097,7 @@ FormLikeAPI.swapFieldValues update(options?): void; ``` -Defined in: [packages/form-core/src/FormApi.ts:1732](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1732) +Defined in: [packages/form-core/src/FormApi.ts:1728](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1728) Updates the form options and form state. @@ -1119,7 +1119,7 @@ Updates the form options and form state. validateAllFields(cause): Promise; ``` -Defined in: [packages/form-core/src/FormApi.ts:1856](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1856) +Defined in: [packages/form-core/src/FormApi.ts:1852](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1852) Validates all fields according to the FIELD level validators. This will ignore FORM level validators, use form.validate({ValidationCause}) for a complete validation @@ -1151,7 +1151,7 @@ validateArrayFieldsStartingFrom( cause): Promise; ``` -Defined in: [packages/form-core/src/FormApi.ts:1892](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1892) +Defined in: [packages/form-core/src/FormApi.ts:1888](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1888) Validates the children of a specified array in the form starting from a given index until the end using the correct handlers for a given validation type. @@ -1193,7 +1193,7 @@ FormLikeAPI.validateArrayFieldsStartingFrom validateField(field, cause): any[] | Promise; ``` -Defined in: [packages/form-core/src/FormApi.ts:1933](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1933) +Defined in: [packages/form-core/src/FormApi.ts:1929](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1929) Validates a specified field in the form using the correct handlers for a given validation type. diff --git a/docs/reference/classes/FormGroupApi.md b/docs/reference/classes/FormGroupApi.md index bae71aa899..1005d4bb67 100644 --- a/docs/reference/classes/FormGroupApi.md +++ b/docs/reference/classes/FormGroupApi.md @@ -3,7 +3,7 @@ id: FormGroupApi title: FormGroupApi --- -Defined in: [packages/form-core/src/FormGroupApi.ts:970](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L970) +Defined in: [packages/form-core/src/FormGroupApi.ts:898](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L898) ## Type Parameters @@ -119,7 +119,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:970](https://github.com/TanS new FormGroupApi(opts): FormGroupApi; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:1217](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1217) +Defined in: [packages/form-core/src/FormGroupApi.ts:1132](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1132) #### Parameters @@ -139,7 +139,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:1217](https://github.com/Tan form: FormApi; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:1079](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1079) +Defined in: [packages/form-core/src/FormGroupApi.ts:994](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L994) A reference to the form API instance. @@ -157,7 +157,7 @@ FieldLikeAPI.form name: TName; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:1108](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1108) +Defined in: [packages/form-core/src/FormGroupApi.ts:1023](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1023) The field name. @@ -175,7 +175,7 @@ FieldLikeAPI.name options: FormGroupApiOptions; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:1112](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1112) +Defined in: [packages/form-core/src/FormGroupApi.ts:1027](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1027) The field options. @@ -193,7 +193,7 @@ FieldLikeAPI.options store: ReadonlyStore>; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:1141](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1141) +Defined in: [packages/form-core/src/FormGroupApi.ts:1056](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1056) The field state store. @@ -211,7 +211,7 @@ FieldLikeAPI.store timeoutIds: object; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:1199](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1199) +Defined in: [packages/form-core/src/FormGroupApi.ts:1114](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1114) #### formListeners @@ -241,7 +241,7 @@ validations: Record | null>; get state(): FormGroupStoreState; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:1169](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1169) +Defined in: [packages/form-core/src/FormGroupApi.ts:1084](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1084) The current field state. @@ -257,7 +257,7 @@ The current field state. _handleSubmit(submitMeta?): Promise; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2404](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2404) +Defined in: [packages/form-core/src/FormGroupApi.ts:2316](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2316) Handles the form submission, performs validation, and calls the appropriate onSubmit or onSubmitInvalid callbacks. @@ -279,7 +279,7 @@ Handles the form submission, performs validation, and calls the appropriate onSu areRelatedFieldsValid(): boolean; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2293](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2293) +Defined in: [packages/form-core/src/FormGroupApi.ts:2205](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2205) #### Returns @@ -293,7 +293,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:2293](https://github.com/Tan clearFieldValues(field): void; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2274](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2274) +Defined in: [packages/form-core/src/FormGroupApi.ts:2186](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2186) #### Type Parameters @@ -325,7 +325,7 @@ FormLikeAPI.clearFieldValues deleteField(field): void; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2229](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2229) +Defined in: [packages/form-core/src/FormGroupApi.ts:2141](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2141) #### Type Parameters @@ -357,7 +357,7 @@ FormLikeAPI.deleteField getFieldMeta(field): AnyFieldLikeMeta | undefined; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2209](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2209) +Defined in: [packages/form-core/src/FormGroupApi.ts:2121](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2121) #### Type Parameters @@ -389,7 +389,7 @@ FormLikeAPI.getFieldMeta getFieldValue(field): DeepValue; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2203](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2203) +Defined in: [packages/form-core/src/FormGroupApi.ts:2115](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2115) #### Type Parameters @@ -421,7 +421,7 @@ FormLikeAPI.getFieldValue getInfo(): FieldInfo; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:1636](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1636) +Defined in: [packages/form-core/src/FormGroupApi.ts:1551](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1551) Gets the field information object. @@ -443,7 +443,7 @@ FieldLikeAPI.getInfo getMeta(): FormGroupMeta; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:1600](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1600) +Defined in: [packages/form-core/src/FormGroupApi.ts:1515](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1515) #### Returns @@ -465,7 +465,7 @@ FieldLikeAPI.getMeta handleSubmit(): Promise; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2395](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2395) +Defined in: [packages/form-core/src/FormGroupApi.ts:2307](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2307) Handles the form submission, performs validation, and calls the appropriate onSubmit or onSubmitInvalid callbacks. @@ -485,7 +485,7 @@ FormLikeAPI.handleSubmit handleSubmit(submitMeta): Promise; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2396](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2396) +Defined in: [packages/form-core/src/FormGroupApi.ts:2308](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2308) ##### Parameters @@ -514,7 +514,7 @@ insertFieldValue( value): Promise; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2242](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2242) +Defined in: [packages/form-core/src/FormGroupApi.ts:2154](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2154) #### Type Parameters @@ -554,7 +554,7 @@ FormLikeAPI.insertFieldValue mount(): () => void; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:1447](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1447) +Defined in: [packages/form-core/src/FormGroupApi.ts:1362](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1362) #### Returns @@ -583,7 +583,7 @@ moveFieldValues( toIndex): void; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2266](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2266) +Defined in: [packages/form-core/src/FormGroupApi.ts:2178](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2178) #### Type Parameters @@ -623,7 +623,7 @@ FormLikeAPI.moveFieldValues pushFieldValue(field, value): void; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2235](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2235) +Defined in: [packages/form-core/src/FormGroupApi.ts:2147](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2147) #### Type Parameters @@ -659,7 +659,7 @@ FormLikeAPI.pushFieldValue removeFieldValue(field, index): Promise; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2286](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2286) +Defined in: [packages/form-core/src/FormGroupApi.ts:2198](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2198) #### Type Parameters @@ -698,7 +698,7 @@ replaceFieldValue( value): Promise; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2250](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2250) +Defined in: [packages/form-core/src/FormGroupApi.ts:2162](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2162) #### Type Parameters @@ -738,7 +738,7 @@ FormLikeAPI.replaceFieldValue resetField(field): void; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2280](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2280) +Defined in: [packages/form-core/src/FormGroupApi.ts:2192](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2192) #### Type Parameters @@ -770,7 +770,7 @@ FormLikeAPI.resetField setFieldMeta(field, updater): void; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2215](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2215) +Defined in: [packages/form-core/src/FormGroupApi.ts:2127](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2127) #### Type Parameters @@ -806,7 +806,7 @@ FormLikeAPI.setFieldMeta setFieldValue(field, value): void; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2222](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2222) +Defined in: [packages/form-core/src/FormGroupApi.ts:2134](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2134) #### Type Parameters @@ -842,7 +842,7 @@ FormLikeAPI.setFieldValue setMeta(updater): void; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:1605](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1605) +Defined in: [packages/form-core/src/FormGroupApi.ts:1520](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1520) Sets the field metadata. @@ -870,7 +870,7 @@ FieldLikeAPI.setMeta setValue(updater, options?): void; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:1584](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1584) +Defined in: [packages/form-core/src/FormGroupApi.ts:1499](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1499) Sets the field value and run the `change` validator. @@ -905,7 +905,7 @@ swapFieldValues( index2): void; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2258](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2258) +Defined in: [packages/form-core/src/FormGroupApi.ts:2170](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2170) #### Type Parameters @@ -945,7 +945,7 @@ FormLikeAPI.swapFieldValues update(opts): void; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:1356](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1356) +Defined in: [packages/form-core/src/FormGroupApi.ts:1271](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L1271) Updates the field instance with new options. @@ -967,7 +967,7 @@ Updates the field instance with new options. validate(cause, opts?): unknown[] | Promise; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2302](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2302) +Defined in: [packages/form-core/src/FormGroupApi.ts:2214](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2214) Validates the form group and all related children. @@ -1005,7 +1005,7 @@ FieldLikeAPI.validate validateAllFields(cause): Promise; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2158](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2158) +Defined in: [packages/form-core/src/FormGroupApi.ts:2070](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2070) Validates all fields according to the FIELD level validators. This will ignore FORM level validators, use form.validate({ValidationCause}) for a complete validation @@ -1037,7 +1037,7 @@ validateArrayFieldsStartingFrom( cause): Promise; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2186](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2186) +Defined in: [packages/form-core/src/FormGroupApi.ts:2098](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2098) #### Type Parameters @@ -1077,7 +1077,7 @@ FormLikeAPI.validateArrayFieldsStartingFrom validateField(field, cause): any[] | Promise; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:2196](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2196) +Defined in: [packages/form-core/src/FormGroupApi.ts:2108](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L2108) #### Type Parameters diff --git a/docs/reference/functions/createFieldMap.md b/docs/reference/functions/createFieldMap.md index 1d73a22e17..011459a233 100644 --- a/docs/reference/functions/createFieldMap.md +++ b/docs/reference/functions/createFieldMap.md @@ -7,7 +7,7 @@ title: createFieldMap function createFieldMap(values): { [K in string | number | symbol]: K }; ``` -Defined in: [packages/form-core/src/utils.ts:614](https://github.com/TanStack/form/blob/main/packages/form-core/src/utils.ts#L614) +Defined in: [packages/form-core/src/utils.ts:613](https://github.com/TanStack/form/blob/main/packages/form-core/src/utils.ts#L613) ## Type Parameters diff --git a/docs/reference/functions/deepCopy.md b/docs/reference/functions/deepCopy.md index 00bcea75a0..f663d27d04 100644 --- a/docs/reference/functions/deepCopy.md +++ b/docs/reference/functions/deepCopy.md @@ -7,7 +7,7 @@ title: deepCopy function deepCopy(obj): T; ``` -Defined in: [packages/form-core/src/utils.ts:694](https://github.com/TanStack/form/blob/main/packages/form-core/src/utils.ts#L694) +Defined in: [packages/form-core/src/utils.ts:693](https://github.com/TanStack/form/blob/main/packages/form-core/src/utils.ts#L693) ## Type Parameters diff --git a/docs/reference/functions/evaluate.md b/docs/reference/functions/evaluate.md index 34fe8eaa01..668e406daf 100644 --- a/docs/reference/functions/evaluate.md +++ b/docs/reference/functions/evaluate.md @@ -7,7 +7,7 @@ title: evaluate function evaluate(objA, objB): boolean; ``` -Defined in: [packages/form-core/src/utils.ts:483](https://github.com/TanStack/form/blob/main/packages/form-core/src/utils.ts#L483) +Defined in: [packages/form-core/src/utils.ts:482](https://github.com/TanStack/form/blob/main/packages/form-core/src/utils.ts#L482) ## Type Parameters diff --git a/docs/reference/functions/isGlobalFormValidationError.md b/docs/reference/functions/isGlobalFormValidationError.md index cac7afd655..8619bb756c 100644 --- a/docs/reference/functions/isGlobalFormValidationError.md +++ b/docs/reference/functions/isGlobalFormValidationError.md @@ -7,7 +7,7 @@ title: isGlobalFormValidationError function isGlobalFormValidationError(error): error is GlobalFormValidationError; ``` -Defined in: [packages/form-core/src/utils.ts:477](https://github.com/TanStack/form/blob/main/packages/form-core/src/utils.ts#L477) +Defined in: [packages/form-core/src/utils.ts:476](https://github.com/TanStack/form/blob/main/packages/form-core/src/utils.ts#L476) ## Parameters diff --git a/docs/reference/functions/uuid.md b/docs/reference/functions/uuid.md index 164fea770f..1a31587cb7 100644 --- a/docs/reference/functions/uuid.md +++ b/docs/reference/functions/uuid.md @@ -7,7 +7,7 @@ title: uuid function uuid(): string; ``` -Defined in: [packages/form-core/src/utils.ts:653](https://github.com/TanStack/form/blob/main/packages/form-core/src/utils.ts#L653) +Defined in: [packages/form-core/src/utils.ts:652](https://github.com/TanStack/form/blob/main/packages/form-core/src/utils.ts#L652) ## Returns diff --git a/docs/reference/interfaces/BaseFormOptions.md b/docs/reference/interfaces/BaseFormOptions.md index d7db71639e..e448ffe947 100644 --- a/docs/reference/interfaces/BaseFormOptions.md +++ b/docs/reference/interfaces/BaseFormOptions.md @@ -3,7 +3,7 @@ id: BaseFormOptions title: BaseFormOptions --- -Defined in: [packages/form-core/src/FormApi.ts:436](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L436) +Defined in: [packages/form-core/src/FormApi.ts:434](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L434) An object representing the base properties of a form, unrelated to any validators @@ -29,7 +29,7 @@ An object representing the base properties of a form, unrelated to any validator optional defaultValues: TFormData; ``` -Defined in: [packages/form-core/src/FormApi.ts:440](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L440) +Defined in: [packages/form-core/src/FormApi.ts:438](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L438) Set initial values for your form. @@ -41,6 +41,6 @@ Set initial values for your form. optional onSubmitMeta: TSubmitMeta; ``` -Defined in: [packages/form-core/src/FormApi.ts:444](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L444) +Defined in: [packages/form-core/src/FormApi.ts:442](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L442) onSubmitMeta, the data passed from the handleSubmit handler, to the onSubmit function props diff --git a/docs/reference/interfaces/FieldApiOptions.md b/docs/reference/interfaces/FieldApiOptions.md index 3a7b5bb273..e5d6d6bcc6 100644 --- a/docs/reference/interfaces/FieldApiOptions.md +++ b/docs/reference/interfaces/FieldApiOptions.md @@ -3,7 +3,7 @@ id: FieldApiOptions title: FieldApiOptions --- -Defined in: [packages/form-core/src/FieldApi.ts:383](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L383) +Defined in: [packages/form-core/src/FieldApi.ts:370](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L370) ## Extends @@ -111,7 +111,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:383](https://github.com/TanStack optional asyncAlways: boolean; ``` -Defined in: [packages/form-core/src/types.ts:982](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L982) +Defined in: [packages/form-core/src/types.ts:974](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L974) If `true`, always run async validation, even if there are errors emitted during synchronous validation. @@ -129,7 +129,7 @@ FieldLikeApiOptions.asyncAlways optional asyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/types.ts:978](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L978) +Defined in: [packages/form-core/src/types.ts:970](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L970) The default time to debounce async validation if there is not a more specific debounce time passed. @@ -147,7 +147,7 @@ FieldLikeApiOptions.asyncDebounceMs optional defaultMeta: Partial>; ``` -Defined in: [packages/form-core/src/types.ts:986](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L986) +Defined in: [packages/form-core/src/types.ts:978](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L978) An optional object with default metadata for the field. @@ -165,7 +165,7 @@ FieldLikeApiOptions.defaultMeta optional defaultValue: NoInfer; ``` -Defined in: [packages/form-core/src/types.ts:974](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L974) +Defined in: [packages/form-core/src/types.ts:966](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L966) An optional default value for the field. @@ -183,7 +183,7 @@ FieldLikeApiOptions.defaultValue optional disableErrorFlat: boolean; ``` -Defined in: [packages/form-core/src/types.ts:1014](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L1014) +Defined in: [packages/form-core/src/types.ts:1006](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L1006) Disable the `flat(1)` operation on `field.errors`. This is useful if you want to keep the error structure as is. Not suggested for most use-cases. @@ -201,7 +201,7 @@ FieldLikeApiOptions.disableErrorFlat form: FormApi; ``` -Defined in: [packages/form-core/src/types.ts:1094](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L1094) +Defined in: [packages/form-core/src/types.ts:1082](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L1082) #### Inherited from @@ -217,7 +217,7 @@ FieldLikeApiOptions.form optional listeners: FieldListeners; ``` -Defined in: [packages/form-core/src/FieldApi.ts:325](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L325) +Defined in: [packages/form-core/src/FieldApi.ts:316](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L316) A list of listeners which attach to the corresponding events @@ -235,7 +235,7 @@ FieldExtraOptions.listeners name: TName; ``` -Defined in: [packages/form-core/src/types.ts:970](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L970) +Defined in: [packages/form-core/src/types.ts:962](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L962) The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. @@ -253,7 +253,7 @@ FieldLikeApiOptions.name optional validators: FieldValidators; ``` -Defined in: [packages/form-core/src/FieldApi.ts:307](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L307) +Defined in: [packages/form-core/src/FieldApi.ts:298](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L298) A list of validators to pass to the field diff --git a/docs/reference/interfaces/FieldListeners.md b/docs/reference/interfaces/FieldListeners.md index d04ca0d0f9..0df4e5c289 100644 --- a/docs/reference/interfaces/FieldListeners.md +++ b/docs/reference/interfaces/FieldListeners.md @@ -3,7 +3,7 @@ id: FieldListeners title: FieldListeners --- -Defined in: [packages/form-core/src/FieldApi.ts:267](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L267) +Defined in: [packages/form-core/src/FieldApi.ts:262](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L262) ## Type Parameters @@ -27,7 +27,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:267](https://github.com/TanStack optional onBlur: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:274](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L274) +Defined in: [packages/form-core/src/FieldApi.ts:269](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L269) *** @@ -37,7 +37,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:274](https://github.com/TanStack optional onBlurDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:275](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L275) +Defined in: [packages/form-core/src/FieldApi.ts:270](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L270) *** @@ -47,7 +47,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:275](https://github.com/TanStack optional onChange: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:272](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L272) +Defined in: [packages/form-core/src/FieldApi.ts:267](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L267) *** @@ -57,7 +57,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:272](https://github.com/TanStack optional onChangeDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:273](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L273) +Defined in: [packages/form-core/src/FieldApi.ts:268](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L268) *** @@ -67,7 +67,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:273](https://github.com/TanStack optional onGroupSubmit: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:279](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L279) +Defined in: [packages/form-core/src/FieldApi.ts:274](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L274) *** @@ -77,7 +77,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:279](https://github.com/TanStack optional onMount: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:276](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L276) +Defined in: [packages/form-core/src/FieldApi.ts:271](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L271) *** @@ -87,7 +87,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:276](https://github.com/TanStack optional onSubmit: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:278](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L278) +Defined in: [packages/form-core/src/FieldApi.ts:273](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L273) *** @@ -97,4 +97,4 @@ Defined in: [packages/form-core/src/FieldApi.ts:278](https://github.com/TanStack optional onUnmount: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:277](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L277) +Defined in: [packages/form-core/src/FieldApi.ts:272](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L272) diff --git a/docs/reference/interfaces/FieldOptions.md b/docs/reference/interfaces/FieldOptions.md index dc8ba45af5..e25d89fabd 100644 --- a/docs/reference/interfaces/FieldOptions.md +++ b/docs/reference/interfaces/FieldOptions.md @@ -3,7 +3,7 @@ id: FieldOptions title: FieldOptions --- -Defined in: [packages/form-core/src/FieldApi.ts:331](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L331) +Defined in: [packages/form-core/src/FieldApi.ts:322](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L322) An object type representing the options for a field in a form. @@ -69,7 +69,7 @@ An object type representing the options for a field in a form. optional asyncAlways: boolean; ``` -Defined in: [packages/form-core/src/types.ts:982](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L982) +Defined in: [packages/form-core/src/types.ts:974](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L974) If `true`, always run async validation, even if there are errors emitted during synchronous validation. @@ -87,7 +87,7 @@ FieldLikeOptions.asyncAlways optional asyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/types.ts:978](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L978) +Defined in: [packages/form-core/src/types.ts:970](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L970) The default time to debounce async validation if there is not a more specific debounce time passed. @@ -105,7 +105,7 @@ FieldLikeOptions.asyncDebounceMs optional defaultMeta: Partial>; ``` -Defined in: [packages/form-core/src/types.ts:986](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L986) +Defined in: [packages/form-core/src/types.ts:978](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L978) An optional object with default metadata for the field. @@ -123,7 +123,7 @@ FieldLikeOptions.defaultMeta optional defaultValue: NoInfer; ``` -Defined in: [packages/form-core/src/types.ts:974](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L974) +Defined in: [packages/form-core/src/types.ts:966](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L966) An optional default value for the field. @@ -141,7 +141,7 @@ FieldLikeOptions.defaultValue optional disableErrorFlat: boolean; ``` -Defined in: [packages/form-core/src/types.ts:1014](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L1014) +Defined in: [packages/form-core/src/types.ts:1006](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L1006) Disable the `flat(1)` operation on `field.errors`. This is useful if you want to keep the error structure as is. Not suggested for most use-cases. @@ -159,7 +159,7 @@ FieldLikeOptions.disableErrorFlat optional listeners: FieldListeners; ``` -Defined in: [packages/form-core/src/FieldApi.ts:325](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L325) +Defined in: [packages/form-core/src/FieldApi.ts:316](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L316) A list of listeners which attach to the corresponding events @@ -177,7 +177,7 @@ FieldExtraOptions.listeners name: TName; ``` -Defined in: [packages/form-core/src/types.ts:970](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L970) +Defined in: [packages/form-core/src/types.ts:962](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L962) The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. @@ -195,7 +195,7 @@ FieldLikeOptions.name optional validators: FieldValidators; ``` -Defined in: [packages/form-core/src/FieldApi.ts:307](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L307) +Defined in: [packages/form-core/src/FieldApi.ts:298](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L298) A list of validators to pass to the field diff --git a/docs/reference/interfaces/FieldValidators.md b/docs/reference/interfaces/FieldValidators.md index 69f81c39ce..2200e72a52 100644 --- a/docs/reference/interfaces/FieldValidators.md +++ b/docs/reference/interfaces/FieldValidators.md @@ -3,7 +3,7 @@ id: FieldValidators title: FieldValidators --- -Defined in: [packages/form-core/src/FieldApi.ts:179](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L179) +Defined in: [packages/form-core/src/FieldApi.ts:178](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L178) ## Type Parameters @@ -63,7 +63,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:179](https://github.com/TanStack optional onBlur: RejectPromiseValidator; ``` -Defined in: [packages/form-core/src/FieldApi.ts:232](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L232) +Defined in: [packages/form-core/src/FieldApi.ts:227](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L227) An optional function, that runs on the blur event of input. @@ -81,7 +81,7 @@ z.string().min(1) optional onBlurAsync: TOnBlurAsync; ``` -Defined in: [packages/form-core/src/FieldApi.ts:238](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L238) +Defined in: [packages/form-core/src/FieldApi.ts:233](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L233) An optional property similar to `onBlur` but async validation. @@ -99,7 +99,7 @@ z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' }) optional onBlurAsyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:245](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L245) +Defined in: [packages/form-core/src/FieldApi.ts:240](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L240) An optional number to represent how long the `onBlurAsync` should wait before running @@ -113,7 +113,7 @@ If set to a number larger than 0, will debounce the async validation event by th optional onBlurListenTo: DeepKeys[]; ``` -Defined in: [packages/form-core/src/FieldApi.ts:249](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L249) +Defined in: [packages/form-core/src/FieldApi.ts:244](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L244) An optional list of field names that should trigger this field's `onBlur` and `onBlurAsync` events when its value changes @@ -125,7 +125,7 @@ An optional list of field names that should trigger this field's `onBlur` and `o optional onChange: RejectPromiseValidator; ``` -Defined in: [packages/form-core/src/FieldApi.ts:210](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L210) +Defined in: [packages/form-core/src/FieldApi.ts:205](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L205) An optional function, that runs on the change event of input. @@ -143,7 +143,7 @@ z.string().min(1) optional onChangeAsync: TOnChangeAsync; ``` -Defined in: [packages/form-core/src/FieldApi.ts:216](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L216) +Defined in: [packages/form-core/src/FieldApi.ts:211](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L211) An optional property similar to `onChange` but async validation @@ -161,7 +161,7 @@ z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' }) optional onChangeAsyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:222](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L222) +Defined in: [packages/form-core/src/FieldApi.ts:217](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L217) An optional number to represent how long the `onChangeAsync` should wait before running @@ -175,7 +175,7 @@ If set to a number larger than 0, will debounce the async validation event by th optional onChangeListenTo: DeepKeys[]; ``` -Defined in: [packages/form-core/src/FieldApi.ts:226](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L226) +Defined in: [packages/form-core/src/FieldApi.ts:221](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L221) An optional list of field names that should trigger this field's `onChange` and `onChangeAsync` events when its value changes @@ -187,7 +187,7 @@ An optional list of field names that should trigger this field's `onChange` and optional onDynamic: RejectPromiseValidator; ``` -Defined in: [packages/form-core/src/FieldApi.ts:262](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L262) +Defined in: [packages/form-core/src/FieldApi.ts:257](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L257) *** @@ -197,7 +197,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:262](https://github.com/TanStack optional onDynamicAsync: TOnDynamicAsync; ``` -Defined in: [packages/form-core/src/FieldApi.ts:263](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L263) +Defined in: [packages/form-core/src/FieldApi.ts:258](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L258) *** @@ -207,7 +207,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:263](https://github.com/TanStack optional onDynamicAsyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:264](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L264) +Defined in: [packages/form-core/src/FieldApi.ts:259](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L259) *** @@ -217,7 +217,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:264](https://github.com/TanStack optional onMount: RejectPromiseValidator; ``` -Defined in: [packages/form-core/src/FieldApi.ts:204](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L204) +Defined in: [packages/form-core/src/FieldApi.ts:199](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L199) An optional function, that runs on the mount event of input. @@ -229,7 +229,7 @@ An optional function, that runs on the mount event of input. optional onSubmit: RejectPromiseValidator; ``` -Defined in: [packages/form-core/src/FieldApi.ts:255](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L255) +Defined in: [packages/form-core/src/FieldApi.ts:250](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L250) An optional function, that runs on the submit event of form. @@ -247,7 +247,7 @@ z.string().min(1) optional onSubmitAsync: TOnSubmitAsync; ``` -Defined in: [packages/form-core/src/FieldApi.ts:261](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L261) +Defined in: [packages/form-core/src/FieldApi.ts:256](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L256) An optional property similar to `onSubmit` but async validation. diff --git a/docs/reference/interfaces/FormGroupApiOptions.md b/docs/reference/interfaces/FormGroupApiOptions.md index fde0975199..dc5c8008ff 100644 --- a/docs/reference/interfaces/FormGroupApiOptions.md +++ b/docs/reference/interfaces/FormGroupApiOptions.md @@ -3,7 +3,7 @@ id: FormGroupApiOptions title: FormGroupApiOptions --- -Defined in: [packages/form-core/src/FormGroupApi.ts:562](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L562) +Defined in: [packages/form-core/src/FormGroupApi.ts:529](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L529) ## Extends @@ -123,7 +123,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:562](https://github.com/TanS optional asyncAlways: boolean; ``` -Defined in: [packages/form-core/src/types.ts:982](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L982) +Defined in: [packages/form-core/src/types.ts:974](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L974) If `true`, always run async validation, even if there are errors emitted during synchronous validation. @@ -139,7 +139,7 @@ If `true`, always run async validation, even if there are errors emitted during optional asyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/types.ts:978](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L978) +Defined in: [packages/form-core/src/types.ts:970](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L970) The default time to debounce async validation if there is not a more specific debounce time passed. @@ -155,7 +155,7 @@ The default time to debounce async validation if there is not a more specific de optional canSubmitWhenInvalid: boolean; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:381](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L381) +Defined in: [packages/form-core/src/FormGroupApi.ts:361](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L361) If true, allows the form to be submitted in an invalid state i.e. canSubmit will remain true regardless of validation errors. Defaults to undefined. @@ -171,7 +171,7 @@ If true, allows the form to be submitted in an invalid state i.e. canSubmit will optional defaultMeta: Partial>; ``` -Defined in: [packages/form-core/src/types.ts:986](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L986) +Defined in: [packages/form-core/src/types.ts:978](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L978) An optional object with default metadata for the field. @@ -187,7 +187,7 @@ An optional object with default metadata for the field. optional defaultState: FormGroupState; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:388](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L388) +Defined in: [packages/form-core/src/FormGroupApi.ts:368](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L368) #### Inherited from @@ -201,7 +201,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:388](https://github.com/TanS optional defaultValue: NoInfer; ``` -Defined in: [packages/form-core/src/types.ts:974](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L974) +Defined in: [packages/form-core/src/types.ts:966](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L966) An optional default value for the field. @@ -217,7 +217,7 @@ An optional default value for the field. optional disableErrorFlat: boolean; ``` -Defined in: [packages/form-core/src/types.ts:1014](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L1014) +Defined in: [packages/form-core/src/types.ts:1006](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L1006) Disable the `flat(1)` operation on `field.errors`. This is useful if you want to keep the error structure as is. Not suggested for most use-cases. @@ -233,7 +233,7 @@ Disable the `flat(1)` operation on `field.errors`. This is useful if you want to form: FormApi; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:639](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L639) +Defined in: [packages/form-core/src/FormGroupApi.ts:593](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L593) *** @@ -243,7 +243,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:639](https://github.com/TanS optional listeners: FormGroupListeners; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:386](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L386) +Defined in: [packages/form-core/src/FormGroupApi.ts:366](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L366) A list of listeners which attach to the corresponding events @@ -259,7 +259,7 @@ A list of listeners which attach to the corresponding events name: TName; ``` -Defined in: [packages/form-core/src/types.ts:970](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L970) +Defined in: [packages/form-core/src/types.ts:962](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L962) The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. @@ -275,7 +275,7 @@ The field name. The type will be `DeepKeys` to ensure your name is optional onGroupSubmit: (props) => any; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:403](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L403) +Defined in: [packages/form-core/src/FormGroupApi.ts:383](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L383) A function to be called when the form is submitted, what should happen once the user submits a valid form returns `any` or a promise `Promise` @@ -311,7 +311,7 @@ A function to be called when the form is submitted, what should happen once the optional onGroupSubmitInvalid: (props) => void; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:436](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L436) +Defined in: [packages/form-core/src/FormGroupApi.ts:416](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L416) Specify an action for scenarios where the user tries to submit an invalid form. @@ -347,7 +347,7 @@ Specify an action for scenarios where the user tries to submit an invalid form. optional onSubmitMeta: TSubmitMeta; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:398](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L398) +Defined in: [packages/form-core/src/FormGroupApi.ts:378](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L378) onSubmitMeta, the data passed from the handleSubmit handler, to the onSubmit function props @@ -363,7 +363,7 @@ onSubmitMeta, the data passed from the handleSubmit handler, to the onSubmit fun optional validationLogic: ValidationLogicFn; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:394](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L394) +Defined in: [packages/form-core/src/FormGroupApi.ts:374](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L374) Optional validation logic strategy to use for this group's own validators (e.g. `revalidateLogic()`). When omitted, the parent form's @@ -381,7 +381,7 @@ validators (e.g. `revalidateLogic()`). When omitted, the parent form's optional validators: FormGroupValidators; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:363](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L363) +Defined in: [packages/form-core/src/FormGroupApi.ts:343](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L343) A list of validators to pass to the field diff --git a/docs/reference/interfaces/FormGroupListeners.md b/docs/reference/interfaces/FormGroupListeners.md index 239be5c85a..6e4d1a42d3 100644 --- a/docs/reference/interfaces/FormGroupListeners.md +++ b/docs/reference/interfaces/FormGroupListeners.md @@ -3,7 +3,7 @@ id: FormGroupListeners title: FormGroupListeners --- -Defined in: [packages/form-core/src/FormGroupApi.ts:293](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L293) +Defined in: [packages/form-core/src/FormGroupApi.ts:286](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L286) ## Type Parameters @@ -27,7 +27,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:293](https://github.com/TanS optional onBlur: FormGroupListenerFn; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:300](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L300) +Defined in: [packages/form-core/src/FormGroupApi.ts:293](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L293) *** @@ -37,7 +37,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:300](https://github.com/TanS optional onBlurDebounceMs: number; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:301](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L301) +Defined in: [packages/form-core/src/FormGroupApi.ts:294](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L294) *** @@ -47,7 +47,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:301](https://github.com/TanS optional onChange: FormGroupListenerFn; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:298](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L298) +Defined in: [packages/form-core/src/FormGroupApi.ts:291](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L291) *** @@ -57,7 +57,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:298](https://github.com/TanS optional onChangeDebounceMs: number; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:299](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L299) +Defined in: [packages/form-core/src/FormGroupApi.ts:292](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L292) *** @@ -67,7 +67,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:299](https://github.com/TanS optional onGroupSubmit: FormGroupListenerFn; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:305](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L305) +Defined in: [packages/form-core/src/FormGroupApi.ts:298](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L298) *** @@ -77,7 +77,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:305](https://github.com/TanS optional onMount: FormGroupListenerFn; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:302](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L302) +Defined in: [packages/form-core/src/FormGroupApi.ts:295](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L295) *** @@ -87,7 +87,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:302](https://github.com/TanS optional onSubmit: FormGroupListenerFn; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:304](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L304) +Defined in: [packages/form-core/src/FormGroupApi.ts:297](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L297) *** @@ -97,4 +97,4 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:304](https://github.com/TanS optional onUnmount: FormGroupListenerFn; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:303](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L303) +Defined in: [packages/form-core/src/FormGroupApi.ts:296](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L296) diff --git a/docs/reference/interfaces/FormGroupMeta.md b/docs/reference/interfaces/FormGroupMeta.md index 9f5a0162a6..1c7fef22b9 100644 --- a/docs/reference/interfaces/FormGroupMeta.md +++ b/docs/reference/interfaces/FormGroupMeta.md @@ -3,7 +3,7 @@ id: FormGroupMeta title: FormGroupMeta --- -Defined in: [packages/form-core/src/FormGroupApi.ts:749](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L749) +Defined in: [packages/form-core/src/FormGroupApi.ts:703](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L703) The `meta` shape exposed on `FormGroupApi.state.meta`. Mirrors `FieldApi.state.meta` (since `FormGroupMeta extends FieldLikeMeta`) but @@ -122,7 +122,7 @@ rather than the group's own field-meta entry. canSubmit: boolean; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:827](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L827) +Defined in: [packages/form-core/src/FormGroupApi.ts:768](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L768) *** @@ -132,7 +132,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:827](https://github.com/TanS errorMap: ValidationErrorMap, UnwrapFieldValidateOrFn, UnwrapFieldAsyncValidateOrFn, UnwrapFieldValidateOrFn, UnwrapFieldAsyncValidateOrFn, UnwrapFieldValidateOrFn, UnwrapFieldAsyncValidateOrFn, UnwrapFieldValidateOrFn, UnwrapFieldAsyncValidateOrFn>; ``` -Defined in: [packages/form-core/src/types.ts:536](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L536) +Defined in: [packages/form-core/src/types.ts:528](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L528) A map of errors related to the field value. @@ -159,7 +159,7 @@ errors: ( | UnwrapOneLevelOfArray>)[]; ``` -Defined in: [packages/form-core/src/types.ts:660](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L660) +Defined in: [packages/form-core/src/types.ts:652](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L652) An array of errors related to the field value. @@ -177,7 +177,7 @@ FieldLikeMeta.errors isBlurred: boolean; ``` -Defined in: [packages/form-core/src/types.ts:528](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L528) +Defined in: [packages/form-core/src/types.ts:520](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L520) A flag indicating whether the field has been blurred. @@ -195,7 +195,7 @@ FieldLikeMeta.isBlurred isDefaultValue: boolean; ``` -Defined in: [packages/form-core/src/types.ts:704](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L704) +Defined in: [packages/form-core/src/types.ts:696](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L696) A flag indicating whether the field's current value is the default value @@ -213,7 +213,7 @@ FieldLikeMeta.isDefaultValue isDirty: boolean; ``` -Defined in: [packages/form-core/src/types.ts:532](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L532) +Defined in: [packages/form-core/src/types.ts:524](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L524) A flag that is `true` if the field's value has been modified by the user. Opposite of `isPristine`. @@ -231,7 +231,7 @@ FieldLikeMeta.isDirty isFieldsValid: boolean; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:824](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L824) +Defined in: [packages/form-core/src/FormGroupApi.ts:765](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L765) *** @@ -241,7 +241,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:824](https://github.com/TanS isFieldsValidating: boolean; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:823](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L823) +Defined in: [packages/form-core/src/FormGroupApi.ts:764](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L764) *** @@ -251,7 +251,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:823](https://github.com/TanS isGroupValid: boolean; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:825](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L825) +Defined in: [packages/form-core/src/FormGroupApi.ts:766](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L766) *** @@ -261,7 +261,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:825](https://github.com/TanS isPristine: boolean; ``` -Defined in: [packages/form-core/src/types.ts:696](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L696) +Defined in: [packages/form-core/src/types.ts:688](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L688) A flag that is `true` if the field's value has not been modified by the user. Opposite of `isDirty`. @@ -279,7 +279,7 @@ FieldLikeMeta.isPristine isSubmitSuccessful: boolean; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:688](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L688) +Defined in: [packages/form-core/src/FormGroupApi.ts:642](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L642) A boolean indicating if the last submission was successful. @@ -295,7 +295,7 @@ A boolean indicating if the last submission was successful. isSubmitted: boolean; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:676](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L676) +Defined in: [packages/form-core/src/FormGroupApi.ts:630](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L630) A boolean indicating if the `onSubmit` function has completed successfully. @@ -315,7 +315,7 @@ Note: you can use isSubmitting to check if the form is currently submitting. isSubmitting: boolean; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:668](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L668) +Defined in: [packages/form-core/src/FormGroupApi.ts:622](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L622) A boolean indicating if the form is currently in the process of being submitted after `handleSubmit` is called. @@ -339,7 +339,7 @@ This is useful for displaying loading indicators or disabling form inputs during isTouched: boolean; ``` -Defined in: [packages/form-core/src/types.ts:524](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L524) +Defined in: [packages/form-core/src/types.ts:516](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L516) A flag indicating whether the field has been touched. @@ -357,7 +357,7 @@ FieldLikeMeta.isTouched isValid: boolean; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:826](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L826) +Defined in: [packages/form-core/src/FormGroupApi.ts:767](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L767) A boolean indicating if the field is valid. Evaluates `true` if there are no field errors. @@ -375,7 +375,7 @@ FieldLikeMeta.isValid isValidating: boolean; ``` -Defined in: [packages/form-core/src/types.ts:555](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L555) +Defined in: [packages/form-core/src/types.ts:547](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L547) A flag indicating whether the field is currently being validated. @@ -391,7 +391,7 @@ A flag indicating whether the field is currently being validated. submissionAttempts: number; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:684](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L684) +Defined in: [packages/form-core/src/FormGroupApi.ts:638](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L638) A counter for tracking the number of submission attempts. diff --git a/docs/reference/interfaces/FormGroupOptions.md b/docs/reference/interfaces/FormGroupOptions.md index a81435f511..207a3db7be 100644 --- a/docs/reference/interfaces/FormGroupOptions.md +++ b/docs/reference/interfaces/FormGroupOptions.md @@ -3,7 +3,7 @@ id: FormGroupOptions title: FormGroupOptions --- -Defined in: [packages/form-core/src/FormGroupApi.ts:468](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L468) +Defined in: [packages/form-core/src/FormGroupApi.ts:448](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L448) ## Extends @@ -127,7 +127,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:468](https://github.com/TanS optional asyncAlways: boolean; ``` -Defined in: [packages/form-core/src/types.ts:982](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L982) +Defined in: [packages/form-core/src/types.ts:974](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L974) If `true`, always run async validation, even if there are errors emitted during synchronous validation. @@ -145,7 +145,7 @@ FieldLikeOptions.asyncAlways optional asyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/types.ts:978](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L978) +Defined in: [packages/form-core/src/types.ts:970](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L970) The default time to debounce async validation if there is not a more specific debounce time passed. @@ -163,7 +163,7 @@ FieldLikeOptions.asyncDebounceMs optional canSubmitWhenInvalid: boolean; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:381](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L381) +Defined in: [packages/form-core/src/FormGroupApi.ts:361](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L361) If true, allows the form to be submitted in an invalid state i.e. canSubmit will remain true regardless of validation errors. Defaults to undefined. @@ -181,7 +181,7 @@ FormGroupExtraOptions.canSubmitWhenInvalid optional defaultMeta: Partial>; ``` -Defined in: [packages/form-core/src/types.ts:986](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L986) +Defined in: [packages/form-core/src/types.ts:978](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L978) An optional object with default metadata for the field. @@ -199,7 +199,7 @@ FieldLikeOptions.defaultMeta optional defaultState: FormGroupState; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:388](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L388) +Defined in: [packages/form-core/src/FormGroupApi.ts:368](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L368) #### Inherited from @@ -215,7 +215,7 @@ FormGroupExtraOptions.defaultState optional defaultValue: NoInfer; ``` -Defined in: [packages/form-core/src/types.ts:974](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L974) +Defined in: [packages/form-core/src/types.ts:966](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L966) An optional default value for the field. @@ -233,7 +233,7 @@ FieldLikeOptions.defaultValue optional disableErrorFlat: boolean; ``` -Defined in: [packages/form-core/src/types.ts:1014](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L1014) +Defined in: [packages/form-core/src/types.ts:1006](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L1006) Disable the `flat(1)` operation on `field.errors`. This is useful if you want to keep the error structure as is. Not suggested for most use-cases. @@ -251,7 +251,7 @@ FieldLikeOptions.disableErrorFlat optional listeners: FormGroupListeners; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:386](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L386) +Defined in: [packages/form-core/src/FormGroupApi.ts:366](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L366) A list of listeners which attach to the corresponding events @@ -269,7 +269,7 @@ FormGroupExtraOptions.listeners name: TName; ``` -Defined in: [packages/form-core/src/types.ts:970](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L970) +Defined in: [packages/form-core/src/types.ts:962](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L962) The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. @@ -287,7 +287,7 @@ FieldLikeOptions.name optional onGroupSubmit: (props) => any; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:403](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L403) +Defined in: [packages/form-core/src/FormGroupApi.ts:383](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L383) A function to be called when the form is submitted, what should happen once the user submits a valid form returns `any` or a promise `Promise` @@ -325,7 +325,7 @@ FormGroupExtraOptions.onGroupSubmit optional onGroupSubmitInvalid: (props) => void; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:436](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L436) +Defined in: [packages/form-core/src/FormGroupApi.ts:416](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L416) Specify an action for scenarios where the user tries to submit an invalid form. @@ -363,7 +363,7 @@ FormGroupExtraOptions.onGroupSubmitInvalid optional onSubmitMeta: TSubmitMeta; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:398](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L398) +Defined in: [packages/form-core/src/FormGroupApi.ts:378](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L378) onSubmitMeta, the data passed from the handleSubmit handler, to the onSubmit function props @@ -381,7 +381,7 @@ FormGroupExtraOptions.onSubmitMeta optional validationLogic: ValidationLogicFn; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:394](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L394) +Defined in: [packages/form-core/src/FormGroupApi.ts:374](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L374) Optional validation logic strategy to use for this group's own validators (e.g. `revalidateLogic()`). When omitted, the parent form's @@ -401,7 +401,7 @@ FormGroupExtraOptions.validationLogic optional validators: FormGroupValidators; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:363](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L363) +Defined in: [packages/form-core/src/FormGroupApi.ts:343](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L343) A list of validators to pass to the field diff --git a/docs/reference/interfaces/FormGroupState.md b/docs/reference/interfaces/FormGroupState.md index 97d01529ed..05b8de8b3a 100644 --- a/docs/reference/interfaces/FormGroupState.md +++ b/docs/reference/interfaces/FormGroupState.md @@ -3,7 +3,7 @@ id: FormGroupState title: FormGroupState --- -Defined in: [packages/form-core/src/FormGroupApi.ts:655](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L655) +Defined in: [packages/form-core/src/FormGroupApi.ts:609](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L609) ## Extended by @@ -17,7 +17,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:655](https://github.com/TanS isSubmitSuccessful: boolean; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:688](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L688) +Defined in: [packages/form-core/src/FormGroupApi.ts:642](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L642) A boolean indicating if the last submission was successful. @@ -29,7 +29,7 @@ A boolean indicating if the last submission was successful. isSubmitted: boolean; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:676](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L676) +Defined in: [packages/form-core/src/FormGroupApi.ts:630](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L630) A boolean indicating if the `onSubmit` function has completed successfully. @@ -45,7 +45,7 @@ Note: you can use isSubmitting to check if the form is currently submitting. isSubmitting: boolean; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:668](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L668) +Defined in: [packages/form-core/src/FormGroupApi.ts:622](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L622) A boolean indicating if the form is currently in the process of being submitted after `handleSubmit` is called. @@ -65,7 +65,7 @@ This is useful for displaying loading indicators or disabling form inputs during isValidating: boolean; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:680](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L680) +Defined in: [packages/form-core/src/FormGroupApi.ts:634](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L634) A boolean indicating if the form or any of its fields are currently validating. @@ -77,6 +77,6 @@ A boolean indicating if the form or any of its fields are currently validating. submissionAttempts: number; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:684](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L684) +Defined in: [packages/form-core/src/FormGroupApi.ts:638](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L638) A counter for tracking the number of submission attempts. diff --git a/docs/reference/interfaces/FormGroupStoreState.md b/docs/reference/interfaces/FormGroupStoreState.md index 589a95559d..518dfc81ad 100644 --- a/docs/reference/interfaces/FormGroupStoreState.md +++ b/docs/reference/interfaces/FormGroupStoreState.md @@ -3,7 +3,7 @@ id: FormGroupStoreState title: FormGroupStoreState --- -Defined in: [packages/form-core/src/FormGroupApi.ts:859](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L859) +Defined in: [packages/form-core/src/FormGroupApi.ts:800](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L800) ## Type Parameters @@ -107,7 +107,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:859](https://github.com/TanS meta: FormGroupMeta; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:916](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L916) +Defined in: [packages/form-core/src/FormGroupApi.ts:844](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L844) The current metadata of the form group, including aggregated validity, group-level errors, and submission lifecycle. @@ -120,6 +120,6 @@ group-level errors, and submission lifecycle. value: TData; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:911](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L911) +Defined in: [packages/form-core/src/FormGroupApi.ts:839](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L839) The current value of the form group. diff --git a/docs/reference/interfaces/FormGroupValidators.md b/docs/reference/interfaces/FormGroupValidators.md index 7591cb15d2..020ce41e5b 100644 --- a/docs/reference/interfaces/FormGroupValidators.md +++ b/docs/reference/interfaces/FormGroupValidators.md @@ -71,7 +71,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:199](https://github.com/TanS optional onBlur: TOnBlur; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:258](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L258) +Defined in: [packages/form-core/src/FormGroupApi.ts:251](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L251) An optional function, that runs on the blur event of input. @@ -89,7 +89,7 @@ z.string().min(1) optional onBlurAsync: TOnBlurAsync; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:264](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L264) +Defined in: [packages/form-core/src/FormGroupApi.ts:257](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L257) An optional property similar to `onBlur` but async validation. @@ -107,7 +107,7 @@ z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' }) optional onBlurAsyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:271](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L271) +Defined in: [packages/form-core/src/FormGroupApi.ts:264](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L264) An optional number to represent how long the `onBlurAsync` should wait before running @@ -121,7 +121,7 @@ If set to a number larger than 0, will debounce the async validation event by th optional onChange: TOnChange; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:236](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L236) +Defined in: [packages/form-core/src/FormGroupApi.ts:229](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L229) An optional function, that runs on the change event of input. @@ -139,7 +139,7 @@ z.string().min(1) optional onChangeAsync: TOnChangeAsync; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:242](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L242) +Defined in: [packages/form-core/src/FormGroupApi.ts:235](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L235) An optional property similar to `onChange` but async validation @@ -157,7 +157,7 @@ z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' }) optional onChangeAsyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:248](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L248) +Defined in: [packages/form-core/src/FormGroupApi.ts:241](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L241) An optional number to represent how long the `onChangeAsync` should wait before running @@ -171,7 +171,7 @@ If set to a number larger than 0, will debounce the async validation event by th optional onDynamic: TOnDynamic; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:288](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L288) +Defined in: [packages/form-core/src/FormGroupApi.ts:281](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L281) *** @@ -181,7 +181,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:288](https://github.com/TanS optional onDynamicAsync: TOnDynamicAsync; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:289](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L289) +Defined in: [packages/form-core/src/FormGroupApi.ts:282](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L282) *** @@ -191,7 +191,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:289](https://github.com/TanS optional onDynamicAsyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:290](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L290) +Defined in: [packages/form-core/src/FormGroupApi.ts:283](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L283) *** @@ -201,7 +201,7 @@ Defined in: [packages/form-core/src/FormGroupApi.ts:290](https://github.com/TanS optional onMount: TOnMount; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:230](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L230) +Defined in: [packages/form-core/src/FormGroupApi.ts:223](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L223) An optional function, that runs on the mount event of input. @@ -213,7 +213,7 @@ An optional function, that runs on the mount event of input. optional onSubmit: TOnSubmit; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:281](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L281) +Defined in: [packages/form-core/src/FormGroupApi.ts:274](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L274) An optional function, that runs on the submit event of form. @@ -231,7 +231,7 @@ z.string().min(1) optional onSubmitAsync: TOnSubmitAsync; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:287](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L287) +Defined in: [packages/form-core/src/FormGroupApi.ts:280](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L280) An optional property similar to `onSubmit` but async validation. diff --git a/docs/reference/interfaces/FormListeners.md b/docs/reference/interfaces/FormListeners.md index 90ca13818b..d93f889ae0 100644 --- a/docs/reference/interfaces/FormListeners.md +++ b/docs/reference/interfaces/FormListeners.md @@ -3,7 +3,7 @@ id: FormListeners title: FormListeners --- -Defined in: [packages/form-core/src/FormApi.ts:294](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L294) +Defined in: [packages/form-core/src/FormApi.ts:292](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L292) ## Type Parameters @@ -63,7 +63,7 @@ Defined in: [packages/form-core/src/FormApi.ts:294](https://github.com/TanStack/ optional onBlur: (props) => void; ``` -Defined in: [packages/form-core/src/FormApi.ts:344](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L344) +Defined in: [packages/form-core/src/FormApi.ts:342](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L342) #### Parameters @@ -89,7 +89,7 @@ Defined in: [packages/form-core/src/FormApi.ts:344](https://github.com/TanStack/ optional onBlurDebounceMs: number; ``` -Defined in: [packages/form-core/src/FormApi.ts:361](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L361) +Defined in: [packages/form-core/src/FormApi.ts:359](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L359) *** @@ -99,7 +99,7 @@ Defined in: [packages/form-core/src/FormApi.ts:361](https://github.com/TanStack/ optional onChange: (props) => void; ``` -Defined in: [packages/form-core/src/FormApi.ts:308](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L308) +Defined in: [packages/form-core/src/FormApi.ts:306](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L306) #### Parameters @@ -119,7 +119,7 @@ Defined in: [packages/form-core/src/FormApi.ts:308](https://github.com/TanStack/ optional onChangeDebounceMs: number; ``` -Defined in: [packages/form-core/src/FormApi.ts:324](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L324) +Defined in: [packages/form-core/src/FormApi.ts:322](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L322) *** @@ -129,7 +129,7 @@ Defined in: [packages/form-core/src/FormApi.ts:324](https://github.com/TanStack/ optional onChangeGroup: (props) => void; ``` -Defined in: [packages/form-core/src/FormApi.ts:326](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L326) +Defined in: [packages/form-core/src/FormApi.ts:324](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L324) #### Parameters @@ -149,7 +149,7 @@ Defined in: [packages/form-core/src/FormApi.ts:326](https://github.com/TanStack/ optional onChangeGroupDebounceMs: number; ``` -Defined in: [packages/form-core/src/FormApi.ts:342](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L342) +Defined in: [packages/form-core/src/FormApi.ts:340](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L340) *** @@ -159,7 +159,7 @@ Defined in: [packages/form-core/src/FormApi.ts:342](https://github.com/TanStack/ optional onFieldUnmount: (props) => void; ``` -Defined in: [packages/form-core/src/FormApi.ts:398](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L398) +Defined in: [packages/form-core/src/FormApi.ts:396](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L396) #### Parameters @@ -179,7 +179,7 @@ Defined in: [packages/form-core/src/FormApi.ts:398](https://github.com/TanStack/ optional onGroupUnmount: (props) => void; ``` -Defined in: [packages/form-core/src/FormApi.ts:415](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L415) +Defined in: [packages/form-core/src/FormApi.ts:413](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L413) #### Parameters @@ -199,7 +199,7 @@ Defined in: [packages/form-core/src/FormApi.ts:415](https://github.com/TanStack/ optional onMount: (props) => void; ``` -Defined in: [packages/form-core/src/FormApi.ts:363](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L363) +Defined in: [packages/form-core/src/FormApi.ts:361](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L361) #### Parameters @@ -221,7 +221,7 @@ Defined in: [packages/form-core/src/FormApi.ts:363](https://github.com/TanStack/ optional onSubmit: (props) => void; ``` -Defined in: [packages/form-core/src/FormApi.ts:380](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L380) +Defined in: [packages/form-core/src/FormApi.ts:378](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L378) #### Parameters diff --git a/docs/reference/interfaces/FormListenersPropsField.md b/docs/reference/interfaces/FormListenersPropsField.md index d0032e835a..d7408a762c 100644 --- a/docs/reference/interfaces/FormListenersPropsField.md +++ b/docs/reference/interfaces/FormListenersPropsField.md @@ -3,7 +3,7 @@ id: FormListenersPropsField title: FormListenersPropsField --- -Defined in: [packages/form-core/src/FormApi.ts:263](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L263) +Defined in: [packages/form-core/src/FormApi.ts:261](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L261) ## Type Parameters @@ -63,7 +63,7 @@ Defined in: [packages/form-core/src/FormApi.ts:263](https://github.com/TanStack/ fieldApi: AnyFieldApi; ``` -Defined in: [packages/form-core/src/FormApi.ts:291](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L291) +Defined in: [packages/form-core/src/FormApi.ts:289](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L289) *** @@ -73,4 +73,4 @@ Defined in: [packages/form-core/src/FormApi.ts:291](https://github.com/TanStack/ formApi: FormApi; ``` -Defined in: [packages/form-core/src/FormApi.ts:277](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L277) +Defined in: [packages/form-core/src/FormApi.ts:275](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L275) diff --git a/docs/reference/interfaces/FormListenersPropsGroup.md b/docs/reference/interfaces/FormListenersPropsGroup.md index 0256d79f82..9cd100e710 100644 --- a/docs/reference/interfaces/FormListenersPropsGroup.md +++ b/docs/reference/interfaces/FormListenersPropsGroup.md @@ -3,7 +3,7 @@ id: FormListenersPropsGroup title: FormListenersPropsGroup --- -Defined in: [packages/form-core/src/FormApi.ts:232](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L232) +Defined in: [packages/form-core/src/FormApi.ts:230](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L230) ## Type Parameters @@ -63,7 +63,7 @@ Defined in: [packages/form-core/src/FormApi.ts:232](https://github.com/TanStack/ formApi: FormApi; ``` -Defined in: [packages/form-core/src/FormApi.ts:246](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L246) +Defined in: [packages/form-core/src/FormApi.ts:244](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L244) *** @@ -73,4 +73,4 @@ Defined in: [packages/form-core/src/FormApi.ts:246](https://github.com/TanStack/ groupApi: AnyFormGroupApi; ``` -Defined in: [packages/form-core/src/FormApi.ts:260](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L260) +Defined in: [packages/form-core/src/FormApi.ts:258](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L258) diff --git a/docs/reference/interfaces/FormOptions.md b/docs/reference/interfaces/FormOptions.md index debc220c28..acc430cb74 100644 --- a/docs/reference/interfaces/FormOptions.md +++ b/docs/reference/interfaces/FormOptions.md @@ -3,7 +3,7 @@ id: FormOptions title: FormOptions --- -Defined in: [packages/form-core/src/FormApi.ts:450](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L450) +Defined in: [packages/form-core/src/FormApi.ts:448](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L448) An object representing the options for a form. @@ -69,7 +69,7 @@ An object representing the options for a form. optional asyncAlways: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:489](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L489) +Defined in: [packages/form-core/src/FormApi.ts:487](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L487) If true, always run async validation, even when sync validation has produced an error. Defaults to undefined. @@ -81,7 +81,7 @@ If true, always run async validation, even when sync validation has produced an optional asyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FormApi.ts:493](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L493) +Defined in: [packages/form-core/src/FormApi.ts:491](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L491) Optional time in milliseconds if you want to introduce a delay before firing off an async action. @@ -93,7 +93,7 @@ Optional time in milliseconds if you want to introduce a delay before firing off optional canSubmitWhenInvalid: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:497](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L497) +Defined in: [packages/form-core/src/FormApi.ts:495](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L495) If true, allows the form to be submitted in an invalid state i.e. canSubmit will remain true regardless of validation errors. Defaults to undefined. @@ -105,7 +105,7 @@ If true, allows the form to be submitted in an invalid state i.e. canSubmit will optional defaultState: Partial>; ``` -Defined in: [packages/form-core/src/FormApi.ts:471](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L471) +Defined in: [packages/form-core/src/FormApi.ts:469](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L469) The default state for the form. @@ -117,7 +117,7 @@ The default state for the form. optional defaultValues: TFormData; ``` -Defined in: [packages/form-core/src/FormApi.ts:440](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L440) +Defined in: [packages/form-core/src/FormApi.ts:438](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L438) Set initial values for your form. @@ -133,7 +133,7 @@ Set initial values for your form. optional formId: string; ``` -Defined in: [packages/form-core/src/FormApi.ts:467](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L467) +Defined in: [packages/form-core/src/FormApi.ts:465](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L465) The form name, used for devtools and identification @@ -145,7 +145,7 @@ The form name, used for devtools and identification optional listeners: FormListeners; ``` -Defined in: [packages/form-core/src/FormApi.ts:519](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L519) +Defined in: [packages/form-core/src/FormApi.ts:517](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L517) form level listeners @@ -157,7 +157,7 @@ form level listeners optional onSubmit: (props) => any; ``` -Defined in: [packages/form-core/src/FormApi.ts:537](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L537) +Defined in: [packages/form-core/src/FormApi.ts:535](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L535) A function to be called when the form is submitted, what should happen once the user submits a valid form returns `any` or a promise `Promise` @@ -189,7 +189,7 @@ A function to be called when the form is submitted, what should happen once the optional onSubmitInvalid: (props) => void; ``` -Defined in: [packages/form-core/src/FormApi.ts:558](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L558) +Defined in: [packages/form-core/src/FormApi.ts:556](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L556) Specify an action for scenarios where the user tries to submit an invalid form. @@ -221,7 +221,7 @@ Specify an action for scenarios where the user tries to submit an invalid form. optional onSubmitMeta: TSubmitMeta; ``` -Defined in: [packages/form-core/src/FormApi.ts:444](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L444) +Defined in: [packages/form-core/src/FormApi.ts:442](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L442) onSubmitMeta, the data passed from the handleSubmit handler, to the onSubmit function props @@ -237,7 +237,7 @@ onSubmitMeta, the data passed from the handleSubmit handler, to the onSubmit fun optional transform: (data) => unknown; ``` -Defined in: [packages/form-core/src/FormApi.ts:582](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L582) +Defined in: [packages/form-core/src/FormApi.ts:580](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L580) #### Parameters @@ -257,7 +257,7 @@ Defined in: [packages/form-core/src/FormApi.ts:582](https://github.com/TanStack/ optional validationLogic: ValidationLogicFn; ``` -Defined in: [packages/form-core/src/FormApi.ts:514](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L514) +Defined in: [packages/form-core/src/FormApi.ts:512](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L512) *** @@ -267,6 +267,6 @@ Defined in: [packages/form-core/src/FormApi.ts:514](https://github.com/TanStack/ optional validators: FormValidators; ``` -Defined in: [packages/form-core/src/FormApi.ts:501](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L501) +Defined in: [packages/form-core/src/FormApi.ts:499](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L499) A list of validators to pass to the form diff --git a/docs/reference/interfaces/FormState.md b/docs/reference/interfaces/FormState.md index 844cf484a8..56f8cf6f20 100644 --- a/docs/reference/interfaces/FormState.md +++ b/docs/reference/interfaces/FormState.md @@ -3,7 +3,7 @@ id: FormState title: FormState --- -Defined in: [packages/form-core/src/FormApi.ts:793](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L793) +Defined in: [packages/form-core/src/FormApi.ts:791](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L791) An object representing the current state of the form. @@ -65,7 +65,7 @@ An object representing the current state of the form. optional _force_re_eval: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:696](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L696) +Defined in: [packages/form-core/src/FormApi.ts:694](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L694) @private, used to force a re-evaluation of the form state when options change @@ -83,7 +83,7 @@ BaseFormState._force_re_eval canSubmit: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:786](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L786) +Defined in: [packages/form-core/src/FormApi.ts:784](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L784) A boolean indicating if the form can be submitted based on its current state. @@ -101,7 +101,7 @@ DerivedFormState.canSubmit errorMap: ValidationErrorMap, UnwrapFormValidateOrFn, UnwrapFormAsyncValidateOrFn, UnwrapFormValidateOrFn, UnwrapFormAsyncValidateOrFn, UnwrapFormValidateOrFn, UnwrapFormAsyncValidateOrFn, UnwrapFormValidateOrFn, UnwrapFormAsyncValidateOrFn, UnwrapFormAsyncValidateOrFn>; ``` -Defined in: [packages/form-core/src/FormApi.ts:633](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L633) +Defined in: [packages/form-core/src/FormApi.ts:631](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L631) The error map for the form itself. @@ -129,7 +129,7 @@ errors: NonNullable< | UnwrapFormAsyncValidateOrFn>[]; ``` -Defined in: [packages/form-core/src/FormApi.ts:737](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L737) +Defined in: [packages/form-core/src/FormApi.ts:735](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L735) The error array for the form itself. @@ -147,7 +147,7 @@ DerivedFormState.errors fieldMeta: Partial, AnyFieldLikeMeta>>; ``` -Defined in: [packages/form-core/src/FormApi.ts:790](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L790) +Defined in: [packages/form-core/src/FormApi.ts:788](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L788) A record of field metadata for each field in the form. @@ -165,7 +165,7 @@ DerivedFormState.fieldMeta fieldMetaBase: Partial, AnyFieldLikeMetaBase>>; ``` -Defined in: [packages/form-core/src/FormApi.ts:652](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L652) +Defined in: [packages/form-core/src/FormApi.ts:650](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L650) A record of field metadata for each field in the form, not including the derived properties, like `errors` and such @@ -183,7 +183,7 @@ BaseFormState.fieldMetaBase formGroupStateBase: Partial>; ``` -Defined in: [packages/form-core/src/FormApi.ts:659](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L659) +Defined in: [packages/form-core/src/FormApi.ts:657](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L657) A record of submission lifecycle state for each mounted `FormGroupApi`, keyed by the group's fully-qualified field name. Stored on the form so @@ -204,7 +204,7 @@ BaseFormState.formGroupStateBase isBlurred: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:766](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L766) +Defined in: [packages/form-core/src/FormApi.ts:764](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L764) A boolean indicating if any of the form fields have been blurred. @@ -222,7 +222,7 @@ DerivedFormState.isBlurred isDefaultValue: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:778](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L778) +Defined in: [packages/form-core/src/FormApi.ts:776](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L776) A boolean indicating if all of the form's fields are the same as default values. @@ -240,7 +240,7 @@ DerivedFormState.isDefaultValue isDirty: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:770](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L770) +Defined in: [packages/form-core/src/FormApi.ts:768](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L768) A boolean indicating if any of the form's fields' values have been modified by the user. Evaluates `true` if the user have modified at least one of the fields. Opposite of `isPristine`. @@ -258,7 +258,7 @@ DerivedFormState.isDirty isFieldsValid: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:758](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L758) +Defined in: [packages/form-core/src/FormApi.ts:756](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L756) A boolean indicating if all the form fields are valid. Evaluates `true` if there are no field errors. @@ -276,7 +276,7 @@ DerivedFormState.isFieldsValid isFieldsValidating: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:754](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L754) +Defined in: [packages/form-core/src/FormApi.ts:752](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L752) A boolean indicating if any of the form fields are currently validating. @@ -294,7 +294,7 @@ DerivedFormState.isFieldsValidating isFormValid: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:733](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L733) +Defined in: [packages/form-core/src/FormApi.ts:731](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L731) A boolean indicating if the form is valid. @@ -312,7 +312,7 @@ DerivedFormState.isFormValid isFormValidating: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:729](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L729) +Defined in: [packages/form-core/src/FormApi.ts:727](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L727) A boolean indicating if the form is currently validating. @@ -330,7 +330,7 @@ DerivedFormState.isFormValidating isPristine: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:774](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L774) +Defined in: [packages/form-core/src/FormApi.ts:772](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L772) A boolean indicating if none of the form's fields' values have been modified by the user. Evaluates `true` if the user have not modified any of the fields. Opposite of `isDirty`. @@ -348,7 +348,7 @@ DerivedFormState.isPristine isSubmitSuccessful: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:692](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L692) +Defined in: [packages/form-core/src/FormApi.ts:690](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L690) A boolean indicating if the last submission was successful. @@ -366,7 +366,7 @@ BaseFormState.isSubmitSuccessful isSubmitted: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:680](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L680) +Defined in: [packages/form-core/src/FormApi.ts:678](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L678) A boolean indicating if the `onSubmit` function has completed successfully. @@ -388,7 +388,7 @@ BaseFormState.isSubmitted isSubmitting: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:672](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L672) +Defined in: [packages/form-core/src/FormApi.ts:670](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L670) A boolean indicating if the form is currently in the process of being submitted after `handleSubmit` is called. @@ -414,7 +414,7 @@ BaseFormState.isSubmitting isTouched: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:762](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L762) +Defined in: [packages/form-core/src/FormApi.ts:760](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L760) A boolean indicating if any of the form fields have been touched. @@ -432,7 +432,7 @@ DerivedFormState.isTouched isValid: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:782](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L782) +Defined in: [packages/form-core/src/FormApi.ts:780](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L780) A boolean indicating if the form and all its fields are valid. Evaluates `true` if there are no errors. @@ -450,7 +450,7 @@ DerivedFormState.isValid isValidating: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:684](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L684) +Defined in: [packages/form-core/src/FormApi.ts:682](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L682) A boolean indicating if the form or any of its fields are currently validating. @@ -468,7 +468,7 @@ BaseFormState.isValidating submissionAttempts: number; ``` -Defined in: [packages/form-core/src/FormApi.ts:688](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L688) +Defined in: [packages/form-core/src/FormApi.ts:686](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L686) A counter for tracking the number of submission attempts. @@ -486,7 +486,7 @@ BaseFormState.submissionAttempts validationMetaMap: Record; ``` -Defined in: [packages/form-core/src/FormApi.ts:648](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L648) +Defined in: [packages/form-core/src/FormApi.ts:646](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L646) An internal mechanism used for keeping track of validation logic in a form. @@ -504,7 +504,7 @@ BaseFormState.validationMetaMap values: TFormData; ``` -Defined in: [packages/form-core/src/FormApi.ts:629](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L629) +Defined in: [packages/form-core/src/FormApi.ts:627](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L627) The current values of the form fields. diff --git a/docs/reference/interfaces/FormValidators.md b/docs/reference/interfaces/FormValidators.md index 2b31d4b670..3e47a7d9d7 100644 --- a/docs/reference/interfaces/FormValidators.md +++ b/docs/reference/interfaces/FormValidators.md @@ -3,7 +3,7 @@ id: FormValidators title: FormValidators --- -Defined in: [packages/form-core/src/FormApi.ts:185](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L185) +Defined in: [packages/form-core/src/FormApi.ts:183](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L183) ## Type Parameters @@ -55,7 +55,7 @@ Defined in: [packages/form-core/src/FormApi.ts:185](https://github.com/TanStack/ optional onBlur: RejectPromiseValidator; ``` -Defined in: [packages/form-core/src/FormApi.ts:216](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L216) +Defined in: [packages/form-core/src/FormApi.ts:214](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L214) Optional function that validates the form data when a field loses focus, returns a `FormValidationError` @@ -67,7 +67,7 @@ Optional function that validates the form data when a field loses focus, returns optional onBlurAsync: TOnBlurAsync; ``` -Defined in: [packages/form-core/src/FormApi.ts:220](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L220) +Defined in: [packages/form-core/src/FormApi.ts:218](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L218) Optional onBlur asynchronous validation method for when a field loses focus returns a ` FormValidationError` or a promise of `Promise` @@ -79,7 +79,7 @@ Optional onBlur asynchronous validation method for when a field loses focus retu optional onBlurAsyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FormApi.ts:224](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L224) +Defined in: [packages/form-core/src/FormApi.ts:222](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L222) The default time in milliseconds that if set to a number larger than 0, will debounce the async validation event by this length of time in milliseconds. @@ -91,7 +91,7 @@ The default time in milliseconds that if set to a number larger than 0, will deb optional onChange: RejectPromiseValidator; ``` -Defined in: [packages/form-core/src/FormApi.ts:204](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L204) +Defined in: [packages/form-core/src/FormApi.ts:202](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L202) Optional function that checks the validity of your data whenever a value changes @@ -103,7 +103,7 @@ Optional function that checks the validity of your data whenever a value changes optional onChangeAsync: TOnChangeAsync; ``` -Defined in: [packages/form-core/src/FormApi.ts:208](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L208) +Defined in: [packages/form-core/src/FormApi.ts:206](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L206) Optional onChange asynchronous counterpart to onChange. Useful for more complex validation logic that might involve server requests. @@ -115,7 +115,7 @@ Optional onChange asynchronous counterpart to onChange. Useful for more complex optional onChangeAsyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FormApi.ts:212](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L212) +Defined in: [packages/form-core/src/FormApi.ts:210](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L210) The default time in milliseconds that if set to a number larger than 0, will debounce the async validation event by this length of time in milliseconds. @@ -127,7 +127,7 @@ The default time in milliseconds that if set to a number larger than 0, will deb optional onDynamic: RejectPromiseValidator; ``` -Defined in: [packages/form-core/src/FormApi.ts:227](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L227) +Defined in: [packages/form-core/src/FormApi.ts:225](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L225) *** @@ -137,7 +137,7 @@ Defined in: [packages/form-core/src/FormApi.ts:227](https://github.com/TanStack/ optional onDynamicAsync: TOnDynamicAsync; ``` -Defined in: [packages/form-core/src/FormApi.ts:228](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L228) +Defined in: [packages/form-core/src/FormApi.ts:226](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L226) *** @@ -147,7 +147,7 @@ Defined in: [packages/form-core/src/FormApi.ts:228](https://github.com/TanStack/ optional onDynamicAsyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FormApi.ts:229](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L229) +Defined in: [packages/form-core/src/FormApi.ts:227](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L227) *** @@ -157,7 +157,7 @@ Defined in: [packages/form-core/src/FormApi.ts:229](https://github.com/TanStack/ optional onMount: RejectPromiseValidator; ``` -Defined in: [packages/form-core/src/FormApi.ts:200](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L200) +Defined in: [packages/form-core/src/FormApi.ts:198](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L198) Optional function that fires as soon as the component mounts. @@ -169,7 +169,7 @@ Optional function that fires as soon as the component mounts. optional onSubmit: RejectPromiseValidator; ``` -Defined in: [packages/form-core/src/FormApi.ts:225](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L225) +Defined in: [packages/form-core/src/FormApi.ts:223](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L223) *** @@ -179,4 +179,4 @@ Defined in: [packages/form-core/src/FormApi.ts:225](https://github.com/TanStack/ optional onSubmitAsync: TOnSubmitAsync; ``` -Defined in: [packages/form-core/src/FormApi.ts:226](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L226) +Defined in: [packages/form-core/src/FormApi.ts:224](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L224) diff --git a/docs/reference/interfaces/StandardSchemaV1Issue.md b/docs/reference/interfaces/StandardSchemaV1Issue.md index 6e55aa7bf3..13d1b8d16d 100644 --- a/docs/reference/interfaces/StandardSchemaV1Issue.md +++ b/docs/reference/interfaces/StandardSchemaV1Issue.md @@ -3,7 +3,7 @@ id: StandardSchemaV1Issue title: StandardSchemaV1Issue --- -Defined in: [packages/form-core/src/standardSchemaValidator.ts:181](https://github.com/TanStack/form/blob/main/packages/form-core/src/standardSchemaValidator.ts#L181) +Defined in: [packages/form-core/src/standardSchemaValidator.ts:180](https://github.com/TanStack/form/blob/main/packages/form-core/src/standardSchemaValidator.ts#L180) The issue interface of the failure output. @@ -15,7 +15,7 @@ The issue interface of the failure output. readonly message: string; ``` -Defined in: [packages/form-core/src/standardSchemaValidator.ts:185](https://github.com/TanStack/form/blob/main/packages/form-core/src/standardSchemaValidator.ts#L185) +Defined in: [packages/form-core/src/standardSchemaValidator.ts:184](https://github.com/TanStack/form/blob/main/packages/form-core/src/standardSchemaValidator.ts#L184) The error message of the issue. @@ -27,6 +27,6 @@ The error message of the issue. readonly optional path: readonly (PropertyKey | StandardSchemaV1PathSegment)[]; ``` -Defined in: [packages/form-core/src/standardSchemaValidator.ts:189](https://github.com/TanStack/form/blob/main/packages/form-core/src/standardSchemaValidator.ts#L189) +Defined in: [packages/form-core/src/standardSchemaValidator.ts:188](https://github.com/TanStack/form/blob/main/packages/form-core/src/standardSchemaValidator.ts#L188) The path of the issue, if any. diff --git a/docs/reference/type-aliases/AnyBaseFormState.md b/docs/reference/type-aliases/AnyBaseFormState.md index 9efdb32eac..df173d7151 100644 --- a/docs/reference/type-aliases/AnyBaseFormState.md +++ b/docs/reference/type-aliases/AnyBaseFormState.md @@ -7,4 +7,4 @@ title: AnyBaseFormState type AnyBaseFormState = BaseFormState; ``` -Defined in: [packages/form-core/src/FormApi.ts:699](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L699) +Defined in: [packages/form-core/src/FormApi.ts:697](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L697) diff --git a/docs/reference/type-aliases/AnyFieldApi.md b/docs/reference/type-aliases/AnyFieldApi.md index 2607f4244d..46e2a195de 100644 --- a/docs/reference/type-aliases/AnyFieldApi.md +++ b/docs/reference/type-aliases/AnyFieldApi.md @@ -7,6 +7,6 @@ title: AnyFieldApi type AnyFieldApi = FieldApi; ``` -Defined in: [packages/form-core/src/FieldApi.ts:480](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L480) +Defined in: [packages/form-core/src/FieldApi.ts:454](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L454) A type representing the Field API with all generics set to `any` for convenience. diff --git a/docs/reference/type-aliases/AnyFieldMeta.md b/docs/reference/type-aliases/AnyFieldMeta.md index 9075545be6..873f051a46 100644 --- a/docs/reference/type-aliases/AnyFieldMeta.md +++ b/docs/reference/type-aliases/AnyFieldMeta.md @@ -7,4 +7,4 @@ title: AnyFieldMeta type AnyFieldMeta = AnyFieldLikeMeta; ``` -Defined in: [packages/form-core/src/types.ts:834](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L834) +Defined in: [packages/form-core/src/types.ts:826](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L826) diff --git a/docs/reference/type-aliases/AnyFormApi.md b/docs/reference/type-aliases/AnyFormApi.md index 1d75d7af22..3538219843 100644 --- a/docs/reference/type-aliases/AnyFormApi.md +++ b/docs/reference/type-aliases/AnyFormApi.md @@ -7,6 +7,6 @@ title: AnyFormApi type AnyFormApi = FormApi; ``` -Defined in: [packages/form-core/src/FormApi.ts:915](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L915) +Defined in: [packages/form-core/src/FormApi.ts:913](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L913) A type representing the Form API with all generics set to `any` for convenience. diff --git a/docs/reference/type-aliases/AnyFormGroupApi.md b/docs/reference/type-aliases/AnyFormGroupApi.md index 576d193ccf..e0c8e05c71 100644 --- a/docs/reference/type-aliases/AnyFormGroupApi.md +++ b/docs/reference/type-aliases/AnyFormGroupApi.md @@ -7,6 +7,6 @@ title: AnyFormGroupApi type AnyFormGroupApi = FormGroupApi; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:708](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L708) +Defined in: [packages/form-core/src/FormGroupApi.ts:662](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L662) A type representing the FormGroup API with all generics set to `any` for convenience. diff --git a/docs/reference/type-aliases/AnyFormGroupMeta.md b/docs/reference/type-aliases/AnyFormGroupMeta.md index 8fbc7f85b6..3b4caa0319 100644 --- a/docs/reference/type-aliases/AnyFormGroupMeta.md +++ b/docs/reference/type-aliases/AnyFormGroupMeta.md @@ -7,6 +7,6 @@ title: AnyFormGroupMeta type AnyFormGroupMeta = FormGroupMeta; ``` -Defined in: [packages/form-core/src/FormGroupApi.ts:835](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L835) +Defined in: [packages/form-core/src/FormGroupApi.ts:776](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormGroupApi.ts#L776) `FormGroupMeta` with all generics widened to `any`. diff --git a/docs/reference/type-aliases/AnyFormOptions.md b/docs/reference/type-aliases/AnyFormOptions.md index 503632393c..9d83322ee2 100644 --- a/docs/reference/type-aliases/AnyFormOptions.md +++ b/docs/reference/type-aliases/AnyFormOptions.md @@ -7,4 +7,4 @@ title: AnyFormOptions type AnyFormOptions = FormOptions; ``` -Defined in: [packages/form-core/src/FormApi.ts:585](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L585) +Defined in: [packages/form-core/src/FormApi.ts:583](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L583) diff --git a/docs/reference/type-aliases/AnyFormState.md b/docs/reference/type-aliases/AnyFormState.md index 3cb6f0c9a5..cb70f990c1 100644 --- a/docs/reference/type-aliases/AnyFormState.md +++ b/docs/reference/type-aliases/AnyFormState.md @@ -7,4 +7,4 @@ title: AnyFormState type AnyFormState = FormState; ``` -Defined in: [packages/form-core/src/FormApi.ts:834](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L834) +Defined in: [packages/form-core/src/FormApi.ts:832](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L832) diff --git a/docs/reference/type-aliases/BaseFormState.md b/docs/reference/type-aliases/BaseFormState.md index bb8fb70f7d..29df2c7bf2 100644 --- a/docs/reference/type-aliases/BaseFormState.md +++ b/docs/reference/type-aliases/BaseFormState.md @@ -7,7 +7,7 @@ title: BaseFormState type BaseFormState = object; ``` -Defined in: [packages/form-core/src/FormApi.ts:613](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L613) +Defined in: [packages/form-core/src/FormApi.ts:611](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L611) An object representing the current state of the form. @@ -69,7 +69,7 @@ An object representing the current state of the form. optional _force_re_eval: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:696](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L696) +Defined in: [packages/form-core/src/FormApi.ts:694](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L694) @private, used to force a re-evaluation of the form state when options change @@ -81,7 +81,7 @@ Defined in: [packages/form-core/src/FormApi.ts:696](https://github.com/TanStack/ errorMap: ValidationErrorMap, UnwrapFormValidateOrFn, UnwrapFormAsyncValidateOrFn, UnwrapFormValidateOrFn, UnwrapFormAsyncValidateOrFn, UnwrapFormValidateOrFn, UnwrapFormAsyncValidateOrFn, UnwrapFormValidateOrFn, UnwrapFormAsyncValidateOrFn, UnwrapFormAsyncValidateOrFn>; ``` -Defined in: [packages/form-core/src/FormApi.ts:633](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L633) +Defined in: [packages/form-core/src/FormApi.ts:631](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L631) The error map for the form itself. @@ -93,7 +93,7 @@ The error map for the form itself. fieldMetaBase: Partial, AnyFieldLikeMetaBase>>; ``` -Defined in: [packages/form-core/src/FormApi.ts:652](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L652) +Defined in: [packages/form-core/src/FormApi.ts:650](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L650) A record of field metadata for each field in the form, not including the derived properties, like `errors` and such @@ -105,7 +105,7 @@ A record of field metadata for each field in the form, not including the derived formGroupStateBase: Partial>; ``` -Defined in: [packages/form-core/src/FormApi.ts:659](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L659) +Defined in: [packages/form-core/src/FormApi.ts:657](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L657) A record of submission lifecycle state for each mounted `FormGroupApi`, keyed by the group's fully-qualified field name. Stored on the form so @@ -120,7 +120,7 @@ mounted group instances. isSubmitSuccessful: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:692](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L692) +Defined in: [packages/form-core/src/FormApi.ts:690](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L690) A boolean indicating if the last submission was successful. @@ -132,7 +132,7 @@ A boolean indicating if the last submission was successful. isSubmitted: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:680](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L680) +Defined in: [packages/form-core/src/FormApi.ts:678](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L678) A boolean indicating if the `onSubmit` function has completed successfully. @@ -148,7 +148,7 @@ Note: you can use isSubmitting to check if the form is currently submitting. isSubmitting: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:672](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L672) +Defined in: [packages/form-core/src/FormApi.ts:670](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L670) A boolean indicating if the form is currently in the process of being submitted after `handleSubmit` is called. @@ -168,7 +168,7 @@ This is useful for displaying loading indicators or disabling form inputs during isValidating: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:684](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L684) +Defined in: [packages/form-core/src/FormApi.ts:682](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L682) A boolean indicating if the form or any of its fields are currently validating. @@ -180,7 +180,7 @@ A boolean indicating if the form or any of its fields are currently validating. submissionAttempts: number; ``` -Defined in: [packages/form-core/src/FormApi.ts:688](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L688) +Defined in: [packages/form-core/src/FormApi.ts:686](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L686) A counter for tracking the number of submission attempts. @@ -192,7 +192,7 @@ A counter for tracking the number of submission attempts. validationMetaMap: Record; ``` -Defined in: [packages/form-core/src/FormApi.ts:648](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L648) +Defined in: [packages/form-core/src/FormApi.ts:646](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L646) An internal mechanism used for keeping track of validation logic in a form. @@ -204,6 +204,6 @@ An internal mechanism used for keeping track of validation logic in a form. values: TFormData; ``` -Defined in: [packages/form-core/src/FormApi.ts:629](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L629) +Defined in: [packages/form-core/src/FormApi.ts:627](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L627) The current values of the form fields. diff --git a/docs/reference/type-aliases/DerivedFormState.md b/docs/reference/type-aliases/DerivedFormState.md index fbb9548691..f0893f1703 100644 --- a/docs/reference/type-aliases/DerivedFormState.md +++ b/docs/reference/type-aliases/DerivedFormState.md @@ -7,7 +7,7 @@ title: DerivedFormState type DerivedFormState = object; ``` -Defined in: [packages/form-core/src/FormApi.ts:713](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L713) +Defined in: [packages/form-core/src/FormApi.ts:711](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L711) ## Extended by @@ -67,7 +67,7 @@ Defined in: [packages/form-core/src/FormApi.ts:713](https://github.com/TanStack/ canSubmit: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:786](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L786) +Defined in: [packages/form-core/src/FormApi.ts:784](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L784) A boolean indicating if the form can be submitted based on its current state. @@ -89,7 +89,7 @@ errors: NonNullable< | UnwrapFormAsyncValidateOrFn>[]; ``` -Defined in: [packages/form-core/src/FormApi.ts:737](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L737) +Defined in: [packages/form-core/src/FormApi.ts:735](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L735) The error array for the form itself. @@ -101,7 +101,7 @@ The error array for the form itself. fieldMeta: Partial, AnyFieldLikeMeta>>; ``` -Defined in: [packages/form-core/src/FormApi.ts:790](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L790) +Defined in: [packages/form-core/src/FormApi.ts:788](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L788) A record of field metadata for each field in the form. @@ -113,7 +113,7 @@ A record of field metadata for each field in the form. isBlurred: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:766](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L766) +Defined in: [packages/form-core/src/FormApi.ts:764](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L764) A boolean indicating if any of the form fields have been blurred. @@ -125,7 +125,7 @@ A boolean indicating if any of the form fields have been blurred. isDefaultValue: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:778](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L778) +Defined in: [packages/form-core/src/FormApi.ts:776](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L776) A boolean indicating if all of the form's fields are the same as default values. @@ -137,7 +137,7 @@ A boolean indicating if all of the form's fields are the same as default values. isDirty: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:770](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L770) +Defined in: [packages/form-core/src/FormApi.ts:768](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L768) A boolean indicating if any of the form's fields' values have been modified by the user. Evaluates `true` if the user have modified at least one of the fields. Opposite of `isPristine`. @@ -149,7 +149,7 @@ A boolean indicating if any of the form's fields' values have been modified by t isFieldsValid: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:758](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L758) +Defined in: [packages/form-core/src/FormApi.ts:756](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L756) A boolean indicating if all the form fields are valid. Evaluates `true` if there are no field errors. @@ -161,7 +161,7 @@ A boolean indicating if all the form fields are valid. Evaluates `true` if there isFieldsValidating: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:754](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L754) +Defined in: [packages/form-core/src/FormApi.ts:752](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L752) A boolean indicating if any of the form fields are currently validating. @@ -173,7 +173,7 @@ A boolean indicating if any of the form fields are currently validating. isFormValid: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:733](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L733) +Defined in: [packages/form-core/src/FormApi.ts:731](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L731) A boolean indicating if the form is valid. @@ -185,7 +185,7 @@ A boolean indicating if the form is valid. isFormValidating: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:729](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L729) +Defined in: [packages/form-core/src/FormApi.ts:727](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L727) A boolean indicating if the form is currently validating. @@ -197,7 +197,7 @@ A boolean indicating if the form is currently validating. isPristine: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:774](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L774) +Defined in: [packages/form-core/src/FormApi.ts:772](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L772) A boolean indicating if none of the form's fields' values have been modified by the user. Evaluates `true` if the user have not modified any of the fields. Opposite of `isDirty`. @@ -209,7 +209,7 @@ A boolean indicating if none of the form's fields' values have been modified by isTouched: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:762](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L762) +Defined in: [packages/form-core/src/FormApi.ts:760](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L760) A boolean indicating if any of the form fields have been touched. @@ -221,6 +221,6 @@ A boolean indicating if any of the form fields have been touched. isValid: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:782](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L782) +Defined in: [packages/form-core/src/FormApi.ts:780](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L780) A boolean indicating if the form and all its fields are valid. Evaluates `true` if there are no errors. diff --git a/docs/reference/type-aliases/ExtractGlobalFormError.md b/docs/reference/type-aliases/ExtractGlobalFormError.md index 4a583f458f..12e77baa30 100644 --- a/docs/reference/type-aliases/ExtractGlobalFormError.md +++ b/docs/reference/type-aliases/ExtractGlobalFormError.md @@ -7,7 +7,7 @@ title: ExtractGlobalFormError type ExtractGlobalFormError = TFormError extends GlobalFormValidationError ? TFormError["form"] : TFormError; ``` -Defined in: [packages/form-core/src/types.ts:154](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L154) +Defined in: [packages/form-core/src/types.ts:146](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L146) ## Type Parameters diff --git a/docs/reference/type-aliases/FormValidationError.md b/docs/reference/type-aliases/FormValidationError.md index 32ec405f25..11a1d3d733 100644 --- a/docs/reference/type-aliases/FormValidationError.md +++ b/docs/reference/type-aliases/FormValidationError.md @@ -9,7 +9,7 @@ type FormValidationError = | GlobalFormValidationError; ``` -Defined in: [packages/form-core/src/types.ts:132](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L132) +Defined in: [packages/form-core/src/types.ts:125](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L125) ## Type Parameters diff --git a/docs/reference/type-aliases/FormValidator.md b/docs/reference/type-aliases/FormValidator.md index b64efebc9d..1979b74d34 100644 --- a/docs/reference/type-aliases/FormValidator.md +++ b/docs/reference/type-aliases/FormValidator.md @@ -7,7 +7,7 @@ title: FormValidator type FormValidator = object; ``` -Defined in: [packages/form-core/src/FormApi.ts:155](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L155) +Defined in: [packages/form-core/src/FormApi.ts:154](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L154) ## Type Parameters @@ -31,7 +31,7 @@ Defined in: [packages/form-core/src/FormApi.ts:155](https://github.com/TanStack/ validate(options, fn): unknown; ``` -Defined in: [packages/form-core/src/FormApi.ts:156](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L156) +Defined in: [packages/form-core/src/FormApi.ts:155](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L155) #### Parameters @@ -57,7 +57,7 @@ Defined in: [packages/form-core/src/FormApi.ts:156](https://github.com/TanStack/ validateAsync(options, fn): Promise; ``` -Defined in: [packages/form-core/src/FormApi.ts:157](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L157) +Defined in: [packages/form-core/src/FormApi.ts:156](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L156) #### Parameters diff --git a/docs/reference/type-aliases/UnwrapFieldAsyncValidateOrFn.md b/docs/reference/type-aliases/UnwrapFieldAsyncValidateOrFn.md index f30a1bee69..0ac3a71c6b 100644 --- a/docs/reference/type-aliases/UnwrapFieldAsyncValidateOrFn.md +++ b/docs/reference/type-aliases/UnwrapFieldAsyncValidateOrFn.md @@ -11,7 +11,7 @@ type UnwrapFieldAsyncValidateOrFn = | [TValidateOrFn] extends [FormGroupValidateAsyncFn] ? Awaited> : [TValidateOrFn] extends [StandardSchemaV1] ? StandardSchemaV1Issue[] : undefined; ``` -Defined in: [packages/form-core/src/types.ts:333](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L333) +Defined in: [packages/form-core/src/types.ts:325](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L325) ## Type Parameters diff --git a/docs/reference/type-aliases/UnwrapFieldValidateOrFn.md b/docs/reference/type-aliases/UnwrapFieldValidateOrFn.md index a163ba62d4..4f104654c3 100644 --- a/docs/reference/type-aliases/UnwrapFieldValidateOrFn.md +++ b/docs/reference/type-aliases/UnwrapFieldValidateOrFn.md @@ -11,7 +11,7 @@ type UnwrapFieldValidateOrFn = | [TValidateOrFn] extends [StandardSchemaV1] ? StandardSchemaV1Issue[] : [TValidateOrFn] extends [FormGroupValidateFn] ? ReturnType : undefined; ``` -Defined in: [packages/form-core/src/types.ts:431](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L431) +Defined in: [packages/form-core/src/types.ts:423](https://github.com/TanStack/form/blob/main/packages/form-core/src/types.ts#L423) ## Type Parameters diff --git a/docs/reference/type-aliases/UnwrapFormAsyncValidateOrFn.md b/docs/reference/type-aliases/UnwrapFormAsyncValidateOrFn.md index e7a140a138..e2edb6bf4f 100644 --- a/docs/reference/type-aliases/UnwrapFormAsyncValidateOrFn.md +++ b/docs/reference/type-aliases/UnwrapFormAsyncValidateOrFn.md @@ -7,7 +7,7 @@ title: UnwrapFormAsyncValidateOrFn type UnwrapFormAsyncValidateOrFn = [TValidateOrFn] extends [FormValidateAsyncFn] ? ExtractGlobalFormError>> : [TValidateOrFn] extends [StandardSchemaV1] ? Record : undefined; ``` -Defined in: [packages/form-core/src/FormApi.ts:177](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L177) +Defined in: [packages/form-core/src/FormApi.ts:175](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L175) ## Type Parameters diff --git a/docs/reference/type-aliases/UnwrapFormValidateOrFn.md b/docs/reference/type-aliases/UnwrapFormValidateOrFn.md index 1a469ec4f0..3fe1fd33d9 100644 --- a/docs/reference/type-aliases/UnwrapFormValidateOrFn.md +++ b/docs/reference/type-aliases/UnwrapFormValidateOrFn.md @@ -7,7 +7,7 @@ title: UnwrapFormValidateOrFn type UnwrapFormValidateOrFn = [TValidateOrFn] extends [FormValidateFn] ? ExtractGlobalFormError> : [TValidateOrFn] extends [StandardSchemaV1] ? Record : undefined; ``` -Defined in: [packages/form-core/src/FormApi.ts:123](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L123) +Defined in: [packages/form-core/src/FormApi.ts:122](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L122) ## Type Parameters diff --git a/docs/reference/type-aliases/ValidationMeta.md b/docs/reference/type-aliases/ValidationMeta.md index de7af060bd..5615e68cdb 100644 --- a/docs/reference/type-aliases/ValidationMeta.md +++ b/docs/reference/type-aliases/ValidationMeta.md @@ -7,7 +7,7 @@ title: ValidationMeta type ValidationMeta = object; ``` -Defined in: [packages/form-core/src/FormApi.ts:603](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L603) +Defined in: [packages/form-core/src/FormApi.ts:601](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L601) An object representing the validation metadata for a field. Not intended for public usage. @@ -19,6 +19,6 @@ An object representing the validation metadata for a field. Not intended for pub lastAbortController: AbortController; ``` -Defined in: [packages/form-core/src/FormApi.ts:607](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L607) +Defined in: [packages/form-core/src/FormApi.ts:605](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L605) An abort controller stored in memory to cancel previous async validation attempts. diff --git a/docs/reference/variables/throttleFormState.md b/docs/reference/variables/throttleFormState.md index 0d07c4b424..559398c092 100644 --- a/docs/reference/variables/throttleFormState.md +++ b/docs/reference/variables/throttleFormState.md @@ -7,7 +7,7 @@ title: throttleFormState const throttleFormState: (...args) => void; ``` -Defined in: [packages/form-core/src/utils.ts:681](https://github.com/TanStack/form/blob/main/packages/form-core/src/utils.ts#L681) +Defined in: [packages/form-core/src/utils.ts:680](https://github.com/TanStack/form/blob/main/packages/form-core/src/utils.ts#L680) ## Parameters diff --git a/examples/lit/large-form/src/components/text-field.ts b/examples/lit/large-form/src/components/text-field.ts index 27003af42f..759c1a6275 100644 --- a/examples/lit/large-form/src/components/text-field.ts +++ b/examples/lit/large-form/src/components/text-field.ts @@ -34,14 +34,16 @@ export class TextField extends LitElement { field.handleChange((e.target as HTMLInputElement).value)} /> - ${field.state.meta.isTouched && field.state.meta.errors.length - ? repeat( - field.state.meta.errors, - (_, idx) => idx, - (error: unknown) => - html`
${String(error)}
`, - ) - : nothing} + ${ + field.state.meta.isTouched && field.state.meta.errors.length + ? repeat( + field.state.meta.errors, + (_, idx) => idx, + (error: unknown) => + html`
${String(error)}
`, + ) + : nothing + } ${field.state.meta.isValidating ? html`

Validating...

` : nothing} ` diff --git a/examples/lit/multi-step-wizard/src/components/text-field.ts b/examples/lit/multi-step-wizard/src/components/text-field.ts index 190a06bcdd..37fe656143 100644 --- a/examples/lit/multi-step-wizard/src/components/text-field.ts +++ b/examples/lit/multi-step-wizard/src/components/text-field.ts @@ -34,19 +34,21 @@ export class TextField extends LitElement { field.handleChange((e.target as HTMLInputElement).value)} /> - ${field.state.meta.isTouched && field.state.meta.errors.length - ? repeat( - field.state.meta.errors, - (_, idx) => idx, - (error: unknown) => { - const message = - error && typeof error === 'object' && 'message' in error - ? String((error as { message: unknown }).message) - : String(error) - return html`
${message}
` - }, - ) - : nothing} + ${ + field.state.meta.isTouched && field.state.meta.errors.length + ? repeat( + field.state.meta.errors, + (_, idx) => idx, + (error: unknown) => { + const message = + error && typeof error === 'object' && 'message' in error + ? String((error as { message: unknown }).message) + : String(error) + return html`
${message}
` + }, + ) + : nothing + } ${field.state.meta.isValidating ? html`

Validating...

` : nothing} ` diff --git a/examples/lit/multi-step-wizard/src/features/wizard/page.ts b/examples/lit/multi-step-wizard/src/features/wizard/page.ts index 2bd19029da..59c39ad594 100644 --- a/examples/lit/multi-step-wizard/src/features/wizard/page.ts +++ b/examples/lit/multi-step-wizard/src/features/wizard/page.ts @@ -40,20 +40,24 @@ export class WizardPage extends LitElement { render() { return html` - ${this.step === 0 - ? html`` - : nothing} - ${this.step === 1 - ? html`` - : nothing} + ${ + this.step === 0 + ? html`` + : nothing + } + ${ + this.step === 1 + ? html`` + : nothing + } ` } } diff --git a/examples/lit/simple/src/index.ts b/examples/lit/simple/src/index.ts index b81e8563a3..a337814ac6 100644 --- a/examples/lit/simple/src/index.ts +++ b/examples/lit/simple/src/index.ts @@ -59,18 +59,22 @@ export class TanStackFormDemo extends LitElement { field.handleChange(target.value) }}" /> - ${field.state.meta.isTouched && !field.state.meta.isValid - ? html`${repeat( - field.state.meta.errors, - (__, idx) => idx, - (error) => { - return html`
${error}
` - }, - )}` - : nothing} - ${field.state.meta.isValidating - ? html`

Validating...

` - : nothing} + ${ + field.state.meta.isTouched && !field.state.meta.isValid + ? html`${repeat( + field.state.meta.errors, + (__, idx) => idx, + (error) => { + return html`
${error}
` + }, + )}` + : nothing + } + ${ + field.state.meta.isValidating + ? html`

Validating...

` + : nothing + } ` }, )} diff --git a/examples/lit/standard-schema/src/index.ts b/examples/lit/standard-schema/src/index.ts index 160a027bb4..d4082f9e0c 100644 --- a/examples/lit/standard-schema/src/index.ts +++ b/examples/lit/standard-schema/src/index.ts @@ -97,20 +97,24 @@ export class TanStackFormDemo extends LitElement { field.handleChange(target.value) }}" /> - ${field.state.meta.isTouched && !field.state.meta.isValid - ? html`${repeat( - field.state.meta.errors, - (__, idx) => idx, - (error) => { - return html`
- ${error?.message} -
` - }, - )}` - : nothing} - ${field.state.meta.isValidating - ? html`

Validating...

` - : nothing} + ${ + field.state.meta.isTouched && !field.state.meta.isValid + ? html`${repeat( + field.state.meta.errors, + (__, idx) => idx, + (error) => { + return html`
+ ${error?.message} +
` + }, + )}` + : nothing + } + ${ + field.state.meta.isValidating + ? html`

Validating...

` + : nothing + } ` }, )} @@ -133,20 +137,24 @@ export class TanStackFormDemo extends LitElement { field.handleChange(target.value) }}" /> - ${field.state.meta.isTouched && !field.state.meta.isValid - ? html`${repeat( - field.state.meta.errors, - (__, idx) => idx, - (error) => { - return html`
- ${error?.message} -
` - }, - )}` - : nothing} - ${field.state.meta.isValidating - ? html`

Validating...

` - : nothing} + ${ + field.state.meta.isTouched && !field.state.meta.isValid + ? html`${repeat( + field.state.meta.errors, + (__, idx) => idx, + (error) => { + return html`
+ ${error?.message} +
` + }, + )}` + : nothing + } + ${ + field.state.meta.isValidating + ? html`

Validating...

` + : nothing + } ` }, )} diff --git a/examples/lit/ui-libraries/src/index.ts b/examples/lit/ui-libraries/src/index.ts index 6e1448765a..c96247e3f4 100644 --- a/examples/lit/ui-libraries/src/index.ts +++ b/examples/lit/ui-libraries/src/index.ts @@ -120,43 +120,47 @@ export class TanStackFormDemo extends LitElement { @blur="${() => employedField.handleBlur()}" > - ${employedField.state.value - ? this.#form.field( - { - name: `employees[${index}].jobTitle`, - defaultValue: '', - validators: { - onChange: ({ value }) => { - return value?.length === 0 - ? 'Needs to have a job here' - : null + ${ + employedField.state.value + ? this.#form.field( + { + name: `employees[${index}].jobTitle`, + defaultValue: '', + validators: { + onChange: ({ value }) => { + return value?.length === 0 + ? 'Needs to have a job here' + : null + }, }, }, - }, - (jobTitleField) => { - return html`
- - -
` - }, - ) - : ''} ` + (jobTitleField) => { + return html`
+ + +
` + }, + ) + : '' + } ` }, )} ` diff --git a/examples/octane/multi-step-wizard/README.md b/examples/octane/multi-step-wizard/README.md new file mode 100644 index 0000000000..1cf8892652 --- /dev/null +++ b/examples/octane/multi-step-wizard/README.md @@ -0,0 +1,6 @@ +# Example + +To run this example: + +- `npm install` +- `npm run dev` diff --git a/examples/octane/multi-step-wizard/index.html b/examples/octane/multi-step-wizard/index.html new file mode 100644 index 0000000000..4db1d13234 --- /dev/null +++ b/examples/octane/multi-step-wizard/index.html @@ -0,0 +1,12 @@ + + + + + + TanStack Form Octane Multi-Step Wizard Example App + + +
+ + + diff --git a/examples/octane/multi-step-wizard/package.json b/examples/octane/multi-step-wizard/package.json new file mode 100644 index 0000000000..ded9566e82 --- /dev/null +++ b/examples/octane/multi-step-wizard/package.json @@ -0,0 +1,21 @@ +{ + "name": "@tanstack/form-example-octane-multi-step-wizard", + "private": true, + "type": "module", + "scripts": { + "dev": "vite --port=3001", + "build": "vite build", + "preview": "vite preview", + "test:types": "tsrx-tsc --noEmit -p tsconfig.json" + }, + "dependencies": { + "@tanstack/octane-form": "workspace:*", + "octane": "^0.2.16", + "zod": "^3.25.76" + }, + "devDependencies": { + "@tsrx/typescript-plugin": "0.4.6", + "typescript": "5.9.3", + "vite": "^7.2.2" + } +} diff --git a/examples/octane/multi-step-wizard/src/App.tsrx b/examples/octane/multi-step-wizard/src/App.tsrx new file mode 100644 index 0000000000..969cdbdaeb --- /dev/null +++ b/examples/octane/multi-step-wizard/src/App.tsrx @@ -0,0 +1,5 @@ +import { WizardPage } from './features/wizard/page.tsrx' + +export default function App() @{ + +} diff --git a/examples/octane/multi-step-wizard/src/components/text-fields.tsrx b/examples/octane/multi-step-wizard/src/components/text-fields.tsrx new file mode 100644 index 0000000000..e271fee718 --- /dev/null +++ b/examples/octane/multi-step-wizard/src/components/text-fields.tsrx @@ -0,0 +1,21 @@ +import { useSelector } from '@tanstack/octane-form' +import { useFieldContext } from '../hooks/form-context' + +export function TextField({ label }: { label: string }) @{ + const field = useFieldContext() + const errors = useSelector(field.store, (state) => state.meta.errors) + +
+ + @for (const error of errors; key error.message) { +
{error.message}
+ } +
+} diff --git a/examples/octane/multi-step-wizard/src/features/wizard/page.tsrx b/examples/octane/multi-step-wizard/src/features/wizard/page.tsrx new file mode 100644 index 0000000000..cd7825f318 --- /dev/null +++ b/examples/octane/multi-step-wizard/src/features/wizard/page.tsrx @@ -0,0 +1,34 @@ +import { revalidateLogic } from '@tanstack/octane-form' +import { z } from 'zod' +import { useState } from 'octane' +import { useAppForm } from '../../hooks/form.tsrx' +import { step1Schema, step2Schema, wizardFormOpts } from './shared-form' +import { Step2Form } from './step2-subform.tsrx' +import { Step1Form } from './step1-subform.tsrx' + +export function WizardPage() @{ + const [step, setStep] = useState(0) + const form = useAppForm({ + ...wizardFormOpts, + validationLogic: revalidateLogic(), + validators: { + // The whole-form schema runs when form.handleSubmit() is called. + // A FormGroup validates only its current step's schema. + onDynamic: z.object({ + step1: step1Schema, + step2: step2Schema, + }), + }, + onSubmit: ({ value }) => { + alert(`Form submitted: ${JSON.stringify(value)}`) + }, + }) + + <> + @if (step === 0) { + + } @else if (step === 1) { + + } + +} diff --git a/examples/octane/multi-step-wizard/src/features/wizard/shared-form.ts b/examples/octane/multi-step-wizard/src/features/wizard/shared-form.ts new file mode 100644 index 0000000000..54b18eef9f --- /dev/null +++ b/examples/octane/multi-step-wizard/src/features/wizard/shared-form.ts @@ -0,0 +1,21 @@ +import { formOptions } from '@tanstack/octane-form' +import z from 'zod' + +export const step1Schema = z.object({ + name: z.string().min(2, 'Name must be at least 2 characters'), +}) + +export const step2Schema = z.object({ + name: z.string().min(3, 'Name must be at least 3 characters'), +}) + +export const wizardFormOpts = formOptions({ + defaultValues: { + step1: { + name: '', + }, + step2: { + name: '', + }, + }, +}) diff --git a/examples/octane/multi-step-wizard/src/features/wizard/step1-subform.tsrx b/examples/octane/multi-step-wizard/src/features/wizard/step1-subform.tsrx new file mode 100644 index 0000000000..4523bd5f09 --- /dev/null +++ b/examples/octane/multi-step-wizard/src/features/wizard/step1-subform.tsrx @@ -0,0 +1,38 @@ +import { withForm } from '../../hooks/form.tsrx' +import { step1Schema, wizardFormOpts } from './shared-form' + +export const Step1Form = withForm({ + ...wizardFormOpts, + props: { + step: 0, + setStep: (_step: number) => {}, + }, + render: ({ form, step, setStep }) => { + setStep(step + 1) + }} + onGroupSubmitInvalid={() => {}} + > + {(formGroup) =>
{ + e.preventDefault() + e.stopPropagation() + void formGroup.handleSubmit() + }} + > + + {(field) => } + + + + + + {/* Form groups expose error maps and errors, just like forms and fields. */} +
{JSON.stringify(formGroup.state.meta.errorMap, null, 2)}
+
} +
, +}) diff --git a/examples/octane/multi-step-wizard/src/features/wizard/step2-subform.tsrx b/examples/octane/multi-step-wizard/src/features/wizard/step2-subform.tsrx new file mode 100644 index 0000000000..c5c8599608 --- /dev/null +++ b/examples/octane/multi-step-wizard/src/features/wizard/step2-subform.tsrx @@ -0,0 +1,36 @@ +import { withForm } from '../../hooks/form.tsrx' +import { step2Schema, wizardFormOpts } from './shared-form' + +export const Step2Form = withForm({ + ...wizardFormOpts, + props: { + step: 1, + setStep: (_step: number) => {}, + }, + render: ({ form, step, setStep }) => form.handleSubmit()} + > + {(formGroup) =>
{ + e.preventDefault() + e.stopPropagation() + void formGroup.handleSubmit() + }} + > + + {(field) => } + + + + + + +
} +
, +}) diff --git a/examples/octane/multi-step-wizard/src/hooks/form-context.ts b/examples/octane/multi-step-wizard/src/hooks/form-context.ts new file mode 100644 index 0000000000..11de878739 --- /dev/null +++ b/examples/octane/multi-step-wizard/src/hooks/form-context.ts @@ -0,0 +1,4 @@ +import { createFormHookContexts } from '@tanstack/octane-form' + +export const { fieldContext, useFieldContext, formContext, useFormContext } = + createFormHookContexts() diff --git a/examples/octane/multi-step-wizard/src/hooks/form.tsrx b/examples/octane/multi-step-wizard/src/hooks/form.tsrx new file mode 100644 index 0000000000..9335890c46 --- /dev/null +++ b/examples/octane/multi-step-wizard/src/hooks/form.tsrx @@ -0,0 +1,23 @@ +import { createFormHook } from '@tanstack/octane-form' +import { TextField } from '../components/text-fields.tsrx' +import { fieldContext, formContext, useFormContext } from './form-context' + +function SubscribeButton({ label }: { label: string }) @{ + const form = useFormContext() + + state.isSubmitting}> + {(isSubmitting) => + } + +} + +export const { useAppForm, withForm, withFieldGroup } = createFormHook({ + fieldComponents: { + TextField, + }, + formComponents: { + SubscribeButton, + }, + fieldContext, + formContext, +}) diff --git a/examples/octane/multi-step-wizard/src/index.tsrx b/examples/octane/multi-step-wizard/src/index.tsrx new file mode 100644 index 0000000000..cfb90f0ba9 --- /dev/null +++ b/examples/octane/multi-step-wizard/src/index.tsrx @@ -0,0 +1,10 @@ +import { createRoot } from 'octane' +import App from './App.tsrx' + +const rootElement = document.getElementById('root') + +if (!rootElement) { + throw new Error('Root element not found') +} + +createRoot(rootElement).render(App) diff --git a/examples/octane/multi-step-wizard/tsconfig.json b/examples/octane/multi-step-wizard/tsconfig.json new file mode 100644 index 0000000000..8e3a826711 --- /dev/null +++ b/examples/octane/multi-step-wizard/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../../tsconfig.json", + "tsrx": { + "compiler": "octane/compiler/volar" + }, + "compilerOptions": { + "jsx": "preserve", + "jsxImportSource": "octane", + "allowImportingTsExtensions": true, + "plugins": [{ "name": "@tsrx/typescript-plugin" }] + }, + "include": ["src", "vite.config.ts"] +} diff --git a/examples/octane/multi-step-wizard/vite.config.ts b/examples/octane/multi-step-wizard/vite.config.ts new file mode 100644 index 0000000000..a019236ffc --- /dev/null +++ b/examples/octane/multi-step-wizard/vite.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vite' +import { octane } from 'octane/compiler/vite' + +export default defineConfig({ + plugins: [octane()], + resolve: { + extensions: ['.tsrx', '.ts', '.tsx', '.mjs', '.js', '.jsx', '.json'], + }, + build: { target: 'esnext' }, +}) diff --git a/examples/octane/simple/README.md b/examples/octane/simple/README.md new file mode 100644 index 0000000000..1cf8892652 --- /dev/null +++ b/examples/octane/simple/README.md @@ -0,0 +1,6 @@ +# Example + +To run this example: + +- `npm install` +- `npm run dev` diff --git a/examples/octane/simple/index.html b/examples/octane/simple/index.html new file mode 100644 index 0000000000..f82f418475 --- /dev/null +++ b/examples/octane/simple/index.html @@ -0,0 +1,12 @@ + + + + + + TanStack Form Octane Simple Example App + + +
+ + + diff --git a/examples/octane/simple/package.json b/examples/octane/simple/package.json new file mode 100644 index 0000000000..7a2de1c076 --- /dev/null +++ b/examples/octane/simple/package.json @@ -0,0 +1,20 @@ +{ + "name": "@tanstack/form-example-octane-simple", + "private": true, + "type": "module", + "scripts": { + "dev": "vite --port=3001", + "build": "vite build", + "preview": "vite preview", + "test:types": "tsrx-tsc --noEmit -p tsconfig.json" + }, + "dependencies": { + "@tanstack/octane-form": "workspace:*", + "octane": "^0.2.16" + }, + "devDependencies": { + "@tsrx/typescript-plugin": "0.4.6", + "typescript": "5.9.3", + "vite": "^7.2.2" + } +} diff --git a/examples/octane/simple/src/index.tsrx b/examples/octane/simple/src/index.tsrx new file mode 100644 index 0000000000..68b1b0d67f --- /dev/null +++ b/examples/octane/simple/src/index.tsrx @@ -0,0 +1,100 @@ +import { createRoot } from 'octane' +import { useForm } from '@tanstack/octane-form' +import type { AnyFieldApi } from '@tanstack/octane-form' + +function FieldInfo({ field }: { field: AnyFieldApi }) @{ + <> + @if (field.state.meta.isTouched && !field.state.meta.isValid) { + {field.state.meta.errors.join(',')} + } + @if (field.state.meta.isValidating) { + <>Validating... + } + +} + +function App() @{ + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + }, + onSubmit: async ({ value }) => { + console.log(value) + }, + }) + +
+

Simple Octane Form Example

+
{ + e.preventDefault() + e.stopPropagation() + void form.handleSubmit() + }} + > +
+ !value + ? 'A first name is required' + : value.length < 3 + ? 'First name must be at least 3 characters' + : undefined, + }} + children={(field) => <> + + field.handleChange(e.currentTarget.value)} + /> + + } + /> +
+ +
+ <> + + field.handleChange(e.currentTarget.value)} + /> + + } + /> +
+ + [state.canSubmit, state.isSubmitting]} + children={([canSubmit, isSubmitting]) => <> + + + } + /> + +
+} + +const target = document.getElementById('root') +if (!target) throw new Error('Missing #root') +createRoot(target).render(App) diff --git a/examples/octane/simple/tsconfig.json b/examples/octane/simple/tsconfig.json new file mode 100644 index 0000000000..8e3a826711 --- /dev/null +++ b/examples/octane/simple/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../../tsconfig.json", + "tsrx": { + "compiler": "octane/compiler/volar" + }, + "compilerOptions": { + "jsx": "preserve", + "jsxImportSource": "octane", + "allowImportingTsExtensions": true, + "plugins": [{ "name": "@tsrx/typescript-plugin" }] + }, + "include": ["src", "vite.config.ts"] +} diff --git a/examples/octane/simple/vite.config.ts b/examples/octane/simple/vite.config.ts new file mode 100644 index 0000000000..a019236ffc --- /dev/null +++ b/examples/octane/simple/vite.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vite' +import { octane } from 'octane/compiler/vite' + +export default defineConfig({ + plugins: [octane()], + resolve: { + extensions: ['.tsrx', '.ts', '.tsx', '.mjs', '.js', '.jsx', '.json'], + }, + build: { target: 'esnext' }, +}) diff --git a/examples/react/next-server-actions-zod/package.json b/examples/react/next-server-actions-zod/package.json index 95d79d374b..e95c3234af 100644 --- a/examples/react/next-server-actions-zod/package.json +++ b/examples/react/next-server-actions-zod/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-form-nextjs": "^1.33.5", - "@tanstack/react-store": "^0.11.0", + "@tanstack/react-store": "^0.11.1", "next": "16.2.6", "react": "19.1.0", "react-dom": "19.1.0", diff --git a/examples/react/next-server-actions/package.json b/examples/react/next-server-actions/package.json index 5a064c62cf..a14d351ba8 100644 --- a/examples/react/next-server-actions/package.json +++ b/examples/react/next-server-actions/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-form-nextjs": "^1.33.5", - "@tanstack/react-store": "^0.11.0", + "@tanstack/react-store": "^0.11.1", "next": "16.2.6", "react": "19.1.0", "react-dom": "19.1.0" diff --git a/examples/react/nextjs/next-env.d.ts b/examples/react/nextjs/next-env.d.ts new file mode 100644 index 0000000000..d9391a77d7 --- /dev/null +++ b/examples/react/nextjs/next-env.d.ts @@ -0,0 +1,7 @@ +/// +/// +import './.next/types/routes.d.ts' +import './.next/types/root-params.d.ts' + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/examples/react/remix/package.json b/examples/react/remix/package.json index 1e2167d93f..7c6bdafe99 100644 --- a/examples/react/remix/package.json +++ b/examples/react/remix/package.json @@ -12,7 +12,7 @@ "@remix-run/react": "^2.17.4", "@remix-run/serve": "^2.17.4", "@tanstack/react-form-remix": "^1.33.5", - "@tanstack/react-store": "^0.11.0", + "@tanstack/react-store": "^0.11.1", "isbot": "^5.1.30", "react": "19.1.0", "react-dom": "19.1.0" diff --git a/examples/react/tanstack-start/package.json b/examples/react/tanstack-start/package.json index 64068a5aa4..72aef4d4f1 100644 --- a/examples/react/tanstack-start/package.json +++ b/examples/react/tanstack-start/package.json @@ -12,7 +12,7 @@ "@tanstack/react-form-start": "^1.33.5", "@tanstack/react-router": "^1.134.9", "@tanstack/react-start": "^1.168.27", - "@tanstack/react-store": "^0.11.0", + "@tanstack/react-store": "^0.11.1", "react": "19.1.0", "react-dom": "19.1.0" }, diff --git a/knip.json b/knip.json index a91f5eab51..3bd267bce4 100755 --- a/knip.json +++ b/knip.json @@ -1,5 +1,18 @@ { "$schema": "https://unpkg.com/knip@6/schema.json", - "ignoreDependencies": ["@tanstack/devtools"], - "ignoreWorkspaces": ["examples/**"] + "ignoreDependencies": [ + "@tanstack/devtools", + "ts-node", + "@vue/runtime-core", + "@vue/reactivity" + ], + "ignoreWorkspaces": ["examples/**"], + "workspaces": { + "packages/octane-form": { + "entry": ["localsrc/program-transformer.cts"] + } + }, + "compilers": { + "tsrx": true + } } diff --git a/package.json b/package.json index 5dabc83e40..052d5b3969 100644 --- a/package.json +++ b/package.json @@ -44,14 +44,12 @@ "@changesets/changelog-github": "^1.0.1", "@changesets/cli": "^3.0.3", "@eslint-react/eslint-plugin": "^1.53.1", - "@solidjs/testing-library": "^0.8.10", "@tanstack/eslint-config": "0.3.2", "@tanstack/typedoc-config": "0.3.1", "@tanstack/vite-config": "0.4.1", "@testing-library/jest-dom": "^6.8.0", - "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", - "@testing-library/vue": "^8.1.0", + "@tsrx/prettier-plugin": "0.4.7", "@types/node": "^24.1.0", "@vitest/coverage-istanbul": "^3.2.4", "eslint": "9.36.0", @@ -65,6 +63,7 @@ "publint": "^0.3.15", "sherif": "^1.9.0", "tinyglobby": "^0.2.15", + "ts-node": "^10.9.2", "typescript": "5.9.3", "typescript54": "npm:typescript@5.4.5", "typescript55": "npm:typescript@5.5.4", diff --git a/packages/angular-form/src/app-field.ts b/packages/angular-form/src/app-field.ts index 6e5897f2f3..a41be3aa15 100644 --- a/packages/angular-form/src/app-field.ts +++ b/packages/angular-form/src/app-field.ts @@ -24,20 +24,16 @@ export class TanStackAppField< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, diff --git a/packages/angular-form/src/tanstack-field.ts b/packages/angular-form/src/tanstack-field.ts index e5ff98e964..346d5f67d4 100644 --- a/packages/angular-form/src/tanstack-field.ts +++ b/packages/angular-form/src/tanstack-field.ts @@ -41,20 +41,16 @@ export class TanStackField< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, diff --git a/packages/angular-form/src/tanstack-form-group.ts b/packages/angular-form/src/tanstack-form-group.ts index 5706128944..f51d307bd8 100644 --- a/packages/angular-form/src/tanstack-form-group.ts +++ b/packages/angular-form/src/tanstack-form-group.ts @@ -37,27 +37,20 @@ export class TanStackFormGroup< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, diff --git a/packages/form-core/package.json b/packages/form-core/package.json index cc59a8f436..d8def91b5a 100644 --- a/packages/form-core/package.json +++ b/packages/form-core/package.json @@ -54,7 +54,7 @@ "dependencies": { "@tanstack/devtools-event-client": "^0.4.1", "@tanstack/pacer-lite": "^0.1.1", - "@tanstack/store": "^0.11.0" + "@tanstack/store": "^0.11.1" }, "devDependencies": { "arktype": "^2.1.22", diff --git a/packages/form-core/src/FieldApi.ts b/packages/form-core/src/FieldApi.ts index 80770f8897..70df6a639c 100644 --- a/packages/form-core/src/FieldApi.ts +++ b/packages/form-core/src/FieldApi.ts @@ -162,8 +162,7 @@ export type FieldValidateOrFn< TName extends DeepKeys, TData extends DeepValue = DeepValue, > = - | FieldValidateFn - | StandardSchemaV1 + FieldValidateFn | StandardSchemaV1 /** * @private @@ -183,20 +182,16 @@ export interface FieldValidators< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, > { /** * An optional function, that runs on the mount event of input. @@ -286,20 +281,16 @@ interface FieldExtraOptions< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, > { /** * A list of validators to pass to the field @@ -335,20 +326,16 @@ export interface FieldOptions< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, > extends FieldExtraOptions< @@ -385,49 +372,36 @@ export interface FieldApiOptions< in out TName extends DeepKeys, in out TData extends DeepValue, in out TOnMount extends - | undefined - | FieldValidateOrFn, + undefined | FieldValidateOrFn, in out TOnChange extends - | undefined - | FieldValidateOrFn, + undefined | FieldValidateOrFn, in out TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, in out TOnBlur extends - | undefined - | FieldValidateOrFn, + undefined | FieldValidateOrFn, in out TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, in out TOnSubmit extends - | undefined - | FieldValidateOrFn, + undefined | FieldValidateOrFn, in out TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, in out TOnDynamic extends - | undefined - | FieldValidateOrFn, + undefined | FieldValidateOrFn, in out TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TParentSubmitMeta, > @@ -522,49 +496,36 @@ export class FieldApi< in out TName extends DeepKeys, in out TData extends DeepValue, in out TOnMount extends - | undefined - | FieldValidateOrFn, + undefined | FieldValidateOrFn, in out TOnChange extends - | undefined - | FieldValidateOrFn, + undefined | FieldValidateOrFn, in out TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, in out TOnBlur extends - | undefined - | FieldValidateOrFn, + undefined | FieldValidateOrFn, in out TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, in out TOnSubmit extends - | undefined - | FieldValidateOrFn, + undefined | FieldValidateOrFn, in out TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, in out TOnDynamic extends - | undefined - | FieldValidateOrFn, + undefined | FieldValidateOrFn, in out TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TParentSubmitMeta, > implements FieldLikeAPI< diff --git a/packages/form-core/src/FormApi.ts b/packages/form-core/src/FormApi.ts index 4400017d30..e79c0e8a04 100644 --- a/packages/form-core/src/FormApi.ts +++ b/packages/form-core/src/FormApi.ts @@ -117,8 +117,7 @@ export type FormValidateFn = (props: { * @private */ export type FormValidateOrFn = - | FormValidateFn - | StandardSchemaV1 + FormValidateFn | StandardSchemaV1 export type UnwrapFormValidateOrFn< TValidateOrFn extends undefined | FormValidateOrFn, @@ -171,8 +170,7 @@ type ValidationPromiseResult = * @private */ export type FormAsyncValidateOrFn = - | FormValidateAsyncFn - | StandardSchemaV1 + FormValidateAsyncFn | StandardSchemaV1 export type UnwrapFormAsyncValidateOrFn< TValidateOrFn extends undefined | FormAsyncValidateOrFn, @@ -1120,8 +1118,7 @@ export class FormApi< ).state as never for (const errKey of Object.keys(baseStoreVal.errorMap)) { const errKeyMap = baseStoreVal.errorMap[errKey as never] as - | GlobalFormValidationError - | undefined + GlobalFormValidationError | undefined if ( errKeyMap === undefined || !isGlobalFormValidationError(errKeyMap) @@ -1302,8 +1299,7 @@ export class FormApi< // The group's own field-meta entry (its `errorMap` is where the // group's own validators write via `setFieldMeta`). const ownFieldMeta = currFieldMeta[groupName] as - | AnyFieldLikeMeta - | undefined + AnyFieldLikeMeta | undefined // Aggregate validity / interaction flags across descendant fields // (excluding the group's own self-entry — its validity is tracked @@ -2186,8 +2182,7 @@ export class FormApi< const promises: Promise>[] = [] let fieldErrorsFromFormValidators: - | Partial, ValidationError>> - | undefined + Partial, ValidationError>> | undefined for (const validateObj of validates) { if (!validateObj.validate) continue @@ -2204,9 +2199,7 @@ export class FormApi< promises.push( new Promise>(async (resolve) => { let rawError!: - | ValidationError - | FormValidationError - | undefined + ValidationError | FormValidationError | undefined try { rawError = await new Promise((rawResolve, rawReject) => { setTimeout(async () => { diff --git a/packages/form-core/src/FormGroupApi.ts b/packages/form-core/src/FormGroupApi.ts index 4790d5505c..833d8fdd1b 100644 --- a/packages/form-core/src/FormGroupApi.ts +++ b/packages/form-core/src/FormGroupApi.ts @@ -202,27 +202,20 @@ export interface FormGroupValidators< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, > { /** * An optional function, that runs on the mount event of input. @@ -310,50 +303,37 @@ interface FormGroupExtraOptions< in out TName extends DeepKeys, in out TData extends DeepValue, in out TOnMount extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnBlur extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TSubmitMeta, in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TParentSubmitMeta, > { @@ -470,50 +450,37 @@ export interface FormGroupOptions< in out TName extends DeepKeys, in out TData extends DeepValue, in out TOnMount extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnBlur extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TSubmitMeta, in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TParentSubmitMeta, > @@ -564,50 +531,37 @@ export interface FormGroupApiOptions< in out TName extends DeepKeys, in out TData extends DeepValue, in out TOnMount extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnBlur extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TSubmitMeta, in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TParentSubmitMeta, > extends FormGroupOptions< @@ -751,49 +705,36 @@ export interface FormGroupMeta< in out TName extends DeepKeys, in out TData extends DeepValue, in out TOnMount extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnBlur extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, > extends FieldLikeMeta< @@ -861,49 +802,36 @@ export interface FormGroupStoreState< in out TName extends DeepKeys, in out TData extends DeepValue, in out TOnMount extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnBlur extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, > { /** * The current value of the form group. @@ -972,50 +900,37 @@ export class FormGroupApi< in out TName extends DeepKeys, in out TData extends DeepValue, in out TOnMount extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnBlur extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, in out TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, in out TSubmitMeta, in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TParentSubmitMeta, > @@ -1301,8 +1216,8 @@ export class FormGroupApi< const meta = (this.form.getFormGroupMeta(this.name as never) as - | AnyFormGroupMeta - | undefined) ?? getDefaultFormGroupMeta(opts.defaultMeta as never) + AnyFormGroupMeta | undefined) ?? + getDefaultFormGroupMeta(opts.defaultMeta as never) let value = this.form.getFieldValue(this.name) if ( @@ -1720,19 +1635,16 @@ export class FormGroupApi< ? fullName.slice((this.name as string).length) : fullName.slice((this.name as string).length + 1) const newFormValidatorError = fieldErrors?.[relativeName] as - | ValidationError - | undefined + ValidationError | undefined const fieldMeta = this.form.getFieldMeta(fullName as never) if (!fieldMeta && !newFormValidatorError) continue const previousErrorValue = fieldMeta?.errorMap[errorMapKey as never] as - | ValidationError - | undefined + ValidationError | undefined const isPreviousErrorFromFormValidator = (fieldMeta?.errorSourceMap[errorMapKey as never] as - | string - | undefined) === 'form' + string | undefined) === 'form' const { newErrorValue, newSource } = determineFormLevelErrorSourceAndValue({ diff --git a/packages/form-core/src/standardSchemaValidator.ts b/packages/form-core/src/standardSchemaValidator.ts index 7648528564..daf39e2cdc 100644 --- a/packages/form-core/src/standardSchemaValidator.ts +++ b/packages/form-core/src/standardSchemaValidator.ts @@ -151,8 +151,7 @@ interface StandardSchemaV1Props { * The result interface of the validate function. */ type StandardSchemaV1Result = - | StandardSchemaV1SuccessResult - | StandardSchemaV1FailureResult + StandardSchemaV1SuccessResult | StandardSchemaV1FailureResult /** * The result interface if validation succeeds. */ @@ -187,8 +186,7 @@ export interface StandardSchemaV1Issue { * The path of the issue, if any. */ readonly path?: - | ReadonlyArray - | undefined + ReadonlyArray | undefined } /** * The path segment interface of the issue. diff --git a/packages/form-core/src/types.ts b/packages/form-core/src/types.ts index b3c90a8011..5cb50767a3 100644 --- a/packages/form-core/src/types.ts +++ b/packages/form-core/src/types.ts @@ -41,12 +41,7 @@ export type ValidationSource = 'form' | 'field' * @private */ export type ValidationCause = - | 'change' - | 'blur' - | 'submit' - | 'mount' - | 'server' - | 'dynamic' + 'change' | 'blur' | 'submit' | 'mount' | 'server' | 'dynamic' /** * @private @@ -115,9 +110,7 @@ export type FormValidationErrorMap< | TOnChangeAsyncReturn | GlobalFormValidationError onBlur?: - | TOnBlurReturn - | TOnBlurAsyncReturn - | GlobalFormValidationError + TOnBlurReturn | TOnBlurAsyncReturn | GlobalFormValidationError onSubmit?: | TOnSubmitReturn | TOnSubmitAsyncReturn @@ -130,8 +123,7 @@ export type FormValidationErrorMap< } export type FormValidationError = - | ValidationError - | GlobalFormValidationError + ValidationError | GlobalFormValidationError /** * @private @@ -1061,20 +1053,16 @@ export interface FieldLikeApiOptions< in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TParentSubmitMeta, > extends FieldLikeOptions< @@ -1153,20 +1141,16 @@ export interface FieldLikeAPI< in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TParentSubmitMeta, TExtraOptions = {}, diff --git a/packages/form-core/src/utils.ts b/packages/form-core/src/utils.ts index e87296e418..807793a7e0 100644 --- a/packages/form-core/src/utils.ts +++ b/packages/form-core/src/utils.ts @@ -14,8 +14,7 @@ import type { export type UpdaterFn = (input: TInput) => TOutput export type Updater = - | TOutput - | UpdaterFn + TOutput | UpdaterFn /** * @private diff --git a/packages/form-core/tests/util-types.test-d.ts b/packages/form-core/tests/util-types.test-d.ts index 2df6827e1a..342ec8d29d 100644 --- a/packages/form-core/tests/util-types.test-d.ts +++ b/packages/form-core/tests/util-types.test-d.ts @@ -133,8 +133,7 @@ expectTypeOf( * Properly handles discriminated unions like so: */ type DiscriminatedUnion = { name: string } & ( - | { variant: 'foo' } - | { variant: 'bar'; baz: boolean } + { variant: 'foo' } | { variant: 'bar'; baz: boolean } ) expectTypeOf(0 as never as DeepKeys).toEqualTypeOf< 'name' | 'variant' | 'baz' @@ -243,8 +242,7 @@ expectTypeOf(0 as never as NestedObjectUnionC).toEqualTypeOf() type NestedNullableObjectUnionCase = { nullable: - | { a?: number; b?: { c: boolean } | null } - | { b?: { c: string; e: number } } + { a?: number; b?: { c: boolean } | null } | { b?: { c: string; e: number } } } type NestedNullableObjectUnionA = DeepValue< NestedNullableObjectUnionCase, diff --git a/packages/lit-form/src/tanstack-form-controller.ts b/packages/lit-form/src/tanstack-form-controller.ts index 7ce3a0a190..c5861eed64 100644 --- a/packages/lit-form/src/tanstack-form-controller.ts +++ b/packages/lit-form/src/tanstack-form-controller.ts @@ -26,20 +26,16 @@ type renderCallback< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -86,20 +82,16 @@ type fieldDirectiveType< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -303,20 +295,16 @@ export class TanStackFormController< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, >( fieldConfig: FieldOptions< TParentData, @@ -391,32 +379,23 @@ export class TanStackFormController< TName extends DeepKeys, TData extends DeepValue, TOnMount extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TGroupSubmitMeta, >( groupConfig: Omit< @@ -513,20 +492,16 @@ class FieldDirective< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -676,27 +651,20 @@ type groupRenderCallback< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TGroupSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, @@ -744,27 +712,20 @@ type formGroupDirectiveType< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TGroupSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, @@ -855,27 +816,20 @@ class FormGroupDirective< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TGroupSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, diff --git a/packages/lit-form/tests/group.test.ts b/packages/lit-form/tests/group.test.ts index 1e30952dd7..863dcea566 100644 --- a/packages/lit-form/tests/group.test.ts +++ b/packages/lit-form/tests/group.test.ts @@ -160,8 +160,7 @@ describe('form.group directive', () => { )}
-${String(group.state.meta.errorMap.onSubmit ?? '')}
+${String(group.state.meta.errorMap.onSubmit ?? '')} `, )}` diff --git a/packages/lit-form/tests/simple.test.ts b/packages/lit-form/tests/simple.test.ts index 272e45a54e..c6db6bb604 100644 --- a/packages/lit-form/tests/simple.test.ts +++ b/packages/lit-form/tests/simple.test.ts @@ -117,33 +117,37 @@ class TestForm extends LitElement { .type=${'checkbox'} /> - ${field.state.value - ? this.form.field( - { - name: `jobTitle`, - validators: { - onChange: ({ value }) => - value.length === 0 ? 'Needs to have a job here' : null, + ${ + field.state.value + ? this.form.field( + { + name: `jobTitle`, + validators: { + onChange: ({ value }) => + value.length === 0 + ? 'Needs to have a job here' + : null, + }, }, - }, - (subField) => { - return html`
- - -
` - }, - ) - : ''} + (subField) => { + return html`
+ + +
` + }, + ) + : '' + } ` })} diff --git a/packages/octane-form/.env-cmdrc b/packages/octane-form/.env-cmdrc new file mode 100644 index 0000000000..4d00988205 --- /dev/null +++ b/packages/octane-form/.env-cmdrc @@ -0,0 +1,11 @@ +{ + "ts56": { + "TSP_COMPILER_TS_PATH": "../../node_modules/typescript56" + }, + "ts57": { + "TSP_COMPILER_TS_PATH": "../../node_modules/typescript57" + }, + "ts58": { + "TSP_COMPILER_TS_PATH": "../../node_modules/typescript58" + } +} diff --git a/packages/octane-form/README.md b/packages/octane-form/README.md new file mode 100644 index 0000000000..eebf951c88 --- /dev/null +++ b/packages/octane-form/README.md @@ -0,0 +1,49 @@ + + + + + + TanStack Octane Form + + +Hooks for managing form state in Octane + + + #TanStack + + + + + + + + + + semantic-release + + Join the discussion on Github +Best of JS + + + + + Gitpod Ready-to-Code + + +Enjoy this library? Try the entire [TanStack](https://tanstack.com)! [TanStack Table](https://github.com/TanStack/table), [TanStack Router](https://github.com/tanstack/router), [TanStack Virtual](https://github.com/tanstack/virtual), [React Charts](https://github.com/TanStack/react-charts), [React Ranger](https://github.com/TanStack/ranger) + +## Visit [tanstack.com/form](https://tanstack.com/form) for docs, guides, API and more! + +### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/) + + diff --git a/packages/octane-form/eslint.config.js b/packages/octane-form/eslint.config.js new file mode 100644 index 0000000000..1c45653e36 --- /dev/null +++ b/packages/octane-form/eslint.config.js @@ -0,0 +1,13 @@ +// @ts-check + +import tsrx from '@tsrx/eslint-plugin' +import rootConfig from '../../eslint.config.js' + +export default [ + ...rootConfig.map((config) => + config.name === 'tanstack/javascript' + ? { ...config, files: [...(config.files ?? []), 'localsrc/**/*.cts'] } + : config, + ), + ...tsrx.configs.recommended, +] diff --git a/packages/octane-form/localsrc/program-transformer.cts b/packages/octane-form/localsrc/program-transformer.cts new file mode 100644 index 0000000000..2c689bd2dd --- /dev/null +++ b/packages/octane-form/localsrc/program-transformer.cts @@ -0,0 +1,294 @@ +/** + * Let our normal `tsc` commands check TSRX implementations across the supported + * TypeScript versions. TypeScript does not load language-service plugins in + * `tsc`, so configuring @tsrx/typescript-plugin alone only enables editor support. + * + * ts-patch loads this program transformer, which connects TSRX's language plugin + * to Volar using the compiler instance running the command. It discovers .tsrx + * files, checks their implementations even when declaration companions exist, + * and turns TSRX compiler failures into diagnostics that make `tsc` fail. + * + * This is our ts-patch integration, so we keep it local instead of patching the + * TSRX dependency. It currently relies on an internal factory in TSRX 0.4.6; + * keep the pinned dependency and factory import in sync when upgrading. + */ +import { createRequire } from 'node:module' +import { proxyCreateProgram } from '@volar/typescript' +import type { + IScriptSnapshot, + Language, + LanguagePlugin, + VirtualCode, +} from '@volar/language-core' +import type { ProgramTransformer } from 'ts-patch' +import type * as TypeScript from 'typescript' + +type TypeScriptModule = typeof TypeScript + +interface TsrxVirtualCode extends VirtualCode { + fileName?: string + compilerFailed?: boolean + originalCode?: string + fatalErrors?: ReadonlyArray + usageErrors?: ReadonlyArray +} + +type TsrxLanguagePlugin = LanguagePlugin & { + createVirtualCode: NonNullable< + LanguagePlugin['createVirtualCode'] + > + updateVirtualCode: NonNullable< + LanguagePlugin['updateVirtualCode'] + > + typescript: NonNullable['typescript']> +} + +interface TsrxLanguageModule { + t(options: { + ts: TypeScriptModule + configFileName?: string + configHost: TypeScript.System + }): TsrxLanguagePlugin +} + +type ConfiguredCompilerOptions = TypeScript.CompilerOptions & { + configFilePath?: string + configFile?: TypeScript.TsConfigSourceFile +} + +type DiagnosticProgram = TypeScript.Program & { + getBindAndCheckDiagnostics?: TypeScript.Program['getSemanticDiagnostics'] +} + +// TSRX 0.4.6 has no public factory export. Keep this version-specific boundary here. +const requireTsrx = createRequire(__filename) +const { t: createLanguagePlugin } = requireTsrx( + '@tsrx/typescript-plugin/dist/language-CofXAudP.js', +) as TsrxLanguageModule + +// Keep using the TypeScript version that invoked this ts-patch transformer. +const transformProgram: ProgramTransformer = ( + program, + host, + _config, + { ts }, +) => { + const options: ConfiguredCompilerOptions = program.getCompilerOptions() + const configFileName = options.configFilePath ?? options.configFile?.fileName + const errors: Array = [] + // TypeScript's initial config scan does not discover .tsrx files. + const parsed = configFileName + ? ts.getParsedCommandLineOfConfigFile( + configFileName, + options, + { + ...ts.sys, + onUnRecoverableConfigFileDiagnostic: (diagnostic) => + errors.push(diagnostic), + }, + undefined, + undefined, + [ + { + extension: '.tsrx', + isMixedContent: false, + scriptKind: ts.ScriptKind.Deferred, + }, + ], + ) + : undefined + const compilerOptions = { ...options, allowNonTsExtensions: true } + const compilerHost = { ...(host ?? ts.createCompilerHost(compilerOptions)) } + // Volar wraps getSourceFile; the watch host's optional fast path bypasses it. + delete compilerHost.getSourceFileByPath + // Refresh stale TSRX ASTs through the original host, retaining watchers and versions. + const getSourceFile = compilerHost.getSourceFile.bind(compilerHost) + compilerHost.getSourceFile = ( + fileName, + languageVersion, + onError, + shouldCreateNewSourceFile, + ) => + getSourceFile( + fileName, + languageVersion, + onError, + fileName.endsWith('.tsrx') || shouldCreateNewSourceFile, + ) + + const plugin = guardLanguagePlugin( + ts, + createLanguagePlugin({ ts, configFileName, configHost: ts.sys }), + ) + // Extra service scripts are for the editor, not Volar's program integration. + delete plugin.typescript.getExtraServiceScripts + let language: Language | undefined + // Rebuild from source instead of reusing the initial declaration-only program. + const createProgram = proxyCreateProgram(ts, ts.createProgram, () => ({ + languagePlugins: [plugin], + setup(value) { + language = value + }, + })) + const result = createProgram({ + rootNames: parsed?.fileNames ?? program.getRootFileNames(), + options: compilerOptions, + host: compilerHost, + configFileParsingDiagnostics: [ + ...(parsed?.errors ?? program.getConfigFileParsingDiagnostics()), + ...errors, + ], + projectReferences: program.getProjectReferences(), + }) + if (!language) throw new Error('Volar did not initialize the TSRX language') + addDiagnostics(ts, language, result) + return result +} + +export default transformProgram + +function getTsrxRoot( + language: Language, + fileName: string, +): TsrxVirtualCode | undefined { + return language.scripts.get(fileName)?.generated?.root +} + +function addDiagnostics( + ts: TypeScriptModule, + language: Language, + program: DiagnosticProgram, +) { + // Report the compiler error, not TSX errors caused by its raw TSRX fallback. + const keepDiagnostic = (diagnostic: TypeScript.Diagnostic) => { + if (!diagnostic.file?.fileName.endsWith('.tsrx')) return true + return !getTsrxRoot(language, diagnostic.file.fileName)?.fatalErrors?.length + } + for (const method of [ + 'getSemanticDiagnostics', + 'getBindAndCheckDiagnostics', + ] as const) { + const original = program[method] + if (original) + program[method] = (...args) => original(...args).filter(keepDiagnostic) + } + const getSyntacticDiagnostics = program.getSyntacticDiagnostics + program.getSyntacticDiagnostics = (sourceFile, cancellationToken) => { + const diagnostics = getSyntacticDiagnostics( + sourceFile, + cancellationToken, + ).filter(keepDiagnostic) + for (const file of sourceFile ? [sourceFile] : program.getSourceFiles()) { + if (!file.fileName.endsWith('.tsrx')) continue + const script = language.scripts.get(file.fileName) + const root: TsrxVirtualCode | undefined = script?.generated?.root + const errors = root + ? [...(root.fatalErrors ?? []), ...(root.usageErrors ?? [])] + : [{ message: 'No TSRX compiler could be loaded for this file.' }] + if (!errors.length) continue + const text = + root?.originalCode ?? + script?.snapshot.getText(0, script.snapshot.getLength()) ?? + file.text + const originalFile = ts.createSourceFile( + file.fileName, + text, + ts.ScriptTarget.Latest, + false, + ts.ScriptKind.TSX, + ) + for (const error of errors) { + const detail = compilerErrorDetails(error) + const start = Math.max(0, Math.min(detail.pos ?? 0, text.length)) + const end = Math.max( + start, + Math.min(detail.end ?? detail.raisedAt ?? start + 1, text.length), + ) + diagnostics.push({ + file: originalFile, + start, + length: end - start, + category: ts.DiagnosticCategory.Error, + code: 90001, + source: 'tsrx', + messageText: detail.message, + }) + } + } + return diagnostics + } +} + +function compilerErrorDetails(error: unknown) { + if (typeof error !== 'object' || error === null) { + return { message: String(error) } + } + return { + message: + 'message' in error ? String(error.message ?? error) : String(error), + pos: + 'pos' in error && typeof error.pos === 'number' ? error.pos : undefined, + end: + 'end' in error && typeof error.end === 'number' ? error.end : undefined, + raisedAt: + 'raisedAt' in error && typeof error.raisedAt === 'number' + ? error.raisedAt + : undefined, + } +} + +function guardLanguagePlugin( + ts: TypeScriptModule, + plugin: TsrxLanguagePlugin, +): TsrxLanguagePlugin { + function failed( + fileName: string, + snapshot: IScriptSnapshot, + error: unknown, + ): TsrxVirtualCode { + return { + id: 'root', + languageId: 'tsrx', + fileName, + compilerFailed: true, + originalCode: snapshot.getText(0, snapshot.getLength()), + snapshot: ts.ScriptSnapshot.fromString('export {};'), + mappings: [], + embeddedCodes: [], + fatalErrors: [error], + usageErrors: [], + } + } + const createVirtualCode: TsrxLanguagePlugin['createVirtualCode'] = ( + fileName, + languageId, + snapshot, + context, + ) => { + try { + const code = plugin.createVirtualCode( + fileName, + languageId, + snapshot, + context, + ) + if (code || languageId !== 'tsrx') return code + throw new Error('No TSRX compiler could be loaded for this file.') + } catch (error) { + return failed(fileName, snapshot, error) + } + } + return { + ...plugin, + createVirtualCode, + updateVirtualCode(fileName, code, snapshot, context) { + if (code.compilerFailed) + return createVirtualCode(fileName, 'tsrx', snapshot, context) + try { + return plugin.updateVirtualCode(fileName, code, snapshot, context) + } catch (error) { + return failed(fileName, snapshot, error) + } + }, + } +} diff --git a/packages/octane-form/package.json b/packages/octane-form/package.json new file mode 100644 index 0000000000..e406500f88 --- /dev/null +++ b/packages/octane-form/package.json @@ -0,0 +1,75 @@ +{ + "name": "@tanstack/octane-form", + "version": "1.30.5", + "description": "Powerful, type-safe forms for Octane.", + "author": "tannerlinsley", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/TanStack/form.git", + "directory": "packages/octane-form" + }, + "homepage": "https://tanstack.com/form", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "scripts": { + "clean": "premove ./dist ./coverage", + "test:eslint": "eslint ./src ./tests ./localsrc", + "test:types": "pnpm run \"/^test:types:ts[0-9]{2}$/\"", + "test:types:ts56": "env-cmd -e ts56 -- tspc", + "test:types:ts57": "env-cmd -e ts57 -- tspc", + "test:types:ts58": "env-cmd -e ts58 -- tspc", + "test:types:ts59": "tspc", + "test:lib": "vitest", + "test:lib:dev": "pnpm run test:lib --watch", + "test:build": "publint --strict", + "build": "tspc -p tsconfig.build.json --noEmit" + }, + "type": "module", + "types": "./src/index.ts", + "main": "./src/index.ts", + "module": "./src/index.ts", + "exports": { + ".": { + "types": "./src/index.ts", + "default": "./src/index.ts" + }, + "./package.json": "./package.json" + }, + "sideEffects": false, + "files": [ + "src" + ], + "engines": { + "node": ">=22" + }, + "octane": { + "hookSlots": { + "manual": [ + "src" + ] + } + }, + "dependencies": { + "@tanstack/form-core": "workspace:*", + "@tanstack/octane-store": "^0.12.2" + }, + "peerDependencies": { + "octane": "^0.1.51 || ^0.2.0 || ^0.3.0" + }, + "devDependencies": { + "@octanejs/testing-library": "^0.1.51", + "@testing-library/jest-dom": "^6.8.0", + "@tsrx/eslint-plugin": "^0.4.6", + "@tsrx/typescript-plugin": "0.4.6", + "@volar/language-core": "2.4.28", + "@volar/typescript": "2.4.28", + "env-cmd": "^11.0.0", + "eslint": "9.36.0", + "octane": "^0.2.16", + "ts-patch": "3.3.0", + "vitest": "^3.2.4" + } +} diff --git a/packages/octane-form/src/createFormHook.tsrx b/packages/octane-form/src/createFormHook.tsrx new file mode 100644 index 0000000000..d6ad6e2a64 --- /dev/null +++ b/packages/octane-form/src/createFormHook.tsrx @@ -0,0 +1,876 @@ +import { createContext, useContext, useMemo } from 'octane' +import { useForm } from './useForm.tsrx' +import { useFieldGroup } from './useFieldGroup.tsrx' +import type { + AnyFieldApi, + AnyFormApi, + BaseFormOptions, + DeepKeysOfType, + FieldApi, + FieldsMap, + FormAsyncValidateOrFn, + FormOptions, + FormValidateOrFn, +} from '@tanstack/form-core' +import type { Context } from 'octane' +import type { FieldComponent } from './useField.tsrx' +import type { OctaneFormExtendedApi } from './useForm.tsrx' +import type { AppFieldExtendedOctaneFieldGroupApi } from './useFieldGroup.tsrx' + +type HookRenderable = unknown +type HookPropsWithChildren

= P & { children?: HookRenderable } +type HookFunctionComponent

= (props: P) => HookRenderable +type HookComponentType

= HookFunctionComponent

+ +// We should never hit the `null` case here +const fieldContext = createContext(null as never) +const formContext = createContext(null as never) + +/** + * TypeScript inferencing is weird. + * + * If you have: + * + * @example + * + * interface Args { + * arg?: T + * } + * + * function test(arg?: Partial>): T { + * return 0 as any; + * } + * + * const a = test({}); + * + * Then `T` will default to `unknown`. + * + * However, if we change `test` to be: + * + * @example + * + * function test(arg?: Partial>): T; + * + * Then `T` becomes `undefined`. + * + * Here, we are checking if the passed type `T` extends `DefaultT` and **only** + * `DefaultT`, as if that's the case we assume that inferencing has not occurred. + */ +type UnwrapOrAny = [unknown] extends [T] ? any : T +type UnwrapDefaultOrAny = + [DefaultT] extends [T] ? [T] extends [DefaultT] ? any : T : T + +function useFormContext() { + const form = useContext(formContext) + + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + if (!form) { + throw new Error('`formContext` only works when within a `formComponent` passed to `createFormHook`') + } + + return form as + OctaneFormExtendedApi< + // If you need access to the form data, you need to use `withForm` instead + Record, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any + > +} + +export function createFormHookContexts() { + function useFieldContext() { + const field = useContext(fieldContext) + + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + if (!field) { + throw new Error('`fieldContext` only works when within a `fieldComponent` passed to `createFormHook`') + } + + return field as FieldApi< + any, + string, + TData, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any + > + } + + return { fieldContext, useFieldContext, useFormContext, formContext } +} + +interface CreateFormHookProps< + TFieldComponents extends Record>, + TFormComponents extends Record>, +> { + fieldComponents: TFieldComponents + fieldContext: Context + formComponents: TFormComponents + formContext: Context +} + +/** + * @private + */ +export type AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, + TFieldComponents extends Record>, + TFormComponents extends Record>, +> = + OctaneFormExtendedApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + > & NoInfer & { + AppField: FieldComponent< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + NoInfer + >; + AppForm: HookComponentType< + // Keep children optional in the renderer-facing component props. + HookPropsWithChildren<{}> + >; + } + +export interface WithFormProps< + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, + TFieldComponents extends Record>, + TFormComponents extends Record>, + TRenderProps extends object = Record, +> extends FormOptions< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta +> { + // Optional, but adds props to the `render` function outside of `form` + props?: TRenderProps + render: HookFunctionComponent< + HookPropsWithChildren< + NoInfer & { + form: AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TFieldComponents, + TFormComponents + >; + } + > + > +} + +export interface WithFieldGroupProps< + TFieldGroupData, + TFieldComponents extends Record>, + TFormComponents extends Record>, + TSubmitMeta, + TRenderProps extends object = Record, +> extends BaseFormOptions { + // Optional, but adds props to the `render` function outside of `form` + props?: TRenderProps + render: HookFunctionComponent< + HookPropsWithChildren< + NoInfer & { + group: AppFieldExtendedOctaneFieldGroupApi< + unknown, + TFieldGroupData, + string | FieldsMap, + undefined | FormValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, + // this types it as 'never' in the render prop. It should prevent any + // untyped meta passed to the handleSubmit by accident. + unknown extends TSubmitMeta ? never : TSubmitMeta, + TFieldComponents, + TFormComponents + >; + } + > + > +} + +type UseAppForm< + TComponents extends Record>, + TFormComponents extends Record>, +> = + < + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, + >(props: FormOptions< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + >) => AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents + > + +type WithForm< + TComponents extends Record>, + TFormComponents extends Record>, +> = + < + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, + TRenderProps extends object = {}, + >(props: WithFormProps< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents, + TRenderProps + >) => WithFormProps< + UnwrapOrAny, + UnwrapDefaultOrAny, TOnMount>, + UnwrapDefaultOrAny, TOnChange>, + UnwrapDefaultOrAny, TOnChangeAsync>, + UnwrapDefaultOrAny, TOnBlur>, + UnwrapDefaultOrAny, TOnBlurAsync>, + UnwrapDefaultOrAny, TOnSubmit>, + UnwrapDefaultOrAny, TOnSubmitAsync>, + UnwrapDefaultOrAny, TOnDynamic>, + UnwrapDefaultOrAny< + undefined | FormValidateOrFn, + TOnDynamicAsync + >, + UnwrapDefaultOrAny, TOnServer>, + UnwrapOrAny, + UnwrapOrAny, + UnwrapOrAny, + UnwrapOrAny + >['render'] + +type WithFieldGroup< + TComponents extends Record>, + TFormComponents extends Record>, +> = + < + TFieldGroupData, + TSubmitMeta, + TRenderProps extends object = {}, + >(props: WithFieldGroupProps< + TFieldGroupData, + TComponents, + TFormComponents, + TSubmitMeta, + TRenderProps + >) => < + TFormData, + TFields extends | DeepKeysOfType< + TFormData, + TFieldGroupData | null | undefined + > + | FieldsMap, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TFormSubmitMeta, + >(params: HookPropsWithChildren< + NoInfer & { + form: | AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + unknown extends TSubmitMeta ? TFormSubmitMeta : TSubmitMeta, + TComponents, + TFormComponents + > + | AppFieldExtendedOctaneFieldGroupApi< + unknown, + TFormData, + string | FieldsMap, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + unknown extends TSubmitMeta ? TFormSubmitMeta : TSubmitMeta, + TComponents, + TFormComponents + >; + fields: TFields; + } + >) => ReturnType + +type UseTypedAppFormContext< + TComponents extends Record>, + TFormComponents extends Record>, +> = + < + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, + >(props: FormOptions< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + >) => AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents + > + +type FieldComponentExtension< + TComponents extends Record>, +> = + Record< + string, + HookComponentType + > & { [K in keyof TComponents]?: 'Error: field component names must be unique — this key already exists in the base form' } + +type FormComponentExtension< + TComponents extends Record>, +> = + Record< + string, + HookComponentType + > & { [K in keyof TComponents]?: 'Error: form component names must be unique — this key already exists in the base form' } + +export interface CreateFormHookReturn< + TComponents extends Record>, + TFormComponents extends Record>, +> { + useAppForm: UseAppForm + withForm: WithForm + withFieldGroup: WithFieldGroup + useTypedAppFormContext: UseTypedAppFormContext + extendForm: < + TNewField extends FieldComponentExtension, + TNewForm extends FormComponentExtension, + >(extension: { + fieldComponents?: TNewField; + formComponents?: TNewForm; + }) => CreateFormHookReturn< + TComponents & TNewField, + TFormComponents & TNewForm + > +} + +export function createFormHook< + TComponents extends Record>, + TFormComponents extends Record>, +>({ + fieldComponents, + fieldContext, + formContext, + formComponents, +}: CreateFormHookProps): CreateFormHookReturn< + TComponents, + TFormComponents +> { + const FieldContextProvider = fieldContext + const FormContextProvider = formContext + + function useAppForm< + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, + >( + props: FormOptions< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + >, + ): AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents + > { + const form = useForm(props) + + // Keep children optional in the renderer-facing component props. + const AppForm = useMemo>>( + () => { + return ({ children }) => { + return {children} + } + }, + [form], + ) + + const AppField = useMemo(() => { + const AppField = (({ children, ...props }) => { + return + {(field) => + {children( + Object.assign(field, fieldComponents), + )}} + + }) as FieldComponent< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents + > + return AppField + }, [form]) + + const extendedForm = useMemo(() => { + return Object.assign(form, { + AppField, + AppForm, + ...formComponents, + }) + }, [form, AppField, AppForm]) + + return extendedForm + } + + function withForm< + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, + TRenderProps extends object = {}, + >({ render, props }: WithFormProps< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents, + TRenderProps + >): WithFormProps< + UnwrapOrAny, + UnwrapDefaultOrAny, TOnMount>, + UnwrapDefaultOrAny, TOnChange>, + UnwrapDefaultOrAny, TOnChangeAsync>, + UnwrapDefaultOrAny, TOnBlur>, + UnwrapDefaultOrAny, TOnBlurAsync>, + UnwrapDefaultOrAny, TOnSubmit>, + UnwrapDefaultOrAny, TOnSubmitAsync>, + UnwrapDefaultOrAny, TOnDynamic>, + UnwrapDefaultOrAny< + undefined | FormValidateOrFn, + TOnDynamicAsync + >, + UnwrapDefaultOrAny, TOnServer>, + UnwrapOrAny, + UnwrapOrAny, + UnwrapOrAny, + UnwrapOrAny + >['render'] { + return function Render(innerProps) { + return render({ ...props, ...innerProps }) + } + } + + function withFieldGroup< + TFieldGroupData, + TSubmitMeta, + TRenderProps extends object = {}, + >({ render, props, defaultValues }: WithFieldGroupProps< + TFieldGroupData, + TComponents, + TFormComponents, + TSubmitMeta, + TRenderProps + >): < + TFormData, + TFields extends | DeepKeysOfType< + TFormData, + TFieldGroupData | null | undefined + > + | FieldsMap, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TFormSubmitMeta, + >(params: HookPropsWithChildren< + NoInfer & { + form: | AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + unknown extends TSubmitMeta ? TFormSubmitMeta : TSubmitMeta, + TComponents, + TFormComponents + > + | AppFieldExtendedOctaneFieldGroupApi< + // Since this only occurs if you nest it within other field groups, it can be more + // lenient with the types. + unknown, + TFormData, + string | FieldsMap, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + unknown extends TSubmitMeta ? TFormSubmitMeta : TSubmitMeta, + TComponents, + TFormComponents + >; + fields: TFields; + } + >) => ReturnType { + return function Render(innerProps) { + const fieldGroupProps = useMemo(() => { + return { + form: innerProps.form, + fields: innerProps.fields, + defaultValues, + formComponents, + } + }, [innerProps.form, innerProps.fields]) + const fieldGroupApi = useFieldGroup(fieldGroupProps as any) + + return render({ ...props, ...innerProps, group: fieldGroupApi as any }) + } + } + + /** + * ⚠️ **Use withForm whenever possible.** + * + * Gets a typed form from the `` context. + */ + function useTypedAppFormContext< + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, + >( + _props: FormOptions< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + >, + ): AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents + > { + const form = useFormContext() + + return form as never + } + + function extendForm< + TNewField extends FieldComponentExtension, + TNewForm extends FormComponentExtension, + >(extension: { + fieldComponents?: TNewField; + formComponents?: TNewForm; + }): CreateFormHookReturn< + TComponents & TNewField, + TFormComponents & TNewForm + > { + return createFormHook({ + fieldContext, + formContext, + fieldComponents: { + ...fieldComponents, + ...extension.fieldComponents, + } as TComponents & TNewField, + formComponents: { + ...formComponents, + ...extension.formComponents, + } as TFormComponents & TNewForm, + }) + } + + return { + useAppForm, + withForm, + withFieldGroup, + useTypedAppFormContext, + extendForm, + } as CreateFormHookReturn +} diff --git a/packages/octane-form/src/createFormHook.tsrx.d.ts b/packages/octane-form/src/createFormHook.tsrx.d.ts new file mode 100644 index 0000000000..f0a376cce3 --- /dev/null +++ b/packages/octane-form/src/createFormHook.tsrx.d.ts @@ -0,0 +1,509 @@ +// Declaration companion generated from createFormHook.tsrx. +import type { + AnyFieldApi, + AnyFormApi, + BaseFormOptions, + DeepKeysOfType, + FieldApi, + FieldsMap, + FormAsyncValidateOrFn, + FormOptions, + FormValidateOrFn, +} from '@tanstack/form-core' +import type { Context } from 'octane' +import type { FieldComponent } from './useField.tsrx' +import type { OctaneFormExtendedApi } from './useForm.tsrx' +import type { AppFieldExtendedOctaneFieldGroupApi } from './useFieldGroup.tsrx' +type HookRenderable = unknown +type HookPropsWithChildren

= P & { + children?: HookRenderable +} +type HookFunctionComponent

= (props: P) => HookRenderable +type HookComponentType

= HookFunctionComponent

+/** + * TypeScript inferencing is weird. + * + * If you have: + * + * @example + * + * interface Args { + * arg?: T + * } + * + * function test(arg?: Partial>): T { + * return 0 as any; + * } + * + * const a = test({}); + * + * Then `T` will default to `unknown`. + * + * However, if we change `test` to be: + * + * @example + * + * function test(arg?: Partial>): T; + * + * Then `T` becomes `undefined`. + * + * Here, we are checking if the passed type `T` extends `DefaultT` and **only** + * `DefaultT`, as if that's the case we assume that inferencing has not occurred. + */ +type UnwrapOrAny = [unknown] extends [T] ? any : T +type UnwrapDefaultOrAny = [DefaultT] extends [T] + ? [T] extends [DefaultT] + ? any + : T + : T +declare function useFormContext(): OctaneFormExtendedApi< + Record, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any +> +export declare function createFormHookContexts(): { + fieldContext: Context + useFieldContext: () => FieldApi< + any, + string, + TData, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any + > + useFormContext: typeof useFormContext + formContext: Context +} +interface CreateFormHookProps< + TFieldComponents extends Record>, + TFormComponents extends Record>, +> { + fieldComponents: TFieldComponents + fieldContext: Context + formComponents: TFormComponents + formContext: Context +} +/** + * @private + */ +export type AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, + TFieldComponents extends Record>, + TFormComponents extends Record>, +> = OctaneFormExtendedApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta +> & + NoInfer & { + AppField: FieldComponent< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + NoInfer + > + AppForm: HookComponentType> + } +export interface WithFormProps< + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, + TFieldComponents extends Record>, + TFormComponents extends Record>, + TRenderProps extends object = Record, +> extends FormOptions< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta +> { + props?: TRenderProps + render: HookFunctionComponent< + HookPropsWithChildren< + NoInfer & { + form: AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TFieldComponents, + TFormComponents + > + } + > + > +} +export interface WithFieldGroupProps< + TFieldGroupData, + TFieldComponents extends Record>, + TFormComponents extends Record>, + TSubmitMeta, + TRenderProps extends object = Record, +> extends BaseFormOptions { + props?: TRenderProps + render: HookFunctionComponent< + HookPropsWithChildren< + NoInfer & { + group: AppFieldExtendedOctaneFieldGroupApi< + unknown, + TFieldGroupData, + string | FieldsMap, + undefined | FormValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, + unknown extends TSubmitMeta ? never : TSubmitMeta, + TFieldComponents, + TFormComponents + > + } + > + > +} +type UseAppForm< + TComponents extends Record>, + TFormComponents extends Record>, +> = < + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, +>( + props: FormOptions< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + >, +) => AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents +> +type WithForm< + TComponents extends Record>, + TFormComponents extends Record>, +> = < + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, + TRenderProps extends object = {}, +>( + props: WithFormProps< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents, + TRenderProps + >, +) => WithFormProps< + UnwrapOrAny, + UnwrapDefaultOrAny, TOnMount>, + UnwrapDefaultOrAny, TOnChange>, + UnwrapDefaultOrAny, TOnChangeAsync>, + UnwrapDefaultOrAny, TOnBlur>, + UnwrapDefaultOrAny, TOnBlurAsync>, + UnwrapDefaultOrAny, TOnSubmit>, + UnwrapDefaultOrAny, TOnSubmitAsync>, + UnwrapDefaultOrAny, TOnDynamic>, + UnwrapDefaultOrAny, TOnDynamicAsync>, + UnwrapDefaultOrAny, TOnServer>, + UnwrapOrAny, + UnwrapOrAny, + UnwrapOrAny, + UnwrapOrAny +>['render'] +type WithFieldGroup< + TComponents extends Record>, + TFormComponents extends Record>, +> = ( + props: WithFieldGroupProps< + TFieldGroupData, + TComponents, + TFormComponents, + TSubmitMeta, + TRenderProps + >, +) => < + TFormData, + TFields extends + | DeepKeysOfType + | FieldsMap, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TFormSubmitMeta, +>( + params: HookPropsWithChildren< + NoInfer & { + form: + | AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + unknown extends TSubmitMeta ? TFormSubmitMeta : TSubmitMeta, + TComponents, + TFormComponents + > + | AppFieldExtendedOctaneFieldGroupApi< + unknown, + TFormData, + string | FieldsMap, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + unknown extends TSubmitMeta ? TFormSubmitMeta : TSubmitMeta, + TComponents, + TFormComponents + > + fields: TFields + } + >, +) => ReturnType +type UseTypedAppFormContext< + TComponents extends Record>, + TFormComponents extends Record>, +> = < + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, +>( + props: FormOptions< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + >, +) => AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents +> +type FieldComponentExtension< + TComponents extends Record>, +> = Record> & { + [ + K in keyof TComponents + ]?: 'Error: field component names must be unique — this key already exists in the base form' +} +type FormComponentExtension< + TComponents extends Record>, +> = Record> & { + [ + K in keyof TComponents + ]?: 'Error: form component names must be unique — this key already exists in the base form' +} +export interface CreateFormHookReturn< + TComponents extends Record>, + TFormComponents extends Record>, +> { + useAppForm: UseAppForm + withForm: WithForm + withFieldGroup: WithFieldGroup + useTypedAppFormContext: UseTypedAppFormContext + extendForm: < + TNewField extends FieldComponentExtension, + TNewForm extends FormComponentExtension, + >(extension: { + fieldComponents?: TNewField + formComponents?: TNewForm + }) => CreateFormHookReturn< + TComponents & TNewField, + TFormComponents & TNewForm + > +} +export declare function createFormHook< + TComponents extends Record>, + TFormComponents extends Record>, +>({ + fieldComponents, + fieldContext, + formContext, + formComponents, +}: CreateFormHookProps): CreateFormHookReturn< + TComponents, + TFormComponents +> +export {} diff --git a/packages/octane-form/src/index.ts b/packages/octane-form/src/index.ts new file mode 100644 index 0000000000..25034e1143 --- /dev/null +++ b/packages/octane-form/src/index.ts @@ -0,0 +1,11 @@ +export * from '@tanstack/form-core' + +export { useSelector } from '@tanstack/octane-store' + +export * from './createFormHook.tsrx' +export * from './types' +export * from './useField.tsrx' +export * from './useFieldGroup.tsrx' +export * from './useForm.tsrx' +export * from './useFormGroup.tsrx' +export * from './useIsomorphicLayoutEffect' diff --git a/packages/octane-form/src/types.ts b/packages/octane-form/src/types.ts new file mode 100644 index 0000000000..866a6324fa --- /dev/null +++ b/packages/octane-form/src/types.ts @@ -0,0 +1,147 @@ +import type { OctaneNode } from 'octane' +import type { + DeepKeys, + DeepValue, + FieldApiOptions, + FieldAsyncValidateOrFn, + FieldOptions, + FieldValidateOrFn, + FormAsyncValidateOrFn, + FormState, + FormValidateOrFn, +} from '@tanstack/form-core' + +/** + * Subscribe to selected state, or render static Octane children. + * + * OctaneNode includes unknown, so combining it directly with a render callback + * would erase the callback's contextual type. Infer static children separately + * and exclude functions so callbacks always receive the selected state. + */ +export interface SubscribeComponent { + , TChildren = never>(props: { + selector?: (state: NoInfer) => TSelected + children: + | ((state: NoInfer) => OctaneNode) + | (TChildren extends (...args: never[]) => unknown ? never : TChildren) + }): OctaneNode +} + +interface FieldOptionsMode { + mode?: 'value' | 'array' +} + +/** + * The field options. + */ +export interface UseFieldOptions< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + undefined | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + undefined | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + undefined | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends + undefined | FieldAsyncValidateOrFn, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, +> + extends + FieldApiOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TSubmitMeta + >, + FieldOptionsMode {} + +export interface UseFieldOptionsBound< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + undefined | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + undefined | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + undefined | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends + undefined | FieldAsyncValidateOrFn, +> + extends + FieldOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync + >, + FieldOptionsMode {} + +export type ServerFormState< + TFormData, + TOnServer extends undefined | FormAsyncValidateOrFn, +> = Pick< + FormState< + TFormData, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + TOnServer + >, + 'values' | 'errors' | 'errorMap' +> diff --git a/packages/octane-form/src/useField.tsrx b/packages/octane-form/src/useField.tsrx new file mode 100644 index 0000000000..e1e085da7c --- /dev/null +++ b/packages/octane-form/src/useField.tsrx @@ -0,0 +1,696 @@ +import { useMemo, useState } from 'octane' +import { useSelector } from '@tanstack/octane-store' +import { FieldApi, functionalUpdate } from '@tanstack/form-core' +import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect' +import type { + AnyFieldApi, + AnyFieldMeta, + DeepKeys, + DeepValue, + FieldAsyncValidateOrFn, + FieldValidateOrFn, + FieldValidators, + FormAsyncValidateOrFn, + FormValidateOrFn, +} from '@tanstack/form-core' +import type { UseFieldOptions, UseFieldOptionsBound } from './types' + +type FieldRenderable = unknown +type FieldFunctionComponent

= (props: P) => FieldRenderable + +/** + * A type representing a hook for using a field in a form with the given form data type. + * + * A function that takes an optional object with a `name` property and field options, and returns a `FieldApi` instance for the specified field. + */ +export type UseField< + TParentData, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TPatentSubmitMeta, +> = + < + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends | undefined + | FieldAsyncValidateOrFn, + >(opts: UseFieldOptionsBound< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync + >) => FieldApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta + > + +/** + * A hook for managing a field in a form. + * @param opts An object with field options. + * + * @returns The `FieldApi` instance for the specified field. + */ +export function useField< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends | undefined + | FieldAsyncValidateOrFn, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TPatentSubmitMeta, +>( + opts: UseFieldOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta + >, +) { + // Keep a snapshot of options so compiler optimizations do not treat + // fieldApi as immutable. + const [prevOptions, setPrevOptions] = useState( + () => ({ + form: opts.form, + name: opts.name, + }), + ) + + const [fieldApiState, setFieldApi] = useState(() => { + return new FieldApi({ + ...opts, + }) + }) + + let fieldApi = fieldApiState + + // We only want to + // update on name changes since those are at risk of becoming stale. The field + // state must be up to date for the internal JSX render. + // The other options can freely be in `fieldApi.update` + if (prevOptions.form !== opts.form || prevOptions.name !== opts.name) { + // Adjusting state during render: create the new FieldApi and use it for the + // rest of this render so the render prop reads state at the current `name`. + // Otherwise the discarded render still runs to completion with the stale + // instance, briefly surfacing `undefined` for shifted array items on removal. + // See: https://github.com/TanStack/form/issues/2238 + fieldApi = new FieldApi({ + ...opts, + }) + setFieldApi(fieldApi) + setPrevOptions({ form: opts.form, name: opts.name }) + } + + // For array mode, only track length changes to avoid re-renders when child properties change + // See: https://github.com/TanStack/form/issues/1925 + const reactiveStateValue = useSelector( + fieldApi.store, + (opts.mode === 'array' + ? (state) => state.meta._arrayVersion || 0 + : (state) => state.value) as (state: typeof fieldApi.state) => | TData + | number, + ) + const reactiveMetaIsTouched = useSelector( + fieldApi.store, + (state) => state.meta.isTouched, + ) + const reactiveMetaIsBlurred = useSelector( + fieldApi.store, + (state) => state.meta.isBlurred, + ) + const reactiveMetaIsDirty = useSelector( + fieldApi.store, + (state) => state.meta.isDirty, + ) + const reactiveMetaErrorMap = useSelector( + fieldApi.store, + (state) => state.meta.errorMap, + ) + const reactiveMetaErrorSourceMap = useSelector( + fieldApi.store, + (state) => state.meta.errorSourceMap, + ) + const reactiveMetaIsValidating = useSelector( + fieldApi.store, + (state) => state.meta.isValidating, + ) + + // Materialize the reactive snapshots in the extended API returned to render callbacks. + const extendedFieldApi = useMemo(() => { + const reactiveFieldApi = { + ...fieldApi, + get state() { + return { + // For array mode, reactiveStateValue is the length (for reactivity tracking), + // so we need to get the actual value from fieldApi + value: opts.mode === 'array' + ? fieldApi.state.value + : reactiveStateValue, + get meta() { + return { + ...fieldApi.state.meta, + isTouched: reactiveMetaIsTouched, + isBlurred: reactiveMetaIsBlurred, + isDirty: reactiveMetaIsDirty, + errorMap: reactiveMetaErrorMap, + errorSourceMap: reactiveMetaErrorSourceMap, + isValidating: reactiveMetaIsValidating, + } satisfies AnyFieldMeta + }, + } satisfies AnyFieldApi['state'] + }, + } + + const extendedApi: FieldApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta + > = reactiveFieldApi as never + + return extendedApi + }, [ + fieldApi, + opts.mode, + reactiveStateValue, + reactiveMetaIsTouched, + reactiveMetaIsBlurred, + reactiveMetaIsDirty, + reactiveMetaErrorMap, + reactiveMetaErrorSourceMap, + reactiveMetaIsValidating, + ]) + + useIsomorphicLayoutEffect(fieldApi.mount, [fieldApi]) + + /** + * fieldApi.update should not have any side effects. Think of it like a `useRef` + * that we need to keep updated every render with the most up-to-date information. + */ + useIsomorphicLayoutEffect(() => { + fieldApi.update(opts) + }) + + return extendedFieldApi +} + +/** + * @param children A render function that takes a field API instance and returns a renderable value. + */ +interface FieldComponentProps< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends | undefined + | FieldAsyncValidateOrFn, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TPatentSubmitMeta, + ExtendedApi = {}, +> extends UseFieldOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta +> { + children: (fieldApi: FieldApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta + > & ExtendedApi) => FieldRenderable +} + +interface FieldComponentBoundProps< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends | undefined + | FieldAsyncValidateOrFn, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TPatentSubmitMeta, + ExtendedApi = {}, +> extends UseFieldOptionsBound< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync +> { + children: (fieldApi: FieldApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta + > & ExtendedApi) => FieldRenderable +} + +/** + * A type alias representing a field component for a specific form data type. + */ +export type FieldComponent< + in out TParentData, + in out TFormOnMount extends undefined | FormValidateOrFn, + in out TFormOnChange extends undefined | FormValidateOrFn, + in out TFormOnChangeAsync extends | undefined + | FormAsyncValidateOrFn, + in out TFormOnBlur extends undefined | FormValidateOrFn, + in out TFormOnBlurAsync extends | undefined + | FormAsyncValidateOrFn, + in out TFormOnSubmit extends undefined | FormValidateOrFn, + in out TFormOnSubmitAsync extends | undefined + | FormAsyncValidateOrFn, + in out TFormOnDynamic extends undefined | FormValidateOrFn, + in out TFormOnDynamicAsync extends | undefined + | FormAsyncValidateOrFn, + in out TFormOnServer extends undefined | FormAsyncValidateOrFn, + in out TPatentSubmitMeta, + in out ExtendedApi = {}, +> = + < + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends | undefined + | FieldAsyncValidateOrFn, + >({ children, ...fieldOptions }: FieldComponentBoundProps< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta, + ExtendedApi + >) => ReturnType + +/** + * A type alias representing a field component for a form lens data type. + */ +export type LensFieldComponent< + in out TLensData, + in out TParentSubmitMeta, + in out ExtendedApi = {}, +> = + < + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends | undefined + | FieldAsyncValidateOrFn, + >({ children, ...fieldOptions }: Omit< + FieldComponentBoundProps< + unknown, + string, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + undefined | FormValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, + TParentSubmitMeta, + ExtendedApi + >, + 'name' | 'validators' + > & { + name: TName; + validators?: Omit< + FieldValidators< + unknown, + string, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync + >, + 'onChangeListenTo' | 'onBlurListenTo' + > & { + /** + * An optional list of field names that should trigger this field's `onChange` and `onChangeAsync` events when its value changes + */ + onChangeListenTo?: DeepKeys[]; + /** + * An optional list of field names that should trigger this field's `onBlur` and `onBlurAsync` events when its value changes + */ + onBlurListenTo?: DeepKeys[]; + }; + }) => ReturnType + +/** + * A function component that takes field options and a render function as children. + * + * The `Field` component uses the `useField` hook internally to manage the field instance. + */ +export const Field = (< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends | undefined + | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends | undefined + | FieldAsyncValidateOrFn, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TPatentSubmitMeta, +>({ children, ...fieldOptions }: FieldComponentProps< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta +>): ReturnType => { + const fieldApi = useField(fieldOptions as any) + + const jsxToDisplay = useMemo( + () => functionalUpdate(children, fieldApi as any), + [children, fieldApi], + ) + return <> + {jsxToDisplay} + as never +}) satisfies FieldFunctionComponent< + FieldComponentProps< + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any + > +> diff --git a/packages/octane-form/src/useField.tsrx.d.ts b/packages/octane-form/src/useField.tsrx.d.ts new file mode 100644 index 0000000000..b55f9cf4b7 --- /dev/null +++ b/packages/octane-form/src/useField.tsrx.d.ts @@ -0,0 +1,542 @@ +// Declaration companion generated from useField.tsrx. +import { FieldApi } from '@tanstack/form-core' +import type { + DeepKeys, + DeepValue, + FieldAsyncValidateOrFn, + FieldValidateOrFn, + FieldValidators, + FormAsyncValidateOrFn, + FormValidateOrFn, +} from '@tanstack/form-core' +import type { UseFieldOptions, UseFieldOptionsBound } from './types' +type FieldRenderable = unknown +type FieldFunctionComponent

= (props: P) => FieldRenderable +/** + * A type representing a hook for using a field in a form with the given form data type. + * + * A function that takes an optional object with a `name` property and field options, and returns a `FieldApi` instance for the specified field. + */ +export type UseField< + TParentData, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TPatentSubmitMeta, +> = < + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + undefined | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + undefined | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + undefined | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends + undefined | FieldAsyncValidateOrFn, +>( + opts: UseFieldOptionsBound< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync + >, +) => FieldApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta +> +/** + * A hook for managing a field in a form. + * @param opts An object with field options. + * + * @returns The `FieldApi` instance for the specified field. + */ +export declare function useField< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + undefined | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + undefined | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + undefined | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends + undefined | FieldAsyncValidateOrFn, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TPatentSubmitMeta, +>( + opts: UseFieldOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta + >, +): FieldApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta +> +/** + * @param children A render function that takes a field API instance and returns a renderable value. + */ +interface FieldComponentProps< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + undefined | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + undefined | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + undefined | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends + undefined | FieldAsyncValidateOrFn, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TPatentSubmitMeta, + ExtendedApi = {}, +> extends UseFieldOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta +> { + children: ( + fieldApi: FieldApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta + > & + ExtendedApi, + ) => FieldRenderable +} +interface FieldComponentBoundProps< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + undefined | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + undefined | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + undefined | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends + undefined | FieldAsyncValidateOrFn, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TPatentSubmitMeta, + ExtendedApi = {}, +> extends UseFieldOptionsBound< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync +> { + children: ( + fieldApi: FieldApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta + > & + ExtendedApi, + ) => FieldRenderable +} +/** + * A type alias representing a field component for a specific form data type. + */ +export type FieldComponent< + in out TParentData, + in out TFormOnMount extends undefined | FormValidateOrFn, + in out TFormOnChange extends undefined | FormValidateOrFn, + in out TFormOnChangeAsync extends + undefined | FormAsyncValidateOrFn, + in out TFormOnBlur extends undefined | FormValidateOrFn, + in out TFormOnBlurAsync extends + undefined | FormAsyncValidateOrFn, + in out TFormOnSubmit extends undefined | FormValidateOrFn, + in out TFormOnSubmitAsync extends + undefined | FormAsyncValidateOrFn, + in out TFormOnDynamic extends undefined | FormValidateOrFn, + in out TFormOnDynamicAsync extends + undefined | FormAsyncValidateOrFn, + in out TFormOnServer extends undefined | FormAsyncValidateOrFn, + in out TPatentSubmitMeta, + in out ExtendedApi = {}, +> = < + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + undefined | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + undefined | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + undefined | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends + undefined | FieldAsyncValidateOrFn, +>({ + children, + ...fieldOptions +}: FieldComponentBoundProps< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta, + ExtendedApi +>) => ReturnType +/** + * A type alias representing a field component for a form lens data type. + */ +export type LensFieldComponent< + in out TLensData, + in out TParentSubmitMeta, + in out ExtendedApi = {}, +> = < + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + undefined | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + undefined | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + undefined | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends + undefined | FieldAsyncValidateOrFn, +>({ + children, + ...fieldOptions +}: Omit< + FieldComponentBoundProps< + unknown, + string, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + undefined | FormValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormValidateOrFn, + undefined | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, + TParentSubmitMeta, + ExtendedApi + >, + 'name' | 'validators' +> & { + name: TName + validators?: Omit< + FieldValidators< + unknown, + string, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync + >, + 'onChangeListenTo' | 'onBlurListenTo' + > & { + /** + * An optional list of field names that should trigger this field's `onChange` and `onChangeAsync` events when its value changes + */ + onChangeListenTo?: DeepKeys[] + /** + * An optional list of field names that should trigger this field's `onBlur` and `onBlurAsync` events when its value changes + */ + onBlurListenTo?: DeepKeys[] + } +}) => ReturnType +/** + * A function component that takes field options and a render function as children. + * + * The `Field` component uses the `useField` hook internally to manage the field instance. + */ +export declare const Field: < + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + undefined | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + undefined | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + undefined | FieldAsyncValidateOrFn, + TOnDynamic extends undefined | FieldValidateOrFn, + TOnDynamicAsync extends + undefined | FieldAsyncValidateOrFn, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TPatentSubmitMeta, +>({ + children, + ...fieldOptions +}: FieldComponentProps< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TPatentSubmitMeta +>) => ReturnType +export {} diff --git a/packages/octane-form/src/useFieldGroup.tsrx b/packages/octane-form/src/useFieldGroup.tsrx new file mode 100644 index 0000000000..eb5358cf87 --- /dev/null +++ b/packages/octane-form/src/useFieldGroup.tsrx @@ -0,0 +1,264 @@ +import { useState } from 'octane' +import { useSelector } from '@tanstack/octane-store' +import { FieldGroupApi, functionalUpdate } from '@tanstack/form-core' +import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect' +import type { + AnyFieldGroupApi, + DeepKeysOfType, + FieldGroupState, + FieldsMap, + FormAsyncValidateOrFn, + FormValidateOrFn, +} from '@tanstack/form-core' +import type { AppFieldExtendedOctaneFormApi } from './createFormHook.tsrx' +import type { LensFieldComponent } from './useField.tsrx' +import type { SubscribeComponent } from './types' + +type FieldGroupRenderable = unknown +type FieldGroupPropsWithChildren

= + P & { children?: FieldGroupRenderable } +type FieldGroupFunctionComponent

= + (props: P) => FieldGroupRenderable +type FieldGroupComponentType

= FieldGroupFunctionComponent

+ +function LocalSubscribe({ + lens, + selector = (state) => state, + children, +}: FieldGroupPropsWithChildren<{ + lens: AnyFieldGroupApi; + selector?: (state: FieldGroupState) => FieldGroupState; +}>): ReturnType { + const data = useSelector(lens.store, selector) + + return <> + {functionalUpdate(children, data)} + +} + +/** + * @private + */ +export type AppFieldExtendedOctaneFieldGroupApi< + TFormData, + TFieldGroupData, + TFields extends | DeepKeysOfType< + TFormData, + TFieldGroupData | null | undefined + > + | FieldsMap, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, + TFieldComponents extends Record>, + TFormComponents extends Record>, +> = + FieldGroupApi< + TFormData, + TFieldGroupData, + TFields, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + > & NoInfer & { + AppField: LensFieldComponent< + TFieldGroupData, + TSubmitMeta, + NoInfer + >; + AppForm: FieldGroupComponentType>; + /** + * A component to render form fields. With this, you can render and manage individual form fields. + */ + Field: LensFieldComponent; + /** + * A `Subscribe` function that allows you to listen and react to changes in the form's state. It's especially useful when you need to execute side effects or render specific components in response to state updates. + */ + Subscribe: SubscribeComponent>; + } + +export function useFieldGroup< + TFormData, + TFieldGroupData, + TFields extends | DeepKeysOfType< + TFormData, + TFieldGroupData | null | undefined + > + | FieldsMap, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TComponents extends Record>, + TFormComponents extends Record>, + TSubmitMeta = never, +>(opts: { + form: | AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents + > + | AppFieldExtendedOctaneFieldGroupApi< + // Since this only occurs if you nest it within other form lenses, it can be more + // lenient with the types. + unknown, + TFormData, + string | FieldsMap, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + TSubmitMeta, + TComponents, + TFormComponents + >; + fields: TFields; + defaultValues?: TFieldGroupData; + onSubmitMeta?: TSubmitMeta; + formComponents: TFormComponents; +}): AppFieldExtendedOctaneFieldGroupApi< + TFormData, + TFieldGroupData, + TFields, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents +> { + const [formLensApi] = useState(() => { + const api = new FieldGroupApi(opts) + const form = + opts.form instanceof FieldGroupApi + ? opts.form.form as AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents + > + : opts.form + + const extendedApi: AppFieldExtendedOctaneFieldGroupApi< + TFormData, + TFieldGroupData, + TFields, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents + > = api as never + + extendedApi.AppForm = function AppForm(appFormProps) { + return + } + + extendedApi.AppField = function AppField(props) { + return + } + + extendedApi.Field = function Field(props) { + return + } + + extendedApi.Subscribe = function Subscribe(props: any) { + return + } + + return Object.assign(extendedApi, { + ...opts.formComponents, + }) as AppFieldExtendedOctaneFieldGroupApi< + TFormData, + TFieldGroupData, + TFields, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents + > + }) + + useIsomorphicLayoutEffect(formLensApi.mount, [formLensApi]) + + return formLensApi +} diff --git a/packages/octane-form/src/useFieldGroup.tsrx.d.ts b/packages/octane-form/src/useFieldGroup.tsrx.d.ts new file mode 100644 index 0000000000..108ba07d95 --- /dev/null +++ b/packages/octane-form/src/useFieldGroup.tsrx.d.ts @@ -0,0 +1,152 @@ +// Declaration companion generated from useFieldGroup.tsrx. +import { FieldGroupApi } from '@tanstack/form-core' +import type { + DeepKeysOfType, + FieldGroupState, + FieldsMap, + FormAsyncValidateOrFn, + FormValidateOrFn, +} from '@tanstack/form-core' +import type { AppFieldExtendedOctaneFormApi } from './createFormHook.tsrx' +import type { LensFieldComponent } from './useField.tsrx' +import type { SubscribeComponent } from './types' +type FieldGroupRenderable = unknown +type FieldGroupPropsWithChildren

= P & { + children?: FieldGroupRenderable +} +type FieldGroupFunctionComponent

= ( + props: P, +) => FieldGroupRenderable +type FieldGroupComponentType

= FieldGroupFunctionComponent

+/** + * @private + */ +export type AppFieldExtendedOctaneFieldGroupApi< + TFormData, + TFieldGroupData, + TFields extends + | DeepKeysOfType + | FieldsMap, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, + TFieldComponents extends Record>, + TFormComponents extends Record>, +> = FieldGroupApi< + TFormData, + TFieldGroupData, + TFields, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta +> & + NoInfer & { + AppField: LensFieldComponent< + TFieldGroupData, + TSubmitMeta, + NoInfer + > + AppForm: FieldGroupComponentType> + /** + * A component to render form fields. With this, you can render and manage individual form fields. + */ + Field: LensFieldComponent + /** + * A `Subscribe` function that allows you to listen and react to changes in the form's state. It's especially useful when you need to execute side effects or render specific components in response to state updates. + */ + Subscribe: SubscribeComponent> + } +export declare function useFieldGroup< + TFormData, + TFieldGroupData, + TFields extends + | DeepKeysOfType + | FieldsMap, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TComponents extends Record>, + TFormComponents extends Record>, + TSubmitMeta = never, +>(opts: { + form: + | AppFieldExtendedOctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents + > + | AppFieldExtendedOctaneFieldGroupApi< + unknown, + TFormData, + string | FieldsMap, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + TSubmitMeta, + TComponents, + TFormComponents + > + fields: TFields + defaultValues?: TFieldGroupData + onSubmitMeta?: TSubmitMeta + formComponents: TFormComponents +}): AppFieldExtendedOctaneFieldGroupApi< + TFormData, + TFieldGroupData, + TFields, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta, + TComponents, + TFormComponents +> +export {} diff --git a/packages/octane-form/src/useForm.tsrx b/packages/octane-form/src/useForm.tsrx new file mode 100644 index 0000000000..8abe9ef546 --- /dev/null +++ b/packages/octane-form/src/useForm.tsrx @@ -0,0 +1,282 @@ +import { FormApi, functionalUpdate, mergeAndUpdate } from '@tanstack/form-core' +import { useSelector } from '@tanstack/octane-store' +import { useMemo, useRef, useState } from 'octane' +import { Field } from './useField.tsrx' +import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect' +import { useFormId } from './useFormId' +import { FormGroup } from './useFormGroup.tsrx' +import type { FormGroupComponent } from './useFormGroup.tsrx' +import type { + AnyFormApi, + AnyFormState, + FormAsyncValidateOrFn, + FormOptions, + FormState, + FormValidateOrFn, +} from '@tanstack/form-core' +import type { FieldComponent } from './useField.tsrx' +import type { SubscribeComponent } from './types' + +type FormRenderable = unknown +type FormPropsWithChildren

= P & { children?: FormRenderable } +type FormFunctionComponent

= (props: P) => FormRenderable + +/** + * Fields that are added onto the `FormAPI` from `@tanstack/form-core` and returned from `useForm` + */ +export interface OctaneFormApi< + in out TFormData, + in out TOnMount extends undefined | FormValidateOrFn, + in out TOnChange extends undefined | FormValidateOrFn, + in out TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + in out TOnBlur extends undefined | FormValidateOrFn, + in out TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + in out TOnSubmit extends undefined | FormValidateOrFn, + in out TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + in out TOnDynamic extends undefined | FormValidateOrFn, + in out TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + in out TOnServer extends undefined | FormAsyncValidateOrFn, + in out TSubmitMeta, +> { + /** + * A component to render form fields. With this, you can render and manage individual form fields. + */ + Field: FieldComponent< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + > + FormGroup: FormGroupComponent< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + > + /** + * A `Subscribe` function that allows you to listen and react to changes in the form's state. It's especially useful when you need to execute side effects or render specific components in response to state updates. + */ + Subscribe: SubscribeComponent< + FormState< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer + > + > +} + +/** + * An extended version of the `FormApi` class that includes renderer-specific components from `OctaneFormApi` + */ +export type OctaneFormExtendedApi< + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, +> = + FormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + > & OctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + > + +function LocalSubscribe({ + form, + selector = (state) => state, + children, +}: FormPropsWithChildren<{ + form: AnyFormApi; + selector?: (state: AnyFormState) => AnyFormState; +}>): ReturnType { + const data = useSelector(form.store, selector) + + return <> + {functionalUpdate(children, data)} + +} + +/** + * A custom hook that returns an extended instance of the `FormApi` class. + * + * This API encapsulates all the necessary functionalities related to the form. It allows you to manage form state, handle submissions, and interact with form fields + */ +export function useForm< + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, +>( + opts?: FormOptions< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + >, +) { + const fallbackFormId = useFormId() + const formId = opts?.formId ?? fallbackFormId + const [prevFormId, setPrevFormId] = useState(formId) + + const [formApi, setFormApi] = useState(() => { + return new FormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + >({ ...opts, formId }) + }) + + if (prevFormId !== formId) { + setFormApi(new FormApi({ ...opts, formId })) + setPrevFormId(formId) + } + + const extendedFormApi = useMemo(() => { + const extendedApi: OctaneFormExtendedApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + > = { + ...formApi, + handleSubmit: ((...props: never[]) => { + return formApi._handleSubmit(...props) + }) as typeof formApi.handleSubmit, + // We must add all `get`ters from `core`'s `FormApi` here, as otherwise the spread operator won't catch those + get formId(): string { + return formApi._formId + }, + get state() { + return formApi.store.state + }, + } as never + + extendedApi.Field = function APIField(props) { + return + } + + extendedApi.FormGroup = function APIFormGroup(props) { + return + } + + extendedApi.Subscribe = function Subscribe(props: any) { + return + } + + return extendedApi + }, [formApi]) + + useIsomorphicLayoutEffect(formApi.mount, [formApi]) + + /** + * formApi.update should not have any side effects. Think of it like a `useRef` + * that we need to keep updated every render with the most up-to-date information. + */ + useIsomorphicLayoutEffect(() => { + formApi.update(opts) + }) + + const hasRan = useRef(false) + + useIsomorphicLayoutEffect(() => { + if (!hasRan.current) return + if (!opts?.transform) return + mergeAndUpdate(formApi, opts.transform as never) + }, [formApi, opts?.transform]) + + useIsomorphicLayoutEffect(() => { + hasRan.current = true + }) + + return extendedFormApi +} diff --git a/packages/octane-form/src/useForm.tsrx.d.ts b/packages/octane-form/src/useForm.tsrx.d.ts new file mode 100644 index 0000000000..efa4dd23bd --- /dev/null +++ b/packages/octane-form/src/useForm.tsrx.d.ts @@ -0,0 +1,170 @@ +// Declaration companion generated from useForm.tsrx. +import { FormApi } from '@tanstack/form-core' +import type { FormGroupComponent } from './useFormGroup.tsrx' +import type { + FormAsyncValidateOrFn, + FormOptions, + FormState, + FormValidateOrFn, +} from '@tanstack/form-core' +import type { FieldComponent } from './useField.tsrx' +import type { SubscribeComponent } from './types' +/** + * Fields that are added onto the `FormAPI` from `@tanstack/form-core` and returned from `useForm` + */ +export interface OctaneFormApi< + in out TFormData, + in out TOnMount extends undefined | FormValidateOrFn, + in out TOnChange extends undefined | FormValidateOrFn, + in out TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + in out TOnBlur extends undefined | FormValidateOrFn, + in out TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + in out TOnSubmit extends undefined | FormValidateOrFn, + in out TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + in out TOnDynamic extends undefined | FormValidateOrFn, + in out TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + in out TOnServer extends undefined | FormAsyncValidateOrFn, + in out TSubmitMeta, +> { + /** + * A component to render form fields. With this, you can render and manage individual form fields. + */ + Field: FieldComponent< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + > + FormGroup: FormGroupComponent< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + > + /** + * A `Subscribe` function that allows you to listen and react to changes in the form's state. It's especially useful when you need to execute side effects or render specific components in response to state updates. + */ + Subscribe: SubscribeComponent< + FormState< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer + > + > +} +/** + * An extended version of the `FormApi` class that includes renderer-specific components from `OctaneFormApi` + */ +export type OctaneFormExtendedApi< + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, +> = FormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta +> & + OctaneFormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + > +/** + * A custom hook that returns an extended instance of the `FormApi` class. + * + * This API encapsulates all the necessary functionalities related to the form. It allows you to manage form state, handle submissions, and interact with form fields + */ +export declare function useForm< + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, +>( + opts?: FormOptions< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + >, +): OctaneFormExtendedApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta +> +export {} diff --git a/packages/octane-form/src/useFormGroup.tsrx b/packages/octane-form/src/useFormGroup.tsrx new file mode 100644 index 0000000000..7374c0e1d2 --- /dev/null +++ b/packages/octane-form/src/useFormGroup.tsrx @@ -0,0 +1,696 @@ +import { useMemo, useState } from 'octane' +import { useSelector } from '@tanstack/octane-store' +import { FormGroupApi, functionalUpdate } from '@tanstack/form-core' +import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect' +import type { + DeepKeys, + DeepValue, + FormAsyncValidateOrFn, + FormGroupApiOptions, + FormGroupAsyncValidateOrFn, + FormGroupOptions, + FormGroupValidateOrFn, + FormValidateOrFn, +} from '@tanstack/form-core' + +type FormGroupRenderable = unknown +type FormGroupFunctionComponent

= (props: P) => FormGroupRenderable + +export type UseFormGroup< + TParentData, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TParentSubmitMeta, +> = + < + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends | undefined + | FormGroupValidateOrFn, + TOnChange extends | undefined + | FormGroupValidateOrFn, + TOnChangeAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnBlur extends | undefined + | FormGroupValidateOrFn, + TOnBlurAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnSubmit extends | undefined + | FormGroupValidateOrFn, + TOnSubmitAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnDynamic extends | undefined + | FormGroupValidateOrFn, + TOnDynamicAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TSubmitMeta, + >(opts: FormGroupApiOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta + >) => FormGroupApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta + > + +export function useFormGroup< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FormGroupValidateOrFn, + TOnChange extends | undefined + | FormGroupValidateOrFn, + TOnChangeAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnBlur extends undefined | FormGroupValidateOrFn, + TOnBlurAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnSubmit extends | undefined + | FormGroupValidateOrFn, + TOnSubmitAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnDynamic extends | undefined + | FormGroupValidateOrFn, + TOnDynamicAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TSubmitMeta, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TParentSubmitMeta, +>( + opts: FormGroupApiOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta + >, +) { + // Keep a snapshot of options so compiler optimizations do not treat + // formGroupApi as immutable. + const [prevOptions, setPrevOptions] = useState( + () => ({ + form: opts.form, + name: opts.name, + }), + ) + + const [formGroupApiState, setFormGroupApi] = useState(() => { + return new FormGroupApi({ + ...opts, + }) + }) + let formGroupApi = formGroupApiState + + // We only want to + // update on name changes since those are at risk of becoming stale. The field + // state must be up to date for the internal JSX render. + // The other options can freely be in `fieldApi.update` + if (prevOptions.form !== opts.form || prevOptions.name !== opts.name) { + // Use the replacement for the rest of this render so selectors and the + // render prop never observe state from the previous form or group name. + formGroupApi = new FormGroupApi({ + ...opts, + }) + setFormGroupApi(formGroupApi) + setPrevOptions({ form: opts.form, name: opts.name }) + } + + const reactiveStateValue = useSelector( + formGroupApi.store, + (state) => state.value, + ) + + const reactiveMetaIsTouched = useSelector( + formGroupApi.store, + (state) => state.meta.isTouched, + ) + const reactiveMetaIsBlurred = useSelector( + formGroupApi.store, + (state) => state.meta.isBlurred, + ) + const reactiveMetaIsDirty = useSelector( + formGroupApi.store, + (state) => state.meta.isDirty, + ) + const reactiveMetaErrorMap = useSelector( + formGroupApi.store, + (state) => state.meta.errorMap, + ) + const reactiveMetaErrorSourceMap = useSelector( + formGroupApi.store, + (state) => state.meta.errorSourceMap, + ) + const reactiveMetaIsValidating = useSelector( + formGroupApi.store, + (state) => state.meta.isValidating, + ) + + // Submission lifecycle and aggregated validity now live on `state.meta` + // (mirroring `FieldApi.state.meta`). Subscribe to the fields callers + // typically read so the compiled renderer tracks them as dependencies. + const reactiveMetaIsSubmitting = useSelector( + formGroupApi.store, + (state) => state.meta.isSubmitting, + ) + const reactiveMetaIsSubmitted = useSelector( + formGroupApi.store, + (state) => state.meta.isSubmitted, + ) + const reactiveMetaSubmissionAttempts = useSelector( + formGroupApi.store, + (state) => state.meta.submissionAttempts, + ) + const reactiveMetaIsSubmitSuccessful = useSelector( + formGroupApi.store, + (state) => state.meta.isSubmitSuccessful, + ) + const reactiveMetaCanSubmit = useSelector( + formGroupApi.store, + (state) => state.meta.canSubmit, + ) + const reactiveMetaIsValid = useSelector( + formGroupApi.store, + (state) => state.meta.isValid, + ) + const reactiveMetaIsFieldsValid = useSelector( + formGroupApi.store, + (state) => state.meta.isFieldsValid, + ) + const reactiveMetaIsFieldsValidating = useSelector( + formGroupApi.store, + (state) => state.meta.isFieldsValidating, + ) + const reactiveMetaIsGroupValid = useSelector( + formGroupApi.store, + (state) => state.meta.isGroupValid, + ) + + // Materialize the reactive snapshots in the extended API returned to render callbacks. + const extendedFieldApi = useMemo(() => { + const reactiveFieldApi = { + ...formGroupApi, + handleSubmit: ((...props: never[]) => { + return formGroupApi._handleSubmit(...props) + }) as typeof formGroupApi.handleSubmit, + get state() { + return { + ...formGroupApi.state, + value: reactiveStateValue, + get meta() { + return { + ...formGroupApi.state.meta, + isTouched: reactiveMetaIsTouched, + isBlurred: reactiveMetaIsBlurred, + isDirty: reactiveMetaIsDirty, + errorMap: reactiveMetaErrorMap, + errorSourceMap: reactiveMetaErrorSourceMap, + isValidating: reactiveMetaIsValidating, + isSubmitting: reactiveMetaIsSubmitting, + isSubmitted: reactiveMetaIsSubmitted, + submissionAttempts: reactiveMetaSubmissionAttempts, + isSubmitSuccessful: reactiveMetaIsSubmitSuccessful, + canSubmit: reactiveMetaCanSubmit, + isValid: reactiveMetaIsValid, + isFieldsValid: reactiveMetaIsFieldsValid, + isFieldsValidating: reactiveMetaIsFieldsValidating, + isGroupValid: reactiveMetaIsGroupValid, + } satisfies typeof formGroupApi.state.meta + }, + } satisfies typeof formGroupApi.state + }, + } + + const extendedApi: FormGroupApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta + > = reactiveFieldApi as never + + return extendedApi + }, [ + formGroupApi, + reactiveStateValue, + reactiveMetaIsTouched, + reactiveMetaIsBlurred, + reactiveMetaIsDirty, + reactiveMetaErrorMap, + reactiveMetaErrorSourceMap, + reactiveMetaIsValidating, + reactiveMetaIsSubmitting, + reactiveMetaIsSubmitted, + reactiveMetaSubmissionAttempts, + reactiveMetaIsSubmitSuccessful, + reactiveMetaCanSubmit, + reactiveMetaIsValid, + reactiveMetaIsFieldsValid, + reactiveMetaIsFieldsValidating, + reactiveMetaIsGroupValid, + ]) + + useIsomorphicLayoutEffect(formGroupApi.mount, [formGroupApi]) + + useIsomorphicLayoutEffect(() => { + formGroupApi.update(opts) + }) + + return extendedFieldApi +} + +interface FormGroupComponentProps< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FormGroupValidateOrFn, + TOnChange extends | undefined + | FormGroupValidateOrFn, + TOnChangeAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnBlur extends undefined | FormGroupValidateOrFn, + TOnBlurAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnSubmit extends | undefined + | FormGroupValidateOrFn, + TOnSubmitAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnDynamic extends | undefined + | FormGroupValidateOrFn, + TOnDynamicAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TSubmitMeta, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TParentSubmitMeta, + ExtendedApi = {}, +> extends FormGroupApiOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta +> { + children: (formGroupApi: FormGroupApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta + > & ExtendedApi) => FormGroupRenderable +} + +interface FormGroupComponentBoundProps< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FormGroupValidateOrFn, + TOnChange extends | undefined + | FormGroupValidateOrFn, + TOnChangeAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnBlur extends undefined | FormGroupValidateOrFn, + TOnBlurAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnSubmit extends | undefined + | FormGroupValidateOrFn, + TOnSubmitAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnDynamic extends | undefined + | FormGroupValidateOrFn, + TOnDynamicAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TSubmitMeta, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TParentSubmitMeta, + ExtendedApi = {}, +> extends FormGroupOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta +> { + children: (formGroupApi: FormGroupApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta + > & ExtendedApi) => FormGroupRenderable +} + +export type FormGroupComponent< + in out TParentData, + in out TFormOnMount extends undefined | FormValidateOrFn, + in out TFormOnChange extends undefined | FormValidateOrFn, + in out TFormOnChangeAsync extends | undefined + | FormAsyncValidateOrFn, + in out TFormOnBlur extends undefined | FormValidateOrFn, + in out TFormOnBlurAsync extends | undefined + | FormAsyncValidateOrFn, + in out TFormOnSubmit extends undefined | FormValidateOrFn, + in out TFormOnSubmitAsync extends | undefined + | FormAsyncValidateOrFn, + in out TFormOnDynamic extends undefined | FormValidateOrFn, + in out TFormOnDynamicAsync extends | undefined + | FormAsyncValidateOrFn, + in out TFormOnServer extends undefined | FormAsyncValidateOrFn, + in out TParentSubmitMeta, + in out ExtendedApi = {}, +> = + < + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends | undefined + | FormGroupValidateOrFn, + TOnChange extends | undefined + | FormGroupValidateOrFn, + TOnChangeAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnBlur extends | undefined + | FormGroupValidateOrFn, + TOnBlurAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnSubmit extends | undefined + | FormGroupValidateOrFn, + TOnSubmitAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnDynamic extends | undefined + | FormGroupValidateOrFn, + TOnDynamicAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TSubmitMeta, + >({ children, ...formGroupOptions }: FormGroupComponentBoundProps< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta, + ExtendedApi + >) => ReturnType + +export const FormGroup = (< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FormGroupValidateOrFn, + TOnChange extends | undefined + | FormGroupValidateOrFn, + TOnChangeAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnBlur extends undefined | FormGroupValidateOrFn, + TOnBlurAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnSubmit extends | undefined + | FormGroupValidateOrFn, + TOnSubmitAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TOnDynamic extends | undefined + | FormGroupValidateOrFn, + TOnDynamicAsync extends | undefined + | FormGroupAsyncValidateOrFn, + TSubmitMeta, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TParentSubmitMeta, +>({ children, ...formGroupOptions }: FormGroupComponentProps< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta +>): ReturnType => { + const formGroupApi = useFormGroup(formGroupOptions as any) + + const jsxToDisplay = useMemo( + () => functionalUpdate(children, formGroupApi as any), + [children, formGroupApi], + ) + return <> + {jsxToDisplay} + as never +}) satisfies FormGroupFunctionComponent< + FormGroupComponentProps< + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any + > +> diff --git a/packages/octane-form/src/useFormGroup.tsrx.d.ts b/packages/octane-form/src/useFormGroup.tsrx.d.ts new file mode 100644 index 0000000000..c7acb4fa10 --- /dev/null +++ b/packages/octane-form/src/useFormGroup.tsrx.d.ts @@ -0,0 +1,493 @@ +// Declaration companion generated from useFormGroup.tsrx. +import { FormGroupApi } from '@tanstack/form-core' +import type { + DeepKeys, + DeepValue, + FormAsyncValidateOrFn, + FormGroupApiOptions, + FormGroupAsyncValidateOrFn, + FormGroupOptions, + FormGroupValidateOrFn, + FormValidateOrFn, +} from '@tanstack/form-core' +type FormGroupRenderable = unknown +type FormGroupFunctionComponent

= (props: P) => FormGroupRenderable +export type UseFormGroup< + TParentData, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TParentSubmitMeta, +> = < + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FormGroupValidateOrFn, + TOnChange extends + undefined | FormGroupValidateOrFn, + TOnChangeAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnBlur extends undefined | FormGroupValidateOrFn, + TOnBlurAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnSubmit extends + undefined | FormGroupValidateOrFn, + TOnSubmitAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnDynamic extends + undefined | FormGroupValidateOrFn, + TOnDynamicAsync extends + undefined | FormGroupAsyncValidateOrFn, + TSubmitMeta, +>( + opts: FormGroupApiOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta + >, +) => FormGroupApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta +> +export declare function useFormGroup< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FormGroupValidateOrFn, + TOnChange extends + undefined | FormGroupValidateOrFn, + TOnChangeAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnBlur extends undefined | FormGroupValidateOrFn, + TOnBlurAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnSubmit extends + undefined | FormGroupValidateOrFn, + TOnSubmitAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnDynamic extends + undefined | FormGroupValidateOrFn, + TOnDynamicAsync extends + undefined | FormGroupAsyncValidateOrFn, + TSubmitMeta, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TParentSubmitMeta, +>( + opts: FormGroupApiOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta + >, +): FormGroupApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta +> +interface FormGroupComponentProps< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FormGroupValidateOrFn, + TOnChange extends + undefined | FormGroupValidateOrFn, + TOnChangeAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnBlur extends undefined | FormGroupValidateOrFn, + TOnBlurAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnSubmit extends + undefined | FormGroupValidateOrFn, + TOnSubmitAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnDynamic extends + undefined | FormGroupValidateOrFn, + TOnDynamicAsync extends + undefined | FormGroupAsyncValidateOrFn, + TSubmitMeta, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TParentSubmitMeta, + ExtendedApi = {}, +> extends FormGroupApiOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta +> { + children: ( + formGroupApi: FormGroupApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta + > & + ExtendedApi, + ) => FormGroupRenderable +} +interface FormGroupComponentBoundProps< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FormGroupValidateOrFn, + TOnChange extends + undefined | FormGroupValidateOrFn, + TOnChangeAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnBlur extends undefined | FormGroupValidateOrFn, + TOnBlurAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnSubmit extends + undefined | FormGroupValidateOrFn, + TOnSubmitAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnDynamic extends + undefined | FormGroupValidateOrFn, + TOnDynamicAsync extends + undefined | FormGroupAsyncValidateOrFn, + TSubmitMeta, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TParentSubmitMeta, + ExtendedApi = {}, +> extends FormGroupOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta +> { + children: ( + formGroupApi: FormGroupApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta + > & + ExtendedApi, + ) => FormGroupRenderable +} +export type FormGroupComponent< + in out TParentData, + in out TFormOnMount extends undefined | FormValidateOrFn, + in out TFormOnChange extends undefined | FormValidateOrFn, + in out TFormOnChangeAsync extends + undefined | FormAsyncValidateOrFn, + in out TFormOnBlur extends undefined | FormValidateOrFn, + in out TFormOnBlurAsync extends + undefined | FormAsyncValidateOrFn, + in out TFormOnSubmit extends undefined | FormValidateOrFn, + in out TFormOnSubmitAsync extends + undefined | FormAsyncValidateOrFn, + in out TFormOnDynamic extends undefined | FormValidateOrFn, + in out TFormOnDynamicAsync extends + undefined | FormAsyncValidateOrFn, + in out TFormOnServer extends undefined | FormAsyncValidateOrFn, + in out TParentSubmitMeta, + in out ExtendedApi = {}, +> = < + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FormGroupValidateOrFn, + TOnChange extends + undefined | FormGroupValidateOrFn, + TOnChangeAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnBlur extends undefined | FormGroupValidateOrFn, + TOnBlurAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnSubmit extends + undefined | FormGroupValidateOrFn, + TOnSubmitAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnDynamic extends + undefined | FormGroupValidateOrFn, + TOnDynamicAsync extends + undefined | FormGroupAsyncValidateOrFn, + TSubmitMeta, +>({ + children, + ...formGroupOptions +}: FormGroupComponentBoundProps< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta, + ExtendedApi +>) => ReturnType +export declare const FormGroup: < + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FormGroupValidateOrFn, + TOnChange extends + undefined | FormGroupValidateOrFn, + TOnChangeAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnBlur extends undefined | FormGroupValidateOrFn, + TOnBlurAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnSubmit extends + undefined | FormGroupValidateOrFn, + TOnSubmitAsync extends + undefined | FormGroupAsyncValidateOrFn, + TOnDynamic extends + undefined | FormGroupValidateOrFn, + TOnDynamicAsync extends + undefined | FormGroupAsyncValidateOrFn, + TSubmitMeta, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnDynamic extends undefined | FormValidateOrFn, + TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TParentSubmitMeta, +>({ + children, + ...formGroupOptions +}: FormGroupComponentProps< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TSubmitMeta, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnDynamic, + TFormOnDynamicAsync, + TFormOnServer, + TParentSubmitMeta +>) => ReturnType +export {} diff --git a/packages/octane-form/src/useFormId.ts b/packages/octane-form/src/useFormId.ts new file mode 100644 index 0000000000..9149ef6796 --- /dev/null +++ b/packages/octane-form/src/useFormId.ts @@ -0,0 +1,4 @@ +import { useId } from 'octane' + +// Generated IDs remain opaque and stable across SSR and hydration. +export const useFormId = useId diff --git a/packages/octane-form/src/useIsomorphicLayoutEffect.ts b/packages/octane-form/src/useIsomorphicLayoutEffect.ts new file mode 100644 index 0000000000..fd02eec6c0 --- /dev/null +++ b/packages/octane-form/src/useIsomorphicLayoutEffect.ts @@ -0,0 +1,4 @@ +import { useEffect, useLayoutEffect } from 'octane' + +export const useIsomorphicLayoutEffect = + typeof window !== 'undefined' ? useLayoutEffect : useEffect diff --git a/packages/octane-form/tests/createFormHook.test-d.tsx b/packages/octane-form/tests/createFormHook.test-d.tsx new file mode 100644 index 0000000000..2400b41c8a --- /dev/null +++ b/packages/octane-form/tests/createFormHook.test-d.tsx @@ -0,0 +1,1128 @@ +import { describe, expectTypeOf, it } from 'vitest' +import { formOptions } from '@tanstack/form-core' +import { createFormHook, createFormHookContexts } from '../src' + +const { fieldContext, useFieldContext, formContext, useFormContext } = + createFormHookContexts() + +function Test() { + return null +} + +class ClassComponent { + render() { + return null + } +} + +createFormHook({ + fieldComponents: { + // @ts-expect-error Octane component registration accepts callable function components only. + ClassComponent, + }, + formComponents: {}, + fieldContext, + formContext, +}) + +const { useAppForm, withForm, withFieldGroup } = createFormHook({ + fieldComponents: { + Test, + }, + formComponents: { + Test, + }, + fieldContext, + formContext, +}) + +describe('createFormHook', () => { + it('should infer field group Subscribe state and selector results', () => { + withFieldGroup({ + defaultValues: { name: '', age: 0 }, + render: ({ group }) => ( + <> + + {(state) => { + expectTypeOf(state).toEqualTypeOf() + return {state.values.name} + }} + + [state.values.name, state.values.age] as const} + > + {([name, age]) => { + expectTypeOf(name).toEqualTypeOf() + expectTypeOf(age).toEqualTypeOf() + return ( + + {name}: {age} + + ) + }} + + + ), + }) + }) + + it('should distinguish field group Subscribe callbacks from static children', () => { + withFieldGroup({ + defaultValues: { name: '', age: 0 }, + render: ({ group }) => { + const invalidInferred = ( + state.values.age} + // @ts-expect-error Static children must not accept incompatible render callbacks. + children={(age: string) => age} + /> + ) + const invalidExplicit = ( + + selector={(state) => state.values.age} + // @ts-expect-error Explicit selection types must also enforce the callback type. + children={(age: string) => age} + /> + ) + + return ( + <> + + Static child + + state.values.name}> + Static text + + {42} + {null} + + {[First, 'Second', false]} + + {invalidInferred} + {invalidExplicit} + + ) + }, + }) + }) + + it('should not break with an infinite type on large schemas', () => { + const ActivityKind0_Names = ['Work', 'Rest', 'OnCall'] as const + type ActivityKind0 = (typeof ActivityKind0_Names)[number] + + enum DayOfWeek { + Monday = 1, + Tuesday, + Wednesday, + Thursday, + Friday, + Saturday, + Sunday, + } + + interface Branding { + __type?: Brand + } + type Branded = T & Branding + type ActivityId = Branded + interface ActivitySelectorFormData { + includeAll: boolean + includeActivityIds: ActivityId[] + includeActivityKinds: Set + excludeActivityIds: ActivityId[] + } + + const GeneratedTypes0Visibility_Names = [ + 'Normal', + 'Advanced', + 'Hidden', + ] as const + type GeneratedTypes0Visibility = + (typeof GeneratedTypes0Visibility_Names)[number] + interface FormValuesBase { + key: string + visibility: GeneratedTypes0Visibility + } + + interface ActivityCountFormValues extends FormValuesBase { + _type: 'ActivityCount' + activitySelector: ActivitySelectorFormData + daysOfWeek: DayOfWeek[] + label: string + } + + interface PlanningTimesFormValues extends FormValuesBase { + _type: 'PlanningTimes' + showTarget: boolean + showPlanned: boolean + showDiff: boolean + } + + type EditorValues = ActivityCountFormValues | PlanningTimesFormValues + interface EditorFormValues { + editors: Record + ordering: string[] + } + + const ExampleUsage = withForm({ + props: { + initialValues: '' as keyof EditorFormValues['editors'], + }, + defaultValues: {} as EditorFormValues, + render: ({ form, initialValues }) => { + return ( +

+ + {(field) => { + expectTypeOf(field.state.value).toExtend() + return null + }} + + + + +
+ ) + }, + }) + + const ExampleUsage2 = withFieldGroup({ + defaultValues: {} as EditorValues, + render: ({ group }) => { + const test = group.state.values.key + return ( +
+ + {(field) => { + expectTypeOf(field.state.value).toExtend() + return null + }} + + + + +
+ ) + }, + }) + }) + + it('types should be properly inferred when using formOptions', () => { + type Person = { + firstName: string + lastName: string + } + + const formOpts = formOptions({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + const WithFormComponent = withForm({ + ...formOpts, + render: ({ form }) => { + expectTypeOf(form.state.values).toEqualTypeOf() + return + }, + }) + }) + + it('types should be properly inferred when passing args alongside formOptions', () => { + type Person = { + firstName: string + lastName: string + } + + const formOpts = formOptions({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + const WithFormComponent = withForm({ + ...formOpts, + onSubmitMeta: { + test: 'test', + }, + render: ({ form }) => { + expectTypeOf(form.handleSubmit).toEqualTypeOf<{ + (): Promise + (submitMeta: { test: string }): Promise + }> + return + }, + }) + }) + + it('types should be properly inferred when formOptions are being overridden', () => { + type Person = { + firstName: string + lastName: string + } + + type PersonWithAge = Person & { + age: number + } + + const formOpts = formOptions({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + const WithFormComponent = withForm({ + ...formOpts, + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + age: 10, + }, + render: ({ form }) => { + expectTypeOf(form.state.values).toExtend() + return + }, + }) + }) + + it('withForm props should be properly inferred', () => { + const WithFormComponent = withForm({ + props: { + prop1: 'test', + prop2: 10, + }, + render: ({ form, ...props }) => { + expectTypeOf(props).toEqualTypeOf<{ + prop1: string + prop2: number + children?: unknown + }>() + + return + }, + }) + }) + + it('component made from withForm should have its props properly typed', () => { + const formOpts = formOptions({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + }, + }) + + const appForm = useAppForm(formOpts) + + const WithFormComponent = withForm({ + ...formOpts, + props: { + prop1: 'test', + prop2: 10, + }, + render: ({ form, children, ...props }) => { + expectTypeOf(props).toEqualTypeOf<{ + prop1: string + prop2: number + }>() + return + }, + }) + + const CorrectComponent = ( + + ) + + // @ts-expect-error Missing required props prop1 and prop2 + const MissingPropsComponent = + + const incorrectFormOpts = formOptions({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + firstNameWrong: 'FirstName', + lastNameWrong: 'LastName', + }, + }) + + const incorrectAppForm = useAppForm(incorrectFormOpts) + + const IncorrectFormOptsComponent = ( + // @ts-expect-error Incorrect form opts + + ) + }) + + it('should infer subset values and props when calling withFieldGroup', () => { + type Person = { + firstName: string + lastName: string + } + type ComponentProps = { + prop1: string + prop2: number + } + + const defaultValues: Person = { + firstName: 'FirstName', + lastName: 'LastName', + } + + const FormGroupComponent = withFieldGroup({ + defaultValues, + render: function Render({ group, children, ...props }) { + // Existing types may be inferred + expectTypeOf(group.state.values.firstName).toEqualTypeOf() + expectTypeOf(group.state.values.lastName).toEqualTypeOf() + + expectTypeOf(group.state.values).toEqualTypeOf() + expectTypeOf(children).toEqualTypeOf() + expectTypeOf(props).toEqualTypeOf<{}>() + return + }, + }) + + const FormGroupComponentWithProps = withFieldGroup({ + ...defaultValues, + props: {} as ComponentProps, + render: ({ group, children, ...props }) => { + expectTypeOf(props).toEqualTypeOf<{ + prop1: string + prop2: number + }>() + return + }, + }) + }) + + it('should allow spreading formOptions when calling withFieldGroup', () => { + type Person = { + firstName: string + lastName: string + } + + const defaultValues: Person = { + firstName: '', + lastName: '', + } + const formOpts = formOptions({ + defaultValues, + validators: { + onChange: () => 'Error', + }, + listeners: { + onBlur: () => 'Something', + }, + asyncAlways: true, + asyncDebounceMs: 500, + }) + + // validators and listeners are ignored, only defaultValues is acknowledged + const FormGroupComponent = withFieldGroup({ + ...formOpts, + render: function Render({ group }) { + // Existing types may be inferred + expectTypeOf(group.state.values.firstName).toEqualTypeOf() + expectTypeOf(group.state.values.lastName).toEqualTypeOf() + return + }, + }) + + const noDefaultValuesFormOpts = formOptions({ + onSubmitMeta: { foo: '' }, + }) + + const UnknownFormGroupComponent = withFieldGroup({ + ...noDefaultValuesFormOpts, + render: function Render({ group }) { + // group.state.values can be anything. + // note that T extends unknown !== unknown extends T. + expectTypeOf().toExtend() + + // either no submit meta or of the type in formOptions + expectTypeOf(group.handleSubmit).parameters.toEqualTypeOf< + [] | [{ foo: string }] + >() + return + }, + }) + }) + + it('should allow passing compatible forms to withFieldGroup', () => { + type Person = { + firstName: string + lastName: string + } + type ComponentProps = { + prop1: string + prop2: number + } + + const defaultValues: Person = { + firstName: 'FirstName', + lastName: 'LastName', + } + + const FormGroup = withFieldGroup({ + defaultValues, + props: {} as ComponentProps, + render: () => { + return <> + }, + }) + + const equalAppForm = useAppForm({ + defaultValues, + }) + + // ----------------- + // Assert that an equal form is not compatible as you have no name to pass + const NoSubfield = ( + + ) + + // ----------------- + // Assert that a form extending Person in a property is allowed + + const extendedAppForm = useAppForm({ + defaultValues: { person: { ...defaultValues, address: '' }, address: '' }, + }) + // While it has other properties, it satisfies defaultValues + const CorrectComponent1 = ( + + ) + + const MissingProps = ( + // @ts-expect-error because prop1 and prop2 are not added + + ) + + // ----------------- + // Assert that a form not satisfying Person errors + const incompatibleAppForm = useAppForm({ + defaultValues: { person: { ...defaultValues, lastName: 0 } }, + }) + const IncompatibleComponent = ( + + ) + }) + + it('should require strict equal submitMeta if it is set in withFieldGroup', () => { + type Person = { + firstName: string + lastName: string + } + type SubmitMeta = { + correct: string + } + + const defaultValues = { + person: { firstName: 'FirstName', lastName: 'LastName' } as Person, + } + const onSubmitMeta: SubmitMeta = { + correct: 'Prop', + } + + const FormLensNoMeta = withFieldGroup({ + defaultValues: {} as Person, + render: function Render({ group }) { + // Since handleSubmit always allows to submit without meta, this is okay + group.handleSubmit() + + // To prevent unwanted meta behaviour, handleSubmit's meta should be never if not set. + expectTypeOf(group.handleSubmit).parameters.toEqualTypeOf< + [] | [submitMeta: never] + >() + + return + }, + }) + + const FormGroupWithMeta = withFieldGroup({ + defaultValues: {} as Person, + onSubmitMeta, + render: function Render({ group }) { + // Since handleSubmit always allows to submit without meta, this is okay + group.handleSubmit() + + // This matches the value + group.handleSubmit({ correct: '' }) + + // This does not. + // @ts-expect-error + group.handleSubmit({ wrong: 'Meta' }) + + return + }, + }) + + const noMetaForm = useAppForm({ + defaultValues, + }) + + const CorrectComponent1 = ( + + ) + + const WrongComponent1 = ( + + ) + + const metaForm = useAppForm({ + defaultValues, + onSubmitMeta, + }) + + const CorrectComponent2 = + const CorrectComponent3 = ( + + ) + + const diffMetaForm = useAppForm({ + defaultValues, + onSubmitMeta: { ...onSubmitMeta, something: 'else' }, + }) + + const CorrectComponent4 = ( + + ) + const WrongComponent2 = ( + + ) + }) + + it('should accept any validators for withFieldGroup', () => { + type Person = { + firstName: string + lastName: string + } + + const defaultValues = { + person: { firstName: 'FirstName', lastName: 'LastName' } satisfies Person, + } + + const formA = useAppForm({ + defaultValues, + validators: { + onChange: () => 'A', + }, + listeners: { + onChange: () => 'A', + }, + }) + const formB = useAppForm({ + defaultValues, + validators: { + onChange: () => 'B', + }, + listeners: { + onChange: () => 'B', + }, + }) + + const FormGroup = withFieldGroup({ + defaultValues: defaultValues.person, + render: function Render({ group }) { + return + }, + }) + + const CorrectComponent1 = + const CorrectComponent2 = + }) + + it('should allow nesting withFieldGroup in other withFieldGroups', () => { + type Nested = { + firstName: string + } + type Wrapper = { + field: Nested + } + type FormValues = { + form: Wrapper + unrelated: { something: { lastName: string } } + } + + const defaultValues: FormValues = { + form: { + field: { + firstName: 'Test', + }, + }, + unrelated: { + something: { + lastName: '', + }, + }, + } + + const form = useAppForm({ + defaultValues, + }) + const LensNested = withFieldGroup({ + defaultValues: defaultValues.form.field, + render: function Render() { + return <> + }, + }) + const LensWrapper = withFieldGroup({ + defaultValues: defaultValues.form, + render: function Render({ group }) { + return ( +
+ +
+ ) + }, + }) + + const Component = + }) + + it('should not allow withFieldGroups with different metas to be nested', () => { + type Nested = { + firstName: string + } + type Wrapper = { + field: Nested + } + type FormValues = { + form: Wrapper + unrelated: { something: { lastName: string } } + } + + const defaultValues: FormValues = { + form: { + field: { + firstName: 'Test', + }, + }, + unrelated: { + something: { + lastName: '', + }, + }, + } + + const LensNestedNoMeta = withFieldGroup({ + defaultValues: defaultValues.form.field, + render: function Render() { + return <> + }, + }) + const LensNestedWithMeta = withFieldGroup({ + defaultValues: defaultValues.form.field, + onSubmitMeta: { meta: '' }, + render: function Render() { + return <> + }, + }) + const LensWrapper = withFieldGroup({ + defaultValues: defaultValues.form, + render: function Render({ group }) { + return ( +
+ + +
+ ) + }, + }) + + it('should allow mapping withFieldGroup to different fields', () => { + const defaultValues = { + firstName: '', + lastName: '', + age: 0, + relatives: [{ firstName: '', lastName: '', age: 0 }], + } + const defaultFields = { + first: '', + last: '', + } + + const form = useAppForm({ + defaultValues, + }) + + const FieldGroup = withFieldGroup({ + defaultValues: defaultFields, + render: function Render() { + return <> + }, + }) + + const Component1 = ( + + ) + + const Component2 = ( + + ) + }) + + it('should not allow fields mapping if the top level is an array', () => { + const defaultValues = { + firstName: '', + lastName: '', + age: 0, + relatives: [{ firstName: '', lastName: '', age: 0 }], + relativesRecord: { + something: { firstName: '', lastName: '', age: 0 }, + } as Record, + } + const defaultFields = { + firstName: '', + lastName: '', + } + + const form = useAppForm({ + defaultValues, + }) + + const FieldGroupRecord = withFieldGroup({ + defaultValues: { anything: defaultFields } as Record< + string, + typeof defaultFields + >, + render: function Render() { + return <> + }, + }) + const FieldGroupArray = withFieldGroup({ + defaultValues: [defaultFields], + render: function Render() { + return <> + }, + }) + + const CorrectComponent1 = ( + + ) + const WrongComponent1 = ( + + ) + const CorrectComponent3 = ( + + ) + const WrongComponent2 = ( + + ) + }) + }) + + it('should allow mapping field groups to optional fields', () => { + const groupFields = { + name: '', + } + + type WrapperValues = { + namespace: { name: string } | undefined + namespace2: { name: string } | null + namespace3: { name: string } | null | undefined + nope: null | undefined + nope2: { lastName: string } | null | undefined + } + + const defaultValues: WrapperValues = { + namespace: undefined, + namespace2: null, + namespace3: null, + nope: null, + nope2: null, + } + + const FieldGroup = withFieldGroup({ + defaultValues: groupFields, + render: function Render() { + return <> + }, + }) + + const form = useAppForm({ + defaultValues, + }) + + const Component = + const Component2 = + const Component3 = + // @ts-expect-error because it doesn't ever evaluate to the expected values + const Component4 = + // @ts-expect-error because the types don't match properly + const Component5 = + }) + + it('should allow interfaces without index signatures to be assigned to `props` in withForm and withFormGroup', () => { + interface TestNoSignature { + title: string + } + + interface TestWithSignature { + title: string + [key: string]: unknown + } + + const WithFormComponent1 = withForm({ + defaultValues: { name: '' }, + props: {} as TestNoSignature, + render: () => <>, + }) + + const WithFormComponent2 = withForm({ + defaultValues: { name: '' }, + props: {} as TestWithSignature, + render: () => <>, + }) + + const WithFieldGroupComponent1 = withFieldGroup({ + defaultValues: { name: '' }, + props: {} as TestNoSignature, + render: () => <>, + }) + + const WithFieldGroupComponent2 = withFieldGroup({ + defaultValues: { name: '' }, + props: {} as TestWithSignature, + render: () => <>, + }) + + const appForm = useAppForm({ defaultValues: { name: '' } }) + + const Component1 = + const Component2 = ( + + ) + + const FieldGroupComponent1 = ( + + ) + const FieldGroupComponent2 = ( + + ) + }) + + it('should not allow null as prop in withForm and withFormGroup', () => { + const WithFormComponent = withForm({ + defaultValues: { name: '' }, + // @ts-expect-error + props: null, + render: () => <>, + }) + }) + + const WithFieldGroupComponent = withFieldGroup({ + defaultValues: { name: '' }, + // @ts-expect-error + props: null, + render: () => <>, + }) + + describe('extendForm', () => { + function ExtendedField() { + return null + } + function ExtendedFormComp() { + return null + } + + const baseHook = createFormHook({ + fieldComponents: { Test }, + formComponents: { Test }, + fieldContext, + formContext, + }) + + const { + withForm: withExtendedForm, + withFieldGroup: withExtendedFieldGroup, + extendForm, + } = baseHook.extendForm({ + fieldComponents: { ExtendedField }, + formComponents: { ExtendedFormComp }, + }) + + it('should expose extendForm on the returned hook', () => { + expectTypeOf(extendForm).toBeFunction() + }) + + it('should include parent field components in the extended AppField render prop', () => { + withExtendedForm({ + defaultValues: { name: '' }, + render: ({ form }) => { + expectTypeOf(form.AppField).toBeFunction() + + return ( + + {(field) => { + expectTypeOf(field.Test).toBeFunction() + expectTypeOf(field.ExtendedField).toBeFunction() + return null + }} + + ) + }, + }) + }) + + it('should include parent form components on the extended form', () => { + withExtendedForm({ + defaultValues: { name: '' }, + render: ({ form }) => { + expectTypeOf(form.Test).toBeFunction() + expectTypeOf(form.ExtendedFormComp).toBeFunction() + return null + }, + }) + }) + + it('should include parent and extended components in withFieldGroup', () => { + withExtendedFieldGroup({ + defaultValues: { name: '' }, + render: ({ group }) => { + expectTypeOf(group.Test).toBeFunction() + expectTypeOf(group.ExtendedFormComp).toBeFunction() + + return ( + + {(field) => { + expectTypeOf(field.Test).toBeFunction() + expectTypeOf(field.ExtendedField).toBeFunction() + return null + }} + + ) + }, + }) + }) + + it('should error when a duplicate field component name is used in extendForm', () => { + baseHook.extendForm({ + fieldComponents: { + // @ts-expect-error 'Test' already exists in the base form + Test: ExtendedField, + }, + }) + }) + + it('should error when a duplicate form component name is used in extendForm', () => { + baseHook.extendForm({ + formComponents: { + // @ts-expect-error 'Test' already exists in the base form + Test: ExtendedFormComp, + }, + }) + }) + + it('should allow further extension of an already extended hook', () => { + function ThirdField() { + return null + } + + const { useAppForm: useDoublyExtended } = baseHook + .extendForm({ fieldComponents: { ExtendedField } }) + .extendForm({ fieldComponents: { ThirdField } }) + + withExtendedForm({ + defaultValues: { name: '' }, + render: ({ form }) => { + return ( + + {(field) => { + expectTypeOf(field.Test).toBeFunction() + expectTypeOf(field.ExtendedField).toBeFunction() + return null + }} + + ) + }, + }) + + const doublyExtendedForm = useDoublyExtended({ + defaultValues: { name: '' }, + }) + expectTypeOf(doublyExtendedForm.AppField).toBeFunction() + }) + + it('should preserve its recursive type beyond the previous declaration cutoff', () => { + const deeplyExtended = baseHook + .extendForm({ fieldComponents: { Field01: Test } }) + .extendForm({ fieldComponents: { Field02: Test } }) + .extendForm({ fieldComponents: { Field03: Test } }) + .extendForm({ fieldComponents: { Field04: Test } }) + .extendForm({ fieldComponents: { Field05: Test } }) + .extendForm({ fieldComponents: { Field06: Test } }) + .extendForm({ fieldComponents: { Field07: Test } }) + .extendForm({ fieldComponents: { Field08: Test } }) + .extendForm({ fieldComponents: { Field09: Test } }) + .extendForm({ fieldComponents: { Field10: Test } }) + .extendForm({ fieldComponents: { Field11: Test } }) + .extendForm({ fieldComponents: { Field12: Test } }) + + expectTypeOf(deeplyExtended).not.toBeAny() + expectTypeOf(deeplyExtended.extendForm).toBeFunction() + }) + }) +}) diff --git a/packages/octane-form/tests/createFormHook.test.tsrx b/packages/octane-form/tests/createFormHook.test.tsrx new file mode 100644 index 0000000000..f6d26ab2c4 --- /dev/null +++ b/packages/octane-form/tests/createFormHook.test.tsrx @@ -0,0 +1,937 @@ +import { describe, expect, it } from 'vitest' +import { render, waitFor } from '@octanejs/testing-library' +import { formOptions } from '@tanstack/form-core' +import userEvent from '@testing-library/user-event' +import { createFormHook, createFormHookContexts, useSelector } from '../src' + +const user = userEvent.setup() + +const { fieldContext, useFieldContext, formContext, useFormContext } = + createFormHookContexts() + +function TextField({ label }: { label: string }) { + const field = useFieldContext() + return +} + +function SubscribeButton({ label }: { label: string }) { + const form = useFormContext() + return state.isSubmitting}> + {(isSubmitting) => } + +} + +const { useAppForm, withForm, withFieldGroup, useTypedAppFormContext } = + createFormHook({ + fieldComponents: { + TextField, + }, + formComponents: { + SubscribeButton, + }, + fieldContext, + formContext, + }) + +describe('createFormHook', () => { + it('should allow to set default value', () => { + type Person = { + firstName: string; + lastName: string; + } + + function Comp() { + const form = useAppForm({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + return <> + } + /> + + } + + const { getByLabelText } = render() + const input = getByLabelText('Testing') + expect(input).toHaveValue('FirstName') + }) + + it('should handle withForm types properly', () => { + const formOpts = formOptions({ + defaultValues: { + firstName: 'John', + lastName: 'Doe', + }, + }) + + const ChildForm = withForm({ + ...formOpts, + // Optional, but adds props to the `render` function outside of `form` + props: { + title: 'Child Form', + }, + render: ({ form, title }) => { + return
+

{title}

+ } + /> + + + +
+ }, + }) + + const Parent = () => { + const form = useAppForm({ + ...formOpts, + }) + + return + } + + const { getByLabelText, getByText } = render() + const input = getByLabelText('First Name') + expect(input).toHaveValue('John') + expect(getByText('Testing')).toBeInTheDocument() + }) + + it('should handle withFieldGroup types properly', () => { + const formOpts = formOptions({ + defaultValues: { + person: { + firstName: 'John', + lastName: 'Doe', + }, + }, + }) + + const ChildForm = withFieldGroup({ + defaultValues: formOpts.defaultValues.person, + // Optional, but adds props to the `render` function outside of `form` + props: { + title: 'Child Form', + }, + render: ({ group, title }) => { + return
+

{title}

+ } + /> + + + +
+ }, + }) + + const Parent = () => { + const form = useAppForm({ + ...formOpts, + }) + + return + } + + const { getByLabelText, getByText } = render() + const input = getByLabelText('First Name') + expect(input).toHaveValue('John') + expect(getByText('Testing')).toBeInTheDocument() + }) + + it('should use the correct field name in Field with withFieldGroup', () => { + const formOpts = formOptions({ + defaultValues: { + person: { + firstName: 'John', + lastName: 'Doe', + }, + people: [ + { + firstName: 'Jane', + lastName: 'Doe', + }, + { + firstName: 'Robert', + lastName: 'Doe', + }, + ], + }, + }) + + const ChildFormAsField = withFieldGroup({ + defaultValues: formOpts.defaultValues.person, + render: ({ group }) => { + return
+ } + /> + + + +
+ }, + }) + const ChildFormAsArray = withFieldGroup({ + defaultValues: [formOpts.defaultValues.person], + props: { + title: '', + }, + render: ({ group, title }) => { + return
+

{title}

+ } + /> + + + +
+ }, + }) + + const Parent = () => { + const form = useAppForm({ + ...formOpts, + }) + + return <> + + + + + } + + const { getByLabelText, getByText } = render() + const inputField1 = getByLabelText('person.firstName') + const inputArray = getByLabelText('people[0].firstName') + const inputField2 = getByLabelText('people[1].firstName') + expect(inputField1).toHaveValue('John') + expect(inputArray).toHaveValue('Jane') + expect(inputField2).toHaveValue('Robert') + expect(getByText('Testing')).toBeInTheDocument() + }) + + it('should forward Field and Subscribe to the form', () => { + const formOpts = formOptions({ + defaultValues: { + person: { + firstName: 'John', + lastName: 'Doe', + }, + }, + }) + + const ChildFormAsField = withFieldGroup({ + defaultValues: formOpts.defaultValues.person, + render: ({ group }) => { + return
+ } + /> + state.values.lastName}> + {(lastName) =>

{lastName}

} +
+
+ }, + }) + + const Parent = () => { + const form = useAppForm({ + ...formOpts, + }) + return + } + + const { getByLabelText, getByText } = render() + const input = getByLabelText('person.firstName') + expect(input).toHaveValue('John') + expect(getByText('Doe')).toBeInTheDocument() + }) + + it('should not lose focus on update with withFieldGroup', async () => { + const formOpts = formOptions({ + defaultValues: { + person: { + firstName: 'John', + lastName: 'Doe', + }, + }, + }) + + const ChildForm = withFieldGroup({ + defaultValues: formOpts.defaultValues.person, + render: function Render({ group }) { + const firstName = useSelector( + group.store, + (state) => state.values.firstName, + ) + return
+

{firstName}

+ } + /> + state.values.lastName}> + {(lastName) =>

{lastName}

} +
+
+ }, + }) + + const Parent = () => { + const form = useAppForm({ + ...formOpts, + }) + return + } + + const { getByLabelText } = render() + + const input = getByLabelText('person.firstName') + input.focus() + expect(input).toHaveFocus() + + await user.clear(input) + await user.type(input, 'Something') + + expect(input).toHaveFocus() + }) + + it('should allow nesting withFieldGroup in other withFieldGroups', () => { + type Nested = { + firstName: string; + } + type Wrapper = { + field: Nested; + } + type FormValues = { + form: Wrapper; + unrelated: { something: { lastName: string } }; + } + + const defaultValues: FormValues = { + form: { + field: { + firstName: 'Test', + }, + }, + unrelated: { + something: { + lastName: '', + }, + }, + } + + const LensNested = withFieldGroup({ + defaultValues: defaultValues.form.field, + render: function Render({ group }) { + return + {(field) =>

{field.name}

} +
+ }, + }) + const LensWrapper = withFieldGroup({ + defaultValues: defaultValues.form, + render: function Render({ group }) { + return
+ +
+ }, + }) + + const Parent = () => { + const form = useAppForm({ + defaultValues, + }) + return + } + + const { getByText } = render() + + expect(getByText('form.field.firstName')).toBeInTheDocument() + }) + + it('should allow mapping withFieldGroup to different values', () => { + const formOpts = formOptions({ + defaultValues: { + unrelated: 'John', + values: '', + }, + }) + + const ChildFormAsField = withFieldGroup({ + defaultValues: { firstName: '', lastName: '' }, + render: ({ group }) => { + return
+ } + /> +
+ }, + }) + + const Parent = () => { + const form = useAppForm({ + ...formOpts, + }) + + return + } + + const { getByLabelText } = render() + const inputField1 = getByLabelText('unrelated') + expect(inputField1).toHaveValue('John') + }) + + it('should remap FieldGroupApi.Field validators to the correct names', () => { + const FieldGroupString = withFieldGroup({ + defaultValues: { password: '', confirmPassword: '' }, + render: function Render({ group }) { + return null, + onChangeListenTo: ['password'], + onBlur: () => null, + onBlurListenTo: ['confirmPassword'], + }} + > + {(field) => { + expect(field.options.validators?.onChangeListenTo).toStrictEqual([ + 'account.password', + ]) + expect(field.options.validators?.onBlurListenTo).toStrictEqual([ + 'account.confirmPassword', + ]) + return <> + }} + + }, + }) + + const FieldGroupObject = withFieldGroup({ + defaultValues: { password: '', confirmPassword: '' }, + render: function Render({ group }) { + return null, + onChangeListenTo: ['password'], + onBlur: () => null, + onBlurListenTo: ['confirmPassword'], + }} + > + {(field) => { + expect(field.options.validators?.onChangeListenTo).toStrictEqual([ + 'userPassword', + ]) + expect(field.options.validators?.onBlurListenTo).toStrictEqual([ + 'userConfirmPassword', + ]) + return <> + }} + + }, + }) + + const Parent = () => { + const form = useAppForm({ + defaultValues: { + account: { + password: '', + confirmPassword: '', + }, + userPassword: '', + userConfirmPassword: '', + }, + }) + + return <> + + + + } + + render() + }) + + it('should accept formId and return it', async () => { + function Submit() { + const form = useFormContext() + + return + } + + function Comp() { + const form = useAppForm({ + formId: 'test', + }) + + return +
{ + e.preventDefault() + form.handleSubmit() + }} + >
+ + state.submissionAttempts} + children={(submissionAttempts) => + {submissionAttempts}} + /> + + +
+ } + + const { getByTestId } = render() + const target = getByTestId('formId-target') + const result = getByTestId('formId-result') + + expect(target).toHaveAttribute('form', 'test') + expect(target).toHaveTextContent('test') + await user.click(target) + expect(result).toHaveTextContent('1') + }) + + it('should allow using typed app form', () => { + type Person = { + firstName: string; + lastName: string; + } + const formOpts = formOptions({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + function Child() { + const form = useTypedAppFormContext(formOpts) + + return } + /> + } + + function Parent() { + const form = useAppForm({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + return + + + } + + const { getByLabelText } = render() + const input = getByLabelText('Testing') + expect(input).toHaveValue('FirstName') + }) + + it('should throw if `useTypedAppFormContext` is used without AppForm', () => { + type Person = { + firstName: string; + lastName: string; + } + const formOpts = formOptions({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + function Child() { + const form = useTypedAppFormContext(formOpts) + + return } + /> + } + + function Parent() { + const form = useAppForm({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + return + } + + expect(() => render()).toThrow() + }) + + it('should allow using typed app form with form components', () => { + type Person = { + firstName: string; + lastName: string; + } + const formOpts = formOptions({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + function Child() { + const form = useTypedAppFormContext(formOpts) + + return + } + + function Parent() { + const form = useAppForm({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + return + + + } + + const { getByText } = render() + const button = getByText('Testing') + expect(button).toBeInTheDocument() + }) + + describe('extendForm', () => { + it('should include both parent and extended field components', () => { + function ExtendedTextField({ label }: { label: string }) { + const field = useFieldContext() + return + } + + const { useAppForm: useExtendedForm } = createFormHook({ + fieldComponents: { TextField }, + formComponents: { SubscribeButton }, + fieldContext, + formContext, + }).extendForm({ + fieldComponents: { ExtendedTextField }, + }) + + function Comp() { + const form = useExtendedForm({ + defaultValues: { firstName: 'John', lastName: 'Doe' }, + }) + + return <> + } + /> + } + /> + + } + + const { getByLabelText, getByTestId } = render() + expect(getByLabelText('First Name')).toHaveValue('John') + expect(getByTestId('extended-input')).toHaveValue('Doe') + }) + + it('should include both parent and extended form components', () => { + function ExtendedSubmit({ label }: { label: string }) { + const form = useFormContext() + return state.isSubmitting}> + {(isSubmitting) => + } + + } + + const { useAppForm: useExtendedForm } = createFormHook({ + fieldComponents: { TextField }, + formComponents: { SubscribeButton }, + fieldContext, + formContext, + }).extendForm({ + formComponents: { ExtendedSubmit }, + }) + + function Comp() { + const form = useExtendedForm({ + defaultValues: { firstName: 'John' }, + }) + + return + + + + } + + const { getByText, getByTestId } = render() + expect(getByText('Submit')).toBeInTheDocument() + expect(getByTestId('extended-submit')).toHaveTextContent( + 'Extended Submit', + ) + }) + + it('should support chaining multiple extendForm calls', () => { + function FieldA({ label }: { label: string }) { + const field = useFieldContext() + return + } + + function FieldB({ label }: { label: string }) { + const field = useFieldContext() + return + } + + const base = createFormHook({ + fieldComponents: { TextField }, + formComponents: {}, + fieldContext, + formContext, + }) + + const { useAppForm: useChainedForm } = base.extendForm({ + fieldComponents: { FieldA }, + }).extendForm({ fieldComponents: { FieldB } }) + + function Comp() { + const form = useChainedForm({ + defaultValues: { a: 'valueA', b: 'valueB', c: 'valueC' }, + }) + + return <> + } + /> + } + /> + } + /> + + } + + const { getByLabelText } = render() + expect(getByLabelText('A')).toHaveValue('valueA') + expect(getByLabelText('B')).toHaveValue('valueB') + expect(getByLabelText('C')).toHaveValue('valueC') + }) + + it('should work with withForm after extendForm', () => { + function ExtendedTextField({ label }: { label: string }) { + const field = useFieldContext() + return + } + + const { useAppForm: useExtendedForm, withForm: withExtendedForm } = + createFormHook({ + fieldComponents: { TextField }, + formComponents: { SubscribeButton }, + fieldContext, + formContext, + }).extendForm({ + fieldComponents: { ExtendedTextField }, + }) + + const ChildForm = withExtendedForm({ + defaultValues: { firstName: 'Jane', lastName: 'Smith' }, + render: function Render({ form }) { + return <> + } + /> + + } + /> + + }, + }) + + function Parent() { + const form = useExtendedForm({ + defaultValues: { firstName: 'Jane', lastName: 'Smith' }, + }) + return + } + + const { getByLabelText } = render() + expect(getByLabelText('First Name')).toHaveValue('Jane') + expect(getByLabelText('Last Name')).toHaveValue('Smith') + }) + + it('should return a new extendForm from the extended hook', () => { + function ExtendedTextField({ label }: { label: string }) { + const field = useFieldContext() + return + } + + const base = createFormHook({ + fieldComponents: { TextField }, + formComponents: { SubscribeButton }, + fieldContext, + formContext, + }) + + const extended = base.extendForm({ + fieldComponents: { ExtendedTextField }, + }) + + // extendForm should itself expose extendForm + expect(typeof extended.extendForm).toBe('function') + }) + }) + + it( + 'should render FieldGroup Subscribe without selector (default identity)', + async () => { + const formOpts = formOptions({ + defaultValues: { + person: { + firstName: 'FirstName', + lastName: 'LastName', + }, + }, + }) + + const ChildFormAsField = withFieldGroup({ + defaultValues: formOpts.defaultValues.person, + render: ({ group }) => { + return
+ } + /> + + {state.values.lastName}} + /> +
+ }, + }) + + const Parent = () => { + const form = useAppForm({ + ...formOpts, + }) + return + } + + const { getByTestId } = render() + const input = getByTestId('lastName') + const stateLastName = getByTestId('state-lastName') + + expect(stateLastName).toHaveTextContent('LastName') + + await user.clear(input) + await user.type(input, 'Updated') + await waitFor(() => expect(stateLastName).toHaveTextContent('Updated')) + }, + ) +}) diff --git a/packages/octane-form/tests/onChangeListenTo.adapter.test.tsrx b/packages/octane-form/tests/onChangeListenTo.adapter.test.tsrx new file mode 100644 index 0000000000..a6dfb8944b --- /dev/null +++ b/packages/octane-form/tests/onChangeListenTo.adapter.test.tsrx @@ -0,0 +1,137 @@ +import { describe, expect, it, vi } from 'vitest' +import { act, fireEvent, render } from '@octanejs/testing-library' +import { useSelector } from '@tanstack/octane-store' +import { useForm } from '../src' +import { sleep } from './utils' +import type { AnyFormApi } from '../src' + +function DebugSubscribe({ store }: { store: AnyFormApi['store'] }) { + const isFieldsValidating = useSelector(store, (s) => s.isFieldsValidating) + return {String( + isFieldsValidating, + )} +} + +describe('Octane adapter - onChangeListenTo race', () => { + it( + 'does not leave linked fields stuck in isValidating when multiple rapid updates occur', + async () => { + vi.useFakeTimers() + + const validationFn = vi.fn() + + function Comp() { + const form = useForm({ + defaultValues: { + street: '', + houseNo: '', + zipCode: '', + city: '', + }, + }) + + return <> + { + await sleep(500) + validationFn() + return undefined + }, + }} + children={(field) =>
+ field.handleChange(e.currentTarget.value)} + /> + {String( + field.state.meta.isValidating, + )} +
} + /> + +
+ field.handleChange(e.currentTarget.value)} + /> + {String( + field.state.meta.isValidating, + )} +
} + /> + +
+ field.handleChange(e.currentTarget.value)} + /> + {String( + field.state.meta.isValidating, + )} +
} + /> + +
+ field.handleChange(e.currentTarget.value)} + /> + {String( + field.state.meta.isValidating, + )} +
} + /> + + + + } + + const { getByTestId } = render() + + const street = getByTestId('street') as HTMLInputElement + const houseNo = getByTestId('houseNo') as HTMLInputElement + const zipCode = getByTestId('zipCode') as HTMLInputElement + const city = getByTestId('city') as HTMLInputElement + + await act(async () => { + // Simulate rapid updates (autofill), then run debounce + async validation. + fireEvent.input(street, { target: { value: 'Foo Street' } }) + fireEvent.input(houseNo, { target: { value: '2' } }) + fireEvent.input(zipCode, { target: { value: '12345' } }) + fireEvent.input(city, { target: { value: 'Barrington' } }) + await vi.runAllTimersAsync() + }) + + expect(validationFn).toHaveBeenCalledTimes(1) + + // Verify validation flags are not stuck + const isFieldsValidating = getByTestId('isFieldsValidating').textContent + const streetValidating = getByTestId('street-validating').textContent + const houseValidating = getByTestId('houseNo-validating').textContent + const zipValidating = getByTestId('zipCode-validating').textContent + const cityValidating = getByTestId('city-validating').textContent + + expect(isFieldsValidating).toBe('false') + expect(streetValidating).toBe('false') + expect(houseValidating).toBe('false') + expect(zipValidating).toBe('false') + expect(cityValidating).toBe('false') + + vi.useRealTimers() + }, + ) +}) diff --git a/packages/octane-form/tests/server.test.tsrx b/packages/octane-form/tests/server.test.tsrx new file mode 100644 index 0000000000..8c0817199b --- /dev/null +++ b/packages/octane-form/tests/server.test.tsrx @@ -0,0 +1,34 @@ +import { describe, expect, it } from 'vitest' +import { renderToStaticMarkup } from 'octane/server' + +import { useForm } from '../src' + +function ServerForm() @{ + const form = useForm({ + defaultValues: { + name: 'Server Ada', + }, + }) + +
+ + {(field) => } + + state.values.name}> + {(name) => {name}} + +
+} + +describe('@tanstack/octane-form SSR', () => { + it('renders field and form snapshots without a DOM', () => { + expect(typeof document).toBe('undefined') + + const { html, css } = renderToStaticMarkup(ServerForm) + + expect(html).toBe( + '
Server Ada
', + ) + expect(css).toBe('') + }) +}) diff --git a/packages/octane-form/tests/test-setup.ts b/packages/octane-form/tests/test-setup.ts new file mode 100644 index 0000000000..500ee02196 --- /dev/null +++ b/packages/octane-form/tests/test-setup.ts @@ -0,0 +1,3 @@ +import '@testing-library/jest-dom/vitest' +// Registers cleanup and the act environment using Vitest's global hooks. +import '@octanejs/testing-library' diff --git a/packages/octane-form/tests/useField.test-d.tsx b/packages/octane-form/tests/useField.test-d.tsx new file mode 100644 index 0000000000..100f990e9f --- /dev/null +++ b/packages/octane-form/tests/useField.test-d.tsx @@ -0,0 +1,112 @@ +/** @jsxImportSource octane */ +import { expectTypeOf, it } from 'vitest' +import { useForm } from '../src/index' + +it('should type state.value properly', () => { + function Comp() { + const form = useForm({ + defaultValues: { + firstName: 'test', + age: 84, + }, + } as const) + + return ( + <> + { + expectTypeOf(field.state.value).toEqualTypeOf<'test'>() + return null + }} + /> + { + expectTypeOf(field.state.value).toEqualTypeOf<84>() + return null + }} + /> + + ) + } +}) + +it('should type onChange properly', () => { + function Comp() { + const form = useForm({ + defaultValues: { + firstName: 'test', + age: 84, + }, + } as const) + + return ( + <> + { + expectTypeOf(value).toEqualTypeOf<'test'>() + return null + }, + }} + children={() => null} + /> + { + expectTypeOf(value).toEqualTypeOf<84>() + return null + }, + }} + children={() => null} + /> + + ) + } +}) + +it('should type array subfields', () => { + type FormDefinition = { + nested: { + people: { + name: string + age: number + }[] + } + } + + function App() { + const form = useForm({ + defaultValues: { + nested: { + people: [], + }, + } as FormDefinition, + onSubmit({ value }) { + alert(JSON.stringify(value)) + }, + }) + + return ( + + {(field) => + field.state.value.map((_, i) => ( + + {(subField) => ( + + subField.handleChange(event.currentTarget.value) + } + /> + )} + + )) + } + + ) + } +}) diff --git a/packages/octane-form/tests/useField.test.tsrx b/packages/octane-form/tests/useField.test.tsrx new file mode 100644 index 0000000000..240dc47702 --- /dev/null +++ b/packages/octane-form/tests/useField.test.tsrx @@ -0,0 +1,1462 @@ +import { describe, expect, it, vi } from 'vitest' +import { render, waitFor, within } from '@octanejs/testing-library' +import { userEvent } from '@testing-library/user-event' +import { useState } from 'octane' +import { useForm, useSelector } from '../src' +import { sleep } from './utils' + +const user = userEvent.setup() + +describe('useField', () => { + it('should allow to set default value', () => { + type Person = { + firstName: string; + lastName: string; + } + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + return <> + { + return field.handleChange(e.currentTarget.value)} + /> + }} + /> + + } + + const { getByTestId } = render() + const input = getByTestId('fieldinput') + expect(input).toHaveValue('FirstName') + }) + + it('should use field default value first', () => { + type Person = { + firstName: string; + lastName: string; + } + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + return <> + { + return field.handleChange(e.currentTarget.value)} + /> + }} + /> + + } + + const { getByTestId } = render() + const input = getByTestId('fieldinput') + expect(input).toHaveValue('otherName') + }) + + it('should not validate on change if isTouched is false', async () => { + type Person = { + firstName: string; + lastName: string; + } + const error = 'Please enter a different value' + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + } as Person, + }) + + return <> + (value === 'other' ? error : undefined), + }} + children={(field) =>
+ field.setValue(e.currentTarget.value, { + dontUpdateMeta: true, + })} + /> +

{field.getMeta().errors}

+
} + /> + + } + + const { getByTestId, queryByText } = render() + const input = getByTestId('fieldinput') + await user.type(input, 'other') + expect(queryByText(error)).not.toBeInTheDocument() + }) + + it('should validate on change if isTouched is true', async () => { + type Person = { + firstName: string; + lastName: string; + } + const error = 'Please enter a different value' + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + } as Person, + }) + + return <> + (value === 'other' ? error : undefined), + }} + children={(field) =>
+ field.handleChange(e.currentTarget.value)} + /> +

{field.getMeta().errorMap.onChange}

+
} + /> + + } + + const { getByTestId, getByText, queryByText } = render() + const input = getByTestId('fieldinput') + expect(queryByText(error)).not.toBeInTheDocument() + await user.type(input, 'other') + expect(getByText(error)).toBeInTheDocument() + }) + + it('should validate on change and on blur', async () => { + type Person = { + firstName: string; + lastName: string; + } + const onChangeError = 'Please enter a different value (onChangeError)' + const onBlurError = 'Please enter a different value (onBlurError)' + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + } as Person, + }) + + return <> + (value === 'other' + ? onChangeError + : undefined), + onBlur: ({ value }) => (value === 'other' + ? onBlurError + : undefined), + }} + children={(field) =>
+ field.handleChange(e.currentTarget.value)} + /> +

{field.getMeta().errorMap.onChange}

+

{field.getMeta().errorMap.onBlur}

+
} + /> + + } + + const { getByTestId, getByText, queryByText } = render() + const input = getByTestId('fieldinput') + expect(queryByText(onChangeError)).not.toBeInTheDocument() + expect(queryByText(onBlurError)).not.toBeInTheDocument() + await user.type(input, 'other') + expect(getByText(onChangeError)).toBeInTheDocument() + await user.click(document.body) + expect(queryByText(onBlurError)).toBeInTheDocument() + }) + + it('should properly update conditionally rendered fields', async () => { + type FormValues = { + firstField: string; + secondField: string; + showFirstField: boolean; + } + + function Comp() { + const form = useForm({ + defaultValues: { + firstField: '', + secondField: '', + showFirstField: true, + } as FormValues, + }) + + return <> + + {({ handleChange, state }) =>
+ Show first field + { + handleChange(e.currentTarget.checked) + }} + /> +
} +
+ state.values.showFirstField}> + {(someFlagChecked) => { + if (someFlagChecked) { + return + {({ handleChange, state }) => } + + } + + return + {({ handleChange, state }) => } + + }} + + + } + + const { getByTestId } = render() + + const showFirstFieldInput = getByTestId('show-first-field') + + await user.type(getByTestId('first-field'), 'hello') + expect((getByTestId('first-field') as HTMLInputElement).value).toBe('hello') + + await user.click(showFirstFieldInput) + await user.type(getByTestId('second-field'), 'world') + expect((getByTestId('second-field') as HTMLInputElement).value).toBe( + 'world', + ) + + await user.click(showFirstFieldInput) + expect((getByTestId('first-field') as HTMLInputElement).value).toBe('hello') + }) + + it('should not keep hidden field submit errors after unmount', async () => { + const onSubmit = vi.fn() + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + }, + onSubmit: ({ value }) => onSubmit(value), + }) + + return
{ + e.preventDefault() + e.stopPropagation() + form.handleSubmit() + }} + > + + {(field) => + field.handleChange(e.currentTarget.value)} + />} + + + state.values.firstName === 'a'}> + {(showLastName) => showLastName + ? (value.length >= 5 + ? undefined + : 'lastName too short'), + }} + > + {(field) => + field.handleChange(e.currentTarget.value)} + />} + + : null} + + + [state.canSubmit, state.isSubmitting]} + > + {([canSubmit, isSubmitting]) => } + +
+ } + + const { getByTestId, queryByTestId } = render() + + const submitButton = getByTestId('submit') + + await user.type(getByTestId('first-name'), 'a') + await user.type(getByTestId('last-name'), 'abc') + await user.click(submitButton) + + await waitFor(() => expect(submitButton).toBeDisabled()) + expect(onSubmit).toHaveBeenCalledTimes(0) + + await user.clear(getByTestId('first-name')) + await user.type(getByTestId('first-name'), 'b') + + await waitFor( + () => expect(queryByTestId('last-name')).not.toBeInTheDocument(), + ) + await waitFor(() => expect(submitButton).toBeEnabled()) + + await user.click(submitButton) + await waitFor(() => expect(onSubmit).toHaveBeenCalledTimes(1)) + + await user.clear(getByTestId('first-name')) + await user.type(getByTestId('first-name'), 'a') + + const remountedLastName = await waitFor(() => getByTestId('last-name')) + expect((remountedLastName as HTMLInputElement).value).toBe('abc') + expect(submitButton).toBeEnabled() + }) + + it( + 'should call onUnmount listener when a field is conditionally removed', + async () => { + const fieldUnmount = vi.fn() + const formFieldUnmount = vi.fn() + + function Comp() { + const form = useForm({ + defaultValues: { + show: true, + name: 'test', + }, + listeners: { + onFieldUnmount: formFieldUnmount, + }, + }) + + return <> + + {(field) => + field.handleChange(e.currentTarget.checked)} + />} + + + s.values.show}> + {(show) => show + ? + {(field) => + field.handleChange(e.currentTarget.value)} + />} + + : null} + + + } + + const { getByTestId, queryByTestId } = render() + + await waitFor(() => expect(getByTestId('name')).toBeInTheDocument()) + + const callsBefore = fieldUnmount.mock.calls.length + const formCallsBefore = formFieldUnmount.mock.calls.length + + await user.click(getByTestId('toggle')) + + await waitFor(() => expect(queryByTestId('name')).not.toBeInTheDocument()) + expect(fieldUnmount).toHaveBeenCalledTimes(callsBefore + 1) + expect(formFieldUnmount).toHaveBeenCalledTimes(formCallsBefore + 1) + }, + ) + + it('should validate async on change', async () => { + type Person = { + firstName: string; + lastName: string; + } + const error = 'Please enter a different value' + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + } as Person, + }) + + return <> + { + await sleep(10) + return error + }, + }} + children={(field) =>
+ field.handleChange(e.currentTarget.value)} + /> +

{field.getMeta().errorMap.onChange}

+
} + /> + + } + + const { getByTestId, getByText, queryByText } = render() + const input = getByTestId('fieldinput') + expect(queryByText(error)).not.toBeInTheDocument() + await user.type(input, 'other') + await waitFor(() => getByText(error)) + expect(getByText(error)).toBeInTheDocument() + }) + + it('should validate async on change and async on blur', async () => { + type Person = { + firstName: string; + lastName: string; + } + const onChangeError = 'Please enter a different value (onChangeError)' + const onBlurError = 'Please enter a different value (onBlurError)' + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + } as Person, + }) + + return <> + { + await sleep(10) + return onChangeError + }, + onBlurAsync: async () => { + await sleep(10) + return onBlurError + }, + }} + children={(field) =>
+ field.handleChange(e.currentTarget.value)} + /> +

{field.getMeta().errorMap.onChange}

+

{field.getMeta().errorMap.onBlur}

+
} + /> + + } + + const { getByTestId, getByText, queryByText } = render() + const input = getByTestId('fieldinput') + + expect(queryByText(onChangeError)).not.toBeInTheDocument() + expect(queryByText(onBlurError)).not.toBeInTheDocument() + await user.type(input, 'other') + await waitFor(() => getByText(onChangeError)) + expect(getByText(onChangeError)).toBeInTheDocument() + await user.click(document.body) + await waitFor(() => getByText(onBlurError)) + expect(getByText(onBlurError)).toBeInTheDocument() + }) + + it('should validate async on change with debounce', async () => { + type Person = { + firstName: string; + lastName: string; + } + const mockFn = vi.fn() + const error = 'Please enter a different value' + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + } as Person, + }) + + return <> + { + mockFn() + await sleep(10) + return error + }, + }} + children={(field) =>
+ field.handleChange(e.currentTarget.value)} + /> +

{field.getMeta().errors}

+
} + /> + + } + + const { getByTestId, getByText } = render() + const input = getByTestId('fieldinput') + await user.type(input, 'other') + // mockFn will have been called 5 times without onChangeAsyncDebounceMs + expect(mockFn).toHaveBeenCalledTimes(0) + await waitFor(() => getByText(error)) + expect(getByText(error)).toBeInTheDocument() + expect(mockFn).toHaveBeenCalledTimes(1) + }) + + it('should handle arrays with primitive values', async () => { + const fn = vi.fn() + function Comp() { + const form = useForm({ + defaultValues: { + people: [] as Array, + }, + onSubmit: ({ value }) => fn(value), + }) + + return
+
{ + e.preventDefault() + e.stopPropagation() + form.handleSubmit() + }} + > + + {(field) => { + return
+ {field.state.value.map((_, i) => { + return + {(subField) => { + return
+ + +
+ }} +
+ })} + +
+ }} +
+ [state.canSubmit, state.isSubmitting]} + children={([canSubmit, isSubmitting]) => } + /> + +
+ } + + const { getByText, findByLabelText, queryByText, findByText } = render( + , + ) + + expect(queryByText('Name for person 0')).not.toBeInTheDocument() + expect(queryByText('Name for person 1')).not.toBeInTheDocument() + await user.click(getByText('Add person')) + const input = await findByLabelText('Name for person 0') + expect(input).toBeInTheDocument() + await user.type(input, 'John') + + await user.click(getByText('Add person')) + const input2 = await findByLabelText('Name for person 1') + expect(input).toBeInTheDocument() + await user.type(input2, 'Jack') + + expect(queryByText('Name for person 0')).toBeInTheDocument() + expect(queryByText('Name for person 1')).toBeInTheDocument() + await user.click(getByText('Remove person 1')) + expect(queryByText('Name for person 0')).toBeInTheDocument() + expect(queryByText('Name for person 1')).not.toBeInTheDocument() + + await user.click(await findByText('Submit')) + expect(fn).toHaveBeenCalledWith({ people: ['John'] }) + }) + + it('should handle arrays with subvalues', async () => { + const fn = vi.fn() + function Comp() { + const form = useForm({ + defaultValues: { + people: [] as Array<{ age: number; name: string }>, + }, + onSubmit: ({ value }) => fn(value), + }) + + return
+
{ + e.preventDefault() + e.stopPropagation() + form.handleSubmit() + }} + > + + {(field) => { + return
+ {field.state.value.map((_, i) => { + return + {(subField) => { + return
+ + +
+ }} +
+ })} + +
+ }} +
+ [state.canSubmit, state.isSubmitting]} + children={([canSubmit, isSubmitting]) => } + /> + +
+ } + + const { getByText, findByLabelText, queryByText, findByText } = render( + , + ) + + expect(queryByText('Name for person 0')).not.toBeInTheDocument() + expect(queryByText('Name for person 1')).not.toBeInTheDocument() + await user.click(getByText('Add person')) + const input = await findByLabelText('Name for person 0') + expect(input).toBeInTheDocument() + await user.type(input, 'John') + + await user.click(getByText('Add person')) + const input2 = await findByLabelText('Name for person 1') + expect(input).toBeInTheDocument() + await user.type(input2, 'Jack') + + expect(queryByText('Name for person 0')).toBeInTheDocument() + expect(queryByText('Name for person 1')).toBeInTheDocument() + await user.click(getByText('Remove person 1')) + expect(queryByText('Name for person 0')).toBeInTheDocument() + expect(queryByText('Name for person 1')).not.toBeInTheDocument() + + await user.click(await findByText('Submit')) + expect(fn).toHaveBeenCalledWith({ + people: [ + { name: 'John', age: 0 }, + ], + }) + }) + + it( + 'should not surface undefined for shifted items when a non-last stably-keyed array item is removed', + async () => { + // Regression test for https://github.com/TanStack/form/issues/2238 + // When array items are keyed by a stable id (not index), removing a + // non-last item changes the `name` prop of the surviving items. The field + // must read state at its current `name` on that render, never `undefined`. + const observedValues: Array = [] + + function Comp() { + const form = useForm({ + defaultValues: { + sections: [] as Array<{ id: string; title: string }>, + }, + }) + + let nextId = 0 + + return + {(field) => { + return
+ {field.state.value.map((section, i) => { + return + {(subField) => { + observedValues.push(subField.state.value) + return + }} + + })} + + +
+ }} +
+ } + + const { getByText, findByLabelText } = render() + + await user.click(getByText('Add section')) + await user.click(getByText('Add section')) + + await findByLabelText('Title for section id-1') + await findByLabelText('Title for section id-2') + + observedValues.length = 0 + await user.click(getByText('Remove first section')) + + // The surviving item (previously `sections[1]`) shifts to `sections[0]`. + // Its value must remain "Section 2" and never render as `undefined`. + const survivingInput = await findByLabelText('Title for section id-2') + expect((survivingInput as HTMLInputElement).value).toBe('Section 2') + expect(observedValues).not.toContain(undefined) + }, + ) + + it('should handle sync linked fields', async () => { + const fn = vi.fn() + function Comp() { + const form = useForm({ + defaultValues: { + password: '', + confirm_password: '', + }, + onSubmit: ({ value }) => fn(value), + }) + + return
+ + {(field) => { + return
+ +
+ }} +
+ { + if (value !== fieldApi.form.getFieldValue('password')) { + return 'Passwords do not match' + } + return undefined + }, + }} + > + {(field) => { + return
+ + {field.state.meta.errors.map((err) => { + return
{err}
+ })} +
+ }} +
+
+ } + + const { findByLabelText, queryByText, findByText } = render() + + const passwordInput = await findByLabelText('Password') + const confirmPasswordInput = await findByLabelText('Confirm Password') + await user.type(passwordInput, 'password') + await user.type(confirmPasswordInput, 'password') + expect(queryByText('Passwords do not match')).not.toBeInTheDocument() + await user.type(confirmPasswordInput, '1') + expect(await findByText('Passwords do not match')).toBeInTheDocument() + }) + + it('should validate async on submit without debounce', async () => { + type Person = { + firstName: string; + lastName: string; + } + const mockFn = vi.fn() + const error = 'Please enter a different value' + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + } as Person, + validators: { + onChangeAsyncDebounceMs: 1000000, + onChangeAsync: async () => { + mockFn() + await sleep(10) + return error + }, + }, + }) + const errors = useSelector(form.store, (s) => s.errors) + + return <> +
+ field.handleChange(e.currentTarget.value)} + /> +

{errors}

+
} + /> + + + } + + const { getByRole, getByText } = render() + await user.click(getByRole('button', { name: 'Submit' })) + + expect(mockFn).toHaveBeenCalledTimes(1) + await waitFor(() => getByText(error)) + expect(getByText(error)).toBeInTheDocument() + }) + + it( + 'should validate allow pushvalue to implicitly set a default value', + async () => { + type Person = { + people: Array; + } + + function Comp() { + const form = useForm({ + defaultValues: { + people: [], + } as Person, + }) + + return + {(field) => { + return
+
{JSON.stringify(field.state.value)}
+ {field.state.value.map((_, i) => { + return + {(subField) => { + return
+ +
+ }} +
+ })} + +
+ }} +
+ } + + const { getByText, queryByText } = render() + expect(getByText('[]')).toBeInTheDocument() + await user.click(getByText('Add person')) + expect(getByText(`[""]`)).toBeInTheDocument() + }, + ) + + it( + 'should validate allow pushvalue to implicitly set a pushed default value', + async () => { + type Person = { + people: Array; + } + + function Comp() { + const form = useForm({ + defaultValues: { + people: [], + } as Person, + }) + + return + {(field) => { + return
+
{JSON.stringify(field.state.value)}
+ {field.state.value.map((_, i) => { + return + {(subField) => { + return
+ +
+ }} +
+ })} + +
+ }} +
+ } + + const { getByText, queryByText } = render() + expect(getByText('[]')).toBeInTheDocument() + await user.click(getByText('Add person')) + expect(getByText(`["Test"]`)).toBeInTheDocument() + }, + ) + + it('should handle removing element from array', async () => { + type Person = { + name: string; + id: number; + } + + const fakePeople = { + jack: { + id: 5, + name: 'Jack', + }, + molly: { + id: 6, + name: 'Molly', + }, + george: { + id: 7, + name: 'George', + }, + } satisfies Record + + function Comp() { + const form = useForm({ + defaultValues: { + people: [fakePeople.jack, fakePeople.molly, fakePeople.george], + }, + }) + + return + {(field) => { + return
+
{field.state.value.map((item, i) => { + return + {(subField) => { + return
+ +
+ }} +
+ })}
+ +
+ }} +
+ } + + const { getByText, queryByText, getByTestId } = render() + + let exisingPeople: Person[] = [ + fakePeople.jack, + fakePeople.molly, + fakePeople.george, + ] + exisingPeople.forEach( + (person) => expect(getByText(person.name)).toBeInTheDocument(), + ) + const container = getByTestId('container') + expect(within(container).getAllByRole('textbox')).toHaveLength(3) + + await user.click(getByText('Remove person')) + + expect(within(container).getAllByRole('textbox')).toHaveLength(2) + exisingPeople = [fakePeople.jack, fakePeople.george] + exisingPeople.forEach( + (person) => expect(getByText(person.name)).toBeInTheDocument(), + ) + expect(queryByText(fakePeople.molly.name)).not.toBeInTheDocument() + }) + + it('should not rerender unrelated fields', async () => { + const renderCount = { + field1: 0, + field2: 0, + } + + function Comp() { + const form = useForm({ + defaultValues: { + field1: '', + field2: '', + }, + }) + + return <> + + {(field) => { + renderCount.field1++ + return field.handleChange(e.currentTarget.value)} + /> + }} + + + {(field) => { + renderCount.field2++ + return field.handleChange(e.currentTarget.value)} + /> + }} + + + } + + const { getByTestId } = render() + + const field1InitialRender = renderCount.field1 + const field2InitialRender = renderCount.field2 + + await user.type(getByTestId('field1'), 'test') + + // field1 should have rerendered + expect(renderCount.field1).toBeGreaterThan(field1InitialRender) + // field2 should not have rerendered + expect(renderCount.field2).toBe(field2InitialRender) + }) + + it( + 'should not rerender array field when child field value changes', + async () => { + // Test for https://github.com/TanStack/form/issues/1925 + // Array fields should only re-render when the array length changes, + // not when a property on an array element is mutated + const renderCount = { + arrayField: 0, + childField: 0, + } + + function Comp() { + const form = useForm({ + defaultValues: { + people: [{ name: 'John' }, { name: 'Jane' }], + }, + }) + + return + {(arrayField) => { + renderCount.arrayField++ + return
+ {arrayField.state.value.map( + (_, i) => + {(field) => { + if (i === 0) renderCount.childField++ + return field.handleChange(e.currentTarget.value)} + /> + }} + , + )} + +
+ }} +
+ } + + const { getByTestId } = render() + + const arrayFieldInitialRender = renderCount.arrayField + const childFieldInitialRender = renderCount.childField + + // Type into the first child field + await user.type(getByTestId('person-0'), 'ny') + + // Child field should have rerendered + expect(renderCount.childField).toBeGreaterThan(childFieldInitialRender) + // Array field should NOT have rerendered (this was the bug in #1925) + expect(renderCount.arrayField).toBe(arrayFieldInitialRender) + + // Verify typing still works + expect(getByTestId('person-0')).toHaveValue('Johnny') + + // Now add a new item - this SHOULD trigger array field re-render + const arrayFieldBeforeAdd = renderCount.arrayField + await user.click(getByTestId('add-person')) + + // Array field should have rerendered when length changes + expect(renderCount.arrayField).toBeGreaterThan(arrayFieldBeforeAdd) + }, + ) + + it( + 'should rerender array field on swapFieldValues even when length is unchanged', + async () => { + // swapFieldValues does not change array length but must still notify the + // parent array field so subscribers see the new order. + const renderCount = { arrayField: 0 } + + function Comp() { + const form = useForm({ + defaultValues: { + people: [{ name: 'John' }, { name: 'Jane' }], + }, + }) + + return + {(arrayField) => { + renderCount.arrayField++ + return
+
    {arrayField.state.value.map( + (person, i) => +
  1. {person.name}
  2. , + )}
+ +
+ }} +
+ } + + const { getByTestId } = render() + + expect(getByTestId('item-0')).toHaveTextContent('John') + expect(getByTestId('item-1')).toHaveTextContent('Jane') + + const before = renderCount.arrayField + await user.click(getByTestId('swap')) + + expect(renderCount.arrayField).toBeGreaterThan(before) + expect(getByTestId('item-0')).toHaveTextContent('Jane') + expect(getByTestId('item-1')).toHaveTextContent('John') + }, + ) + + it( + 'should rerender array field when async defaultValues resolve', + async () => { + // Regression test for https://github.com/TanStack/form/issues/2178 + // When async defaultValues arrive after initial render, array fields in + // mode="array" must re-render because _arrayVersion is used as the + // reactivity signal (not value length). + type Person = { name: string } + type FormData = { people: Person[] } + + function Comp({ defaultValues }: { defaultValues?: FormData }) { + const form = useForm({ defaultValues }) + + return + {(field) => { + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + const val = field.state.value ?? [] + return
    {val.map( + (person, i) => +
  1. {person.name}
  2. , + )}
+ }} +
+ } + + const { getByTestId, rerender } = render() + expect(getByTestId('list').children).toHaveLength(0) + + rerender() + await waitFor(() => expect(getByTestId('list').children).toHaveLength(1)) + expect(getByTestId('item-0')).toHaveTextContent('Alice') + }, + ) + + it( + 'should handle defaultValue without setstate-in-render error', + async () => { + // Spy on console.error before rendering + const consoleErrorSpy = vi.spyOn(console, 'error') + + function Comp() { + const form = useForm({ + defaultValues: { + fieldOne: '', + fieldTwo: '', + }, + }) + + const fieldOne = useSelector( + form.store, + (state) => state.values.fieldOne, + ) + + return
+ { + return field.handleChange(e.currentTarget.value)} + /> + }} + /> + {fieldOne && + null} + />} + + } + + const { getByTestId } = render() + await user.type(getByTestId('fieldOne'), 'John') + + // Should not log an error + expect(consoleErrorSpy).not.toHaveBeenCalled() + }, + ) + + it('should allow field-level defaultValue', async () => { + function Comp() { + const form = useForm({ + defaultValues: { + name: undefined as string | undefined, + }, + }) + + return + {(field) => { + expect(field.state.value).toEqual('a') + return {field.state.value} + }} + + } + + const { queryByText } = render() + + expect(queryByText('a')).toBeInTheDocument() + expect(queryByText('never')).not.toBeInTheDocument() + }) + + it('should handle deeply nested values', async () => { + function Comp() { + const form = useForm({ + defaultValues: { + name: { first: 'Test', last: 'User' }, + }, + }) + + return

{field.state.value}

} + /> + } + + const { queryByText, findByText } = render() + + expect(queryByText('Test')).not.toBeInTheDocument() + expect(await findByText('User')).toBeInTheDocument() + }) +}) diff --git a/packages/octane-form/tests/useForm.test-d.tsx b/packages/octane-form/tests/useForm.test-d.tsx new file mode 100644 index 0000000000..edadd9e5af --- /dev/null +++ b/packages/octane-form/tests/useForm.test-d.tsx @@ -0,0 +1,257 @@ +import { describe, expectTypeOf, it } from 'vitest' +import { formOptions, useForm } from '../src/index' +import type { FormAsyncValidateOrFn, FormValidateOrFn } from '../src/index' +import type { OctaneFormExtendedApi } from '../src/useForm.tsrx' + +describe('useForm', () => { + it('should infer Subscribe selector results and reject incompatible callbacks', () => { + function Comp() { + const form = useForm({ defaultValues: { name: '', age: 0 } }) + + const invalidInferred = ( + state.values.age} + // @ts-expect-error Static children must not allow an incompatible render callback. + children={(age: string) => age} + /> + ) + const invalidExplicit = ( + + selector={(state) => state.values.age} + // @ts-expect-error Explicit selection types must also enforce the callback type. + children={(age: string) => age} + /> + ) + + return ( + <> + [state.values.name, state.values.age] as const} + > + {([name, age]) => { + expectTypeOf(name).toEqualTypeOf() + expectTypeOf(age).toEqualTypeOf() + // @ts-expect-error The selected age is a number. + age.toUpperCase() + return ( + + {name}: {age} + + ) + }} + + {invalidInferred} + {invalidExplicit} + + ) + } + }) + + it('should infer the whole form state when Subscribe has no selector', () => { + function Comp() { + const form = useForm({ defaultValues: { name: '', age: 0 } }) + + return ( + + {(state) => { + expectTypeOf(state).toEqualTypeOf() + return {state.values.name} + }} + + ) + } + }) + + it('should accept static Octane children in Subscribe', () => { + function Comp() { + const form = useForm({ defaultValues: { name: '' } }) + + return ( + <> + + Static child + + state.values.name}> + Static text + + {42} + {null} + + {[First, 'Second', false]} + + + ) + } + }) + + it('should infer Subscribe callbacks combined with static children', () => { + function Comp({ showAge }: { showAge: boolean }) { + const form = useForm({ defaultValues: { name: '', age: 0 } }) + + return ( + state.values.age}> + {showAge ? ( + (age) => { + expectTypeOf(age).toEqualTypeOf() + return {age} + } + ) : ( + Age hidden + )} + + ) + } + }) + + it('should type onSubmit properly', () => { + function Comp() { + const form = useForm({ + defaultValues: { + firstName: 'test', + age: 84, + // as const is required here + } as const, + onSubmit({ value }) { + expectTypeOf(value.age).toEqualTypeOf<84>() + }, + }) + } + }) + + it('should type a validator properly', () => { + function Comp() { + const form = useForm({ + defaultValues: { + firstName: 'test', + age: 84, + // as const is required here + } as const, + validators: { + onChange({ value }) { + expectTypeOf(value.age).toEqualTypeOf<84>() + return undefined + }, + }, + }) + } + }) + + it('should not have recursion problems and type register properly', () => { + const register = < + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta, + >( + f: OctaneFormExtendedApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + >, + ) => f + + function Comp() { + const form = useForm({ + defaultValues: { + name: '', + title: '', + }, + }) + + const x = register(form) + + return null + } + }) + + it('types should be properly inferred when using formOptions', () => { + type Person = { + firstName: string + lastName: string + } + + const formOpts = formOptions({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + const form = useForm(formOpts) + + expectTypeOf(form.state.values).toEqualTypeOf() + }) + + it('types should be properly inferred when passing args alongside formOptions', () => { + type Person = { + firstName: string + lastName: string + } + + const formOpts = formOptions({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + const form = useForm({ + ...formOpts, + onSubmitMeta: { + test: 'test', + }, + }) + + expectTypeOf(form.handleSubmit).toEqualTypeOf<{ + (): Promise + (submitMeta: { test: string }): Promise + }>() + }) + + it('types should be properly inferred when formOptions are being overridden', () => { + type Person = { + firstName: string + lastName: string + } + + type PersonWithAge = Person & { + age: number + } + + const formOpts = formOptions({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + const form = useForm({ + ...formOpts, + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + age: 10, + }, + }) + + expectTypeOf(form.state.values).toExtend() + }) +}) diff --git a/packages/octane-form/tests/useForm.test.tsrx b/packages/octane-form/tests/useForm.test.tsrx new file mode 100644 index 0000000000..110697d465 --- /dev/null +++ b/packages/octane-form/tests/useForm.test.tsrx @@ -0,0 +1,1161 @@ +import { describe, expect, it, vi } from 'vitest' +import { render, renderHook, waitFor } from '@octanejs/testing-library' +import { userEvent } from '@testing-library/user-event' +import { act, useCallback, useEffect, useReducer, useState } from 'octane' +import { FormApi, mergeForm, useForm, useSelector } from '../src' +import { sleep } from './utils' + +const user = userEvent.setup() + +describe('useForm', () => { + it('preserves field state', async () => { + type Person = { + firstName: string; + lastName: string; + } + + function Comp() { + const form = useForm({ + defaultValues: {} as Person, + }) + + return <> + { + return field.handleChange(e.currentTarget.value)} + /> + }} + /> + + } + + const { getByTestId, queryByText } = render() + const input = getByTestId('fieldinput') + expect(queryByText('FirstName')).not.toBeInTheDocument() + await user.type(input, 'FirstName') + expect(input).toHaveValue('FirstName') + }) + + it('should allow default values to be set', async () => { + type Person = { + firstName: string; + lastName: string; + } + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + } as Person, + }) + + return <> + { + return

{field.state.value}

+ }} + /> + + } + + const { findByText, queryByText } = render() + expect(await findByText('FirstName')).toBeInTheDocument() + expect(queryByText('LastName')).not.toBeInTheDocument() + }) + + it('should handle submitting properly', async () => { + function Comp() { + const [submittedData, setSubmittedData] = useState< + | { + firstName: string; + } + | null + >(null) + + const form = useForm({ + defaultValues: { + firstName: 'FirstName', + }, + onSubmit: ({ value }) => { + setSubmittedData(value) + }, + }) + + return <> + { + return field.handleChange(e.currentTarget.value)} + placeholder="First name" + /> + }} + /> + + {submittedData &&

Submitted data: {submittedData.firstName}

} + + } + + const { findByPlaceholderText, getByText } = render() + const input = await findByPlaceholderText('First name') + await user.clear(input) + await user.type(input, 'OtherName') + await user.click(getByText('Submit')) + await waitFor( + () => expect(getByText('Submitted data: OtherName')).toBeInTheDocument(), + ) + }) + + it('should run on form mount', async () => { + function Comp() { + const [formMounted, setFormMounted] = useState(false) + const [mountForm, setMountForm] = useState(false) + + const form = useForm({ + defaultValues: { + firstName: 'FirstName', + }, + validators: { + onMount: () => { + setFormMounted(true) + return undefined + }, + }, + }) + + return <> + {mountForm + ? <> +

+ {formMounted ? 'Form mounted' : 'Not mounted'} +

+ + : } + + } + + const { getByText } = render() + await user.click(getByText('Mount form')) + await waitFor(() => expect(getByText('Form mounted')).toBeInTheDocument()) + }) + + it('should validate async on change for the form', async () => { + type Person = { + firstName: string; + lastName: string; + } + const error = 'Please enter a different value' + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + } as Person, + validators: { + onChange() { + return error + }, + }, + }) + const onChangeError = useSelector(form.store, (s) => s.errorMap.onChange) + return <> + + field.handleChange(e.currentTarget.value)} + />} + /> +

+ {onChangeError?.toString()} +

+ + } + + const { getByTestId, getByText, queryByText } = render() + const input = getByTestId('fieldinput') + expect(queryByText(error)).not.toBeInTheDocument() + await user.type(input, 'other') + await waitFor(() => getByText(error)) + expect(getByText(error)).toBeInTheDocument() + }) + + it('should not validate on change if isTouched is false', async () => { + type Person = { + firstName: string; + lastName: string; + } + const error = 'Please enter a different value' + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + } as Person, + validators: { + onChange: ({ value }) => (value.firstName === 'other' + ? error + : undefined), + }, + }) + + const errors = useSelector(form.store, (s) => s.errors) + return <> +
+ field.setValue(e.currentTarget.value, { + dontUpdateMeta: true, + })} + /> +

{errors}

+
} + /> + + } + + const { getByTestId, queryByText } = render() + const input = getByTestId('fieldinput') + await user.type(input, 'other') + expect(queryByText(error)).not.toBeInTheDocument() + }) + + it('should validate on change if isTouched is true', async () => { + type Person = { + firstName: string; + lastName: string; + } + const error = 'Please enter a different value' + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + } as Person, + validators: { + onChange: ({ value }) => (value.firstName === 'other' + ? error + : undefined), + }, + }) + const errors = useSelector(form.store, (s) => s.errorMap) + return <> +
+ field.handleChange(e.currentTarget.value)} + /> +

+ {errors.onChange?.toString()} +

+
} + /> + + } + + const { getByTestId, getByText, queryByText } = render() + const input = getByTestId('fieldinput') + expect(queryByText(error)).not.toBeInTheDocument() + await user.type(input, 'other') + expect(getByText(error)).toBeInTheDocument() + }) + + it('should validate on change and on blur', async () => { + const onChangeError = 'Please enter a different value (onChangeError)' + const onBlurError = 'Please enter a different value (onBlurError)' + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + }, + validators: { + onChange: ({ value }) => { + if (value.firstName === 'other') return onChangeError + return undefined + }, + onBlur: ({ value }) => { + if (value.firstName === 'other') return onBlurError + return undefined + }, + }, + }) + + const errors = useSelector(form.store, (s) => s.errorMap) + return <> +
+ field.handleChange(e.currentTarget.value)} + /> +

+ {errors.onChange?.toString()} +

+

+ {errors.onBlur?.toString()} +

+
} + /> + + } + const { getByTestId, getByText, queryByText } = render() + const input = getByTestId('fieldinput') + expect(queryByText(onChangeError)).not.toBeInTheDocument() + expect(queryByText(onBlurError)).not.toBeInTheDocument() + await user.type(input, 'other') + expect(getByText(onChangeError)).toBeInTheDocument() + await user.click(document.body) + expect(queryByText(onBlurError)).toBeInTheDocument() + }) + + it('should set field errors from the field\'s validators', async () => { + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + }, + validators: { + onChange: ({ value }) => { + if (value.firstName === 'other') return { + form: 'Something went wrong', + fields: { + firstName: 'Please enter a different value (onChangeError)', + }, + } + return undefined + }, + onBlur: ({ value }) => { + if ( + value.firstName === 'other' + ) return 'Please enter a different value (onBlurError)' + return undefined + }, + }, + }) + + const errors = useSelector(form.store, (s) => s.errorMap) + return <> +
+ field.handleChange(e.currentTarget.value)} + /> +

{field.state.meta.errorMap.onChange}

+
} + /> +

+ {errors.onChange?.toString()} +

+

+ {errors.onBlur?.toString()} +

+ + } + const { getByTestId } = render() + + expect(getByTestId('form-onchange')).toHaveTextContent('') + + const input = getByTestId('fieldinput') + + await user.type(input, 'other') + expect(getByTestId('form-onchange')).toHaveTextContent( + 'Something went wrong', + ) + expect(getByTestId('field-onchange')).toHaveTextContent( + 'Please enter a different value (onChangeError)', + ) + + await user.click(document.body) + expect(getByTestId('form-onblur')).toHaveTextContent( + 'Please enter a different value (onBlurError)', + ) + }) + + it('should validate async on change', async () => { + type Person = { + firstName: string; + lastName: string; + } + const error = 'Please enter a different value' + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + } as Person, + validators: { + onChangeAsync: async () => { + await sleep(10) + return error + }, + }, + }) + const errors = useSelector(form.store, (s) => s.errorMap) + return <> +
+ field.handleChange(e.currentTarget.value)} + /> +

+ {errors.onChange?.toString()} +

+
} + /> + + } + + const { getByTestId, getByText, queryByText } = render() + const input = getByTestId('fieldinput') + expect(queryByText(error)).not.toBeInTheDocument() + await user.type(input, 'other') + await waitFor(() => getByText(error)) + expect(getByText(error)).toBeInTheDocument() + }) + + it( + 'should set field errors from the form\'s onChangeAsync validator', + async () => { + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + }, + validators: { + onChangeAsync: async ({ value }) => { + await sleep(10) + if (value.firstName === 'other') { + return { + form: 'Invalid form values', + fields: { + firstName: 'First name cannot be "other"', + }, + } + } + return null + }, + }, + }) + + const errors = useSelector(form.store, (s) => s.errorMap) + + return <> +
+ field.handleChange(e.currentTarget.value)} + /> +

{field.state.meta.errorMap.onChange}

+
} + /> +

+ {errors.onChange?.toString()} +

+ + } + + const { getByTestId } = render() + const input = getByTestId('fieldinput') + const firstNameErrorElement = getByTestId('field-error') + const formErrorElement = getByTestId('form-error') + + expect(firstNameErrorElement).toBeEmptyDOMElement() + expect(formErrorElement).toBeEmptyDOMElement() + + await user.type(input, 'other') + + await waitFor(() => { + expect(firstNameErrorElement).not.toBeEmptyDOMElement() + }) + expect(firstNameErrorElement).toHaveTextContent( + 'First name cannot be "other"', + ) + expect(formErrorElement).toHaveTextContent('Invalid form values') + }, + ) + + it('should validate async on change and async on blur', async () => { + type Person = { + firstName: string; + lastName: string; + } + const onChangeError = 'Please enter a different value (onChangeError)' + const onBlurError = 'Please enter a different value (onBlurError)' + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + } as Person, + validators: { + onChangeAsync: async () => { + await sleep(10) + return onChangeError + }, + onBlurAsync: async () => { + await sleep(10) + return onBlurError + }, + }, + }) + const errors = useSelector(form.store, (s) => s.errorMap) + + return <> +
+ field.handleChange(e.currentTarget.value)} + /> +

+ {errors.onChange?.toString()} +

+

+ {errors.onBlur?.toString()} +

+
} + /> + + } + + const { getByTestId, getByText, queryByText } = render() + const input = getByTestId('fieldinput') + + expect(queryByText(onChangeError)).not.toBeInTheDocument() + expect(queryByText(onBlurError)).not.toBeInTheDocument() + await user.type(input, 'other') + await waitFor(() => getByText(onChangeError)) + expect(getByText(onChangeError)).toBeInTheDocument() + await user.click(document.body) + await waitFor(() => getByText(onBlurError)) + expect(getByText(onBlurError)).toBeInTheDocument() + }) + + it('should validate async on change with debounce', async () => { + type Person = { + firstName: string; + lastName: string; + } + const mockFn = vi.fn() + const error = 'Please enter a different value' + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + } as Person, + validators: { + onChangeAsyncDebounceMs: 100, + onChangeAsync: async () => { + mockFn() + await sleep(10) + return error + }, + }, + }) + const errors = useSelector(form.store, (s) => s.errors) + + return <> +
+ field.handleChange(e.currentTarget.value)} + /> +

{errors}

+
} + /> + + } + + const { getByTestId, getByText } = render() + const input = getByTestId('fieldinput') + await user.type(input, 'other') + // mockFn will have been called 5 times without onChangeAsyncDebounceMs + expect(mockFn).toHaveBeenCalledTimes(0) + await waitFor(() => getByText(error)) + expect(getByText(error)).toBeInTheDocument() + expect(mockFn).toHaveBeenCalledTimes(1) + }) + + it( + 'should set errors on the fields from the form\'s onChange validator', + async () => { + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + }, + validators: { + onChange: ({ value }) => { + if (value.firstName === 'Tom') { + return { + form: 'Something went wrong', + fields: { firstName: 'Please enter a different value' }, + } + } + return null + }, + }, + }) + + const onChangeError = useSelector( + form.store, + (s) => s.errorMap.onChange, + ) + + return <> + <> + field.handleChange(e.currentTarget.value)} + /> + +

{field.state.meta.errors.join( + '', + )}

+ } + /> +

+ {onChangeError?.toString()} +

+ + } + + const { getByTestId, queryByText } = render() + const input = getByTestId('fieldinput') + const fieldError = getByTestId('field-error') + const formError = getByTestId('form-error') + + expect( + queryByText('Please enter a different value'), + ).not.toBeInTheDocument() + expect(queryByText('Something went wrong')).not.toBeInTheDocument() + + await user.type(input, 'Tom') + await waitFor( + () => expect(fieldError.textContent).toBe( + 'Please enter a different value', + ), + ) + await waitFor( + () => expect(formError.textContent).toBe('Something went wrong'), + ) + }, + ) + + it( + 'should not cause infinite re-renders when listening to state.errors', + () => { + const fn = vi.fn() + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + }, + onSubmit: async ({ value }) => { + // Do something with form data + console.log(value) + }, + }) + + const { errors } = useSelector( + form.store, + (state) => ({ + errors: state.errors, + }), + ) + + useEffect(() => { + fn(errors) + }, [errors]) + + return null + } + + render() + + expect(fn).toHaveBeenCalledTimes(1) + }, + ) + + it('should not cause infinite re-renders when listening to state', () => { + const fn = vi.fn() + + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + }, + onSubmit: async ({ value }) => { + // Do something with form data + console.log(value) + }, + }) + + const { values } = useSelector(form.store, (v) => v) + + useEffect(() => { + fn(values) + }, [values]) + + return null + } + + render() + + expect(fn).toHaveBeenCalledTimes(1) + }) + + it('form should reset default value when resetting in onSubmit', async () => { + function Comp() { + const form = useForm({ + defaultValues: { + name: '', + }, + onSubmit: ({ value }) => { + expect(value).toEqual({ name: 'another-test' }) + + form.reset(value) + }, + }) + + return
{ + e.preventDefault() + e.stopPropagation() + form.handleSubmit() + }} + > + + field.handleChange(e.currentTarget.value)} + />} + /> + + + + + + } + + const { getByTestId } = render() + const input = getByTestId('fieldinput') + const submit = getByTestId('submit') + const reset = getByTestId('reset') + + await user.type(input, 'test') + await waitFor(() => expect(input).toHaveValue('test')) + + await user.click(reset) + await waitFor(() => expect(input).toHaveValue('')) + + await user.type(input, 'another-test') + await user.click(submit) + await waitFor(() => expect(input).toHaveValue('another-test')) + }) + + it('should accept formId and return it', async () => { + function Comp() { + const form = useForm({ + formId: 'test', + }) + + return <> +
{ + e.preventDefault() + form.handleSubmit() + }} + >
+ + state.submissionAttempts} + children={(submissionAttempts) => + {submissionAttempts}} + /> + + + + } + + const { getByTestId } = render() + const target = getByTestId('formId-target') + const result = getByTestId('formId-result') + + expect(target).toHaveAttribute('form', 'test') + expect(target).toHaveTextContent('test') + await user.click(target) + expect(result).toHaveTextContent('1') + }) + + it('should allow custom component keys for arrays', async () => { + function Comp() { + const form = useForm({ + defaultValues: { + foo: [ + { name: 'nameA', id: 'a' }, + { name: 'nameB', id: 'b' }, + { name: 'nameC', id: 'c' }, + ], + }, + }) + + return <> + + {(arrayField) => arrayField.state.value.map( + (_, i) => + {(field) => { + expect(field.name).toBe(`foo[${i}].name`) + expect(field.state.value).not.toBeUndefined() + return null + }} + , + )} + + + + } + + const { getByTestId } = render() + + const target = getByTestId('removeField') + await user.click(target) + }) + + it('should not error when using deleteField in edge cases', async () => { + function Comp() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + }, + validators: { + onChange: ({ value }) => { + const fields: Record = {} + + if (value.firstName.length === 0) { + fields.firstName = 'Last Name is required' + } + + return { fields } + }, + }, + }) + + return
{ + e.preventDefault() + form.handleSubmit() + }} + > +

Personal Information

+ + field.handleChange(e.currentTarget.value)} + />} + /> + + field.handleChange(e.currentTarget.value)} + />} + /> + + + } + + const { getByTestId } = render() + const removeButton = getByTestId('remove') + const input = getByTestId('input') + + await user.type(input, 'a') + await user.click(removeButton) + }) + + it( + 'should handle stable transforms to update the base form on first render', + async () => { + let renders = 0 + function Comp() { + const form = useForm({ + defaultValues: { + test: 'Hello', + }, + transform: useCallback((baseForm: unknown) => { + return mergeForm(baseForm as never, { + values: { + test: 'What', + }, + }) + }, []), + }) + + renders++ + + return

+ {field.state.value} + {' '} + {renders} +

} + /> + } + + const { getByText } = render() + getByText('What 1') + }, + ) + + it( + 'should handle stable transforms to update the base form on subsequent renders', + async () => { + function Comp() { + const [renders, setRenders] = useState(0) + const form = useForm({ + defaultValues: { + test: 'Hello', + }, + transform: useCallback((baseForm: unknown) => { + return mergeForm(baseForm as never, { + values: { + test: renders === 0 ? 'First' : 'Another', + }, + }) + }, [renders]), + }) + + return
+

{field.state.value}

} + /> + +
+ } + + const { findByText, getByText } = render() + await findByText('First') + await user.click(getByText('Rerender')) + await findByText('Another') + }, + ) + + it( + 'should render Subscribe without selector (default identity)', + async () => { + function Comp() { + const form = useForm({ + defaultValues: { + name: 'test', + }, + }) + + return <> + + field.handleChange(e.currentTarget.value)} + />} + /> + + + {state.values.name}} + /> + + } + + const { getByTestId } = render() + const input = getByTestId('input') + const stateValue = getByTestId('state-value') + + expect(stateValue).toHaveTextContent('test') + + await user.clear(input) + await user.type(input, 'updated') + await waitFor(() => expect(stateValue).toHaveTextContent('updated')) + }, + ) + + it( + 'mounts a replacement form when an explicit formId is removed', + async () => { + const mountedIds: string[] = [] + + function Comp() { + const [formId, setFormId] = useState('first') + const [, forceRender] = useReducer((count: number) => count + 1, 0) + const form = useForm({ + formId, + listeners: { + onMount: () => mountedIds.push(formId ?? 'fallback'), + }, + }) + + return <> + {form.formId} + + + + } + + const { getByTestId } = render() + const id = getByTestId('dynamic-form-id') + expect(id).toHaveTextContent('first') + expect(mountedIds).toEqual(['first']) + + await user.click(getByTestId('clear-form-id')) + await waitFor(() => expect(mountedIds).toEqual(['first', 'fallback'])) + expect(id).not.toHaveTextContent('first') + const fallbackId = id.textContent + expect(fallbackId).not.toBe('') + + await user.click(getByTestId('rerender-form')) + expect(id).toHaveTextContent(fallbackId!) + expect(mountedIds).toEqual(['first', 'fallback']) + }, + ) + + it('keeps multiple subscriptions in the same component independent', () => { + const form = new FormApi({ + defaultValues: { firstName: 'Ada', lastName: 'Lovelace' }, + }) + const { result } = renderHook( + () => ({ + firstName: useSelector(form.store, (state) => state.values.firstName), + lastName: useSelector(form.store, (state) => state.values.lastName), + }), + ) + + expect(result.current).toEqual({ firstName: 'Ada', lastName: 'Lovelace' }) + act(() => form.setFieldValue('firstName', 'Grace')) + expect(result.current).toEqual({ firstName: 'Grace', lastName: 'Lovelace' }) + act(() => form.setFieldValue('lastName', 'Hopper')) + expect(result.current).toEqual({ firstName: 'Grace', lastName: 'Hopper' }) + }) +}) diff --git a/packages/octane-form/tests/useFormGroup.test-d.tsx b/packages/octane-form/tests/useFormGroup.test-d.tsx new file mode 100644 index 0000000000..765ca13784 --- /dev/null +++ b/packages/octane-form/tests/useFormGroup.test-d.tsx @@ -0,0 +1,389 @@ +import { describe, expectTypeOf, it } from 'vitest' +import { useForm, useFormGroup } from '../src/index' +import type { FormGroupApi } from '../src/index' + +describe('useFormGroup form-like surface', () => { + it('should type state.value based on the selected field', () => { + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test' }, + step2: { name: 'test2' }, + }, + }) + + const group = useFormGroup({ + form, + name: 'step1', + onGroupSubmit: () => {}, + }) + + expectTypeOf(group.state.value).toEqualTypeOf<{ name: string }>() + expectTypeOf(group.name).toEqualTypeOf<'step1'>() + } + }) + + it('should type onGroupSubmit value and meta', () => { + type SubmitMeta = { source: string } + + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test' }, + step2: { name: 'test2' }, + }, + }) + + const group = useFormGroup({ + form, + name: 'step1', + onSubmitMeta: {} as SubmitMeta, + onGroupSubmit: ({ value, meta }) => { + expectTypeOf(value).toEqualTypeOf<{ name: string }>() + expectTypeOf(meta).toEqualTypeOf() + }, + }) + } + }) + + it('should type onGroupSubmitInvalid value and meta', () => { + type SubmitMeta = { source: string } + + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test' }, + step2: { name: 'test2' }, + }, + }) + + const group = useFormGroup({ + form, + name: 'step1', + onSubmitMeta: {} as SubmitMeta, + onGroupSubmit: () => {}, + onGroupSubmitInvalid: ({ value, meta }) => { + expectTypeOf(value).toEqualTypeOf<{ name: string }>() + expectTypeOf(meta).toEqualTypeOf() + }, + }) + } + }) + + it('should type validators with the scoped value', () => { + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test', age: 10 }, + step2: { name: 'test2' }, + }, + }) + + const group = useFormGroup({ + form, + name: 'step1', + onGroupSubmit: () => {}, + validators: { + onChange: ({ value }) => { + expectTypeOf(value).toEqualTypeOf<{ name: string; age: number }>() + return undefined + }, + onSubmit: ({ value }) => { + expectTypeOf(value).toEqualTypeOf<{ name: string; age: number }>() + return undefined + }, + }, + }) + } + }) + + it('should type listeners with the scoped value', () => { + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test' }, + step2: { name: 'test2' }, + }, + }) + + const group = useFormGroup({ + form, + name: 'step1', + onGroupSubmit: () => {}, + listeners: { + onChange: ({ value }) => { + expectTypeOf(value).toEqualTypeOf<{ name: string }>() + }, + }, + }) + } + }) + + it('should type handleSubmit return as Promise', () => { + function Comp() { + const form = useForm({ + defaultValues: { step1: { name: 'test' } }, + }) + + const group = useFormGroup({ + form, + name: 'step1', + onGroupSubmit: () => {}, + }) + + expectTypeOf(group.handleSubmit()).toEqualTypeOf>() + } + }) + + it('should type handleSubmit overload when onSubmitMeta is provided', () => { + type SubmitMeta = { source: string } + + function Comp() { + const form = useForm({ + defaultValues: { step1: { name: 'test' } }, + }) + + const group = useFormGroup({ + form, + name: 'step1', + onSubmitMeta: {} as SubmitMeta, + onGroupSubmit: () => {}, + }) + + expectTypeOf(group.handleSubmit).toEqualTypeOf<{ + (): Promise + (submitMeta: SubmitMeta): Promise + }>() + } + }) + + it('should type setValue updater', () => { + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test' }, + step2: { name: 'test2' }, + }, + }) + + const group = useFormGroup({ + form, + name: 'step1', + onGroupSubmit: () => {}, + }) + + group.setValue({ name: 'new name' }) + group.setValue((prev) => { + expectTypeOf(prev).toEqualTypeOf<{ name: string }>() + return { name: 'updated' } + }) + } + }) + + it('should infer the FormGroupApi instance type for useFormGroup', () => { + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test' }, + step2: { name: 'test2' }, + }, + }) + + const group = useFormGroup({ + form, + name: 'step1', + onGroupSubmit: () => {}, + }) + + expectTypeOf(group).toMatchTypeOf< + FormGroupApi< + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any, + any + > + >() + } + }) +}) + +describe('useFormGroup field-like meta surface', () => { + it('should type meta booleans', () => { + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test' }, + step2: { name: 'test2' }, + }, + }) + + const group = useFormGroup({ + form, + name: 'step1', + onGroupSubmit: () => {}, + }) + + expectTypeOf(group.state.meta.isTouched).toEqualTypeOf() + expectTypeOf(group.state.meta.isBlurred).toEqualTypeOf() + expectTypeOf(group.state.meta.isDirty).toEqualTypeOf() + expectTypeOf(group.state.meta.isValidating).toEqualTypeOf() + } + }) + + it('should type errorMap entries based on validator return types', () => { + function Comp() { + const form = useForm({ + defaultValues: { step1: { name: 'test' } }, + }) + + const group = useFormGroup({ + form, + name: 'step1', + onGroupSubmit: () => {}, + validators: { + onChange: () => 'sync-change' as const, + onChangeAsync: async () => 'async-change' as const, + onBlur: () => 'sync-blur' as const, + onBlurAsync: async () => 'async-blur' as const, + onSubmit: () => 'sync-submit' as const, + onSubmitAsync: async () => 'async-submit' as const, + }, + }) + + expectTypeOf(group.state.meta.errorMap.onChange).toEqualTypeOf< + 'sync-change' | 'async-change' | undefined + >() + expectTypeOf(group.state.meta.errorMap.onBlur).toEqualTypeOf< + 'sync-blur' | 'async-blur' | undefined + >() + expectTypeOf(group.state.meta.errorMap.onSubmit).toEqualTypeOf< + 'sync-submit' | 'async-submit' | undefined + >() + } + }) + + it('should type errors array from group validators', () => { + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test' }, + step2: { name: 'test2' }, + }, + }) + + const group = useFormGroup({ + form, + name: 'step1', + onGroupSubmit: () => {}, + validators: { + onChange: () => 'change-error' as const, + }, + }) + + expectTypeOf(group.state.meta.errors).toEqualTypeOf< + Array<'change-error' | undefined> + >() + } + }) +}) + +describe('form.FormGroup component surface', () => { + it('should type the children render prop with the scoped value', () => { + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test' }, + step2: { name: 'test2' }, + }, + }) + + return ( + {}}> + {(group) => { + expectTypeOf(group.state.value).toEqualTypeOf<{ name: string }>() + expectTypeOf(group.name).toEqualTypeOf<'step1'>() + return null + }} + + ) + } + }) + + it('should type the children render prop with onSubmitMeta', () => { + type SubmitMeta = { source: string } + + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test' }, + step2: { name: 'test2' }, + }, + }) + + return ( + { + expectTypeOf(value).toEqualTypeOf<{ name: string }>() + expectTypeOf(meta).toEqualTypeOf() + }} + > + {(group) => { + expectTypeOf(group.handleSubmit).toEqualTypeOf<{ + (): Promise + (submitMeta: SubmitMeta): Promise + }>() + return null + }} + + ) + } + }) + + it('should type validators on the FormGroup component', () => { + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test', age: 10 }, + step2: { name: 'test2' }, + }, + }) + + return ( + { + expectTypeOf(value).toEqualTypeOf<{ name: string; age: number }>() + return undefined + }, + }} + onGroupSubmit={() => {}} + > + {() => null} + + ) + } + }) +}) diff --git a/packages/octane-form/tests/useFormGroup.test.tsrx b/packages/octane-form/tests/useFormGroup.test.tsrx new file mode 100644 index 0000000000..b856ac8e7b --- /dev/null +++ b/packages/octane-form/tests/useFormGroup.test.tsrx @@ -0,0 +1,355 @@ +import { describe, expect, it, vi } from 'vitest' +import { render, waitFor } from '@octanejs/testing-library' +import { userEvent } from '@testing-library/user-event' +import { useState } from 'octane' +import { useForm } from '../src' + +const user = userEvent.setup() + +describe('form.FormGroup', () => { + it( + 'should call onGroupSubmit but not the form onSubmit when submitting the group', + async () => { + const onSubmit = vi.fn() + const onGroupSubmit = vi.fn() + + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test' }, + step2: { name: 'test2' }, + }, + onSubmit, + }) + + return + {(group) =>
{ + e.preventDefault() + e.stopPropagation() + group.handleSubmit() + }} + > + + field.handleChange(e.currentTarget.value)} + />} + /> + + } +
+ } + + const { getByTestId } = render() + await user.click(getByTestId('submit-group')) + + await waitFor(() => expect(onGroupSubmit).toHaveBeenCalledTimes(1)) + expect(onSubmit).not.toHaveBeenCalled() + }, + ) + + it('should expose group state value reactively', async () => { + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'initial' }, + step2: { name: 'other' }, + }, + }) + + return + {(group) => <> + + field.handleChange(e.currentTarget.value)} + />} + /> +
{JSON.stringify(
+            group.state.value,
+          )}
+ } +
+ } + + const { getByTestId } = render() + expect(getByTestId('group-value').textContent).toBe('{"name":"initial"}') + + await user.clear(getByTestId('step1-name')) + await user.type(getByTestId('step1-name'), 'updated') + + await waitFor( + () => expect(getByTestId('group-value').textContent).toBe( + '{"name":"updated"}', + ), + ) + }) + + it( + 'should call onGroupSubmitInvalid when group-level validation fails', + async () => { + const onSubmit = vi.fn() + const onGroupSubmit = vi.fn() + const onGroupSubmitInvalid = vi.fn() + + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: '' }, + step2: { name: 'test2' }, + }, + onSubmit, + }) + + return (!value.name + ? 'Name is required' + : undefined), + }} + onGroupSubmit={onGroupSubmit} + onGroupSubmitInvalid={onGroupSubmitInvalid} + > + {(group) =>
{ + e.preventDefault() + e.stopPropagation() + group.handleSubmit() + }} + > + + field.handleChange(e.currentTarget.value)} + />} + /> + +
{String(
+              group.state.meta.errorMap.onSubmit ?? '',
+            )}
+ } +
+ } + + const { getByTestId } = render() + await user.click(getByTestId('submit-group')) + + await waitFor(() => expect(onGroupSubmitInvalid).toHaveBeenCalledTimes(1)) + expect(onGroupSubmit).not.toHaveBeenCalled() + expect(onSubmit).not.toHaveBeenCalled() + await waitFor( + () => expect(getByTestId('group-error').textContent).toBe( + 'Name is required', + ), + ) + }, + ) + + it( + 'should ignore form-level field errors outside the group when submitting the group', + async () => { + const onGroupSubmit = vi.fn() + const onGroupSubmitInvalid = vi.fn() + + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test' }, + step2: { name: 'test2' }, + }, + validators: { + onSubmit: () => ({ + fields: { + 'step2.name': 'Required', + }, + }), + }, + }) + + return + {(group) =>
{ + e.preventDefault() + e.stopPropagation() + group.handleSubmit() + }} + > + + field.handleChange(e.currentTarget.value)} + />} + /> + + } +
+ } + + const { getByTestId } = render() + await user.click(getByTestId('submit-group')) + + await waitFor(() => expect(onGroupSubmit).toHaveBeenCalledTimes(1)) + expect(onGroupSubmitInvalid).not.toHaveBeenCalled() + }, + ) + + it('should pass submit meta through handleSubmit', async () => { + const onGroupSubmit = vi.fn() + + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test' }, + step2: { name: 'test2' }, + }, + }) + + return + {(group) => } + + } + + const { getByTestId } = render() + await user.click(getByTestId('submit-group')) + + await waitFor(() => expect(onGroupSubmit).toHaveBeenCalledTimes(1)) + expect(onGroupSubmit).toHaveBeenCalledWith( + expect.objectContaining({ + value: { name: 'test' }, + meta: { source: 'button' }, + }), + ) + }) + + it( + 'should rerender group.state.meta.isSubmitting during an async submit', + async () => { + let resolveSubmit!: () => void + const onGroupSubmit = vi.fn( + () => new Promise((resolve) => { + resolveSubmit = resolve + }), + ) + + function Comp() { + const form = useForm({ + defaultValues: { + step1: { name: 'test' }, + step2: { name: 'test2' }, + }, + }) + + return + {(group) =>
{ + e.preventDefault() + e.stopPropagation() + void group.handleSubmit() + }} + > + +
} +
+ } + + const { getByTestId } = render() + const button = getByTestId('submit-group') as HTMLButtonElement + expect(button.textContent).toBe('Continue') + expect(button.disabled).toBe(false) + + await user.click(button) + + await waitFor(() => expect(button.textContent).toBe('Saving...')) + expect(button.disabled).toBe(true) + + resolveSubmit() + + await waitFor(() => expect(button.textContent).toBe('Continue')) + expect(button.disabled).toBe(false) + expect(onGroupSubmit).toHaveBeenCalledTimes(1) + }, + ) + + it( + 'uses the current group state throughout a name change render', + async () => { + const observedValues: string[] = [] + + function Comp() { + const [groupName, setGroupName] = useState<'step1' | 'step2'>('step1') + const form = useForm({ + defaultValues: { + step1: { label: 'first' }, + step2: { label: 'second' }, + }, + }) + + return <> + + + {(group) => { + observedValues.push(group.state.value.label) + return {group.state.value.label} + }} + + + } + + const { getByTestId } = render() + expect(getByTestId('group-label')).toHaveTextContent('first') + + observedValues.length = 0 + await user.click(getByTestId('change-group')) + + expect(getByTestId('group-label')).toHaveTextContent('second') + expect(observedValues).not.toContain('first') + }, + ) +}) diff --git a/packages/octane-form/tests/utils.ts b/packages/octane-form/tests/utils.ts new file mode 100644 index 0000000000..1a3a619a22 --- /dev/null +++ b/packages/octane-form/tests/utils.ts @@ -0,0 +1,5 @@ +export function sleep(timeout: number): Promise { + return new Promise((resolve, _reject) => { + setTimeout(resolve, timeout) + }) +} diff --git a/packages/octane-form/tsconfig.build.json b/packages/octane-form/tsconfig.build.json new file mode 100644 index 0000000000..89dadab5ed --- /dev/null +++ b/packages/octane-form/tsconfig.build.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "paths": {} + }, + "include": ["src"] +} diff --git a/packages/octane-form/tsconfig.docs.json b/packages/octane-form/tsconfig.docs.json new file mode 100644 index 0000000000..b90fc83e04 --- /dev/null +++ b/packages/octane-form/tsconfig.docs.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "include": ["src"] +} diff --git a/packages/octane-form/tsconfig.json b/packages/octane-form/tsconfig.json new file mode 100644 index 0000000000..94a88ff7fc --- /dev/null +++ b/packages/octane-form/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "jsx": "preserve", + "jsxImportSource": "octane", + "plugins": [ + { "name": "@tsrx/typescript-plugin" }, + { + "transform": "./localsrc/program-transformer.cts", + "transformProgram": true + } + ], + "paths": { + "@tanstack/octane-form": ["./src"], + "@tanstack/form-core": ["../form-core/src"] + } + }, + "include": ["src", "tests", "localsrc", "*.config.js", "*.config.ts"] +} diff --git a/packages/octane-form/vitest.config.ts b/packages/octane-form/vitest.config.ts new file mode 100644 index 0000000000..9978f6b69d --- /dev/null +++ b/packages/octane-form/vitest.config.ts @@ -0,0 +1,62 @@ +import { dirname, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' +import { octane } from 'octane/compiler/vite' +import { defineConfig } from 'vitest/config' +import packageJson from './package.json' with { type: 'json' } + +const root = dirname(fileURLToPath(import.meta.url)) +const alias = { + '@tanstack/form-core': resolve(root, '../form-core/src/index.ts'), + '@tanstack/octane-form': resolve(root, 'src/index.ts'), +} + +export default defineConfig({ + test: { + watch: false, + coverage: { + enabled: true, + provider: 'istanbul', + include: ['src/**/*'], + extension: ['.ts', '.tsrx'], + }, + projects: [ + { + plugins: [octane({ ssr: false, hmr: false }) as never], + resolve: { alias }, + test: { + name: packageJson.name, + root, + dir: './tests', + environment: 'jsdom', + globals: true, + include: ['**/*.test.{ts,tsrx}'], + exclude: ['**/server.test.tsrx'], + setupFiles: ['./tests/test-setup.ts'], + typecheck: { enabled: true }, + }, + }, + { + plugins: [octane({ ssr: true, hmr: false }) as never], + resolve: { + alias: [ + { + find: /^octane$/, + replacement: fileURLToPath(import.meta.resolve('octane/server')), + }, + ...Object.entries(alias).map(([find, replacement]) => ({ + find, + replacement, + })), + ], + }, + test: { + name: `${packageJson.name}:ssr`, + root, + dir: './tests', + environment: 'node', + include: ['**/server.test.tsrx'], + }, + }, + ], + }, +}) diff --git a/packages/preact-form/src/types.ts b/packages/preact-form/src/types.ts index b8dc7da096..95c2765c65 100644 --- a/packages/preact-form/src/types.ts +++ b/packages/preact-form/src/types.ts @@ -25,20 +25,16 @@ export interface UseFieldOptions< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -86,20 +82,16 @@ export interface UseFieldOptionsBound< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, > extends FieldOptions< diff --git a/packages/preact-form/src/useField.tsx b/packages/preact-form/src/useField.tsx index 256e9d53b7..6e123d5a61 100644 --- a/packages/preact-form/src/useField.tsx +++ b/packages/preact-form/src/useField.tsx @@ -40,20 +40,16 @@ export type UseField< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, >( opts: UseFieldOptionsBound< TParentData, @@ -108,20 +104,16 @@ export function useField< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -308,20 +300,16 @@ interface FieldComponentProps< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -396,20 +384,16 @@ interface FieldComponentBoundProps< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -474,20 +458,16 @@ export type FieldComponent< in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TPatentSubmitMeta, in out ExtendedApi = {}, @@ -497,20 +477,16 @@ export type FieldComponent< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, >({ children, ...fieldOptions @@ -554,20 +530,16 @@ export type LensFieldComponent< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, >({ children, ...fieldOptions @@ -641,20 +613,16 @@ export const Field = (< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, diff --git a/packages/preact-form/src/useFormGroup.tsx b/packages/preact-form/src/useFormGroup.tsx index 3cd22d6a0d..fa4a70e204 100644 --- a/packages/preact-form/src/useFormGroup.tsx +++ b/packages/preact-form/src/useFormGroup.tsx @@ -32,27 +32,20 @@ export type UseFormGroup< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, >( opts: FormGroupApiOptions< @@ -114,27 +107,20 @@ export function useFormGroup< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, @@ -368,27 +354,20 @@ interface FormGroupComponentProps< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, @@ -465,27 +444,20 @@ interface FormGroupComponentBoundProps< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, @@ -561,20 +533,16 @@ export type FormGroupComponent< in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TParentSubmitMeta, in out ExtendedApi = {}, @@ -583,27 +551,20 @@ export type FormGroupComponent< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, >({ children, @@ -642,27 +603,20 @@ export const FormGroup = (< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, diff --git a/packages/react-form-nextjs/package.json b/packages/react-form-nextjs/package.json index 6a0fa4ed20..7c8529ac5b 100644 --- a/packages/react-form-nextjs/package.json +++ b/packages/react-form-nextjs/package.json @@ -51,10 +51,12 @@ "decode-formdata": "^0.9.0" }, "devDependencies": { + "@testing-library/react": "^16.3.0", "@types/react": "~19.2.0", "@vitejs/plugin-react": "^5.1.1", "eslint-plugin-react-compiler": "19.1.0-rc.2", "react": "19.1.0", + "react-dom": "19.1.0", "vite": "^7.2.2" }, "peerDependencies": { diff --git a/packages/react-form-remix/package.json b/packages/react-form-remix/package.json index e4b87a3115..7495b5cd12 100644 --- a/packages/react-form-remix/package.json +++ b/packages/react-form-remix/package.json @@ -51,10 +51,12 @@ "decode-formdata": "^0.9.0" }, "devDependencies": { + "@testing-library/react": "^16.3.0", "@types/react": "~19.2.0", "@vitejs/plugin-react": "^5.1.1", "eslint-plugin-react-compiler": "19.1.0-rc.2", "react": "19.1.0", + "react-dom": "19.1.0", "vite": "^7.2.2" }, "peerDependencies": { diff --git a/packages/react-form-start/package.json b/packages/react-form-start/package.json index 2040d5e234..61df2d9b6b 100644 --- a/packages/react-form-start/package.json +++ b/packages/react-form-start/package.json @@ -53,6 +53,7 @@ }, "devDependencies": { "@tanstack/react-start": "^1.168.27", + "@testing-library/react": "^16.3.0", "@types/react": "~19.2.0", "@types/react-dom": "^19.0.3", "@vitejs/plugin-react": "^5.1.1", diff --git a/packages/react-form-start/src/getFormData.tsx b/packages/react-form-start/src/getFormData.tsx index c9b72bf516..6c626231b9 100644 --- a/packages/react-form-start/src/getFormData.tsx +++ b/packages/react-form-start/src/getFormData.tsx @@ -14,8 +14,7 @@ export const initialFormState = { export const getFormData = createServerFn().handler(async () => { const data = getInternalTanStackCookie() as - | undefined - | ServerFormState + undefined | ServerFormState // Delete the temporary cookie from the client after reading it deleteInternalTanStackCookie() if (!data) return initialFormState diff --git a/packages/react-form/package.json b/packages/react-form/package.json index 872693cf5a..cd5dddb3c9 100644 --- a/packages/react-form/package.json +++ b/packages/react-form/package.json @@ -53,9 +53,10 @@ ], "dependencies": { "@tanstack/form-core": "workspace:*", - "@tanstack/react-store": "^0.11.0" + "@tanstack/react-store": "^0.11.1" }, "devDependencies": { + "@testing-library/react": "^16.3.0", "@types/react": "~19.2.0", "@types/react-dom": "^19.0.3", "@vitejs/plugin-react": "^5.1.1", diff --git a/packages/react-form/src/createFormHook.tsx b/packages/react-form/src/createFormHook.tsx index 4008c47fc5..10764d9e1c 100644 --- a/packages/react-form/src/createFormHook.tsx +++ b/packages/react-form/src/createFormHook.tsx @@ -597,10 +597,14 @@ export function createFormHook< function extendForm< const TNewField extends Record> & { - [K in keyof TComponents]?: 'Error: field component names must be unique — this key already exists in the base form' + [ + K in keyof TComponents + ]?: 'Error: field component names must be unique — this key already exists in the base form' }, const TNewForm extends Record> & { - [K in keyof TFormComponents]?: 'Error: form component names must be unique — this key already exists in the base form' + [ + K in keyof TFormComponents + ]?: 'Error: form component names must be unique — this key already exists in the base form' }, >(extension: { fieldComponents?: TNewField; formComponents?: TNewForm }) { return createFormHook({ diff --git a/packages/react-form/src/types.ts b/packages/react-form/src/types.ts index 971a5692a0..28c39f4394 100644 --- a/packages/react-form/src/types.ts +++ b/packages/react-form/src/types.ts @@ -24,20 +24,16 @@ export interface UseFieldOptions< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -85,20 +81,16 @@ export interface UseFieldOptionsBound< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, > extends FieldOptions< diff --git a/packages/react-form/src/useField.tsx b/packages/react-form/src/useField.tsx index b40b1b42b3..f4cde84f31 100644 --- a/packages/react-form/src/useField.tsx +++ b/packages/react-form/src/useField.tsx @@ -42,20 +42,16 @@ export type UseField< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, >( opts: UseFieldOptionsBound< TParentData, @@ -110,20 +106,16 @@ export function useField< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -316,20 +308,16 @@ interface FieldComponentProps< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -404,20 +392,16 @@ interface FieldComponentBoundProps< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -482,20 +466,16 @@ export type FieldComponent< in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TPatentSubmitMeta, in out ExtendedApi = {}, @@ -505,20 +485,16 @@ export type FieldComponent< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, >({ children, ...fieldOptions @@ -562,20 +538,16 @@ export type LensFieldComponent< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, >({ children, ...fieldOptions @@ -649,20 +621,16 @@ export const Field = (< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, diff --git a/packages/react-form/src/useFormGroup.tsx b/packages/react-form/src/useFormGroup.tsx index d9d02f4989..7914fed4f5 100644 --- a/packages/react-form/src/useFormGroup.tsx +++ b/packages/react-form/src/useFormGroup.tsx @@ -34,27 +34,20 @@ export type UseFormGroup< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, >( opts: FormGroupApiOptions< @@ -116,27 +109,20 @@ export function useFormGroup< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, @@ -371,27 +357,20 @@ interface FormGroupComponentProps< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, @@ -468,27 +447,20 @@ interface FormGroupComponentBoundProps< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, @@ -564,20 +536,16 @@ export type FormGroupComponent< in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TParentSubmitMeta, in out ExtendedApi = {}, @@ -586,27 +554,20 @@ export type FormGroupComponent< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, >({ children, @@ -645,27 +606,20 @@ export const FormGroup = (< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, diff --git a/packages/solid-form/package.json b/packages/solid-form/package.json index 17b5f45de5..debba863fd 100644 --- a/packages/solid-form/package.json +++ b/packages/solid-form/package.json @@ -57,9 +57,10 @@ ], "dependencies": { "@tanstack/form-core": "workspace:*", - "@tanstack/solid-store": "^0.11.0" + "@tanstack/solid-store": "^0.11.1" }, "devDependencies": { + "@solidjs/testing-library": "^0.8.10", "solid-js": "^1.9.9", "vite": "^7.2.2", "vite-plugin-solid": "^2.11.8" diff --git a/packages/solid-form/src/createField.tsx b/packages/solid-form/src/createField.tsx index ade0ec17b1..5284c36e50 100644 --- a/packages/solid-form/src/createField.tsx +++ b/packages/solid-form/src/createField.tsx @@ -62,20 +62,16 @@ function makeFieldReactive< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -222,20 +218,16 @@ export function createField< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -336,20 +328,16 @@ interface FieldComponentBoundProps< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -416,20 +404,16 @@ export type FieldComponent< in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TPatentSubmitMeta, in out ExtendedApi = {}, @@ -439,20 +423,16 @@ export type FieldComponent< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, >({ children, ...fieldOptions @@ -490,20 +470,16 @@ interface FieldComponentProps< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -582,20 +558,16 @@ export type LensFieldComponent< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, >({ children, ...fieldOptions @@ -664,20 +636,16 @@ export function Field< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, diff --git a/packages/solid-form/src/createFormGroup.tsx b/packages/solid-form/src/createFormGroup.tsx index dd6d89ebd1..01b2eef79f 100644 --- a/packages/solid-form/src/createFormGroup.tsx +++ b/packages/solid-form/src/createFormGroup.tsx @@ -26,27 +26,20 @@ function makeFormGroupReactive< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, @@ -130,27 +123,20 @@ export function createFormGroup< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, @@ -251,27 +237,20 @@ interface FormGroupComponentBoundProps< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, @@ -352,20 +331,16 @@ export type FormGroupComponent< in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, in out TFormOnChangeAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, in out TFormOnBlurAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, in out TFormOnSubmitAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnDynamic extends undefined | FormValidateOrFn, in out TFormOnDynamicAsync extends - | undefined - | FormAsyncValidateOrFn, + undefined | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TParentSubmitMeta, in out ExtendedApi = {}, @@ -374,27 +349,20 @@ export type FormGroupComponent< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, >( props: FormGroupComponentBoundProps< @@ -432,27 +400,20 @@ interface FormGroupComponentProps< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, @@ -527,27 +488,20 @@ export function FormGroup< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, diff --git a/packages/solid-form/src/types.ts b/packages/solid-form/src/types.ts index 2d08076552..3d4d67b24e 100644 --- a/packages/solid-form/src/types.ts +++ b/packages/solid-form/src/types.ts @@ -23,20 +23,16 @@ export interface CreateFieldOptions< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -84,20 +80,16 @@ export interface CreateFieldOptionsBound< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, > extends FieldOptions< diff --git a/packages/svelte-form/src/types.ts b/packages/svelte-form/src/types.ts index 91ee48e3ce..da2de2765d 100644 --- a/packages/svelte-form/src/types.ts +++ b/packages/svelte-form/src/types.ts @@ -27,20 +27,16 @@ export type CreateFieldOptions< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -110,20 +106,16 @@ export type FieldComponent< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, >( internal: any, { @@ -164,27 +156,20 @@ export type FieldComponent< TData extends DeepValue, TOnMount extends undefined | FieldValidateOrFn, TOnChange extends - | undefined - | FieldValidateOrFn, + undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends - | undefined - | FieldValidateOrFn, + undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends - | undefined - | FieldValidateOrFn, + undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, >( opts: ComponentConstructorOptions< Omit< @@ -227,20 +212,16 @@ type FieldComponentProps< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -337,32 +318,23 @@ export type FormGroupComponent< TName extends DeepKeys, TData extends DeepValue, TOnMount extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, >( internal: any, @@ -404,32 +376,23 @@ export type FormGroupComponent< TName extends DeepKeys, TData extends DeepValue, TOnMount extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, >( opts: ComponentConstructorOptions< @@ -473,27 +436,20 @@ type FormGroupComponentProps< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, diff --git a/packages/vue-form/package.json b/packages/vue-form/package.json index 09ec355472..2c697ab065 100644 --- a/packages/vue-form/package.json +++ b/packages/vue-form/package.json @@ -54,9 +54,10 @@ ], "dependencies": { "@tanstack/form-core": "workspace:*", - "@tanstack/vue-store": "^0.11.0" + "@tanstack/vue-store": "^0.11.1" }, "devDependencies": { + "@testing-library/vue": "^8.1.0", "@vitejs/plugin-vue": "^5.2.4", "vite": "^7.2.2", "vue": "^3.5.13" diff --git a/packages/vue-form/src/types.ts b/packages/vue-form/src/types.ts index 9bdc250304..defd32e683 100644 --- a/packages/vue-form/src/types.ts +++ b/packages/vue-form/src/types.ts @@ -20,20 +20,16 @@ export interface UseFieldOptions< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -81,20 +77,16 @@ export interface UseFieldOptionsBound< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, > extends FieldOptions< diff --git a/packages/vue-form/src/useField.tsx b/packages/vue-form/src/useField.tsx index 1d1031d943..065d19d7b5 100644 --- a/packages/vue-form/src/useField.tsx +++ b/packages/vue-form/src/useField.tsx @@ -43,20 +43,16 @@ export type FieldComponent< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, >( props: FieldComponentBoundProps< TParentData, @@ -193,20 +189,16 @@ export function useField< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -390,20 +382,16 @@ export type FieldComponentProps< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, @@ -448,20 +436,16 @@ export type FieldComponentBoundProps< TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, > = UseFieldOptionsBound< TParentData, TName, @@ -485,20 +469,16 @@ export const Field = defineComponent( TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnBlur extends undefined | FieldValidateOrFn, TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnSubmit extends undefined | FieldValidateOrFn, TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TOnDynamic extends undefined | FieldValidateOrFn, TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, + undefined | FieldAsyncValidateOrFn, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, diff --git a/packages/vue-form/src/useFormGroup.tsx b/packages/vue-form/src/useFormGroup.tsx index f0ab50ab28..ee04284a0a 100644 --- a/packages/vue-form/src/useFormGroup.tsx +++ b/packages/vue-form/src/useFormGroup.tsx @@ -41,27 +41,20 @@ export type FormGroupComponent< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, >( props: FormGroupComponentBoundProps< @@ -224,27 +217,20 @@ export function useFormGroup< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, @@ -321,27 +307,20 @@ export type FormGroupComponentProps< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, @@ -387,27 +366,20 @@ export type FormGroupComponentBoundProps< TData extends DeepValue, TOnMount extends undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, @@ -453,32 +425,23 @@ export const FormGroup = defineComponent( TName extends DeepKeys, TData extends DeepValue, TOnMount extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChange extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnChangeAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnBlur extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnBlurAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnSubmit extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnSubmitAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TOnDynamic extends - | undefined - | FormGroupValidateOrFn, + undefined | FormGroupValidateOrFn, TOnDynamicAsync extends - | undefined - | FormGroupAsyncValidateOrFn, + undefined | FormGroupAsyncValidateOrFn, TSubmitMeta, TFormOnMount extends undefined | FormValidateOrFn, TFormOnChange extends undefined | FormValidateOrFn, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index efc9b291f1..4835b84940 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -178,36 +178,30 @@ importers: '@eslint-react/eslint-plugin': specifier: ^1.53.1 version: 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(ts-api-utils@2.5.0(typescript@5.9.3))(typescript@5.9.3) - '@solidjs/testing-library': - specifier: ^0.8.10 - version: 0.8.10(solid-js@1.9.13) '@tanstack/eslint-config': specifier: 0.3.2 - version: 0.3.2(@typescript-eslint/utils@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + version: 0.3.2(@typescript-eslint/utils@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@tanstack/typedoc-config': specifier: 0.3.1 version: 0.3.1(typescript@5.9.3) '@tanstack/vite-config': specifier: 0.4.1 - version: 0.4.1(@types/node@24.12.4)(rollup@4.60.4)(supports-color@7.2.0)(typescript@5.9.3)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 0.4.1(@types/node@24.13.6)(rollup@4.63.4)(supports-color@7.2.0)(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) '@testing-library/jest-dom': specifier: ^6.8.0 - version: 6.9.1 - '@testing-library/react': - specifier: ^16.3.0 - version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 6.10.0(@testing-library/dom@10.4.2) '@testing-library/user-event': specifier: ^14.6.1 - version: 14.6.1(@testing-library/dom@10.4.1) - '@testing-library/vue': - specifier: ^8.1.0 - version: 8.1.0(@vue/compiler-dom@3.5.34)(@vue/compiler-sfc@3.5.34)(@vue/server-renderer@3.5.34(vue@3.5.34(typescript@5.9.3)))(vue@3.5.34(typescript@5.9.3)) + version: 14.6.7(@testing-library/dom@10.4.2) + '@tsrx/prettier-plugin': + specifier: 0.4.7 + version: 0.4.7(@typescript-eslint/types@8.70.0)(prettier@3.9.8) '@types/node': specifier: ^24.1.0 - version: 24.12.4 + version: 24.13.6 '@vitest/coverage-istanbul': specifier: ^3.2.4 - version: 3.2.4(supports-color@7.2.0)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@7.2.0))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@7.2.0)(terser@5.48.0)(yaml@2.9.0)) + version: 3.2.7(supports-color@7.2.0)(vitest@3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@7.2.0))(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@7.2.0)(terser@5.51.2)(yaml@2.9.1)) eslint: specifier: 9.36.0 version: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) @@ -216,31 +210,34 @@ importers: version: 5.2.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)) jsdom: specifier: ^27.2.0 - version: 27.4.0(supports-color@7.2.0) + version: 27.4.0(@noble/hashes@2.4.0)(supports-color@7.2.0) knip: specifier: ^6.37.0 version: 6.37.0 markdown-link-extractor: specifier: ^4.0.2 - version: 4.0.3 + version: 4.0.4 nx: specifier: 23.2.1 - version: 23.2.1(@swc/core@1.15.40) + version: 23.2.1(@swc/core@1.16.2) premove: specifier: ^4.0.0 version: 4.0.0 prettier: specifier: ^3.7.4 - version: 3.8.3 + version: 3.9.8 publint: specifier: ^0.3.15 - version: 0.3.21 + version: 0.3.24 sherif: specifier: ^1.9.0 - version: 1.11.1 + version: 1.13.0 tinyglobby: specifier: ^0.2.15 - version: 0.2.16 + version: 0.2.17 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@swc/core@1.16.2)(@types/node@24.13.6)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -261,37 +258,37 @@ importers: version: typescript@5.8.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@7.2.0))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@7.2.0)(terser@5.48.0)(yaml@2.9.0) + version: 3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@7.2.0))(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@7.2.0)(terser@5.51.2)(yaml@2.9.1) examples/angular/array: dependencies: '@angular/animations': specifier: ^21.2.14 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/common': specifier: ^21.2.14 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + version: 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': specifier: ^21.2.14 - version: 21.2.14 + version: 21.2.23 '@angular/core': specifier: ^21.2.14 - version: 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) + version: 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/platform-browser': specifier: ^21.2.14 - version: 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-browser-dynamic': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.2.23)(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))) '@angular/router': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@tanstack/angular-form': specifier: ^1.33.5 version: link:../../../packages/angular-form @@ -307,13 +304,13 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^21.2.12 - version: 21.2.12(ffeda791aea3ab7b78d0c81a12bc1c94) + version: 21.2.24(6c0c725f651b251987e889e8997415aa) '@angular/cli': specifier: ^21.2.12 - version: 21.2.12(@types/node@24.12.4)(chokidar@5.0.0)(supports-color@8.1.1) + version: 21.2.24(@types/node@24.13.6)(chokidar@5.0.0)(supports-color@8.1.1) '@angular/compiler-cli': specifier: ^21.2.14 - version: 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) + version: 21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -322,28 +319,28 @@ importers: dependencies: '@angular/animations': specifier: ^21.2.14 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/common': specifier: ^21.2.14 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + version: 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': specifier: ^21.2.14 - version: 21.2.14 + version: 21.2.23 '@angular/core': specifier: ^21.2.14 - version: 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) + version: 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/platform-browser': specifier: ^21.2.14 - version: 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-browser-dynamic': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.2.23)(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))) '@angular/router': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@tanstack/angular-form': specifier: ^1.33.5 version: link:../../../packages/angular-form @@ -359,13 +356,13 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^21.2.12 - version: 21.2.12(f3d6a3cdd807604cebe7e8e92974ab1b) + version: 21.2.24(98d149fd09f03ab518ddd9685edd4297) '@angular/cli': specifier: ^21.2.12 - version: 21.2.12(@types/node@24.12.4)(chokidar@5.0.0)(supports-color@8.1.1) + version: 21.2.24(@types/node@24.13.6)(chokidar@5.0.0)(supports-color@8.1.1) '@angular/compiler-cli': specifier: ^21.2.14 - version: 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) + version: 21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -374,28 +371,28 @@ importers: dependencies: '@angular/animations': specifier: ^21.2.14 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/common': specifier: ^21.2.14 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + version: 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': specifier: ^21.2.14 - version: 21.2.14 + version: 21.2.23 '@angular/core': specifier: ^21.2.14 - version: 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) + version: 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/platform-browser': specifier: ^21.2.14 - version: 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-browser-dynamic': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.2.23)(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))) '@angular/router': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@tanstack/angular-form': specifier: ^1.33.5 version: link:../../../packages/angular-form @@ -414,13 +411,13 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^21.2.12 - version: 21.2.12(ecd13167f4bd33f6e977616867917e10) + version: 21.2.24(98d149fd09f03ab518ddd9685edd4297) '@angular/cli': specifier: ^21.2.12 - version: 21.2.12(@types/node@24.12.4)(chokidar@5.0.0)(supports-color@8.1.1) + version: 21.2.24(@types/node@24.13.6)(chokidar@5.0.0)(supports-color@8.1.1) '@angular/compiler-cli': specifier: ^21.2.14 - version: 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) + version: 21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -429,28 +426,28 @@ importers: dependencies: '@angular/animations': specifier: ^21.2.14 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/common': specifier: ^21.2.14 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + version: 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': specifier: ^21.2.14 - version: 21.2.14 + version: 21.2.23 '@angular/core': specifier: ^21.2.14 - version: 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) + version: 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/platform-browser': specifier: ^21.2.14 - version: 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-browser-dynamic': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.2.23)(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))) '@angular/router': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@tanstack/angular-form': specifier: ^1.33.5 version: link:../../../packages/angular-form @@ -466,13 +463,13 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^21.2.12 - version: 21.2.12(f3d6a3cdd807604cebe7e8e92974ab1b) + version: 21.2.24(98d149fd09f03ab518ddd9685edd4297) '@angular/cli': specifier: ^21.2.12 - version: 21.2.12(@types/node@24.12.4)(chokidar@5.0.0)(supports-color@8.1.1) + version: 21.2.24(@types/node@24.13.6)(chokidar@5.0.0)(supports-color@8.1.1) '@angular/compiler-cli': specifier: ^21.2.14 - version: 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) + version: 21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -481,34 +478,34 @@ importers: dependencies: '@angular/animations': specifier: ^21.2.14 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/common': specifier: ^21.2.14 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + version: 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': specifier: ^21.2.14 - version: 21.2.14 + version: 21.2.23 '@angular/core': specifier: ^21.2.14 - version: 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) + version: 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/platform-browser': specifier: ^21.2.14 - version: 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-browser-dynamic': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.2.23)(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))) '@angular/router': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@tanstack/angular-form': specifier: ^1.33.5 version: link:../../../packages/angular-form effect: specifier: ^3.17.14 - version: 3.21.2 + version: 3.22.2 rxjs: specifier: ^7.8.2 version: 7.8.2 @@ -517,7 +514,7 @@ importers: version: 2.8.1 valibot: specifier: ^1.1.0 - version: 1.4.1(typescript@5.9.3) + version: 1.5.0(typescript@5.9.3) zod: specifier: ^3.25.76 version: 3.25.76 @@ -527,13 +524,13 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^21.2.12 - version: 21.2.12(f3d6a3cdd807604cebe7e8e92974ab1b) + version: 21.2.24(98d149fd09f03ab518ddd9685edd4297) '@angular/cli': specifier: ^21.2.12 - version: 21.2.12(@types/node@24.12.4)(chokidar@5.0.0)(supports-color@8.1.1) + version: 21.2.24(@types/node@24.13.6)(chokidar@5.0.0)(supports-color@8.1.1) '@angular/compiler-cli': specifier: ^21.2.14 - version: 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) + version: 21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -549,7 +546,7 @@ importers: devDependencies: vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/lit/large-form: dependencies: @@ -565,7 +562,7 @@ importers: devDependencies: vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/lit/multi-step-wizard: dependencies: @@ -584,7 +581,7 @@ importers: devDependencies: vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/lit/simple: dependencies: @@ -597,7 +594,7 @@ importers: devDependencies: vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/lit/standard-schema: dependencies: @@ -606,29 +603,29 @@ importers: version: link:../../../packages/lit-form arktype: specifier: ^2.1.22 - version: 2.2.0 + version: 2.2.3 effect: specifier: ^3.17.14 - version: 3.21.2 + version: 3.22.2 lit: specifier: ^3.3.1 version: 3.3.3 valibot: specifier: ^1.1.0 - version: 1.4.1(typescript@5.9.3) + version: 1.5.0(typescript@5.9.3) zod: specifier: ^3.25.76 version: 3.25.76 devDependencies: vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/lit/ui-libraries: dependencies: '@material/web': specifier: ^2.4.0 - version: 2.4.1 + version: 2.5.0 '@tanstack/lit-form': specifier: ^1.25.5 version: link:../../../packages/lit-form @@ -638,7 +635,48 @@ importers: devDependencies: vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + + examples/octane/multi-step-wizard: + dependencies: + '@tanstack/octane-form': + specifier: workspace:* + version: link:../../../packages/octane-form + octane: + specifier: ^0.2.16 + version: 0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + zod: + specifier: ^3.25.76 + version: 3.25.76 + devDependencies: + '@tsrx/typescript-plugin': + specifier: 0.4.6 + version: 0.4.6(octane@0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(typescript@5.9.3) + typescript: + specifier: 5.9.3 + version: 5.9.3 + vite: + specifier: ^7.2.2 + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + + examples/octane/simple: + dependencies: + '@tanstack/octane-form': + specifier: workspace:* + version: link:../../../packages/octane-form + octane: + specifier: ^0.2.16 + version: 0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + devDependencies: + '@tsrx/typescript-plugin': + specifier: 0.4.6 + version: 0.4.6(octane@0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(typescript@5.9.3) + typescript: + specifier: 5.9.3 + version: 5.9.3 + vite: + specifier: ^7.2.2 + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/preact/multi-step-wizard: dependencies: @@ -647,17 +685,17 @@ importers: version: link:../../../packages/preact-form preact: specifier: ^10.26.4 - version: 10.29.2 + version: 10.29.8 zod: specifier: ^3.25.76 version: 3.25.76 devDependencies: '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.5(@babel/core@7.29.7(supports-color@8.1.1))(preact@10.29.2)(rollup@4.60.4)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 2.10.6(@babel/core@7.29.7(supports-color@8.1.1))(preact@10.29.8)(rollup@4.63.4)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/preact/simple: dependencies: @@ -666,14 +704,14 @@ importers: version: link:../../../packages/preact-form preact: specifier: ^10.26.4 - version: 10.29.2 + version: 10.29.8 devDependencies: '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.5(@babel/core@7.29.7(supports-color@8.1.1))(preact@10.29.2)(rollup@4.60.4)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 2.10.6(@babel/core@7.29.7(supports-color@8.1.1))(preact@10.29.8)(rollup@4.63.4)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/react/array: dependencies: @@ -689,22 +727,22 @@ importers: devDependencies: '@tanstack/react-devtools': specifier: ^0.9.7 - version: 0.9.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.13) + version: 0.9.13(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.15) '@tanstack/react-form-devtools': specifier: ^0.2.34 version: link:../../../packages/react-form-devtools '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/react/compiler: dependencies: @@ -720,13 +758,13 @@ importers: devDependencies: '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) babel-plugin-react-compiler: specifier: 19.1.0-rc.3 version: 19.1.0-rc.3 @@ -735,7 +773,7 @@ importers: version: 19.1.0-rc.2(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/react/composition: dependencies: @@ -751,22 +789,22 @@ importers: devDependencies: '@tanstack/react-devtools': specifier: ^0.9.7 - version: 0.9.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.13) + version: 0.9.13(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.15) '@tanstack/react-form-devtools': specifier: ^0.2.34 version: link:../../../packages/react-form-devtools '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/react/devtools: dependencies: @@ -782,22 +820,22 @@ importers: devDependencies: '@tanstack/react-devtools': specifier: ^0.9.7 - version: 0.9.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.13) + version: 0.9.13(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.15) '@tanstack/react-form-devtools': specifier: ^0.2.34 version: link:../../../packages/react-form-devtools '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/react/dynamic: dependencies: @@ -813,22 +851,22 @@ importers: devDependencies: '@tanstack/react-devtools': specifier: ^0.9.7 - version: 0.9.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.13) + version: 0.9.13(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.15) '@tanstack/react-form-devtools': specifier: ^0.2.34 version: link:../../../packages/react-form-devtools '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) zod: specifier: ^3.25.76 version: 3.25.76 @@ -837,61 +875,61 @@ importers: dependencies: '@expo/vector-icons': specifier: ^15.0.3 - version: 15.1.1(expo-font@14.0.11(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + version: 15.1.1(expo-font@14.0.12(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) '@react-navigation/bottom-tabs': specifier: ^7.4.0 - version: 7.16.1(@react-navigation/native@7.2.4(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + version: 7.19.2(@react-navigation/native@7.4.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) '@react-navigation/elements': specifier: ^2.6.3 - version: 2.9.18(@react-navigation/native@7.2.4(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + version: 2.9.43(@react-navigation/native@7.4.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) '@react-navigation/native': specifier: ^7.1.8 - version: 7.2.4(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + version: 7.4.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) '@tanstack/react-form': specifier: ^1.33.5 version: link:../../../packages/react-form arktype: specifier: ^2.1.22 - version: 2.2.0 + version: 2.2.3 effect: specifier: ^3.17.14 - version: 3.21.2 + version: 3.22.2 expo: specifier: ~54.0.33 - version: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + version: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) expo-constants: specifier: ~18.0.13 - version: 18.0.13(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1) + version: 18.0.14(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1) expo-font: specifier: ~14.0.11 - version: 14.0.11(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + version: 14.0.12(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) expo-haptics: specifier: ~15.0.8 - version: 15.0.8(expo@54.0.34) + version: 15.0.8(expo@54.0.37) expo-image: specifier: ~3.0.11 - version: 3.0.11(expo@54.0.34)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + version: 3.0.11(expo@54.0.37)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) expo-linking: specifier: ~8.0.11 - version: 8.0.12(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1) + version: 8.0.12(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1) expo-router: specifier: ~6.0.23 - version: 6.0.23(c7c2013fda48cef4065ef0e95e77f784) + version: 6.0.24(3a123a5aaca9c4c45b93faf4bd84db41) expo-splash-screen: specifier: ~31.0.13 - version: 31.0.13(expo@54.0.34)(supports-color@8.1.1)(typescript@5.9.3) + version: 31.0.13(expo@54.0.37)(supports-color@8.1.1)(typescript@5.9.3) expo-status-bar: specifier: ~3.0.9 - version: 3.0.9(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + version: 3.0.9(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) expo-symbols: specifier: ~1.0.8 - version: 1.0.8(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1)) + version: 1.0.8(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1)) expo-system-ui: specifier: ~6.0.9 - version: 6.0.9(expo@54.0.34)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1) + version: 6.0.9(expo@54.0.37)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1) expo-web-browser: specifier: ~15.0.10 - version: 15.0.11(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1)) + version: 15.0.11(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1)) react: specifier: 19.1.0 version: 19.1.0 @@ -900,41 +938,41 @@ importers: version: 19.1.0(react@19.1.0) react-native: specifier: 0.81.5 - version: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + version: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) react-native-gesture-handler: specifier: ~2.28.0 - version: 2.28.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + version: 2.28.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) react-native-reanimated: specifier: ~4.1.1 - version: 4.1.7(react-native-worklets@0.5.1(@babel/core@7.29.7(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + version: 4.1.7(react-native-worklets@0.5.1(@babel/core@7.29.7(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) react-native-safe-area-context: specifier: ~5.6.0 - version: 5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + version: 5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) react-native-screens: specifier: ~4.16.0 - version: 4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + version: 4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) react-native-web: specifier: ~0.21.0 version: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-native-worklets: specifier: 0.5.1 - version: 0.5.1(@babel/core@7.29.7(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1) + version: 0.5.1(@babel/core@7.29.7(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1) valibot: specifier: ^1.1.0 - version: 1.4.1(typescript@5.9.3) + version: 1.5.0(typescript@5.9.3) zod: specifier: ^3.25.76 version: 3.25.76 devDependencies: '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 eslint: specifier: 9.36.0 version: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) eslint-config-expo: specifier: ~10.0.0 - version: 10.0.0(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) + version: 10.0.0(eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -953,22 +991,22 @@ importers: devDependencies: '@tanstack/react-devtools': specifier: ^0.9.7 - version: 0.9.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.13) + version: 0.9.13(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.15) '@tanstack/react-form-devtools': specifier: ^0.2.34 version: link:../../../packages/react-form-devtools '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/react/large-form: dependencies: @@ -984,22 +1022,22 @@ importers: devDependencies: '@tanstack/react-devtools': specifier: ^0.9.7 - version: 0.9.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.13) + version: 0.9.13(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.15) '@tanstack/react-form-devtools': specifier: ^0.2.34 version: link:../../../packages/react-form-devtools '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/react/multi-step-wizard: dependencies: @@ -1018,22 +1056,22 @@ importers: devDependencies: '@tanstack/react-devtools': specifier: ^0.9.7 - version: 0.9.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.13) + version: 0.9.13(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.15) '@tanstack/react-form-devtools': specifier: ^0.2.34 version: link:../../../packages/react-form-devtools '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/react/next-server-actions: dependencies: @@ -1041,11 +1079,11 @@ importers: specifier: ^1.33.5 version: link:../../../packages/react-form-nextjs '@tanstack/react-store': - specifier: ^0.11.0 - version: 0.11.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^0.11.1 + version: 0.11.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next: specifier: 16.2.6 - version: 16.2.6(@babel/core@7.29.7(supports-color@8.1.1))(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.100.0) + version: 16.2.6(@babel/core@7.29.7(supports-color@8.1.1))(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.104.1) react: specifier: 19.1.0 version: 19.1.0 @@ -1055,13 +1093,13 @@ importers: devDependencies: '@types/node': specifier: ^24.1.0 - version: 24.12.4 + version: 24.13.6 '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1072,11 +1110,11 @@ importers: specifier: ^1.33.5 version: link:../../../packages/react-form-nextjs '@tanstack/react-store': - specifier: ^0.11.0 - version: 0.11.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^0.11.1 + version: 0.11.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next: specifier: 16.2.6 - version: 16.2.6(@babel/core@7.29.7(supports-color@8.1.1))(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.100.0) + version: 16.2.6(@babel/core@7.29.7(supports-color@7.2.0))(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.104.1) react: specifier: 19.1.0 version: 19.1.0 @@ -1089,13 +1127,13 @@ importers: devDependencies: '@types/node': specifier: ^24.1.0 - version: 24.12.4 + version: 24.13.6 '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1107,7 +1145,7 @@ importers: version: link:../../../packages/react-form '@tanstack/react-query': specifier: ^5.89.0 - version: 5.100.14(react@19.1.0) + version: 5.103.1(react@19.1.0) react: specifier: 19.1.0 version: 19.1.0 @@ -1117,43 +1155,43 @@ importers: devDependencies: '@tanstack/react-devtools': specifier: ^0.9.7 - version: 0.9.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.13) + version: 0.9.13(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.15) '@tanstack/react-form-devtools': specifier: ^0.2.34 version: link:../../../packages/react-form-devtools '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/react/remix: dependencies: '@remix-run/node': specifier: ^2.17.4 - version: 2.17.4(typescript@5.9.3) + version: 2.17.5(typescript@5.9.3) '@remix-run/react': specifier: ^2.17.4 - version: 2.17.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.9.3) + version: 2.17.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.9.3) '@remix-run/serve': specifier: ^2.17.4 - version: 2.17.4(supports-color@8.1.1)(typescript@5.9.3) + version: 2.17.5(supports-color@8.1.1)(typescript@5.9.3) '@tanstack/react-form-remix': specifier: ^1.33.5 version: link:../../../packages/react-form-remix '@tanstack/react-store': - specifier: ^0.11.0 - version: 0.11.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^0.11.1 + version: 0.11.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) isbot: specifier: ^5.1.30 - version: 5.1.40 + version: 5.2.2 react: specifier: 19.1.0 version: 19.1.0 @@ -1163,22 +1201,22 @@ importers: devDependencies: '@remix-run/dev': specifier: ^2.17.4 - version: 2.17.4(@remix-run/react@2.17.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.9.3))(@remix-run/serve@2.17.4(supports-color@8.1.1)(typescript@5.9.3))(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.48.0)(typescript@5.9.3)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0) + version: 2.17.5(@remix-run/react@2.17.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.9.3))(@remix-run/serve@2.17.5(supports-color@8.1.1)(typescript@5.9.3))(@types/node@24.13.6)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.51.2)(ts-node@10.9.2(@swc/core@1.16.2)(@types/node@24.13.6)(typescript@5.9.3))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1))(yaml@2.9.1) '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(supports-color@8.1.1)(typescript@5.9.3)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0)) + version: 5.1.4(supports-color@8.1.1)(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1)) examples/react/simple: dependencies: @@ -1194,22 +1232,22 @@ importers: devDependencies: '@tanstack/react-devtools': specifier: ^0.9.7 - version: 0.9.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.13) + version: 0.9.13(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.15) '@tanstack/react-form-devtools': specifier: ^0.2.34 version: link:../../../packages/react-form-devtools '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/react/standard-schema: dependencies: @@ -1218,10 +1256,10 @@ importers: version: link:../../../packages/react-form arktype: specifier: ^2.1.22 - version: 2.2.0 + version: 2.2.3 effect: specifier: ^3.17.14 - version: 3.21.2 + version: 3.22.2 react: specifier: 19.1.0 version: 19.1.0 @@ -1230,29 +1268,29 @@ importers: version: 19.1.0(react@19.1.0) valibot: specifier: ^1.1.0 - version: 1.4.1(typescript@5.9.3) + version: 1.5.0(typescript@5.9.3) zod: specifier: ^3.25.76 version: 3.25.76 devDependencies: '@tanstack/react-devtools': specifier: ^0.9.7 - version: 0.9.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.13) + version: 0.9.13(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.15) '@tanstack/react-form-devtools': specifier: ^0.2.34 version: link:../../../packages/react-form-devtools '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/react/tanstack-start: dependencies: @@ -1261,13 +1299,13 @@ importers: version: link:../../../packages/react-form-start '@tanstack/react-router': specifier: ^1.134.9 - version: 1.170.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.170.38(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@tanstack/react-start': specifier: ^1.168.27 - version: 1.168.27(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(supports-color@8.1.1)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15)) + version: 1.168.56(esbuild@0.28.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.63.4)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)) '@tanstack/react-store': - specifier: ^0.11.0 - version: 0.11.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^0.11.1 + version: 0.11.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: 19.1.0 version: 19.1.0 @@ -1277,49 +1315,49 @@ importers: devDependencies: '@tanstack/react-devtools': specifier: ^0.9.7 - version: 0.9.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.13) + version: 0.9.13(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.15) '@tanstack/react-form-devtools': specifier: ^0.2.34 version: link:../../../packages/react-form-devtools '@types/node': specifier: ^24.1.0 - version: 24.12.4 + version: 24.13.6 '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(supports-color@8.1.1)(typescript@5.9.3)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0)) + version: 5.1.4(supports-color@8.1.1)(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1)) examples/react/ui-libraries: dependencies: '@emotion/react': specifier: 11.14.0 - version: 11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + version: 11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) '@emotion/styled': specifier: 11.14.1 - version: 11.14.1(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + version: 11.14.1(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) '@mantine/core': specifier: 7.17.8 - version: 7.17.8(@mantine/hooks@7.17.8(react@19.1.0))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 7.17.8(@mantine/hooks@7.17.8(react@19.1.0))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/hooks': specifier: 7.17.8 version: 7.17.8(react@19.1.0) '@mui/material': specifier: 6.5.0 - version: 6.5.0(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 6.5.0(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@tanstack/react-form': specifier: ^1.33.5 version: link:../../../packages/react-form @@ -1344,28 +1382,28 @@ importers: devDependencies: '@tanstack/react-devtools': specifier: ^0.9.7 - version: 0.9.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.13) + version: 0.9.13(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.15) '@tanstack/react-form-devtools': specifier: ^0.2.34 version: link:../../../packages/react-form-devtools '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1)) '@vitejs/plugin-react-swc': specifier: ^3.11.0 - version: 3.11.0(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0)) + version: 3.11.0(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1) examples/solid/array: dependencies: @@ -1374,23 +1412,23 @@ importers: version: link:../../../packages/solid-form solid-js: specifier: ^1.9.9 - version: 1.9.13 + version: 1.9.15 devDependencies: typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) vite-plugin-solid: specifier: ^2.11.8 - version: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) examples/solid/devtools: dependencies: '@tanstack/solid-devtools': specifier: ^0.7.7 - version: 0.7.33(csstype@3.2.3)(solid-js@1.9.13) + version: 0.7.33(solid-js@1.9.15) '@tanstack/solid-form': specifier: ^1.33.5 version: link:../../../packages/solid-form @@ -1399,17 +1437,17 @@ importers: version: link:../../../packages/solid-form-devtools solid-js: specifier: ^1.9.9 - version: 1.9.13 + version: 1.9.15 devDependencies: typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) vite-plugin-solid: specifier: ^2.11.8 - version: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) examples/solid/large-form: dependencies: @@ -1418,17 +1456,17 @@ importers: version: link:../../../packages/solid-form solid-js: specifier: ^1.9.9 - version: 1.9.13 + version: 1.9.15 devDependencies: typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) vite-plugin-solid: specifier: ^2.11.8 - version: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) examples/solid/multi-step-wizard: dependencies: @@ -1437,7 +1475,7 @@ importers: version: link:../../../packages/solid-form solid-js: specifier: ^1.9.9 - version: 1.9.13 + version: 1.9.15 zod: specifier: ^3.25.76 version: 3.25.76 @@ -1447,10 +1485,10 @@ importers: version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) vite-plugin-solid: specifier: ^2.11.8 - version: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) examples/solid/simple: dependencies: @@ -1459,17 +1497,17 @@ importers: version: link:../../../packages/solid-form solid-js: specifier: ^1.9.9 - version: 1.9.13 + version: 1.9.15 devDependencies: typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) vite-plugin-solid: specifier: ^2.11.8 - version: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) examples/solid/standard-schema: dependencies: @@ -1478,10 +1516,10 @@ importers: version: link:../../../packages/solid-form arktype: specifier: ^2.1.22 - version: 2.2.0 + version: 2.2.3 effect: specifier: ^3.17.14 - version: 3.21.2 + version: 3.22.2 react: specifier: 19.1.0 version: 19.1.0 @@ -1490,10 +1528,10 @@ importers: version: 19.1.0(react@19.1.0) solid-js: specifier: ^1.9.9 - version: 1.9.13 + version: 1.9.15 valibot: specifier: ^1.1.0 - version: 1.4.1(typescript@5.9.3) + version: 1.5.0(typescript@5.9.3) zod: specifier: ^3.25.76 version: 3.25.76 @@ -1503,10 +1541,10 @@ importers: version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) vite-plugin-solid: specifier: ^2.11.8 - version: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) examples/svelte/array: dependencies: @@ -1516,19 +1554,19 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(supports-color@8.1.1)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.1.1(supports-color@7.2.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) '@tsconfig/svelte': specifier: ^5.0.5 version: 5.0.8 svelte: specifier: ^5.39.4 - version: 5.55.9(@typescript-eslint/types@8.59.4) + version: 5.57.1(@typescript-eslint/types@8.70.0) typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/svelte/large-form: dependencies: @@ -1538,19 +1576,19 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(supports-color@8.1.1)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.1.1(supports-color@8.1.1)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) '@tsconfig/svelte': specifier: ^5.0.5 version: 5.0.8 svelte: specifier: ^5.39.4 - version: 5.55.9(@typescript-eslint/types@8.59.4) + version: 5.57.1(@typescript-eslint/types@8.70.0) typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/svelte/multi-step-wizard: dependencies: @@ -1563,19 +1601,19 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(supports-color@8.1.1)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.1.1(supports-color@7.2.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) '@tsconfig/svelte': specifier: ^5.0.5 version: 5.0.8 svelte: specifier: ^5.39.4 - version: 5.55.9(@typescript-eslint/types@8.59.4) + version: 5.57.1(@typescript-eslint/types@8.70.0) typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/svelte/simple: dependencies: @@ -1585,19 +1623,19 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(supports-color@8.1.1)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.1.1(supports-color@8.1.1)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) '@tsconfig/svelte': specifier: ^5.0.5 version: 5.0.8 svelte: specifier: ^5.39.4 - version: 5.55.9(@typescript-eslint/types@8.59.4) + version: 5.57.1(@typescript-eslint/types@8.70.0) typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/svelte/standard-schema: dependencies: @@ -1606,32 +1644,32 @@ importers: version: link:../../../packages/svelte-form arktype: specifier: ^2.1.22 - version: 2.2.0 + version: 2.2.3 effect: specifier: ^3.17.14 - version: 3.21.2 + version: 3.22.2 valibot: specifier: ^1.1.0 - version: 1.4.1(typescript@5.9.3) + version: 1.5.0(typescript@5.9.3) zod: specifier: ^3.25.76 version: 3.25.76 devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(supports-color@8.1.1)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.1.1(supports-color@8.1.1)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) '@tsconfig/svelte': specifier: ^5.0.5 version: 5.0.8 svelte: specifier: ^5.39.4 - version: 5.55.9(@typescript-eslint/types@8.59.4) + version: 5.57.1(@typescript-eslint/types@8.70.0) typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) examples/vue/array: dependencies: @@ -1640,17 +1678,17 @@ importers: version: link:../../../packages/vue-form vue: specifier: ^3.5.13 - version: 3.5.34(typescript@5.9.3) + version: 3.5.43(typescript@5.9.3) devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.9.3)) + version: 5.2.4(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(vue@3.5.43(typescript@5.9.3)) typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) vue-tsc: specifier: ^2.2.2 version: 2.2.12(typescript@5.9.3) @@ -1662,20 +1700,20 @@ importers: version: link:../../../packages/vue-form vue: specifier: ^3.5.13 - version: 3.5.34(typescript@5.9.3) + version: 3.5.43(typescript@5.9.3) zod: specifier: ^3.25.76 version: 3.25.76 devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.9.3)) + version: 5.2.4(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(vue@3.5.43(typescript@5.9.3)) typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) vue-tsc: specifier: ^2.2.2 version: 2.2.12(typescript@5.9.3) @@ -1687,17 +1725,17 @@ importers: version: link:../../../packages/vue-form vue: specifier: ^3.5.13 - version: 3.5.34(typescript@5.9.3) + version: 3.5.43(typescript@5.9.3) devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.9.3)) + version: 5.2.4(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(vue@3.5.43(typescript@5.9.3)) typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) vue-tsc: specifier: ^2.2.2 version: 2.2.12(typescript@5.9.3) @@ -1709,10 +1747,10 @@ importers: version: link:../../../packages/vue-form arktype: specifier: ^2.1.22 - version: 2.2.0 + version: 2.2.3 effect: specifier: ^3.17.14 - version: 3.21.2 + version: 3.22.2 react: specifier: 19.1.0 version: 19.1.0 @@ -1721,23 +1759,23 @@ importers: version: 19.1.0(react@19.1.0) valibot: specifier: ^1.1.0 - version: 1.4.1(typescript@5.9.3) + version: 1.5.0(typescript@5.9.3) vue: specifier: ^3.5.13 - version: 3.5.34(typescript@5.9.3) + version: 3.5.43(typescript@5.9.3) zod: specifier: ^3.25.76 version: 3.25.76 devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.9.3)) + version: 5.2.4(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(vue@3.5.43(typescript@5.9.3)) typescript: specifier: 5.9.3 version: 5.9.3 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) vue-tsc: specifier: ^2.2.2 version: 2.2.12(typescript@5.9.3) @@ -1746,7 +1784,7 @@ importers: dependencies: '@tanstack/angular-store': specifier: ^0.9.1 - version: 0.9.3(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 0.9.3(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) '@tanstack/form-core': specifier: workspace:* version: link:../form-core @@ -1756,40 +1794,40 @@ importers: devDependencies: '@analogjs/vite-plugin-angular': specifier: ^2.6.2 - version: 2.6.2(@angular-devkit/build-angular@21.2.12(825636156df100e32a721cab08b02a3e))(@angular/build@21.2.12(60b0737a044e59224c87543bc85cc8fb))(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 2.7.2(@angular-devkit/build-angular@21.2.24(6337ba4fee33a534f2aa2c2a6189ee8b))(@angular/build@21.2.24(4581913d0c7b8c3c22911f228bda569a))(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) '@analogjs/vitest-angular': specifier: ^2.6.2 - version: 2.6.2(@analogjs/vite-plugin-angular@2.6.2(@angular-devkit/build-angular@21.2.12(825636156df100e32a721cab08b02a3e))(@angular/build@21.2.12(60b0737a044e59224c87543bc85cc8fb))(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)))(@angular-devkit/architect@0.2102.12(chokidar@5.0.0))(@angular-devkit/schematics@21.2.12(chokidar@5.0.0))(vitest@3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@8.1.1))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@8.1.1)(terser@5.48.0)(yaml@2.9.0))(zone.js@0.15.1) + version: 2.7.2(@analogjs/vite-plugin-angular@2.7.2(@angular-devkit/build-angular@21.2.24(6337ba4fee33a534f2aa2c2a6189ee8b))(@angular/build@21.2.24(4581913d0c7b8c3c22911f228bda569a))(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(@angular-devkit/architect@0.2102.24(chokidar@5.0.0))(@angular-devkit/schematics@21.2.24(chokidar@5.0.0))(vitest@3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@8.1.1))(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1))(zone.js@0.15.1) '@angular/common': specifier: ^21.2.14 - version: 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + version: 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': specifier: ^21.2.14 - version: 21.2.14 + version: 21.2.23 '@angular/compiler-cli': specifier: ^21.2.14 - version: 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) + version: 21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3) '@angular/core': specifier: ^21.2.14 - version: 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) + version: 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/platform-browser': specifier: ^21.2.14 - version: 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-browser-dynamic': specifier: ^21.2.14 - version: 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))) + version: 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.2.23)(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))) '@testing-library/angular': specifier: ^19.3.0 - version: 19.3.0(3552bf3db4cf28d0cedfe8eb15d0ed21) + version: 19.5.0(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/router@21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@testing-library/dom@10.4.2) ng-packagr: specifier: ^21.2.3 - version: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) + version: 21.2.7(@angular/compiler-cli@21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3))(supports-color@8.1.1)(tslib@2.8.1)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(supports-color@8.1.1)(typescript@5.9.3)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.1.4(supports-color@8.1.1)(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) zone.js: specifier: 0.15.1 version: 0.15.1 @@ -1798,20 +1836,20 @@ importers: dependencies: '@tanstack/devtools-event-client': specifier: ^0.4.1 - version: 0.4.3 + version: 0.4.4 '@tanstack/pacer-lite': specifier: ^0.1.1 version: 0.1.1 '@tanstack/store': - specifier: ^0.11.0 - version: 0.11.0 + specifier: ^0.11.1 + version: 0.11.1 devDependencies: arktype: specifier: ^2.1.22 - version: 2.2.0 + version: 2.2.3 valibot: specifier: ^1.1.0 - version: 1.4.1(typescript@5.9.3) + version: 1.5.0(typescript@5.9.3) zod: specifier: ^3.25.76 version: 3.25.76 @@ -1820,10 +1858,10 @@ importers: dependencies: '@tanstack/devtools-ui': specifier: ^0.5.1 - version: 0.5.2(csstype@3.2.3)(solid-js@1.9.13) + version: 0.5.3(csstype@3.2.3)(solid-js@1.9.15) '@tanstack/devtools-utils': specifier: ^0.4.0 - version: 0.4.0(@types/react@19.2.17)(preact@10.29.2)(react@19.1.0)(solid-js@1.9.13)(vue@3.5.34(typescript@5.9.3)) + version: 0.4.0(@types/react@19.2.18)(preact@10.29.8)(react@19.1.0)(solid-js@1.9.15)(vue@3.5.43(typescript@5.9.3)) '@tanstack/form-core': specifier: workspace:* version: link:../form-core @@ -1832,26 +1870,26 @@ importers: version: 2.1.1 dayjs: specifier: ^1.11.18 - version: 1.11.20 + version: 1.11.23 goober: specifier: ^2.1.16 version: 2.1.19(csstype@3.2.3) devDependencies: rolldown-plugin-solid: specifier: ^0.2.1 - version: 0.2.1(rolldown@1.0.0-rc.17)(solid-js@1.9.13)(supports-color@8.1.1) + version: 0.2.1(rolldown@1.0.0-rc.17)(solid-js@1.9.15)(supports-color@8.1.1) solid-js: specifier: ^1.9.9 - version: 1.9.13 + version: 1.9.15 tsdown: specifier: ^0.21.1 - version: 0.21.10(oxc-resolver@11.19.1(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2))(publint@0.3.21)(typescript@5.9.3) + version: 0.21.10(oxc-resolver@11.24.2)(publint@0.3.24)(typescript@5.9.3) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) vite-plugin-solid: specifier: ^2.11.8 - version: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) packages/lit-form: dependencies: @@ -1866,6 +1904,49 @@ importers: specifier: ^3.3.1 version: 3.3.3 + packages/octane-form: + dependencies: + '@tanstack/form-core': + specifier: workspace:* + version: link:../form-core + '@tanstack/octane-store': + specifier: ^0.12.2 + version: 0.12.2(octane@0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))) + devDependencies: + '@octanejs/testing-library': + specifier: ^0.1.51 + version: 0.1.52(octane@0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))) + '@testing-library/jest-dom': + specifier: ^6.8.0 + version: 6.10.0(@testing-library/dom@10.4.2) + '@tsrx/eslint-plugin': + specifier: ^0.4.6 + version: 0.4.7(@tsrx/eslint-parser@0.4.7(@typescript-eslint/types@8.70.0)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1)))(@typescript-eslint/parser@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1)) + '@tsrx/typescript-plugin': + specifier: 0.4.6 + version: 0.4.6(octane@0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(typescript@5.9.3) + '@volar/language-core': + specifier: 2.4.28 + version: 2.4.28 + '@volar/typescript': + specifier: 2.4.28 + version: 2.4.28(typescript@5.9.3) + env-cmd: + specifier: ^11.0.0 + version: 11.0.0 + eslint: + specifier: 9.36.0 + version: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) + octane: + specifier: ^0.2.16 + version: 0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + ts-patch: + specifier: 3.3.0 + version: 3.3.0 + vitest: + specifier: ^3.2.4 + version: 3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@8.1.1))(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1) + packages/preact-form: dependencies: '@tanstack/form-core': @@ -1873,20 +1954,20 @@ importers: version: link:../form-core '@tanstack/preact-store': specifier: ^0.13.1 - version: 0.13.1(preact@10.29.2) + version: 0.13.2(preact@10.29.8) devDependencies: '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.5(@babel/core@7.29.7(supports-color@8.1.1))(preact@10.29.2)(rollup@4.60.4)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 2.10.6(@babel/core@7.29.7(supports-color@8.1.1))(preact@10.29.8)(rollup@4.63.4)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) '@testing-library/preact': specifier: ^3.2.4 - version: 3.2.4(preact@10.29.2) + version: 3.2.4(preact@10.29.8) preact: specifier: ^10.26.4 - version: 10.29.2 + version: 10.29.8 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) packages/react-form: dependencies: @@ -1894,18 +1975,21 @@ importers: specifier: workspace:* version: link:../form-core '@tanstack/react-store': - specifier: ^0.11.0 - version: 0.11.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^0.11.1 + version: 0.11.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) devDependencies: + '@testing-library/react': + specifier: ^16.3.0 + version: 16.3.3(@testing-library/dom@10.4.2)(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) eslint-plugin-react-compiler: specifier: 19.1.0-rc.2 version: 19.1.0-rc.2(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) @@ -1917,23 +2001,23 @@ importers: version: 19.1.0(react@19.1.0) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) packages/react-form-devtools: dependencies: '@tanstack/devtools-utils': specifier: ^0.4.0 - version: 0.4.0(@types/react@19.2.17)(preact@10.29.2)(react@19.1.0)(solid-js@1.9.13)(vue@3.5.34(typescript@5.9.3)) + version: 0.4.0(@types/react@19.2.18)(preact@10.29.8)(react@19.1.0)(solid-js@1.9.15)(vue@3.5.43(typescript@5.9.3)) '@tanstack/form-devtools': specifier: workspace:* version: link:../form-devtools devDependencies: '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) eslint-plugin-react-compiler: specifier: 19.1.0-rc.2 version: 19.1.0-rc.2(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) @@ -1942,7 +2026,7 @@ importers: version: 19.1.0 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) packages/react-form-nextjs: dependencies: @@ -1953,21 +2037,27 @@ importers: specifier: ^0.9.0 version: 0.9.0 devDependencies: + '@testing-library/react': + specifier: ^16.3.0 + version: 16.3.3(@testing-library/dom@10.4.2)(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) eslint-plugin-react-compiler: specifier: 19.1.0-rc.2 version: 19.1.0-rc.2(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) react: specifier: 19.1.0 version: 19.1.0 + react-dom: + specifier: 19.1.0 + version: 19.1.0(react@19.1.0) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) packages/react-form-remix: dependencies: @@ -1978,21 +2068,27 @@ importers: specifier: ^0.9.0 version: 0.9.0 devDependencies: + '@testing-library/react': + specifier: ^16.3.0 + version: 16.3.3(@testing-library/dom@10.4.2)(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) eslint-plugin-react-compiler: specifier: 19.1.0-rc.2 version: 19.1.0-rc.2(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) react: specifier: 19.1.0 version: 19.1.0 + react-dom: + specifier: 19.1.0 + version: 19.1.0(react@19.1.0) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) packages/react-form-start: dependencies: @@ -2004,20 +2100,23 @@ importers: version: 0.9.0 devalue: specifier: ^5.3.2 - version: 5.8.1 + version: 5.9.4 devDependencies: '@tanstack/react-start': specifier: ^1.168.27 - version: 1.168.27(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(supports-color@8.1.1)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15)) + version: 1.168.56(esbuild@0.28.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.63.4)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)) + '@testing-library/react': + specifier: ^16.3.0 + version: 16.3.3(@testing-library/dom@10.4.2)(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/react': specifier: ~19.2.0 - version: 19.2.17 + version: 19.2.18 '@types/react-dom': specifier: ^19.0.3 - version: 19.2.3(@types/react@19.2.17) + version: 19.3.0(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) eslint-plugin-react-compiler: specifier: 19.1.0-rc.2 version: 19.1.0-rc.2(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) @@ -2029,7 +2128,7 @@ importers: version: 19.1.0(react@19.1.0) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) packages/solid-form: dependencies: @@ -2037,34 +2136,37 @@ importers: specifier: workspace:* version: link:../form-core '@tanstack/solid-store': - specifier: ^0.11.0 - version: 0.11.0(solid-js@1.9.13) + specifier: ^0.11.1 + version: 0.11.1(solid-js@1.9.15) devDependencies: + '@solidjs/testing-library': + specifier: ^0.8.10 + version: 0.8.10(solid-js@1.9.15) solid-js: specifier: ^1.9.9 - version: 1.9.13 + version: 1.9.15 vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) vite-plugin-solid: specifier: ^2.11.8 - version: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) packages/solid-form-devtools: dependencies: '@tanstack/devtools-utils': specifier: ^0.4.0 - version: 0.4.0(@types/react@19.2.17)(preact@10.29.2)(react@19.1.0)(solid-js@1.9.13)(vue@3.5.34(typescript@5.9.3)) + version: 0.4.0(@types/react@19.2.18)(preact@10.29.8)(react@19.1.0)(solid-js@1.9.15)(vue@3.5.43(typescript@5.9.3)) '@tanstack/form-devtools': specifier: workspace:* version: link:../form-devtools solid-js: specifier: '>=1.9.7' - version: 1.9.13 + version: 1.9.15 devDependencies: vite-plugin-solid: specifier: ^2.11.8 - version: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) packages/svelte-form: dependencies: @@ -2073,23 +2175,23 @@ importers: version: link:../form-core '@tanstack/svelte-store': specifier: ^0.12.0 - version: 0.12.0(svelte@5.55.9(@typescript-eslint/types@8.59.4)) + version: 0.12.1(svelte@5.57.1(@typescript-eslint/types@8.70.0)) devDependencies: '@sveltejs/package': specifier: ^2.5.3 - version: 2.5.7(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@5.9.3) + version: 2.5.8(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(supports-color@8.1.1)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + version: 5.1.1(supports-color@8.1.1)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) '@testing-library/svelte': specifier: ^5.2.8 - version: 5.3.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(vitest@3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@8.1.1))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@8.1.1)(terser@5.48.0)(yaml@2.9.0)) + version: 5.4.2(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(vitest@3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@8.1.1))(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1)) svelte: specifier: ^5.39.4 - version: 5.55.9(@typescript-eslint/types@8.59.4) + version: 5.57.1(@typescript-eslint/types@8.70.0) svelte-check: specifier: ^4.3.1 - version: 4.4.8(picomatch@4.0.4)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@5.9.3) + version: 4.7.6(picomatch@4.0.7)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3) packages/vue-form: dependencies: @@ -2097,25 +2199,28 @@ importers: specifier: workspace:* version: link:../form-core '@tanstack/vue-store': - specifier: ^0.11.0 - version: 0.11.0(vue@3.5.34(typescript@5.9.3)) + specifier: ^0.11.1 + version: 0.11.1(vue@3.5.43(typescript@5.9.3)) devDependencies: + '@testing-library/vue': + specifier: ^8.1.0 + version: 8.1.0(@vue/compiler-dom@3.5.43)(@vue/compiler-sfc@3.5.43)(@vue/server-renderer@3.5.43)(vue@3.5.43(typescript@5.9.3)) '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.9.3)) + version: 5.2.4(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(vue@3.5.43(typescript@5.9.3)) vite: specifier: ^7.2.2 - version: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + version: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) vue: specifier: ^3.5.13 - version: 3.5.34(typescript@5.9.3) + version: 3.5.43(typescript@5.9.3) packages: - '@0no-co/graphql.web@1.2.0': - resolution: {integrity: sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==} + '@0no-co/graphql.web@1.3.4': + resolution: {integrity: sha512-imSwulOeDQodRy/olQmVEo2PiY6ntjkZ9eiGdw6lMYylh/tay9b7MusyJBmEnkL8GiKRKr6ltr+D42mY5bd8Bg==} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 peerDependenciesMeta: graphql: optional: true @@ -2186,8 +2291,8 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@analogjs/vite-plugin-angular@2.6.2': - resolution: {integrity: sha512-XbrdII0OpQcOfiyJ8N+FSlhF+Y+oEpLFkN35aJBh2QhhOrtHWX4XcqulcZwLJRU67eawfh/Bu6jJ3sSGLVEc4Q==} + '@analogjs/vite-plugin-angular@2.7.2': + resolution: {integrity: sha512-AmJCuz6D20XGnFPL/UWW+ZzeMDEHKb6+hefbV9HEbXlMoUZWqr2u8uxQqaUQgnDV3yl8HMazFnxWfTPrKLPPzA==} peerDependencies: '@angular-devkit/build-angular': ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0 '@angular/build': ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0 @@ -2200,8 +2305,8 @@ packages: vite: optional: true - '@analogjs/vitest-angular@2.6.2': - resolution: {integrity: sha512-aLyvyqv2bpgNXDhWwR5M974RVuF2TFfFfFIn2OuwRO7hf+w60v/GaJxvbFob8f7VJgztvoVGgDhWpu2Qon/dmg==} + '@analogjs/vitest-angular@2.7.2': + resolution: {integrity: sha512-S4wb0EXrm6Yi2YBsN707cH9Sr8rrXyAw0HFvEmaZwZpk1yi9n5r5vHl1VWXXoVdT5ikWcmcdZgjPgcpYOhiy7A==} peerDependencies: '@analogjs/vite-plugin-angular': '*' '@angular-devkit/architect': '>=0.1700.0 < 0.2300.0 || >=0.2200.0 < 0.2300.0' @@ -2212,13 +2317,13 @@ packages: zone.js: optional: true - '@angular-devkit/architect@0.2102.12': - resolution: {integrity: sha512-w9FSMHYeeHkk0kRSAOCvNqEVyOHqpC1SUf3iN7tDnXBOA0dtc6JYvJU7O4joiwf7wMPZDK8LKc/6eu8/Tx87Fw==} + '@angular-devkit/architect@0.2102.24': + resolution: {integrity: sha512-U/d5l/1rfrNSlbGjMTunyzwxh+2vJce3y0r0tIx/NOFZbnYhq+gx+e33mR6oxI4yk/1Jks67ltvstrJuBbVbYg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true - '@angular-devkit/build-angular@21.2.12': - resolution: {integrity: sha512-gM1eE1Y9zd7kv/BQ0Hx237W13jp6pOajzXvm5q1TabtHq/NlVoM27et20IWNpO1qOEYVO/eCY1E5X1uoI6CU9A==} + '@angular-devkit/build-angular@21.2.24': + resolution: {integrity: sha512-qJ7ZrKsa08rXkYp5eeVQtepdl+t81Tfl47USit1Uk3VmwOPYoiH/6O0AIemgX2nlqN6FfKk0nVANJZBLcje0Dg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler-cli': ^21.0.0 @@ -2227,7 +2332,7 @@ packages: '@angular/platform-browser': ^21.0.0 '@angular/platform-server': ^21.0.0 '@angular/service-worker': ^21.0.0 - '@angular/ssr': ^21.2.12 + '@angular/ssr': ^21.2.24 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^30.2.0 @@ -2267,15 +2372,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2102.12': - resolution: {integrity: sha512-gYsEKFntBLDE4ovEE/SOsc6HcahKq5Qs/sRfktrNAIpbvjBpwpngQMz23jNSvGhnJ0EzykKoOuK/ErimEgupKg==} + '@angular-devkit/build-webpack@0.2102.24': + resolution: {integrity: sha512-nXW4KRUM62J4+Y8Khb2PNEwK/b2hQ/2gwcOaeAKm+V/qQ/B2w/l8PjpJP21yLdd3jRZDFTvI6ASiq+P7b9QIkQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: webpack: ^5.30.0 webpack-dev-server: ^5.0.2 - '@angular-devkit/core@21.2.12': - resolution: {integrity: sha512-nXms0jVWwHOJK+z6vHvhw7HYFBelxh2gEnkij0OQMABXZN5hoUlTD0DDP1lYR7hQNi8Yb2Ar0UN9ihyUFVM5Kg==} + '@angular-devkit/core@21.2.24': + resolution: {integrity: sha512-QLYLd6OcfQS5qWTlzG1/d8lFTcJDFcsY6sOaGVtrruYiDxrbeM2iJttoIoKzvbNPROFyo3fANVQJOVhytpXWPg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: chokidar: ^5.0.0 @@ -2283,19 +2388,19 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@21.2.12': - resolution: {integrity: sha512-29xe6C9nwHejV9zBcu0js7NmzLWuCFzBGBTmL6eD4JN1NcxEZ/nO1JuaGINjPjzb/UDXPZIqEwHbnFNcGS5v1A==} + '@angular-devkit/schematics@21.2.24': + resolution: {integrity: sha512-mLOme2vfbLrHFmMyM6ybPuGCnCvPiemXWdHnptY2Q7Hzum72DabfgtTNsrMcI2F5zrQV2DDQunNjC5cXqtq4/w==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular/animations@21.2.14': - resolution: {integrity: sha512-9WLnsJE0xqtd1rVtHMvsAUxFy3OdPks4bdmUIqyw23X/je7ytUALAGWNadffcZBwRpa1A6TUnLr9X4+Draz3kw==} + '@angular/animations@21.2.23': + resolution: {integrity: sha512-hnDKa96XdTogqJRe91S/Pjr8Wgbgf9/7OszKW8MbMZE1Vy7qEmaA1JD86iSNp9QHZ9U/fPX7Wbpq2Zoa5dS2zg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} deprecated: '@angular/animations is deprecated. Use `animate.enter` and `animate.leave` instead. For more information see: https://v22.angular.dev/guide/animations.' peerDependencies: - '@angular/core': 21.2.14 + '@angular/core': 21.2.23 - '@angular/build@21.2.12': - resolution: {integrity: sha512-zYfo21RuldDWXnshuPfWYtmh5ltlO9+XFHpNObdIInQTFxKD6grLNVNOblFFpi+oIIm4Km+CGSXvBHs/aH0ufA==} + '@angular/build@21.2.24': + resolution: {integrity: sha512-NurM2W7Q/lCGonkYgSNNxGrh9AYH3LksekYRVxl0KxVKa8Z5x6oMYlLfyI4Lv9Q4C1/x1SXv3xNxgYu/nIW4vA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler': ^21.0.0 @@ -2305,7 +2410,7 @@ packages: '@angular/platform-browser': ^21.0.0 '@angular/platform-server': ^21.0.0 '@angular/service-worker': ^21.0.0 - '@angular/ssr': ^21.2.12 + '@angular/ssr': ^21.2.24 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^21.0.0 @@ -2340,38 +2445,38 @@ packages: vitest: optional: true - '@angular/cli@21.2.12': - resolution: {integrity: sha512-oLEL1C1fI39b1eQo5f2cyQhQfE+QMv7dm8z2MmxbP7YR7jAdQPVfGU8CXECR5g7mrYi9WgvIRKB+9Oeq2aH6Jw==} + '@angular/cli@21.2.24': + resolution: {integrity: sha512-lx8baI3gssBv+xuwEf5wvAoBi7XSIB1RRuAmSnuAO2E4CAlJmU4eiVhKxd/haXvONH6peYxFGH2N6mSrkkHfIQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true - '@angular/common@21.2.14': - resolution: {integrity: sha512-J6K7cE7uKOKmg4+sxLeGfsmaYDjP5l1XCiMMI0WPT0t68uxLk8g3MzV5Trqfb6ZnRxWcfp9c4c+XxAvMBB7ymA==} + '@angular/common@21.2.23': + resolution: {integrity: sha512-IVhHD4w/+v/S7YAIyF3v20u3zpOj7Y8EuL9xxPyfyxlfz5zPpJFJ/GaZb0Y5sMANCFLVwQj3VcQNWgYtd7W2yA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 21.2.14 + '@angular/core': 21.2.23 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@21.2.14': - resolution: {integrity: sha512-h+WQfPKFxaDfDhMqUUdOQ1TsDMccav8kLFERmKTRfD4MNOczSMpOMyeXJHCL0Rq4I8WDQvaBJGMG7DXRDefSog==} + '@angular/compiler-cli@21.2.23': + resolution: {integrity: sha512-/dtKObY5fvBuNMxLFe9jtnsMwaDV2zm+5sKP2EIWtDO0N18WlZSOFCTL6Tkz3LHE/4y+TjW46POu/rz0q/Cw6A==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 21.2.14 + '@angular/compiler': 21.2.23 typescript: '>=5.9 <6.1' peerDependenciesMeta: typescript: optional: true - '@angular/compiler@21.2.14': - resolution: {integrity: sha512-8mqgwRYfn2Z1vg/5YVt60dDBattnZL45nNJd2vTMwAiDTzhWhgKgRWKOeVL0aj2JqHeHiwuIlrLnz46acJMulQ==} + '@angular/compiler@21.2.23': + resolution: {integrity: sha512-7HUdsXQKGPqKiRhwsbMGVqtMEVGT4qf5NKpLDmY4kLMeJhjRKchY/4cljEqUERvvXUid6GTWK+/tSJdIcFNnEw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@21.2.14': - resolution: {integrity: sha512-Z1Ivjh7L2lT//8LA7vQ3tj7Rg6wl2XRA5kPSAukgn8u0Yu0XxG8NE8KG0Eypb3v9CEcbwATwpgnxzbJFZ8TFcw==} + '@angular/core@21.2.23': + resolution: {integrity: sha512-O8i8ntukAhg3nM9y9A/o1eXVFnFk5/VltA2gQrDuWTpIPLyWmyZW+Zb65UBJI14tGOTt99Y3l3teIuF36mLBgQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 21.2.14 + '@angular/compiler': 21.2.23 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 || ~0.16.0 peerDependenciesMeta: @@ -2380,50 +2485,50 @@ packages: zone.js: optional: true - '@angular/forms@21.2.14': - resolution: {integrity: sha512-HQYIybyMt0CrI31rW6vXbiDsSM2DDtTcOVeT/nWDRNCoqBrREDg8rVsm2Y+fUMsiQVJNa6dCXPwvYhjzJ4r7ug==} + '@angular/forms@21.2.23': + resolution: {integrity: sha512-l0PyfoCO6MflgQwL4spawbiTqzSrlOWUn1BUcbGuBU33lbgTBrR9dogfT8sQ54ZO/6gcWkToxi0WbvugSfzQtQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 21.2.14 - '@angular/core': 21.2.14 - '@angular/platform-browser': 21.2.14 + '@angular/common': 21.2.23 + '@angular/core': 21.2.23 + '@angular/platform-browser': 21.2.23 rxjs: ^6.5.3 || ^7.4.0 - '@angular/platform-browser-dynamic@21.2.14': - resolution: {integrity: sha512-m5U4zX8JFnxTAIGpsBXIAyefSmYqdORY/OfHC0aMmZovuFCbXXIYqYRQDBB7+YVNpSDSHllCrKEZFu/CC6dq3g==} + '@angular/platform-browser-dynamic@21.2.23': + resolution: {integrity: sha512-6Hhw2nOXuAag8A+CmXuiLNY/5brcI+dzKdMKufdpoPrdF/QCICLbSqHUaL4b4bdNGCYezuFbGoBsxGAKWgBlDg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} deprecated: '@angular/platform-browser-dynamic is deprecated. Use `@angular/platform-browser` instead.' peerDependencies: - '@angular/common': 21.2.14 - '@angular/compiler': 21.2.14 - '@angular/core': 21.2.14 - '@angular/platform-browser': 21.2.14 + '@angular/common': 21.2.23 + '@angular/compiler': 21.2.23 + '@angular/core': 21.2.23 + '@angular/platform-browser': 21.2.23 - '@angular/platform-browser@21.2.14': - resolution: {integrity: sha512-34tBwxh86yN2YifBDhCesm6N+nn9WcbuXjRwfo0mTme15OZ/zt56yw7v1mcK3UFLegIIALtsIgpXXrPWWQoKkA==} + '@angular/platform-browser@21.2.23': + resolution: {integrity: sha512-3/yTsYroz6xjH1sqxJwOcBdLEGU4QLouu5z1ja/JN7jrPUfRHj2YBfVS+ayWLEnMt9CfuyjZxoVPXHtWuZ3Gog==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 21.2.14 - '@angular/common': 21.2.14 - '@angular/core': 21.2.14 + '@angular/animations': 21.2.23 + '@angular/common': 21.2.23 + '@angular/core': 21.2.23 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/router@21.2.14': - resolution: {integrity: sha512-Yo3LdgcqkfMu2/Ycl8o/4QjCBqZhtA+a7B8JVdW5cWdrpFTxKCOrzm+YRUMuIFmH5nzSv9oGnUuz64uk1+7r5Q==} + '@angular/router@21.2.23': + resolution: {integrity: sha512-cNwTd1XvCXsFZqvn4WFPv7VUci7PJzlK9Ex/git3oEyS9318sJjX7sw2IeTpvwIg01BZtF1xBvWgMTHgcXvzIA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 21.2.14 - '@angular/core': 21.2.14 - '@angular/platform-browser': 21.2.14 + '@angular/common': 21.2.23 + '@angular/core': 21.2.23 + '@angular/platform-browser': 21.2.23 rxjs: ^6.5.3 || ^7.4.0 - '@ark/schema@0.56.0': - resolution: {integrity: sha512-ECg3hox/6Z/nLajxXqNhgPtNdHWC9zNsDyskwO28WinoFEnWow4IsERNz9AnXRhTZJnYIlAJ4uGn3nlLk65vZA==} + '@ark/schema@0.56.2': + resolution: {integrity: sha512-Qx4D2JFbBWpntiHZaTv7bGG4H/M2rigiknezKg/WVyDSaLdE4YCcWAOoFB7pjjDqHbbV2OqRfntm1nnXvwMexg==} - '@ark/util@0.56.0': - resolution: {integrity: sha512-BghfRC8b9pNs3vBoDJhcta0/c1J1rsoS1+HgVUreMFPdhz/CRAKReAu57YEllNaSy98rWAdY1gE+gFup7OXpgA==} + '@ark/util@0.56.2': + resolution: {integrity: sha512-9kU2sUE38FZEGG7l3hamYMBieLYEJh2L1mrYD2eXpT+78EnQSV1bhjxJhnxGBMSTbtwpBSDNSK+K60WvaI/DTQ==} '@asamuzakjp/css-color@4.1.2': resolution: {integrity: sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==} @@ -2437,10 +2542,6 @@ packages: '@babel/code-frame@7.10.4': resolution: {integrity: sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==} - '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} - engines: {node: '>=6.9.0'} - '@babel/code-frame@7.29.7': resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} engines: {node: '>=6.9.0'} @@ -2449,10 +2550,6 @@ packages: resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} engines: {node: '>=6.9.0'} - '@babel/core@7.29.0': - resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} - engines: {node: '>=6.9.0'} - '@babel/core@7.29.7': resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} engines: {node: '>=6.9.0'} @@ -2461,8 +2558,8 @@ packages: resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} engines: {node: '>=6.9.0'} - '@babel/generator@7.29.7': - resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} + '@babel/generator@7.29.8': + resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==} engines: {node: '>=6.9.0'} '@babel/generator@8.0.0-rc.3': @@ -2552,8 +2649,8 @@ packages: resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@8.0.0-rc.6': - resolution: {integrity: sha512-BCkFy+zN6kXQed3YOT7aJl93NfDSzQc3pBfsvTVPs9gU9X3V0aefEF5kwBT0E+mDWH9QgKaZstYUQN9VdQZT4g==} + '@babel/helper-string-parser@8.0.6': + resolution: {integrity: sha512-+6HYEBnsDRZHJtUTAEfMQd0zMDqdFHS7C+5vAsEZqBUr3vEMWOWlHJ0Jz1gS8jJIlCvLsuA6ivmeoqzH936YcA==} engines: {node: ^22.18.0 || >=24.11.0} '@babel/helper-validator-identifier@7.29.7': @@ -2564,6 +2661,10 @@ packages: resolution: {integrity: sha512-8AWCJ2VJJyDFlGBep5GpaaQ9AAaE/FjAcrqI7jyssYhtL7WGV0DOKpJsQqM037xDbpRLHXsY8TwU7zDma7coOw==} engines: {node: ^20.19.0 || >=22.12.0} + '@babel/helper-validator-identifier@8.0.6': + resolution: {integrity: sha512-HYx0YmuchRxRSpnjvcNffnPS8DCauKNmnumIuHG3jnQAVewRA7kfJGwF13ayEpSZs7s4R/oBH4eppuXcAQd5JQ==} + engines: {node: ^22.18.0 || >=24.11.0} + '@babel/helper-validator-option@7.29.7': resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} engines: {node: '>=6.9.0'} @@ -2580,8 +2681,8 @@ packages: resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.7': - resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + '@babel/parser@7.29.9': + resolution: {integrity: sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==} engines: {node: '>=6.0.0'} hasBin: true @@ -2590,6 +2691,11 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + '@babel/parser@8.0.6': + resolution: {integrity: sha512-LpGDIYJAzc3Y3PT9x+FxBrGYu2PlWxLmyN7SwPTzaX0LSwEmFJBsRnPBqmaXF2r1v+Zhz6lNiEJ+7yKtM5+Ugg==} + engines: {node: ^22.18.0 || >=24.11.0} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7': resolution: {integrity: sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==} engines: {node: '>=6.9.0'} @@ -2939,8 +3045,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.29.7': - resolution: {integrity: sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==} + '@babel/plugin-transform-modules-systemjs@7.29.8': + resolution: {integrity: sha512-6iSnEK0zlkLKU4heofK/AdmRD4e2SHVpJMtrwnTCzhnaM98ria4rTrOXBBi45BTTYnJtO8txnPsX4fChYXkmeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3059,8 +3165,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.29.7': - resolution: {integrity: sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==} + '@babel/plugin-transform-regenerator@7.29.8': + resolution: {integrity: sha512-0UpIXPtdDtMXfnV2OJAVMLpj3H/92vmkA6lpSRakmycJvj3VUy6Xs1dM8tXRugupykr5WB+LpiVl0J8LMVg2mg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3095,8 +3201,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.29.7': - resolution: {integrity: sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==} + '@babel/plugin-transform-spread@7.29.8': + resolution: {integrity: sha512-4S9ksMGVWUshvgK0mKfvZky7leuG5/uoFVwMpAomJ8bMoDJiNHRVmc1EglwW/CmGVSqqWpEbXm9FmbRit22qoA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3119,8 +3225,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.29.7': - resolution: {integrity: sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==} + '@babel/plugin-transform-typescript@7.29.9': + resolution: {integrity: sha512-FFwIwzU+7SCOuxxV4YtJql6T9981ZVTm+FHO5GhVsRqCTdy0WwrEZh3l42ARpXruJUDGOptdduHW6Zr7pNPLNg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3184,18 +3290,22 @@ packages: resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.29.7': - resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} + '@babel/traverse@7.29.8': + resolution: {integrity: sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==} engines: {node: '>=6.9.0'} - '@babel/types@7.29.7': - resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + '@babel/types@7.29.8': + resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} engines: {node: '>=6.9.0'} '@babel/types@8.0.0-rc.3': resolution: {integrity: sha512-mOm5ZrYmphGfqVWoH5YYMTITb3cDXsFgmvFlvkvWDMsR9X8RFnt7a0Wb6yNIdoFsiMO9WjYLq+U/FMtqIYAF8Q==} engines: {node: ^20.19.0 || >=22.12.0} + '@babel/types@8.0.6': + resolution: {integrity: sha512-c+xgSWboV2pdwXP67BUWDVRHi2BO5Q3KwxyFVs7taVTY+fsK47/L51ZXQoV9rozHJDNHvJ4v4WEsI/IlxV2l2A==} + engines: {node: ^22.18.0 || >=24.11.0} + '@changesets/apply-release-plan@8.1.1': resolution: {integrity: sha512-nk2Hbq3M9NeHMdaIRBDvawKrQJzXB9sGyBUE5yWnIKtvdcNCPj75zBekJYr0gTT2ecJH3eFeTrc8eisPImcv0Q==} engines: {node: ^22.11 || ^24 || >=26} @@ -3281,19 +3391,28 @@ packages: resolution: {integrity: sha512-dlT1m5e/0yUL0kRNcQn7yGLVThkgbB0Ga/1AmfDDC/8ik6AIiSf2QLQO2zPYvefsHP0aFgxO93cVLCCfDp7kzQ==} engines: {node: '>= 20.12.0'} - '@csstools/color-helpers@6.0.2': - resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} + '@commander-js/extra-typings@13.1.0': + resolution: {integrity: sha512-q5P52BYb1hwVWE6dtID7VvuJWrlfbCv4klj7BjUUOqMz4jbSZD4C9fJ9lRjL2jnBGTg+gDDlaXN51rkWcLk4fg==} + peerDependencies: + commander: ~13.1.0 + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@csstools/color-helpers@6.1.1': + resolution: {integrity: sha512-gLNsunvwf3mCi5u5o46/Z/JcJMnhbHSaZ69rkgPzNM3J4s8hWwpPUQB6/tt0EDFyCiWzxANlx+2LJwpYj4zS1w==} engines: {node: '>=20.19.0'} - '@csstools/css-calc@3.2.1': - resolution: {integrity: sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==} + '@csstools/css-calc@3.4.0': + resolution: {integrity: sha512-XQKj5B7QiZcHiegCOCAzcAOJdhGgWOHbbu62h5e5mkHnn8lWcfiJhllkqWmxu5zWR9jucPHuo1iTB56P033hcg==} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-color-parser@4.1.1': - resolution: {integrity: sha512-eZ5XOtyhK+mggRafYUWzA0tvaYOFgdY8AkgQiCJF9qNAePnUo/zmsqqYubBBb3sQ8uNUaSKTY9s9klfRaAXL0g==} + '@csstools/css-color-parser@4.2.3': + resolution: {integrity: sha512-y4LpL+lmpuyKDiEFq2PnZUVFdAjsoB/qQJod79yLNokXyW7jewi+/WJ69EfItj8A2unWtxXnGjw6LYXgXu5ZjA==} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 @@ -3305,16 +3424,16 @@ packages: peerDependencies: '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.1.4': - resolution: {integrity: sha512-wgsqt92b7C7tQhIdPNxj0n9zuUbQlvAuI1exyzeNrOKOi62SD7ren8zqszmpVREjAOqg8cD2FqYhQfAuKjk4sw==} + '@csstools/css-syntax-patches-for-csstree@1.1.14': + resolution: {integrity: sha512-HpbVXyrofRXpHpgkNIjU/3EWR4WJvOkO3emNK/L6X/mTJU7bGUI3AkkpoTNXznQLp0KRjLHELTGeKI5dIkI9JQ==} peerDependencies: css-tree: ^3.2.1 peerDependenciesMeta: css-tree: optional: true - '@csstools/css-tokenizer@4.0.0': - resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} + '@csstools/css-tokenizer@4.0.1': + resolution: {integrity: sha512-bPlN9S9O1A0euCpEWE4qnvB5YDuyYVsUTrxSgmAM1Is0j4tICHoVyOVAXfWMP/kS9ZrjvyIXWV2PmomiAXXqOw==} engines: {node: '>=20.19.0'} '@discoveryjs/json-ext@0.6.3': @@ -3340,6 +3459,9 @@ packages: '@emnapi/runtime@1.11.2': resolution: {integrity: sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==} + '@emnapi/runtime@1.11.3': + resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} + '@emnapi/runtime@1.4.5': resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} @@ -3412,14 +3534,14 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.3': - resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + '@esbuild/aix-ppc64@0.28.1': + resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.7': - resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} + '@esbuild/aix-ppc64@0.28.2': + resolution: {integrity: sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -3436,14 +3558,14 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.3': - resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + '@esbuild/android-arm64@0.28.1': + resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.7': - resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} + '@esbuild/android-arm64@0.28.2': + resolution: {integrity: sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -3460,14 +3582,14 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.3': - resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + '@esbuild/android-arm@0.28.1': + resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.7': - resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} + '@esbuild/android-arm@0.28.2': + resolution: {integrity: sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -3484,14 +3606,14 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.3': - resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + '@esbuild/android-x64@0.28.1': + resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.7': - resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} + '@esbuild/android-x64@0.28.2': + resolution: {integrity: sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -3508,14 +3630,14 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.3': - resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + '@esbuild/darwin-arm64@0.28.1': + resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.7': - resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} + '@esbuild/darwin-arm64@0.28.2': + resolution: {integrity: sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -3532,14 +3654,14 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.3': - resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + '@esbuild/darwin-x64@0.28.1': + resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.7': - resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} + '@esbuild/darwin-x64@0.28.2': + resolution: {integrity: sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -3556,14 +3678,14 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.3': - resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + '@esbuild/freebsd-arm64@0.28.1': + resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.7': - resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} + '@esbuild/freebsd-arm64@0.28.2': + resolution: {integrity: sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -3580,14 +3702,14 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.3': - resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} + '@esbuild/freebsd-x64@0.28.1': + resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.7': - resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} + '@esbuild/freebsd-x64@0.28.2': + resolution: {integrity: sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -3604,14 +3726,14 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.3': - resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} + '@esbuild/linux-arm64@0.28.1': + resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.7': - resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} + '@esbuild/linux-arm64@0.28.2': + resolution: {integrity: sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -3628,14 +3750,14 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.3': - resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} + '@esbuild/linux-arm@0.28.1': + resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.7': - resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} + '@esbuild/linux-arm@0.28.2': + resolution: {integrity: sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -3652,14 +3774,14 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.3': - resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} + '@esbuild/linux-ia32@0.28.1': + resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.7': - resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} + '@esbuild/linux-ia32@0.28.2': + resolution: {integrity: sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -3676,14 +3798,14 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.3': - resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} + '@esbuild/linux-loong64@0.28.1': + resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.7': - resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} + '@esbuild/linux-loong64@0.28.2': + resolution: {integrity: sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -3700,14 +3822,14 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.3': - resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} + '@esbuild/linux-mips64el@0.28.1': + resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.7': - resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} + '@esbuild/linux-mips64el@0.28.2': + resolution: {integrity: sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -3724,14 +3846,14 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.3': - resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} + '@esbuild/linux-ppc64@0.28.1': + resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.7': - resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} + '@esbuild/linux-ppc64@0.28.2': + resolution: {integrity: sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -3748,14 +3870,14 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.3': - resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} + '@esbuild/linux-riscv64@0.28.1': + resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.7': - resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} + '@esbuild/linux-riscv64@0.28.2': + resolution: {integrity: sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -3772,14 +3894,14 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.3': - resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} + '@esbuild/linux-s390x@0.28.1': + resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.7': - resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} + '@esbuild/linux-s390x@0.28.2': + resolution: {integrity: sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -3796,26 +3918,26 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.3': - resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} + '@esbuild/linux-x64@0.28.1': + resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.7': - resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} + '@esbuild/linux-x64@0.28.2': + resolution: {integrity: sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.27.3': - resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} + '@esbuild/netbsd-arm64@0.28.1': + resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.7': - resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} + '@esbuild/netbsd-arm64@0.28.2': + resolution: {integrity: sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -3832,26 +3954,26 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.3': - resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} + '@esbuild/netbsd-x64@0.28.1': + resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.7': - resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} + '@esbuild/netbsd-x64@0.28.2': + resolution: {integrity: sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.27.3': - resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} + '@esbuild/openbsd-arm64@0.28.1': + resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.7': - resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} + '@esbuild/openbsd-arm64@0.28.2': + resolution: {integrity: sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -3868,26 +3990,26 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.3': - resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} + '@esbuild/openbsd-x64@0.28.1': + resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.7': - resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} + '@esbuild/openbsd-x64@0.28.2': + resolution: {integrity: sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.27.3': - resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} + '@esbuild/openharmony-arm64@0.28.1': + resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.7': - resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} + '@esbuild/openharmony-arm64@0.28.2': + resolution: {integrity: sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -3904,14 +4026,14 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.3': - resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} + '@esbuild/sunos-x64@0.28.1': + resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.7': - resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} + '@esbuild/sunos-x64@0.28.2': + resolution: {integrity: sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -3928,14 +4050,14 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.3': - resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} + '@esbuild/win32-arm64@0.28.1': + resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.7': - resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} + '@esbuild/win32-arm64@0.28.2': + resolution: {integrity: sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -3952,14 +4074,14 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.3': - resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} + '@esbuild/win32-ia32@0.28.1': + resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.7': - resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} + '@esbuild/win32-ia32@0.28.2': + resolution: {integrity: sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -3976,20 +4098,20 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.3': - resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} + '@esbuild/win32-x64@0.28.1': + resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.7': - resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} + '@esbuild/win32-x64@0.28.2': + resolution: {integrity: sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.9.1': - resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + '@eslint-community/eslint-utils@4.10.1': + resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -4044,16 +4166,16 @@ packages: resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.3.5': - resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==} + '@eslint/eslintrc@3.3.7': + resolution: {integrity: sha512-F42g89Qd5oAWtp0k0nnSrjziAKza7w8SVT4mStc18LZMaRb4J1HQAHLCalEtDCxrTuksx7NU9qsmeLwpOfPqWw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/js@9.36.0': resolution: {integrity: sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.39.4': - resolution: {integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==} + '@eslint/js@9.39.5': + resolution: {integrity: sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.7': @@ -4073,8 +4195,8 @@ packages: '@noble/hashes': optional: true - '@expo/cli@54.0.24': - resolution: {integrity: sha512-5xse1bEgnVUBhOrtttc6xTNJVvjyTRavpzuF0/0nuj+312vfSbk7EiRbG+xJ2pW/iZxnhLPJkFCrPYG0nmheAQ==} + '@expo/cli@54.0.27': + resolution: {integrity: sha512-BxKOr6e8wmUwhGSyEVKY+CHWgS3Cre9ibgx1QWcdCenKTVKAz62qGmYL51q0lCcKg6vQY+4Usw9RK5Il4ZFaIA==} hasBin: true peerDependencies: expo: '*' @@ -4089,14 +4211,14 @@ packages: '@expo/code-signing-certificates@0.0.6': resolution: {integrity: sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w==} - '@expo/config-plugins@54.0.4': - resolution: {integrity: sha512-g2yXGICdoOw5i3LkQSDxl2Q5AlQCrG7oniu0pCPPO+UxGb7He4AFqSvPSy8HpRUj55io17hT62FTjYRD+d6j3Q==} + '@expo/config-plugins@54.0.5': + resolution: {integrity: sha512-aWQ3sViNRoQWw6So4A2qhWCt24CuGBK6MrRHI1AG+V6/NQAjIZCHaSvcXK2gXKpmisRhTSUWaKPIgLJQFB+AeQ==} '@expo/config-types@54.0.10': resolution: {integrity: sha512-/J16SC2an1LdtCZ67xhSkGXpALYUVUNyZws7v+PVsFZxClYehDSoKLqyRaGkpHlYrCc08bS0RF5E0JV6g50psA==} - '@expo/config@12.0.13': - resolution: {integrity: sha512-Cu52arBa4vSaupIWsF0h7F/Cg//N374nYb7HAxV0I4KceKA7x2UXpYaHOL7EEYYvp7tZdThBjvGpVmr8ScIvaQ==} + '@expo/config@12.0.14': + resolution: {integrity: sha512-3dfbBd9LnPDgyylhCgkOsaG8Adg52uOVOTQYH5lf23a/t8M5eQpXKCvzUarrf62B78057n2NnkiofK9TfPgvzw==} '@expo/devcert@1.2.1': resolution: {integrity: sha512-qC4eaxmKMTmJC2ahwyui6ud8f3W60Ss7pMkpBq40Hu3zyiAaugPXnZ24145U7K36qO9UHdZUVxsCvIpz2RYYCA==} @@ -4112,24 +4234,27 @@ packages: react-native: optional: true - '@expo/env@2.0.11': - resolution: {integrity: sha512-xV+ps6YCW7XIPVUwFVCRN2nox09dnRwy8uIjwHWTODu0zFw4kp4omnVkl0OOjuu2XOe7tdgAHxikrkJt9xB/7Q==} + '@expo/env@2.0.12': + resolution: {integrity: sha512-wVfzeBGlUohZG5kS8QCqXurpuWZFJEkBB1wXCifai3EZ/Llcg/VMTiUCpAgHImD3lI7GIU3V1uI64c04XIo98Q==} '@expo/fingerprint@0.15.5': resolution: {integrity: sha512-mdVoAMcux1WlM6kd1RoWiHRNqKqS+J6mKmWQ/BKgeh937S/fcW58EE68O6nc4KDXtWi3PBeNHskOFcgyIuD4hw==} hasBin: true - '@expo/image-utils@0.8.14': - resolution: {integrity: sha512-5Sn+jG4Cw+shC2wDMXoqSAJnvERbiwzHn05FpWtD5IBflfTIs5gUmjzwiGVyjOdlMSQhgRrw/AymPbmO9h9mpQ==} + '@expo/image-utils@0.8.17': + resolution: {integrity: sha512-1eVrX6FFkPNl9DJNiw3Gjsf6PtG7HttbapEVvcROVrA9PCMikujOJWWHDYKGptmKoVIIVajFZE8UHGHUb3mPug==} - '@expo/json-file@10.0.15': - resolution: {integrity: sha512-xLtsy1820Rf2myhhIc7WmfoUg5cWEJB9tEylhgGhRF/acYGuUXUVkKHYoHY31GbYf6CIZNvipTFxuvWRpVlXTw==} + '@expo/json-file@10.0.16': + resolution: {integrity: sha512-fcVkWEj+hLuP2yt5W0aw6LmDRqSPWDLUSxOMcmFeV+algmIF59sQVKCwB9btjQLd4V6x9N0pISkQEkBubUHrCw==} '@expo/json-file@10.2.0': resolution: {integrity: sha512-S6XzKe3R9GQeHiUPXc3xJjOv2VJhOEwFYf7xdC2z2cUqt3kZJ9mSO877sNQloVdnW/SUCtPY3bexlM7nwq+CAQ==} - '@expo/metro-config@54.0.15': - resolution: {integrity: sha512-SqIya4VZ9KHM1S9g+xR0A+QKw1Tfs7Gacx6bQNJ98vs4+O7I5+QP5mHZIB0QSZLUV8opiXebHYTiTu+0OAsIUw==} + '@expo/json-file@11.0.1': + resolution: {integrity: sha512-zxHWj4MKKMAL29ZQSY/Fssx4Thluk40JmuGNaeS078wy/NhlFhnVi+rHHunulE3xJAJ0CM73m8VK2+GkF9eRwQ==} + + '@expo/metro-config@54.0.17': + resolution: {integrity: sha512-PQFgQCZGY0DffZUvBzJttDPreZfHrQakaBlKjnvOUMNXbDna+TYmg1IFZuIDUYJezLcdp+TvVFTLjNi1+mqaVw==} peerDependencies: expo: '*' peerDependenciesMeta: @@ -4150,31 +4275,31 @@ packages: '@expo/metro@54.2.0': resolution: {integrity: sha512-h68TNZPGsk6swMmLm9nRSnE2UXm48rWwgcbtAHVMikXvbxdS41NDHHeqg1rcQ9AbznDRp6SQVC2MVpDnsRKU1w==} - '@expo/osascript@2.6.0': - resolution: {integrity: sha512-QvqDBlJXa8CS2vRORJ4wEflY1m0vVI07uSJdIRgBrLxRPBcsrXxrtU7+wXRXMqfq9zLwNP9XbvRsXF2omoDylg==} + '@expo/osascript@2.7.1': + resolution: {integrity: sha512-Zn03EX6In7ts2lPUW2ESUSkEhEWQN1qqsiXjadtZMJOuZRkMiAg1ZQHuvz9DjByDWNJ2pBwAGyrts9lj9k389g==} engines: {node: '>=12'} - '@expo/package-manager@1.12.0': - resolution: {integrity: sha512-SWr6093nwBjn94cvElsYZNUnhvs+XtUatUz3h0vAn0IbaWG0B6l/V5ZfOBptX/xq6rMpFG5ibIf/eckLSXw8Gg==} + '@expo/package-manager@1.13.1': + resolution: {integrity: sha512-y/K+CaYYpZpNGZhSX4HyLT/vyIunFjNfyoxNysPBCefeLKI/VCx6f9LNPzrxayr3rCYO5bl9O8H+HRQK265Nkg==} - '@expo/plist@0.4.8': - resolution: {integrity: sha512-pfNtErGGzzRwHP+5+RqswzPDKkZrx+Cli0mzjQaus1ZWFsog5ibL+nVT3NcporW51o8ggnt7x813vtRbPiyOrQ==} + '@expo/plist@0.4.9': + resolution: {integrity: sha512-MPVpmKGfnQEnrCzgxuXcmPP/y/t6AVm+DcSb2Myp21LKWv1N3l8uFxMggesfF4ixAxkRlGmMMx9GyDC9M+XklQ==} - '@expo/prebuild-config@54.0.8': - resolution: {integrity: sha512-EA7N4dloty2t5Rde+HP0IEE+nkAQiu4A/+QGZGT9mFnZ5KKjPPkqSyYcRvP5bhQE10D+tvz6X0ngZpulbMdbsg==} + '@expo/prebuild-config@54.0.9': + resolution: {integrity: sha512-3/Rmyzt8vduPjnSVHbnc0wYFrlhwLWn2g596rDyKcLGeqN2WTLJbzVeznsrUwyzhBNXgnTomZWO5HDzbZ/4E7g==} peerDependencies: expo: '*' - '@expo/require-utils@55.0.5': - resolution: {integrity: sha512-U4K/CQ2VpXuwfNGsN+daKmYOt15hCP8v/pXaYH6eut7kdYZo6SfJ1yr67BIcJ+1Gzzs+QzTxswAZChKpXmceyw==} + '@expo/require-utils@55.0.8': + resolution: {integrity: sha512-DDS5R67iz2SJwncbpcUMHtnsq31dSfllhaEncKxGlK0/ewgc2CaXUCkDA2AumfT7ubnSXiPkU9Gn8v2xCrvj+A==} peerDependencies: typescript: ^5.0.0 || ^5.0.0-0 peerDependenciesMeta: typescript: optional: true - '@expo/schema-utils@0.1.8': - resolution: {integrity: sha512-9I6ZqvnAvKKDiO+ZF8BpQQFYWXOJvTAL5L/227RUbWG1OVZDInFifzCBiqAZ3b67NRfeAgpgvbA7rejsqhY62A==} + '@expo/schema-utils@0.1.9': + resolution: {integrity: sha512-t9bYwG4Z0yCVzHYJoDMci1OFq2FkBkhStlfUGSkspKYTwB/84+x6sY+CXCgdhkQNQtvWaugW5KUs9YZfAXq9Sg==} '@expo/sdk-runtime-versions@1.0.0': resolution: {integrity: sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==} @@ -4196,18 +4321,18 @@ packages: '@expo/ws-tunnel@1.0.6': resolution: {integrity: sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q==} - '@expo/xcpretty@4.4.4': - resolution: {integrity: sha512-4aQzz9vgxcNXFfo/iyNgDDYfsU5XGKKxWxZopw0cVotHiW+U8IJbIxMaxsINs6bHhtkG3StKNPcOrn3eBuxKPw==} + '@expo/xcpretty@4.4.5': + resolution: {integrity: sha512-J3eL4n4h5QTwfD0SIz8OIk6/+sOL/hFZAMacgCM07UNlxBQfJipEpIC2AQxvGkbYeStByJ0TVhQAJo+DeNgaSQ==} hasBin: true - '@floating-ui/core@1.7.5': - resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} + '@floating-ui/core@1.8.0': + resolution: {integrity: sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==} - '@floating-ui/dom@1.7.6': - resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} + '@floating-ui/dom@1.8.0': + resolution: {integrity: sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==} - '@floating-ui/react-dom@2.1.8': - resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==} + '@floating-ui/react-dom@2.1.9': + resolution: {integrity: sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' @@ -4218,8 +4343,8 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/utils@0.2.11': - resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} + '@floating-ui/utils@0.2.12': + resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==} '@gar/promise-retry@1.0.3': resolution: {integrity: sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==} @@ -4231,9 +4356,9 @@ packages: '@harperfast/extended-iterable@1.0.3': resolution: {integrity: sha512-sSAYhQca3rDWtQUHSAPeO7axFIUJOI6hn1gjRC5APVE1a90tuyT8f5WIgRsFhhWA7htNkju2veB9eWL6YHi/Lw==} - '@hono/node-server@1.19.14': - resolution: {integrity: sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==} - engines: {node: '>=18.14.1'} + '@hono/node-server@2.1.1': + resolution: {integrity: sha512-ELuehkj5VCBdgEw9zs+ivkKwyzzUCSQuE96YmiPvn1ECBoZCczbFXJLeEGMTYjphP6gydh4pHMqEYPVMYUVgQg==} + engines: {node: '>=20'} peerDependencies: hono: ^4 @@ -4605,12 +4730,15 @@ packages: '@jridgewell/source-map@0.3.11': resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/sourcemap-codec@1.6.0': + resolution: {integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==} '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@jsonjoy.com/base64@1.1.2': resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} engines: {node: '>=10.0'} @@ -4647,50 +4775,50 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/fs-core@4.57.2': - resolution: {integrity: sha512-SVjwklkpIV5wrynpYtuYnfYH1QF4/nDuLBX7VXdb+3miglcAgBVZb/5y0cOsehRV/9Vb+3UqhkMq3/NR3ztdkQ==} + '@jsonjoy.com/fs-core@4.78.1': + resolution: {integrity: sha512-UUGcxEah6eb6PyrF8RDEuVgR0Cs2K6XTiLH7YxNR3DknL3wZCNx1nU5m2Gq5Wq8ipy4uHDay3xt/50KyoTN6Zg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/fs-fsa@4.57.2': - resolution: {integrity: sha512-fhO8+iR2I+OCw668ISDJdn1aArc9zx033sWejIyzQ8RBeXa9bDSaUeA3ix0poYOfrj1KdOzytmYNv2/uLDfV6g==} + '@jsonjoy.com/fs-fsa@4.78.1': + resolution: {integrity: sha512-PaoXI4HAELQ/DYxCtqHne7ijrTE0BIEFYXI/qTy4f6pThXiYT5QyJkk96bzpcjdo2D+OM0pUv7mkwffSAl/GSQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/fs-node-builtins@4.57.2': - resolution: {integrity: sha512-xhiegylRmhw43Ki2HO1ZBL7DQ5ja/qpRsL29VtQ2xuUHiuDGbgf2uD4p9Qd8hJI5P6RCtGYD50IXHXVq/Ocjcg==} + '@jsonjoy.com/fs-node-builtins@4.78.1': + resolution: {integrity: sha512-yaGM1l77yYANFl+w2gdixRZhcQhKodtbI4FZgJg2ApfTTSJcxdYEekU+Ta92sCqSwrOtY+ru4IP81tgJxWXIyA==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/fs-node-to-fsa@4.57.2': - resolution: {integrity: sha512-18LmWTSONhoAPW+IWRuf8w/+zRolPFGPeGwMxlAhhfY11EKzX+5XHDBPAw67dBF5dxDErHJbl40U+3IXSDRXSQ==} + '@jsonjoy.com/fs-node-to-fsa@4.78.1': + resolution: {integrity: sha512-/Z00TkjLD8zPRimbINaiAQRqpE9HZmiGfxQFMqNcHncmhijS3JsAW21gcNO/16jujoDwXOyEaSSeK+pBtv8QHQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/fs-node-utils@4.57.2': - resolution: {integrity: sha512-rsPSJgekz43IlNbLyAM/Ab+ouYLWGp5DDBfYBNNEqDaSpsbXfthBn29Q4muFA9L0F+Z3mKo+CWlgSCXrf+mOyQ==} + '@jsonjoy.com/fs-node-utils@4.78.1': + resolution: {integrity: sha512-wm0PVK6XpjHH6GLGVi60+ubD7pNv91KwQ8SBWwn+orRTYdfEIci59/VlOddIGhUSde0t9W9gLNetlPKQHQJsSQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/fs-node@4.57.2': - resolution: {integrity: sha512-nX2AdL6cOFwLdju9G4/nbRnYevmCJbh7N7hvR3gGm97Cs60uEjyd0rpR+YBS7cTg175zzl22pGKXR5USaQMvKg==} + '@jsonjoy.com/fs-node@4.78.1': + resolution: {integrity: sha512-3z6o4qVdKUZTHNXiV+3bKAUkQSD5a2kFwwwag8fe6VvgZ4WNfDbMzWdGvoGx+oRpOcr1iWA9WYwVeVMjSir4mA==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/fs-print@4.57.2': - resolution: {integrity: sha512-wK9NSow48i4DbDl9F1CQE5TqnyZOJ04elU3WFG5aJ76p+YxO/ulyBBQvKsessPxdo381Bc2pcEoyPujMOhcRqQ==} + '@jsonjoy.com/fs-print@4.78.1': + resolution: {integrity: sha512-NUwSD+BOz0TUpBc+riQpI1G1vOhViSZePeqUPxKznelsk3Iwotu6T/02UAY9WdaGcLdlDX8pllEIyxehnYo9Ng==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/fs-snapshot@4.57.2': - resolution: {integrity: sha512-GdduDZuoP5V/QCgJkx9+BZ6SC0EZ/smXAdTS7PfMqgMTGXLlt/bH/FqMYaqB9JmLf05sJPtO0XRbAwwkEEPbVw==} + '@jsonjoy.com/fs-snapshot@4.78.1': + resolution: {integrity: sha512-gejpLh45sgYGEHWZP/LP2etxaUOYawDfbFVckl9xDDEvgSAtZf700MzCAGbPBPBzRL+qW5UDDwacIgYXHY3C9Q==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -4747,6 +4875,9 @@ packages: '@lit-labs/ssr-dom-shim@1.6.0': resolution: {integrity: sha512-VHb0ALPMTlgKjM6yIxxoQNnpKyUKLD04VzeQdsiXkMqkvYlAHxq9glGLmgbb889/1GsohSOAjvQYoiBppXFqrQ==} + '@lit/context@1.1.6': + resolution: {integrity: sha512-M26qDE6UkQbZA2mQ3RjJ3Gzd8TxP+/0obMgE5HfkfLhEEyYE3Bui4A5XHiGPjy0MUGAyxB3QgVuw2ciS0kHn6A==} + '@lit/reactive-element@2.1.2': resolution: {integrity: sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==} @@ -4809,8 +4940,8 @@ packages: resolution: {integrity: sha512-6QEf6yqFbETdwGITKq57aYoPfX/3K8XFNwsAlx0C1M7o8cb79sv1M3w+tWuWvIcSbNqrLF7OD7YpZMVVz335hQ==} engines: {node: '>=20.0.0'} - '@material/web@2.4.1': - resolution: {integrity: sha512-0sk9t25acJ72Qv3r0n9r0lgDbPaAKnpm0p+QmEAAwYyZomHxuVbgrrAdtNXaRm7jFyGh+WsTr8bhtvCnpPRFjw==} + '@material/web@2.5.0': + resolution: {integrity: sha512-x2Uovyq8E/Zc1xHXd9s1eBMXF5pMHVAt70pISKd0fL3Ajj4L6zQaQUY/awcfR2RDAMKXC7i4+vr0arv1YaOR/g==} '@mdx-js/mdx@2.3.0': resolution: {integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==} @@ -4828,8 +4959,8 @@ packages: '@microsoft/tsdoc@0.15.1': resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} - '@modelcontextprotocol/sdk@1.26.0': - resolution: {integrity: sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg==} + '@modelcontextprotocol/sdk@1.30.0': + resolution: {integrity: sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==} engines: {node: '>=18'} peerDependencies: '@cfworker/json-schema': ^4.1.1 @@ -4948,6 +5079,13 @@ packages: '@types/react': optional: true + '@napi-rs/lzma-linux-x64-gnu@1.5.1': + resolution: {integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==} + engines: {node: ^22.20 || ^24.12 || >=25} + cpu: [x64] + os: [linux] + libc: [glibc] + '@napi-rs/nice-android-arm-eabi@1.1.1': resolution: {integrity: sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==} engines: {node: '>= 10'} @@ -5064,12 +5202,6 @@ packages: '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} - '@napi-rs/wasm-runtime@1.1.4': - resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} - peerDependencies: - '@emnapi/core': ^1.7.1 - '@emnapi/runtime': ^1.7.1 - '@napi-rs/wasm-runtime@1.2.4': resolution: {integrity: sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g==} engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} @@ -5132,17 +5264,21 @@ packages: cpu: [x64] os: [win32] - '@ngtools/webpack@21.2.12': - resolution: {integrity: sha512-e9jfTfc1mG9c2S6jog8/ZKx2/fkOKRHRDHxdPLMBTtJwKxPenQH1eZoTaiEDB0RLNbWbFClFDaCMBC1gJ/cs3Q==} + '@ngtools/webpack@21.2.24': + resolution: {integrity: sha512-9l6pXbXUGQscJgSL1rc960tmw2c0QkNABhWyDysaKTAX3Lu/7cjEckIxZNlGsdoK/TwetC23R2CRZdbMqvGszw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler-cli': ^21.0.0 typescript: '>=5.9 <6.0' webpack: ^5.54.0 - '@noble/hashes@1.4.0': - resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} - engines: {node: '>= 16'} + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@2.4.0': + resolution: {integrity: sha512-X5XaVWZIBCT7HHZGm5I7ZQXDwLG+bGXuSrMQAW+7Zvl87h1kmc1ZB1VSRJcpUfoUrGQp4Fkoxm5kZ+Ms+aW+eA==} + engines: {node: '>= 20.19.0'} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -5160,8 +5296,8 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} - '@npmcli/agent@4.0.0': - resolution: {integrity: sha512-kAQTcEN9E8ERLVg5AsGwLNoFb+oEG6engbqAU2P43gD4JEIkNGMHdVQ096FsOAAYpZPB0RSt0zgInKIAS1l5QA==} + '@npmcli/agent@4.0.2': + resolution: {integrity: sha512-EUEuWAxnL07Sp5/iC/1X6Xj+XThUvnbei9zfRWZdEXa7lss9RTHMhAHBeg+MZ5To9s/gGaSI+UwZTPdYMvKSeg==} engines: {node: ^20.17.0 || >=22.9.0} '@npmcli/fs@3.1.1': @@ -5267,8 +5403,14 @@ packages: cpu: [x64] os: [win32] - '@one-ini/wasm@0.1.1': - resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} + '@octanejs/testing-library@0.1.52': + resolution: {integrity: sha512-qk69ERnj/ROCqCdIc9S+zZkxF2037lf96jXWP54uILOMonkfpRyOtZAFyTIxkzj7snDSJQcKB3UdHIC6maWAIQ==} + engines: {node: '>=22.22.2'} + peerDependencies: + octane: ^0.2.5 || ^0.3.0 + + '@one-ini/wasm@0.2.1': + resolution: {integrity: sha512-TUqERXGNTifZ9y2g3wPxQrw3HpHv/02DsW3D90T9x0hhonrL1ZqpSmNrU2XkoIq0fP1N6gZfVQzy2Fw1ZvGBNg==} '@oozcitak/dom@2.0.2': resolution: {integrity: sha512-GjpKhkSYC3Mj4+lfwEyI1dqnsKTgwGy48ytZEhm4A/xnH/8z9M3ZVXKr/YGQi3uCLs1AEBS+x5T2JPiueEDW8w==} @@ -5544,351 +5686,521 @@ packages: '@oxc-project/types@0.127.0': resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==} + '@oxc-project/types@0.140.0': + resolution: {integrity: sha512-h5LUOzGArYemnW1NMz/DuuQhBi96J6JL2Bk8zE4kvqxB5Sg3jxmCiH4uyOWHDkiKSt5vWlG4FIwCR/DbstcNRQ==} + '@oxc-project/types@0.150.0': resolution: {integrity: sha512-rDS5/31E9HfPl/CIzGrn0DOlvBbXFseQ5URJ9sYMfstbKLD/c6Gm9vmRzRGDdAXyOIL4zmO37lc9RIwYqVruZw==} - '@oxc-resolver/binding-android-arm-eabi@11.19.1': - resolution: {integrity: sha512-aUs47y+xyXHUKlbhqHUjBABjvycq6YSD7bpxSW7vplUmdzAlJ93yXY6ZR0c1o1x5A/QKbENCvs3+NlY8IpIVzg==} - cpu: [arm] - os: [android] - '@oxc-resolver/binding-android-arm-eabi@11.24.2': resolution: {integrity: sha512-y09e0L0SRI2OA2tUIrjBgoV3eH5hvUKXNkJqXmNo5V2WxIjyC7I7aJfRLMEVpA8yi95f90gFDvO0VMgrDw+vwA==} cpu: [arm] os: [android] - '@oxc-resolver/binding-android-arm64@11.19.1': - resolution: {integrity: sha512-oolbkRX+m7Pq2LNjr/kKgYeC7bRDMVTWPgxBGMjSpZi/+UskVo4jsMU3MLheZV55jL6c3rNelPl4oD60ggYmqA==} - cpu: [arm64] - os: [android] - '@oxc-resolver/binding-android-arm64@11.24.2': resolution: {integrity: sha512-cl4icWaZFnLdg8m6qtnh5rBMuGbxc/ptStFHLeCNwr+2cZjkjNwQu/jYRS0CHlnPecOJMpuS5M6/BH+0J/YkEg==} cpu: [arm64] os: [android] - '@oxc-resolver/binding-darwin-arm64@11.19.1': - resolution: {integrity: sha512-nUC6d2i3R5B12sUW4O646qD5cnMXf2oBGPLIIeaRfU9doJRORAbE2SGv4eW6rMqhD+G7nf2Y8TTJTLiiO3Q/dQ==} - cpu: [arm64] - os: [darwin] - '@oxc-resolver/binding-darwin-arm64@11.24.2': resolution: {integrity: sha512-At29QEMF6HajbQvgY8K6OXnHD1x9rad74xBEfmCB6ZqCGsdq75aK7tOYcTbOanMy8qdIBrfL3SMr3p/lfSlb9w==} cpu: [arm64] os: [darwin] - '@oxc-resolver/binding-darwin-x64@11.19.1': - resolution: {integrity: sha512-cV50vE5+uAgNcFa3QY1JOeKDSkM/9ReIcc/9wn4TavhW/itkDGrXhw9jaKnkQnGbjJ198Yh5nbX/Gr2mr4Z5jQ==} - cpu: [x64] - os: [darwin] - '@oxc-resolver/binding-darwin-x64@11.24.2': resolution: {integrity: sha512-A5Kqr1EUj4oIL5CF4WRssq/o5P0Y11cwoFouMRmQ7YnC/A8V93nv1nb7aSU8HwcgmXropjLNkVTl4MN87cu28Q==} cpu: [x64] os: [darwin] - '@oxc-resolver/binding-freebsd-x64@11.19.1': - resolution: {integrity: sha512-xZOQiYGFxtk48PBKff+Zwoym7ScPAIVp4c14lfLxizO2LTTTJe5sx9vQNGrBymrf/vatSPNMD4FgsaaRigPkqw==} - cpu: [x64] - os: [freebsd] - '@oxc-resolver/binding-freebsd-x64@11.24.2': resolution: {integrity: sha512-R5xkRBRRz7ceH/P5Jrc6G7FmdUdgpLYyESFAUDVTNQ9K0sGPxcp4ljiwEwEqsvNcQ4sYbMRrWcHHBCu7ksAJVw==} cpu: [x64] os: [freebsd] - '@oxc-resolver/binding-linux-arm-gnueabihf@11.19.1': - resolution: {integrity: sha512-lXZYWAC6kaGe/ky2su94e9jN9t6M0/6c+GrSlCqL//XO1cxi5lpAhnJYdyrKfm0ZEr/c7RNyAx3P7FSBcBd5+A==} - cpu: [arm] - os: [linux] - '@oxc-resolver/binding-linux-arm-gnueabihf@11.24.2': resolution: {integrity: sha512-k/RuYL4L/R58IBn3wT5ma3Wh4k62bp1eYCFRWCmMsasUOqL+H6sW0VGFadEzKWXFFlz+2uIMoeMk9ySSZJHgbg==} cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm-musleabihf@11.19.1': - resolution: {integrity: sha512-veG1kKsuK5+t2IsO9q0DErYVSw2azvCVvWHnfTOS73WE0STdLLB7Q1bB9WR+yHPQM76ASkFyRbogWo1GR1+WbQ==} - cpu: [arm] - os: [linux] - '@oxc-resolver/binding-linux-arm-musleabihf@11.24.2': resolution: {integrity: sha512-bnHAak3ujYfH5pKk4NieFNbvYvernfoQDgwLddbZ3OtMYrem87/qjlA+u+aKG0oZcqSLGCful/6/CEA+aeAgaA==} cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm64-gnu@11.19.1': - resolution: {integrity: sha512-heV2+jmXyYnUrpUXSPugqWDRpnsQcDm2AX4wzTuvgdlZfoNYO0O3W2AVpJYaDn9AG4JdM6Kxom8+foE7/BcSig==} - cpu: [arm64] - os: [linux] - libc: [glibc] - '@oxc-resolver/binding-linux-arm64-gnu@11.24.2': resolution: {integrity: sha512-vDT3KHgzYp47gmtNOqL2VNhCyl5Zv643eyxm//A68J8DeUGXrvD1pZFiaT4jSfe+RInfnn1R2yVHye4enx6RnA==} cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-arm64-musl@11.19.1': - resolution: {integrity: sha512-jvo2Pjs1c9KPxMuMPIeQsgu0mOJF9rEb3y3TdpsrqwxRM+AN6/nDDwv45n5ZrUnQMsdBy5gIabioMKnQfWo9ew==} - cpu: [arm64] - os: [linux] - libc: [musl] - '@oxc-resolver/binding-linux-arm64-musl@11.24.2': resolution: {integrity: sha512-+kMlQvbzfyEYtu5FcjE4p+ttBLpKW4d/AsAsuE69BxV6V4twZJeIQZFfD8gh/wqglY0MkPSezWXQH0jBV13MUw==} cpu: [arm64] os: [linux] libc: [musl] - '@oxc-resolver/binding-linux-ppc64-gnu@11.19.1': - resolution: {integrity: sha512-vLmdNxWCdN7Uo5suays6A/+ywBby2PWBBPXctWPg5V0+eVuzsJxgAn6MMB4mPlshskYbppjpN2Zg83ArHze9gQ==} - cpu: [ppc64] - os: [linux] - libc: [glibc] - '@oxc-resolver/binding-linux-ppc64-gnu@11.24.2': resolution: {integrity: sha512-shjfMhmZ3gq9fv/w7bi3PnZlgOPG+2QAOFf0BJF0EgBSIGZ6PMLN2zbGEblTUYB/NKVDRyYhE2ff3dJ1QqNPkA==} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-riscv64-gnu@11.19.1': - resolution: {integrity: sha512-/b+WgR+VTSBxzgOhDO7TlMXC1ufPIMR6Vj1zN+/x+MnyXGW7prTLzU9eW85Aj7Th7CCEG9ArCbTeqxCzFWdg2w==} - cpu: [riscv64] - os: [linux] - libc: [glibc] - '@oxc-resolver/binding-linux-riscv64-gnu@11.24.2': resolution: {integrity: sha512-zGelwFR5oRo+b69k8Lrzun86DyUHzfKN6cnjbR9l7Z7NIRznOE/2ZvPa1IUKqAL2PzAXOdwkfVqNvO1H2RlpAw==} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-riscv64-musl@11.19.1': - resolution: {integrity: sha512-YlRdeWb9j42p29ROh+h4eg/OQ3dTJlpHSa+84pUM9+p6i3djtPz1q55yLJhgW9XfDch7FN1pQ/Vd6YP+xfRIuw==} - cpu: [riscv64] - os: [linux] - libc: [musl] - '@oxc-resolver/binding-linux-riscv64-musl@11.24.2': resolution: {integrity: sha512-qxZ1SWCXJY0eyhAlP6Lmo9F2Nrtx7EkYj9oCgL8apDPCwXwCEDA2U697bbT81JIc2IrVjxO4KX6WU2N+oN9Z4w==} cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-resolver/binding-linux-s390x-gnu@11.19.1': - resolution: {integrity: sha512-EDpafVOQWF8/MJynsjOGFThcqhRHy417sRyLfQmeiamJ8qVhSKAn2Dn2VVKUGCjVB9C46VGjhNo7nOPUi1x6uA==} - cpu: [s390x] - os: [linux] - libc: [glibc] - '@oxc-resolver/binding-linux-s390x-gnu@11.24.2': resolution: {integrity: sha512-sGCecF3cx2DFlH4t/z7ApnOnXqN48p5p5mlHDEnHTAukQa2P+qMVE4CwyWE9W+q/m3QJ7kKfGrIjax31f44oFQ==} cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-x64-gnu@11.19.1': - resolution: {integrity: sha512-NxjZe+rqWhr+RT8/Ik+5ptA3oz7tUw361Wa5RWQXKnfqwSSHdHyrw6IdcTfYuml9dM856AlKWZIUXDmA9kkiBQ==} - cpu: [x64] - os: [linux] - libc: [glibc] - '@oxc-resolver/binding-linux-x64-gnu@11.24.2': resolution: {integrity: sha512-k/VlMMcSzMlahb3/fENM4rTlsJ0s3fFROA0KXPBmKggqmTSaE383sl8F3KCOXPLmVsYfW6hCitMhXCEtNeZxxg==} cpu: [x64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-x64-musl@11.19.1': - resolution: {integrity: sha512-cM/hQwsO3ReJg5kR+SpI69DMfvNCp+A/eVR4b4YClE5bVZwz8rh2Nh05InhwI5HR/9cArbEkzMjcKgTHS6UaNw==} - cpu: [x64] - os: [linux] - libc: [musl] - '@oxc-resolver/binding-linux-x64-musl@11.24.2': resolution: {integrity: sha512-8hbnZyNi97b/8wapYaIF9+t9GmZKBW2vunaOc3h9HGJptH7b7XpvZqOTBSm/MpTjr7H497BlgOaSfLUdhmy2bw==} cpu: [x64] os: [linux] libc: [musl] - '@oxc-resolver/binding-openharmony-arm64@11.19.1': - resolution: {integrity: sha512-QF080IowFB0+9Rh6RcD19bdgh49BpQHUW5TajG1qvWHvmrQznTZZjYlgE2ltLXyKY+qs4F/v5xuX1XS7Is+3qA==} - cpu: [arm64] - os: [openharmony] - '@oxc-resolver/binding-openharmony-arm64@11.24.2': resolution: {integrity: sha512-MvyGik3a6pVgZ0t/kWlbmFxFLmXQJwgLsY2eYFHLpy0wGwRbfzeIGgDwQ3kXqE30z+kSXennRkCrT7TUvkptNg==} cpu: [arm64] os: [openharmony] - '@oxc-resolver/binding-wasm32-wasi@11.19.1': - resolution: {integrity: sha512-w8UCKhX826cP/ZLokXDS6+milN8y4X7zidsAttEdWlVoamTNf6lhBJldaWr3ukTDiye7s4HRcuPEPOXNC432Vg==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - '@oxc-resolver/binding-wasm32-wasi@11.24.2': resolution: {integrity: sha512-vHcssMPwO08RTvj/c0iOBz90attxyG3wQJ0dTcyEQK43LRpcdLWZlV5feBhv6Isn6ahbQIzHbCgfa81+RiML0Q==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-resolver/binding-win32-arm64-msvc@11.19.1': - resolution: {integrity: sha512-nJ4AsUVZrVKwnU/QRdzPCCrO0TrabBqgJ8pJhXITdZGYOV28TIYystV1VFLbQ7DtAcaBHpocT5/ZJnF78YJPtQ==} - cpu: [arm64] - os: [win32] - '@oxc-resolver/binding-win32-arm64-msvc@11.24.2': resolution: {integrity: sha512-uokJqro2iBqkFvJdKQLP7d8/BUmFwESQFVmIJUQKj1Xn1a/LysJoe1vmeECLF5b3jsV8CAL5sEMJXX6SdK9Nhg==} cpu: [arm64] os: [win32] - '@oxc-resolver/binding-win32-ia32-msvc@11.19.1': - resolution: {integrity: sha512-EW+ND5q2Tl+a3pH81l1QbfgbF3HmqgwLfDfVithRFheac8OTcnbXt/JxqD2GbDkb7xYEqy1zNaVFRr3oeG8npA==} - cpu: [ia32] - os: [win32] - - '@oxc-resolver/binding-win32-x64-msvc@11.19.1': - resolution: {integrity: sha512-6hIU3RQu45B+VNTY4Ru8ppFwjVS/S5qwYyGhBotmjxfEKk41I2DlGtRfGJndZ5+6lneE2pwloqunlOyZuX/XAw==} - cpu: [x64] - os: [win32] - '@oxc-resolver/binding-win32-x64-msvc@11.24.2': resolution: {integrity: sha512-UqGPmo56KDfLlfXFAFIrNflHT8tFxWGEivWg3Zeyp4Uy2NlKN1FGPr6/BxcLGG3+kZ6Wp14g5Uj+n71boqZfiw==} cpu: [x64] os: [win32] - '@package-json/types@0.0.12': - resolution: {integrity: sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==} + '@oxfmt/binding-android-arm-eabi@0.59.0': + resolution: {integrity: sha512-bNTnfbuG7sAwb2PakMNaDukx5kXeW9duXOBeWtTOiLz3fXz3q2DlWguufPZ+c2IHEVrRXHD+M4aUgEWm841LDA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] - '@parcel/watcher-android-arm64@2.5.6': - resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} - engines: {node: '>= 10.0.0'} + '@oxfmt/binding-android-arm64@0.59.0': + resolution: {integrity: sha512-R/Sn7z52QtdAKNqQLLY0EK7hVMjXiz3XUlvoCFCm/60jgIzAnQtiqLKBCFaBkimCQL5rs2ezPMcicpjCsrl54Q==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@parcel/watcher-darwin-arm64@2.5.6': - resolution: {integrity: sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==} - engines: {node: '>= 10.0.0'} + '@oxfmt/binding-darwin-arm64@0.59.0': + resolution: {integrity: sha512-vm/ynUqE4HjC0ZIEjmXv1UJu1/GngccQ+T+TJudTMxUxm6r+GQTg1TO3E5jJfI71pBaXxSzs1+vWHIwuilGHhw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@parcel/watcher-darwin-x64@2.5.6': - resolution: {integrity: sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==} - engines: {node: '>= 10.0.0'} + '@oxfmt/binding-darwin-x64@0.59.0': + resolution: {integrity: sha512-uTtYDpLN/obfKVWGpgEc8BqYlLZBQTPz2uYEvLRy3HPZxjZ34wiFzukUBU2bf64JuCYZI//GTV1EOMmWlPjf/w==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@parcel/watcher-freebsd-x64@2.5.6': - resolution: {integrity: sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==} - engines: {node: '>= 10.0.0'} + '@oxfmt/binding-freebsd-x64@0.59.0': + resolution: {integrity: sha512-e2UnxL/ifStSPy8ffBCDbdy595SYsGy+U1pur4G65TuMmWxAMBzYGG7atZo/3mp515p8rZdsflxVD/E1FAdPLQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@parcel/watcher-linux-arm-glibc@2.5.6': - resolution: {integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==} - engines: {node: '>= 10.0.0'} + '@oxfmt/binding-linux-arm-gnueabihf@0.59.0': + resolution: {integrity: sha512-LtdeZ1l0urxte3VNi3g8cocZwv1xGM1NKHSgF/fJEEVhyQmlgGh7WFWKFd/pNuO7djfvPNtNO1+MS+FEWkgVSA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - libc: [glibc] - '@parcel/watcher-linux-arm-musl@2.5.6': - resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} - engines: {node: '>= 10.0.0'} + '@oxfmt/binding-linux-arm-musleabihf@0.59.0': + resolution: {integrity: sha512-dBTciSsj9GTMl7p+h2gMSI0hoPn2ijfc/dUsbnWsP0RbwgPl2r0C/5zkMb3Pb+gGj17LH7f1o4qLo9aes/pAvA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - libc: [musl] - '@parcel/watcher-linux-arm64-glibc@2.5.6': - resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} - engines: {node: '>= 10.0.0'} + '@oxfmt/binding-linux-arm64-gnu@0.59.0': + resolution: {integrity: sha512-tXVdJ/JINsNWdponPHN0OuKHtC+HdpyoS9sd6IDPNiiEYsRki8b7tefRZ1iMnRkdbyT4SEbguWsr6o+5awvbPQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@parcel/watcher-linux-arm64-musl@2.5.6': - resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} - engines: {node: '>= 10.0.0'} + '@oxfmt/binding-linux-arm64-musl@0.59.0': + resolution: {integrity: sha512-RRTq38i2zT5fnw6XGHjvT6w2mh6x/G3m6AZcAZ56OTDTT/lsOeYnG3SVjwmH40z5kPqF+lf+o35e6m6PpKy9Dw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@parcel/watcher-linux-x64-glibc@2.5.6': - resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} - engines: {node: '>= 10.0.0'} + '@oxfmt/binding-linux-ppc64-gnu@0.59.0': + resolution: {integrity: sha512-lD3k7glAJSaXW0D6xzu8VOZbYbosvy+0ktOVkfLEoQF5HJlMSxTQ2KNW0JO+08ccP/1ElOKktVEMI0fqRbVB4w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-riscv64-gnu@0.59.0': + resolution: {integrity: sha512-WH5ZP1RbuHKBO/yfPRQKpNO/ijHcEDNbnmC4VPf/Bcd3+mbMAZpRiJWRa1PL5bREdIZZHo343mk3sqlc9x7Usw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-riscv64-musl@0.59.0': + resolution: {integrity: sha512-743wOiaI9RZY4QVGkWkfGRavD5ZJUJ6gscFjVrVu1dP8AZh9jM+a6v3NhlR+OIzHdS6DhLM96w+gcVskskz7rw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-linux-s390x-gnu@0.59.0': + resolution: {integrity: sha512-xjRXQsRnrRZCcCkIEnbd2lmsQNobtwwkJxdy2bWXhZ1lIN0ouZwsBXRsoovW3yATuziAYwr9HMiQuR/Cc75NIw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-x64-gnu@0.59.0': + resolution: {integrity: sha512-4hNjqq/Rbr9B+StY9zMMAfm72+mtM4v80xYL5Qkb59Qd72g2vJMI0iFlPj3kf6miMsie/yJ7rt4urJT292HBgA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@parcel/watcher-linux-x64-musl@2.5.6': - resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} - engines: {node: '>= 10.0.0'} + '@oxfmt/binding-linux-x64-musl@0.59.0': + resolution: {integrity: sha512-NH579iN8EVQYsWowUB8B5vFchcylJtwPVJ7NmUAqEQHNLfhPbDT3K56KrECNAkUN4QpF4qiMgN2vsfZwVvjm7g==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@parcel/watcher-win32-arm64@2.5.6': - resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==} - engines: {node: '>= 10.0.0'} + '@oxfmt/binding-openharmony-arm64@0.59.0': + resolution: {integrity: sha512-mzZy3Z5Aj1D75Aq9FVlmoRQH5ei8Ga4o/NZmlXkKyeZ5EmPrUXRR7c6BMBteV1ZuZ/356UYDuLRLjAMxTDTiBA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxfmt/binding-win32-arm64-msvc@0.59.0': + resolution: {integrity: sha512-0CpDJ1gE3jN1Gk6xms1Ie6LPfPcOtY4FAtoOmVLHQoAf8DvO2wd0DW2dIX2f7YTp5dxrr0ND8JeUEjm3DP3k5g==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@parcel/watcher-win32-ia32@2.5.6': - resolution: {integrity: sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==} - engines: {node: '>= 10.0.0'} + '@oxfmt/binding-win32-ia32-msvc@0.59.0': + resolution: {integrity: sha512-zwdKBu3pt87uW0bRcywZb0oGMS7C6n87qogwRYFUgmk44T90ZzYlPjtlFYXs/DnBFrgNCvlHwCuWKfVWLeE7kw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@parcel/watcher-win32-x64@2.5.6': - resolution: {integrity: sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==} - engines: {node: '>= 10.0.0'} + '@oxfmt/binding-win32-x64-msvc@0.59.0': + resolution: {integrity: sha512-dUUbZkKgWrmAeI/puzv4bxN8lzcYaFnQVwFTFtwO2Gp8M7lZGSE2qJjC58g518+1bltJ8mizjYwD0BGHym0l/w==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@parcel/watcher@2.5.6': - resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} - engines: {node: '>= 10.0.0'} + '@oxlint-tsgolint/darwin-arm64@0.24.0': + resolution: {integrity: sha512-C2uMmwK5Bc4ri4ysZ6sA8Rcu+A5zBQTp6ml2u0CLLbRZp4kMFPV3yWk8B5DK9Aw7y9bbjogIm75tUwGLFzlsYQ==} + cpu: [arm64] + os: [darwin] - '@peculiar/asn1-cms@2.7.0': - resolution: {integrity: sha512-hew63shtzzvBcSHbhm+cyAmKe6AIfinT9hzEqSPjDC6opTTMKmTkQ0gHuN2KsWlvqiKw1S/fS94fhag/FJkioQ==} + '@oxlint-tsgolint/darwin-x64@0.24.0': + resolution: {integrity: sha512-Wgvt/1lRbDxmoNqWQKKcL+UIiqLmdJ+EWLpQa1qzoNVAfNB0PJpa82/8dH1twT/3rSs4zrP5TXPWl4juB71WuQ==} + cpu: [x64] + os: [darwin] - '@peculiar/asn1-csr@2.7.0': - resolution: {integrity: sha512-VVsAyGqErT9D1SY4aEqozThXMVI+ssVRiv2DDeYuvpBKLIgZ3hYs3Ay3u/VSoKq6ESFi9cf6rf3IOOzfwh7oMA==} + '@oxlint-tsgolint/linux-arm64@0.24.0': + resolution: {integrity: sha512-PB1rxII7KV83+ASY4sSkXtqvpij6ME66+QCRL49uksi/ofs2Rf/UVboYr095n0Rkbl2wgvlsHGl6DHC361jQUQ==} + cpu: [arm64] + os: [linux] - '@peculiar/asn1-ecc@2.7.0': - resolution: {integrity: sha512-n7KEs/Q/wrB415cxy4fHOBhegp4NdJ15fkJPwcB/3/8iNBQC2L/N7SChJPKDJPZGYH0jD4Tg4/0vnHmwghnbKw==} + '@oxlint-tsgolint/linux-x64@0.24.0': + resolution: {integrity: sha512-xcz3CxKmjTQLREtE/UShh+ruWmm9nAb7UM9zKcD65BStiuYgOakAKkPHl4YS5DztpVcDrE0+HqbOolTlRKYWmw==} + cpu: [x64] + os: [linux] - '@peculiar/asn1-pfx@2.7.0': - resolution: {integrity: sha512-V/nrlQVmhg7lYAsM7E13UDL5erAwFv6kCIVFqNaMIHSVi7dngcT839JkRTkQBqznMG98l2XjxYk74ZztAohZzA==} + '@oxlint-tsgolint/win32-arm64@0.24.0': + resolution: {integrity: sha512-A2i6ZGBec3i20S7RaxkgHc6r3HYtD5Mn7j/mb22NkTz14u0JuudvTu6JggAnbGMcv8+dBKQI//EasxSPJLD8pw==} + cpu: [arm64] + os: [win32] - '@peculiar/asn1-pkcs8@2.7.0': - resolution: {integrity: sha512-9GTl1nE8Mx1kTZ+7QyYatDyKsm34QcWRBFkY1iPvWC3X4Dona5s/tlLiQsx5WzVdZqiMBZNYT0buyw4/vbhnjw==} + '@oxlint-tsgolint/win32-x64@0.24.0': + resolution: {integrity: sha512-0ZbGd9qRB6zs82moekaKdEvncRANq49EAwfNX62JpTS46feXUhKAuoyVDvZMj6Rywejylrmmu79Wo6faYCo4Ew==} + cpu: [x64] + os: [win32] - '@peculiar/asn1-pkcs9@2.7.0': - resolution: {integrity: sha512-Bh7m+OuIaSEllPQcSd9OSp93F4ROWH7sbITWV8MI+8dwsjE5111/87VxiWVvYFKyww3vp39geLv9ENqhwWHcew==} + '@oxlint/binding-android-arm-eabi@1.74.0': + resolution: {integrity: sha512-+gHd12muVI9ZLBaWLPkHt3Fj7jihFjgQ1MGtBaRL8vWrWrI0P7dLUty/cHrHS0oqPYIRgQUJsPu2CExQuMcwNw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] - '@peculiar/asn1-rsa@2.7.0': - resolution: {integrity: sha512-/qvENQrXyTZURjMqSeofHul0JJt2sNSzSwk36pl2olkHbaioMQgrASDZAlHXl0xUlnVbHj0uGgOrBMTb5x2aJQ==} + '@oxlint/binding-android-arm64@1.74.0': + resolution: {integrity: sha512-xjKdoMB+H+RCOByv/7l7nfIGW9mlOisqYdcyC75UqYuQecLpReAeEYUf2CNeDEI3KtmUgxpRw/+c63y4AeF/Bw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] - '@peculiar/asn1-schema@2.7.0': - resolution: {integrity: sha512-W8ZfWzLmQnrcky+eh3tni4IozMdqBDiHWU0N+vve/UGjMaUs8c0L7A2oEdkBXS8rTpWDpK/aoI3DG/L/hxmxPg==} + '@oxlint/binding-darwin-arm64@1.74.0': + resolution: {integrity: sha512-iUK7wvc6sejMKsC+Pt67mntoF5weFcyEunhZfLJceU6gL419mexz5wBkSx/EnkFBExMLNtOi9fnDSc5xfK0IzQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] - '@peculiar/asn1-x509-attr@2.7.0': - resolution: {integrity: sha512-NS8e7SOgXipkzUPLF/sce7ukpMpWjhxYsH0n6Y+bHYo4TTxOb95Zv7hqwSuL212mj5YxovjdOKQOgH1As3E94w==} + '@oxlint/binding-darwin-x64@1.74.0': + resolution: {integrity: sha512-ggKc/tn5SJ1u2yG2izC6VKODfYKV8MQ2AicJlNzOjuyrC29udvOef6/JzK2r32xqCnBDLFouR1VCkjzEI0/N9Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] - '@peculiar/asn1-x509@2.7.0': - resolution: {integrity: sha512-mUn9RRrkGDnG4ALfunDmzyRW5dg+sWCj/pfnCCqEHYbkGxEpvUt6iVJv8Yw1cyp6SWZ26ZE5oSmI5SqEaen15g==} + '@oxlint/binding-freebsd-x64@1.74.0': + resolution: {integrity: sha512-u++dH/43jy9hTLbneaWlS0gla/Bp1JdwJ2zgevCl8nDFUh6qRCGMxcL0f0lb7By3A9p/LfFr+7cG4HU1hG856g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] - '@peculiar/utils@2.0.3': - resolution: {integrity: sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==} + '@oxlint/binding-linux-arm-gnueabihf@1.74.0': + resolution: {integrity: sha512-Sj1zmtFDVTPeIbIz4ZfcXAbFHqCmKCXdCUlAJzvTF7I20NTH1RDpoF2PhkqNODutJzVhJYmm3oz0GwgY+tvE2g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] - '@peculiar/x509@1.14.3': - resolution: {integrity: sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==} - engines: {node: '>=20.0.0'} + '@oxlint/binding-linux-arm-musleabihf@1.74.0': + resolution: {integrity: sha512-//PKyQb/tQXcHArx2f7z+oVI/eMS2Jpv+edNuAtOrgIhWdGcpHxogveAxzmF2rpH1AIHp4Hq04RF/rgJdiICnQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} + '@oxlint/binding-linux-arm64-gnu@1.74.0': + resolution: {integrity: sha512-/k1Me+aX2tjuH10K62mLS0y8cLkJBHX6Ce0xPK+eWeel4bSdEGZ8dv4+hYMzg0GrSmjwy4yAYsDPeEeKBft/2w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-arm64-musl@1.74.0': + resolution: {integrity: sha512-3tFSjBxc5D8/zvjEuLvOqcA8ZXKD0+6NuaVO/edeamNc49MoAsbfaC9s1UiwODwgF6slGaF8yJA2TPkukd77tg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-ppc64-gnu@1.74.0': + resolution: {integrity: sha512-9QggtPkSPXOCTu8Szis7auOK/sC7KdQaN+/TujP7YVVhzCAOhgdRfgv8uEz0r2tk5xdgus5rLYUrCDoZNtiRUw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-gnu@1.74.0': + resolution: {integrity: sha512-VM5VPUJ4DJIWiK+AZn8FScUqMr6OFrCAYybMYjEEi7W13ParI64MByiXTkKMqZpBmvQ9zxl9Ebq2VUOiZRJYUg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-musl@1.74.0': + resolution: {integrity: sha512-SaDY1gh9rOA592J54g+gu5hkOFFQBZsMmIYHs+NRHG+Uq0OxtuuCXMWQ3vu1830Eugv5uMXyjG+bv2Z9y4IXjw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-s390x-gnu@1.74.0': + resolution: {integrity: sha512-ZATQeHZCyr6MbDveg0obD5sxLHFOghtOdC5jwVwYlvFWqtFOxctgFEG6Ef/64hYvZrWyhyCckB10AelqLopeDA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-gnu@1.74.0': + resolution: {integrity: sha512-+aIvJyrdeD7LwCQ2WYLMUWNmnbeDRSPb40aBYtPjD9+PTqUwgJnk+HK5yLfSMeqXrMrDhE9uTmtt2y50tvjhHw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-musl@1.74.0': + resolution: {integrity: sha512-XyktaR8lhK2qWiCK0Tk8oYD+/cgn+oHA6ddRnxSSXUKkkojkV78CmShZUxQF+yrBFs0SuW+JBOPG6hecyc/iZg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxlint/binding-openharmony-arm64@1.74.0': + resolution: {integrity: sha512-mzbjrPl4neaVUiJ1fUiEUxTGaSZBoiKtaoB6jmIpz9S+VOA2vDYmJpihQ82w6178V5jxziclTg8Cgj5yF6tTDg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxlint/binding-win32-arm64-msvc@1.74.0': + resolution: {integrity: sha512-vUAe9okpS2Oa5+lX67lqHMuNUvfkleRKwrUDJ/WJBsgmddvZ1mrsh2HVmuFDRzqFELhaJhFaCNOuR6a7L3rtIA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxlint/binding-win32-ia32-msvc@1.74.0': + resolution: {integrity: sha512-yyXXJyYYSXL4I8K8jAWjJs+J3fa9gH2JmEbo4f5adm+1tNC9itseicBNuwK7BDHvqQ5J534s+yDULu89vYL2ZQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxlint/binding-win32-x64-msvc@1.74.0': + resolution: {integrity: sha512-VTC9IYTIMrVUk/i6Ms1ohzzDKZFkWn0KU2OBbPBzgmVZ2V30165T/zK4LztTr0Xgp9fZ1qQZ1rsZAu/rEmySlA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@parcel/watcher-android-arm64@2.6.0': + resolution: {integrity: sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.6.0': + resolution: {integrity: sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.6.0': + resolution: {integrity: sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.6.0': + resolution: {integrity: sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.6.0': + resolution: {integrity: sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-arm-musl@2.6.0': + resolution: {integrity: sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + libc: [musl] + + '@parcel/watcher-linux-arm64-glibc@2.6.0': + resolution: {integrity: sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-arm64-musl@2.6.0': + resolution: {integrity: sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@parcel/watcher-linux-x64-glibc@2.6.0': + resolution: {integrity: sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-x64-musl@2.6.0': + resolution: {integrity: sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@parcel/watcher-win32-arm64@2.6.0': + resolution: {integrity: sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-x64@2.6.0': + resolution: {integrity: sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.6.0': + resolution: {integrity: sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==} + engines: {node: '>= 10.0.0'} + + '@peculiar/asn1-cms@2.9.5': + resolution: {integrity: sha512-4Ivz0fsyFofe0bslNsYcGN9+iETdHX4v+BFwIPr+K/BAt61sHXECP63ff9FntU9zcfVQELJFdUG9so44OjUlBQ==} + engines: {node: '>=14'} + + '@peculiar/asn1-csr@2.9.5': + resolution: {integrity: sha512-9dO6PcoJeI+1xJ4rG7eINMa6f9Ix/QdRs5UGZ0D7v/R3TzmsbVr5cqAgfYw4xgS9U54ouHYqEz0bIZBbM/UY1g==} + engines: {node: '>=14'} + + '@peculiar/asn1-ecc@2.9.5': + resolution: {integrity: sha512-OD+HLlcV7wCL64w0rheX/C0J31DbJce0nf8ulv3UNftQ617JEZE3sQ4cMN6PotXWlJ1M5GQx90G3bywtdKOstw==} + engines: {node: '>=14'} + + '@peculiar/asn1-pfx@2.9.5': + resolution: {integrity: sha512-btcH7lbcD4410qnjHvv7F0kEuMNKbX8CFAZSs9CDPWHKzT1byLPHYeR40AnUw9z4CzsijMY0daBFYUvVx75sdA==} + engines: {node: '>=14'} + + '@peculiar/asn1-pkcs8@2.9.5': + resolution: {integrity: sha512-c7UghAGQdBfAHL9JdwcJkAc/lDJKNXfCdYXPXlf8BZdD/fVJjJnXKHxX4gyLhkFTvnGhME7caieSgc2ROtqYTQ==} + engines: {node: '>=14'} + + '@peculiar/asn1-pkcs9@2.9.5': + resolution: {integrity: sha512-4R/zMgLSHbQIZRBwP1KzX6iuNHmW3xFWwu9TS9A00N60fmQqp9DkkqnQFyd0mAYMQTrQefuzQ/yP4U8sOLGUgQ==} + engines: {node: '>=14'} + + '@peculiar/asn1-rsa@2.9.5': + resolution: {integrity: sha512-kHwBLVMkm9ljlM521ovS7y4z4mr8xuHTdNyyoPlDvckBwFKSgs9HqKBryLBeqHqL2YpIgl+Vspl7kzNGG2phzA==} + engines: {node: '>=14'} + + '@peculiar/asn1-schema@2.9.5': + resolution: {integrity: sha512-Ez3wLKVjaxdsLcgeWN4OE31QkM7oBOgKuuBJxldRYAkfYw2C+8zJPcSd/SThnbhszsEOlAmoaS5kIIkN29fGKQ==} + engines: {node: '>=14'} + + '@peculiar/asn1-x509-attr@2.9.5': + resolution: {integrity: sha512-PlbL1a74RZiry7puPCZ5hdk/puvivxYJPbjadr2i7DBjHCJFEKCfTRPKL3DILeZFtzJjn95J5EBtSc4/TB9/6Q==} + engines: {node: '>=14'} + + '@peculiar/asn1-x509@2.9.5': + resolution: {integrity: sha512-NP3ecvN6zTDlwCvogIWL7MJN9AZNuskkIbnlhrlkB97Mn2EqirBUQ8GKzsOmdAL3pRvjGu1Uk/a4DNfiZrWxhw==} + engines: {node: '>=14'} + + '@peculiar/utils@2.0.3': + resolution: {integrity: sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==} + + '@peculiar/x509@1.14.3': + resolution: {integrity: sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==} + engines: {node: '>=20.0.0'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} '@pnpm/deps.graph-sequencer@1100.0.1': resolution: {integrity: sha512-pOr5+q1fLYKwFN3LAJuGZEnfXDcQ73zqgDHMtGy+K+uIoUqyY+6MeDCWFwfu+4EFuq76I5EPFofoNAI+Bmmq4A==} @@ -5897,17 +6209,19 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@preact/preset-vite@2.10.5': - resolution: {integrity: sha512-p0vJpxiVO7KWWazWny3LUZ+saXyZKWv6Ju0bYMWNJRp2YveufRPgSUB1C4MTqGJfz07EehMgfN+AJNwQy+w6Iw==} + '@preact/preset-vite@2.10.6': + resolution: {integrity: sha512-ZZ5RIT2ZVXg8UxRA8VZpoT8CdpDG7RFIqOT4bELqNBp85+HKvQBbgmh3gsoW1UOQXx26TLe+ZRNKI7q281Kckw==} peerDependencies: '@babel/core': 7.x vite: 2.x || 3.x || 4.x || 5.x || 6.x || 7.x || 8.x - '@prefresh/babel-plugin@0.5.3': - resolution: {integrity: sha512-57LX2SHs4BX2s1IwCjNzTE2OJeEepRCNf1VTEpbNcUyHfMO68eeOWGDIt4ob9aYlW6PEWZ1SuwNikuoIXANDtQ==} + '@prefresh/babel-plugin@0.5.4': + resolution: {integrity: sha512-GSwqHGVem7AjnOKAkmLNbAExqZZFddf9S3ySOwowGEsJR8vwNKJ7Z/262fov5wra8LkDVSmFw3CjMGRdLoCmRA==} + peerDependencies: + '@babel/core': ^7.0.0 || ^8.0.0 - '@prefresh/core@1.5.10': - resolution: {integrity: sha512-7yPTFbG56sutaFu8krp3B4a200KOFUvrtlllKWRuLjsYXo9UUucHOZRcer+gtgMkFTpv6ob8TGcTwA32bSwa1w==} + '@prefresh/core@1.5.11': + resolution: {integrity: sha512-Ml00PP8jeHaADxfQqxUs4+M5JS+T5J26UnvPVfsrmlpGw2I3e9XtM0DMeuzkmvg+Tn7VdHSMpLBrDPG0iHoDqQ==} peerDependencies: preact: ^10.0.0 || ^11.0.0-0 @@ -5920,18 +6234,18 @@ packages: preact: ^10.4.0 || ^11.0.0-0 vite: '>=2.0.0' - '@publint/pack@0.1.4': - resolution: {integrity: sha512-HDVTWq3H0uTXiU0eeSQntcVUTPP3GamzeXI41+x7uU9J65JgWQh3qWZHblR1i0npXfFtF+mxBiU2nJH8znxWnQ==} + '@publint/pack@0.1.7': + resolution: {integrity: sha512-4EDEmvxWtgsCnnVeBvtFIFZtUhPPt1+bA9JrSwU4Sa//6oKtzCSlGGXYJr44OD9aGISymbieJ4mCKHUygUDU+g==} engines: {node: '>=18'} - '@quansync/fs@1.0.0': - resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} + '@quansync/fs@1.1.0': + resolution: {integrity: sha512-qAPG/t3HqML1TlN7sY/pTbEjzFVAKsMjNNMGheyDosro+kT4iw2KCUoHcVdmliwWjorm4elZbgNQyU2eD97eDg==} - '@radix-ui/primitive@1.1.3': - resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + '@radix-ui/primitive@1.1.7': + resolution: {integrity: sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==} - '@radix-ui/react-collection@1.1.7': - resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} + '@radix-ui/react-collection@1.1.15': + resolution: {integrity: sha512-9W+B9NPF0NaaPh/1NJd3+KqsnlLqU9H7T2rvww+fp+T/evVXdNAyYcnfRQZFOjkR1ajQp3yORlqnI8soawLvNA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5952,8 +6266,17 @@ packages: '@types/react': optional: true - '@radix-ui/react-context@1.1.2': - resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + '@radix-ui/react-compose-refs@1.1.5': + resolution: {integrity: sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.2.2': + resolution: {integrity: sha512-RHCUGwKHDr0hDGg4X7ma4JG4/+12qxw8rkh5QKdDldlCvtja6nUx1Ef/8HVrJze81lEsgLQlqjzjGNHantgnQA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5961,8 +6284,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dialog@1.1.15': - resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} + '@radix-ui/react-dialog@1.1.23': + resolution: {integrity: sha512-Ksw4WeROkO4rC9k/onilX/Ao2Cr1ku1unMNH+XSCcP4jSXYu7HDsg9n4ojMjVb22XpYjAQ9qfrFlVbru1vXDUA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5974,8 +6297,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-direction@1.1.1': - resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + '@radix-ui/react-direction@1.1.4': + resolution: {integrity: sha512-5pzg4FGQNpExhnhT2zlrP1wZFaYCd1K0nYWoFAdcYoYK868IEigqMX3B3f8yIoRlAhAeDWciLI6ZdCKHF9P4Vg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5983,8 +6306,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dismissable-layer@1.1.11': - resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} + '@radix-ui/react-dismissable-layer@1.1.19': + resolution: {integrity: sha512-8g4pfOL9HoKKLWGiypT+dphVqjFfmcXO5GBnhsG6zI+lxAx/8feQpr+1LSN8Re3hiZ+XkLNS4O9ztK11/LzQ6w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5996,8 +6319,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-focus-guards@1.1.3': - resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + '@radix-ui/react-focus-guards@1.1.6': + resolution: {integrity: sha512-RNOJjfZMTyBM6xYmV3IVGXkPjIhcBAuv48POevAXwrGJhkWZ9p1rFoIS1JFooPuT193AZmRsCPhpoVJxx6OPoQ==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -6005,8 +6328,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-focus-scope@1.1.7': - resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} + '@radix-ui/react-focus-scope@1.1.16': + resolution: {integrity: sha512-wmRZ2WWLvmt6KHy2rNPOdPUjwq5xOHY02+m+udwJTn0aNIox/rkskAvJTyTLGhPK6KgrUjlJUJpgmx/+wFiFIQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6018,8 +6341,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-id@1.1.1': - resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + '@radix-ui/react-id@1.1.4': + resolution: {integrity: sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -6027,8 +6350,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-portal@1.1.9': - resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + '@radix-ui/react-portal@1.1.17': + resolution: {integrity: sha512-vKQLcWypUnwZVvfV7UkGahH2g6ySe8M8R+zYBwPrv5byZ9QAW6cQVvNKo7GgmD+p8aYb6D9JBuvy8/WhOno2wQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6040,8 +6363,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-presence@1.1.5': - resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + '@radix-ui/react-presence@1.1.10': + resolution: {integrity: sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6053,8 +6376,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.1.3': - resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + '@radix-ui/react-primitive@2.1.10': + resolution: {integrity: sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6066,8 +6389,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.1.11': - resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} + '@radix-ui/react-roving-focus@1.1.19': + resolution: {integrity: sha512-V9jI6hDjT7l3jsCQD9bLNvDLM3tH/gdbOTp7Tefp3hbbgCGQoK7tUvrWiRlcoBHIZ809ElXwNQwVo0B98LuTXQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6088,8 +6411,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-slot@1.2.3': - resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + '@radix-ui/react-slot@1.3.3': + resolution: {integrity: sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -6097,8 +6420,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-tabs@1.1.13': - resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} + '@radix-ui/react-tabs@1.1.21': + resolution: {integrity: sha512-UKxJlZid7FVtsk/WTxj4i4uSEgj2Au+KBbS7SQyTlzMhhn+86Cz3tISZdTa87bfEfcuvZezf2ZsxD4xuEKtkog==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6110,8 +6433,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-use-callback-ref@1.1.1': - resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + '@radix-ui/react-use-callback-ref@1.1.4': + resolution: {integrity: sha512-R6OUY2e2fA6Yn6s+VSx5KBV6Nx8LQEhu+cz7LCej18rQ1HLyg9PSC9jP/ZNx0o6FAIK9c0F1kHylzSxKsdlkrQ==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -6119,8 +6442,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-controllable-state@1.2.2': - resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + '@radix-ui/react-use-controllable-state@1.2.6': + resolution: {integrity: sha512-uEQJGT97ZA/TgP/Hydw47lHu+/vQj6z/0jA+WeTbK1o9Rx45GImjpD0tc3W5ad3D6XTSR6e1yEO0FvGq6WQfVQ==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -6128,8 +6451,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-effect-event@0.0.2': - resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + '@radix-ui/react-use-effect-event@0.0.5': + resolution: {integrity: sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -6137,8 +6460,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-escape-keydown@1.1.1': - resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + '@radix-ui/react-use-is-hydrated@0.1.3': + resolution: {integrity: sha512-umO/aJ+82CpOnhDZUTbILCQf7kU/g0iv+oGs/Q8jw7IkhWBzaEP4sA268PhFAJTFetbwp3ICc6ktpI4TqtxcIw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -6146,8 +6469,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-layout-effect@1.1.1': - resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + '@radix-ui/react-use-layout-effect@1.1.4': + resolution: {integrity: sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -6220,25 +6543,25 @@ packages: '@types/react': optional: true - '@react-navigation/bottom-tabs@7.16.1': - resolution: {integrity: sha512-wjFATJmbq0K8B96Ax0JcK2+Eu7syfYvQ5qUd/tgcv8JuCYLwKKqojJMAl31qdjpKqFG09pQ6TSdEDHOek60CAA==} + '@react-navigation/bottom-tabs@7.19.2': + resolution: {integrity: sha512-sXUS7cySIj2cLwD1trdTnbqAm3TWYiF6L9i0VNES2+4ssUyBDgkIdmm7uxjhJ8ZSjzpWj8uSfLHkkSx0j0MpmA==} peerDependencies: - '@react-navigation/native': ^7.2.4 + '@react-navigation/native': ^7.4.1 react: '>= 18.2.0' react-native: '*' react-native-safe-area-context: '>= 4.0.0' react-native-screens: '>= 4.0.0' - '@react-navigation/core@7.17.4': - resolution: {integrity: sha512-Rv9E2oNNQEkPGpmu9q+vJwGJRSQR6LBg5L+Yo1QHjtwGbHUbjkIKOdYymDZoZYgNzX2OD4rAIlfuzbDKa3cCeA==} + '@react-navigation/core@7.22.1': + resolution: {integrity: sha512-6JAaYM4u6RPtVMUjN5ovX5DNBdBZtDqebk7kEwlncUP6fP4P94+qEYv1bRmtxSFs7UxiZwQQs+jzTsBaW2WeyA==} peerDependencies: react: '>= 18.2.0' - '@react-navigation/elements@2.9.18': - resolution: {integrity: sha512-mKEvDr6CkCVYZSb8W9WubNseihL+1c8M7ktZJCTCbMk8rQgdQfkdRNwpSUQKspdGpUHCb9cyzvaiuzl1NtjVgw==} + '@react-navigation/elements@2.9.43': + resolution: {integrity: sha512-XOYpRfgT9RPV2VIoXeEfTVdmXwEPpHwkezDkZVsVNEN6rTWDo07BPyLmWsvXooczyMf3jHe9AB2p/U9lJArtiQ==} peerDependencies: '@react-native-masked-view/masked-view': '>= 0.2.0' - '@react-navigation/native': ^7.2.4 + '@react-navigation/native': ^7.4.1 react: '>= 18.2.0' react-native: '*' react-native-safe-area-context: '>= 4.0.0' @@ -6246,26 +6569,26 @@ packages: '@react-native-masked-view/masked-view': optional: true - '@react-navigation/native-stack@7.15.1': - resolution: {integrity: sha512-kNrJggwoB/onC0MpZIuZ6qaqeAziFchz+W9txBzhd6qbWmB1OkPVUnu6fWgc6BQc7MeMf59djVmqgX+6kJU1Ug==} + '@react-navigation/native-stack@7.19.2': + resolution: {integrity: sha512-D6hmtgpMZz1x8R0PLbfqqKh5ajEkb13DguE7X/MNNKYL4riY4zD3TrjbcesUC2EZklpQ/EoJ6h6HAhMNfCCsoQ==} peerDependencies: - '@react-navigation/native': ^7.2.4 + '@react-navigation/native': ^7.4.1 react: '>= 18.2.0' react-native: '*' react-native-safe-area-context: '>= 4.0.0' react-native-screens: '>= 4.0.0' - '@react-navigation/native@7.2.4': - resolution: {integrity: sha512-eWC2D3JjhYLId2fVTZhhCiUpWIaPhO9XyEb7Wq8ElmOHyIODlbOzgZ0rKia02OIsDKr9BzZl2sK1dL70yMxDaw==} + '@react-navigation/native@7.4.1': + resolution: {integrity: sha512-pEnu5XzAXV6RWr6A6pmZ7qLB+O6TJWMhBO25AjckMdr596UWulMPHQCtBcnOUfg6K+2h9ZUctHF2E5Xu4vcOrQ==} peerDependencies: react: '>= 18.2.0' react-native: '*' - '@react-navigation/routers@7.5.5': - resolution: {integrity: sha512-9/hhMte12Kgu+pMnLfA4EWJ0OQmIEAMVMX06FPH2yGkEQSQ3JhhCN/GkcRikzQhtEi97VYYQA15umptBUShcOQ==} + '@react-navigation/routers@7.6.4': + resolution: {integrity: sha512-GI7eJm8/KsZUQaYcXvEExikKurRZRgEsSzyZ7faENfi65yqJBCXjDMwyN1pF6pNW1MoLH1ErDwDivFxY6BzD3w==} - '@remix-run/dev@2.17.4': - resolution: {integrity: sha512-El7r5W6ErX9KIy27+urbc4SIZnIlVDgTOUqzA7Zbv7caKYrsvgj/Z3i/LPy4VNfv0G1EdawPOrygJgIKT4r2FA==} + '@remix-run/dev@2.17.5': + resolution: {integrity: sha512-yEDrKcIICHnaJdUOdBAXQTNXoehB0J3FBcZr4CnK6Alic6cVJGGBGMtJdIO7DUwNySwoYvkUTS3qnXuk2zGYZA==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: @@ -6284,8 +6607,8 @@ packages: wrangler: optional: true - '@remix-run/express@2.17.4': - resolution: {integrity: sha512-4zZs0L7v2pvAq896zHRLNMhoOKIPXM9qnYdHLbz4mpZUMbNAgQacGazArIrUV3M4g0gRMY0dLrt5CqMNrlBeYg==} + '@remix-run/express@2.17.5': + resolution: {integrity: sha512-R4G22lXN4oRWusxdTsdnDYfjmnVaNUkWU6zg1OQZD15EJ5gZlx8psO62Tv77vXKN5XMhJ6YdODQ8179isvkNpw==} engines: {node: '>=18.0.0'} peerDependencies: express: ^4.20.0 @@ -6294,8 +6617,8 @@ packages: typescript: optional: true - '@remix-run/node@2.17.4': - resolution: {integrity: sha512-9A29JaYiGHDEmaiQuD1IlO/TrQxnnkj98GpytihU+Nz6yTt6RwzzyMMqTAoasRd1dPD4OeSaSqbwkcim/eE76Q==} + '@remix-run/node@2.17.5': + resolution: {integrity: sha512-CwOUCDJqh9o8r/n5N1l+vz4Jh7DFU52/jo7MN56+OL9gM+14aQKdq1aLAh+4V6GuI/qtki9PPk02GmULimmDkw==} engines: {node: '>=18.0.0'} peerDependencies: typescript: ^5.1.0 @@ -6303,8 +6626,8 @@ packages: typescript: optional: true - '@remix-run/react@2.17.4': - resolution: {integrity: sha512-MeXHacIBoohr9jzec5j/Rmk57xk34korkPDDb0OPHgkdvh20lO5fJoSAcnZfjTIOH+Vsq1ZRQlmvG5PRQ/64Sw==} + '@remix-run/react@2.17.5': + resolution: {integrity: sha512-ya6OQ+T9yS4u8www75f4dH11NIYeK8K0eMrei+q4BTp6NrY2lqLTBfHqVlc23ZsUnWqdLUII4hzySVv+AJbTWA==} engines: {node: '>=18.0.0'} peerDependencies: react: ^18.0.0 @@ -6314,17 +6637,17 @@ packages: typescript: optional: true - '@remix-run/router@1.23.2': - resolution: {integrity: sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==} + '@remix-run/router@1.23.3': + resolution: {integrity: sha512-4An71tdz9X8+3sI4Qqqd2LWd9vS39J7sqd9EU4Scw7TJE/qB10Flv/UuqbPVgfQV9XoK8Np6jNquZitnZq5i+Q==} engines: {node: '>=14.0.0'} - '@remix-run/serve@2.17.4': - resolution: {integrity: sha512-c632agTDib70cytmxMVqSbBMlhFKawcg5048yZZK/qeP2AmUweM7OY6Ivgcmv/pgjLXYOu17UBKhtGU8T5y8cQ==} + '@remix-run/serve@2.17.5': + resolution: {integrity: sha512-TeEMRz15dX/6XxOqBBd/3DEq54GTl1JZsdPXWncGJzDcwfgMm5awigwlmqcAuZpGn6aHLk/aFkuVFVi+X4ZHLQ==} engines: {node: '>=18.0.0'} hasBin: true - '@remix-run/server-runtime@2.17.4': - resolution: {integrity: sha512-oCsFbPuISgh8KpPKsfBChzjcntvTz5L+ggq9VNYWX8RX3yA7OgQpKspRHOSxb05bw7m0Hx+L1KRHXjf3juKX8w==} + '@remix-run/server-runtime@2.17.5': + resolution: {integrity: sha512-SyJ5n2pQyo4ERGvjjLvL2PpRWBzlC2qzO5KkkOE2ygOiNcgOu9WQnnom9GI8KgsTRCO8JnIeLHFRcmxZnVBjfw==} engines: {node: '>=18.0.0'} peerDependencies: typescript: ^5.1.0 @@ -6549,8 +6872,8 @@ packages: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} - '@rollup/pluginutils@5.3.0': - resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + '@rollup/pluginutils@5.4.0': + resolution: {integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -6558,146 +6881,146 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.60.4': - resolution: {integrity: sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ==} + '@rollup/rollup-android-arm-eabi@4.63.4': + resolution: {integrity: sha512-I+BSHzTAhKN2n7ZwGZsegGcZjDpLqFOMAtJz/u6uFGe0pUFbq56dEHjqJV/ZUdRJtNXNxA+hREUatZBvMR3Oiw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.60.4': - resolution: {integrity: sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw==} + '@rollup/rollup-android-arm64@4.63.4': + resolution: {integrity: sha512-pu3BdjS2LtEzRu2elmGzS3fIeWSZy4BMDIaLNwjorO76+k2d0LMluijhsDx3KQyQBQ/lLUZCQA9/s6csvUfuhw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.60.4': - resolution: {integrity: sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA==} + '@rollup/rollup-darwin-arm64@4.63.4': + resolution: {integrity: sha512-xfSrj9MHnWK9GaSqT9U0ImHtH/N8WZlHLx4cZHiuLcqs640hvZ3hLPd5UR2AZS57FaE8HrRUSpltbZdWRxHiDA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.60.4': - resolution: {integrity: sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg==} + '@rollup/rollup-darwin-x64@4.63.4': + resolution: {integrity: sha512-bqU99PLJb/dqb3S0GIMdeuyAEETSUgZBoqXYd3Sd+WCsV+MmPhnN6JrotWyir31+QgH7EvvE5/mwGJlEoci8Fw==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.60.4': - resolution: {integrity: sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g==} + '@rollup/rollup-freebsd-arm64@4.63.4': + resolution: {integrity: sha512-JinsFZ5G40oXQb+sUuiA5x689vhr6dDYK0H0NL+rwKdL6CqnmYN8PE4ZwfRSoIjrCxqTQG/SLfTtSvHeGxoVlw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.60.4': - resolution: {integrity: sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw==} + '@rollup/rollup-freebsd-x64@4.63.4': + resolution: {integrity: sha512-GAdA4UxpiNm27cLHr2GqXBpAD0x9FqwYBY7/YSP0Ss0/PNi4k8gbviqpIpYbVSRBaS2ZcegXEzgTQMbRNCwxCw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.60.4': - resolution: {integrity: sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA==} + '@rollup/rollup-linux-arm-gnueabihf@4.63.4': + resolution: {integrity: sha512-qDd6NoA1znaLjp4jR5U/KWCdLAKDJNB8W9ChbbDaKbo0xA+Atln5HK6LFCZ4oJQpemtRZA288DCirFRjrspptw==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.60.4': - resolution: {integrity: sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w==} + '@rollup/rollup-linux-arm-musleabihf@4.63.4': + resolution: {integrity: sha512-WtB5Tz5KTNINb8ZA+8sQ7bmjuS1JrRT7YverYIhUGdWWDlpzVWmIwuZE+jidkEXUn1l0zrEkaIMa8dHF3NGcsA==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.60.4': - resolution: {integrity: sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg==} + '@rollup/rollup-linux-arm64-gnu@4.63.4': + resolution: {integrity: sha512-VcQ3L1tjnkKzWjryAVaFhHEWcqOfICX9uxVVoDzm2t0DpgKRHd2zOpVrJc0xsWeBZcBFyYROCIBdyR/fS174pg==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.60.4': - resolution: {integrity: sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A==} + '@rollup/rollup-linux-arm64-musl@4.63.4': + resolution: {integrity: sha512-6+ZQX6P5s0cMDN2Ypb8Lbm2+/sZYmZjdaYny992ujUU9UKi/4CWoJWsl1pNvjWJHNHGK51m+jKGLlh1ylb2ifQ==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.60.4': - resolution: {integrity: sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ==} + '@rollup/rollup-linux-loong64-gnu@4.63.4': + resolution: {integrity: sha512-D72ZnvkFkBXOfzMMQLcwfPLyGkKb7HZ9/mf97B7v6/P5Lbv4oFOtSY/uHbS8lH6uKUOxoKiuokdb50XZSzzbJw==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-loong64-musl@4.60.4': - resolution: {integrity: sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw==} + '@rollup/rollup-linux-loong64-musl@4.63.4': + resolution: {integrity: sha512-piU6BxeqA3O9KSu3kRCIQQtNqFFaTu21SEV4FwaRZowpnj3bLaWPZHw+xFqCs0XlJ+aOH3PTRWGoglH+mKA/OA==} cpu: [loong64] os: [linux] libc: [musl] - '@rollup/rollup-linux-ppc64-gnu@4.60.4': - resolution: {integrity: sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg==} + '@rollup/rollup-linux-ppc64-gnu@4.63.4': + resolution: {integrity: sha512-/5PGpHwqt2EEEOUs1XwzubE/ucr0dWDQ+to3zqi4Ds7EWpwtQ79wXc4JBoxqj/OwpawTsKWzJxHfSuBOq3DrWA==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.60.4': - resolution: {integrity: sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A==} + '@rollup/rollup-linux-ppc64-musl@4.63.4': + resolution: {integrity: sha512-cX3beZDLWt7G2oJF+nhChiT+qtaihs+S2xi7ziGmVB+2pwPng6D0Ed0HmElQOgv2UsUmSJJLGwpBao/3TDx3VA==} cpu: [ppc64] os: [linux] libc: [musl] - '@rollup/rollup-linux-riscv64-gnu@4.60.4': - resolution: {integrity: sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA==} + '@rollup/rollup-linux-riscv64-gnu@4.63.4': + resolution: {integrity: sha512-1uz2mGWHyptR7DgHHrlbdRAjXK7v7elGZ9lMja910/RP+ZYbX6xAmCiU9UZSX4hqmgtHMv6lr5l3kq1HIOpcag==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.60.4': - resolution: {integrity: sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw==} + '@rollup/rollup-linux-riscv64-musl@4.63.4': + resolution: {integrity: sha512-nLS8topojxyz7SRpKR2IODRpQ0XPZ+xaOXvT3+hqK/Uy8Lo5HFgkkIBiIrCu5tL5YqzTvgovGw55PwpahTAGig==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.60.4': - resolution: {integrity: sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ==} + '@rollup/rollup-linux-s390x-gnu@4.63.4': + resolution: {integrity: sha512-gs7DRKotr3l3q+jGPQBjH0ng1FjlEDm5ueQrkw5JtQvtLyEIcLASqAEaor56BhkKRzk+IcQzrcanBdb/bBQn8g==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.60.4': - resolution: {integrity: sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ==} + '@rollup/rollup-linux-x64-gnu@4.63.4': + resolution: {integrity: sha512-791ET7W17NnScOZM7h4dX5hYspxE28htPFsb1awY/NRR8+PRNkS53e475rDdxXXDrP+kwnCcNWg9CX5ztn/Aqw==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.60.4': - resolution: {integrity: sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg==} + '@rollup/rollup-linux-x64-musl@4.63.4': + resolution: {integrity: sha512-iwZQRcmj7g88g3tzefIrQY7qvmuA/cfYwhrDtTBhsmukO4U2huVO5W+86XacUMRvdSFVAc6kZUZy21JaRwiB9w==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openbsd-x64@4.60.4': - resolution: {integrity: sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA==} + '@rollup/rollup-openbsd-x64@4.63.4': + resolution: {integrity: sha512-dVHFp9gRWrdTpnqQuGfCwd7hOQDatK1VCP2iWhLY/cGrOQs/ucFzJ6A5SRqbXX12ZDI8EUuejSM5kwg+ja7Png==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.60.4': - resolution: {integrity: sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg==} + '@rollup/rollup-openharmony-arm64@4.63.4': + resolution: {integrity: sha512-t3NlauOW6gxZVVFcBEnO62Cb4wbyDFL416gTg1uFI/2tgqYQlf69FbSE115Ajre9I+c26Lk4mcmdFUsS/DGifQ==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.60.4': - resolution: {integrity: sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw==} + '@rollup/rollup-win32-arm64-msvc@4.63.4': + resolution: {integrity: sha512-xWuIaSye5FWZF8+UYtVEcHtRJDN5kN9Kfgxx3Kq8XIov9KSKbc1fiqQCm90SKrgQbUXZelbnUhnlUJmfSE7P9A==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.60.4': - resolution: {integrity: sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA==} + '@rollup/rollup-win32-ia32-msvc@4.63.4': + resolution: {integrity: sha512-9ALJJUOg/ZflMJepVo2PlgsGxSaxN7SQ4Z8GoZfVlarWr6r3rkHUNsd/zAio7p4YMtChSMXPionxej4Hkf6CXQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.60.4': - resolution: {integrity: sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw==} + '@rollup/rollup-win32-x64-gnu@4.63.4': + resolution: {integrity: sha512-blj9z5qx/Pv4WU0W1NMFDB97e0JH5ed+aZGywW8WCvp/NhWX/4PFAq5uu6Q0AebNn+Vo6KzUYDT++JzTT5ojlQ==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.60.4': - resolution: {integrity: sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw==} + '@rollup/rollup-win32-x64-msvc@4.63.4': + resolution: {integrity: sha512-Erx822VRBwLa124shbj+wNXe//BOgMEctDV0m1aqTQdNO1S69DgNUCFKC1RCeZfixs1J31l6igk1ziyXErbigQ==} cpu: [x64] os: [win32] - '@rollup/wasm-node@4.60.4': - resolution: {integrity: sha512-j6qaRjdDujJ5utX5l6+8eiWlvMLmBfPMBht8mHP2au3xuzf+4deu6PuCquH5GvDIvIOsWHZhA1UVz/s0FvvgAA==} + '@rollup/wasm-node@4.63.4': + resolution: {integrity: sha512-pXmzGQzpMazI9wL+5ifqPfIOR5FFblTWTPS/tIg/WXH8JpLYFbJsOq4UyL2RH2FNAnfPqoC28wgRLudGH66NPA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -6726,8 +7049,8 @@ packages: '@rushstack/ts-command-line@4.22.6': resolution: {integrity: sha512-QSRqHT/IfoC5nk9zn6+fgyqOPXHME0BfchII9EUPR19pocsNp/xSbeBCbD3PIR2Lg+Q5qk7OFqk1VhWPMdKHJg==} - '@schematics/angular@21.2.12': - resolution: {integrity: sha512-eHoAbxd6Kdw9YIQeZO/6lBXTmKKi10t4WTujY8CM5v4qv1zoJu9yiwVeQp9y3e7/Sybz5Ec3m4FmQ0Tw8iVDiA==} + '@schematics/angular@21.2.24': + resolution: {integrity: sha512-eGBr4Yhg/A8Lt8QGtWxmXAyKboX8QBwbDG1hSyApQfHAh9iNFbV7mgWSmk0qPWvRJM38s0t3EEkEg79QZ98dWQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} '@shikijs/engine-oniguruma@3.23.0': @@ -6753,8 +7076,8 @@ packages: resolution: {integrity: sha512-qRsxPnCrbC/puegGxKuynfnxgLiHqWStrSjxkoB4YKqq3Z3s4cyZyj42ZdWFAEblNP65C+rBH8EuREHIXoi83g==} engines: {node: ^20.17.0 || >=22.9.0} - '@sigstore/protobuf-specs@0.5.1': - resolution: {integrity: sha512-/ScWUhhoFasJsSRGTVBwId1loQjjnjAfE4djL6ZhrXRpNCmPTnUKF5Jokd58ILseOMjzET3UrMOtJPS9sYeI0g==} + '@sigstore/protobuf-specs@0.5.2': + resolution: {integrity: sha512-SQqvFMt4V78fdjcDdYX6HbiVSOR4QK3ZgwCa2KOsopAgPIHy1rU5UDUmzLl02r5oyyaYcYHR1hpwDRk/yUe+Mw==} engines: {node: ^18.17.0 || >=20.5.0} '@sigstore/sign@4.1.1': @@ -6769,8 +7092,8 @@ packages: resolution: {integrity: sha512-qv7+G3J2cc6wwFj3yKvXOamzqhMwSk1ogPGmhpS8iXllcPrJaIIBA+4HbttlHVu1pqWTdmaCH/WE7UOC51kdoA==} engines: {node: ^20.17.0 || >=22.9.0} - '@sinclair/typebox@0.27.10': - resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==} + '@sinclair/typebox@0.27.12': + resolution: {integrity: sha512-hhyNJ+nbR6ZR7pToHvllEFun9TL0sbL+tk/ON75lo+Xas054uez98qRbsuNt7MBCyZKK4+8Yli/OAGZhmfBZ/g==} '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} @@ -6778,33 +7101,33 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - '@solid-primitives/event-listener@2.4.5': - resolution: {integrity: sha512-nwRV558mIabl4yVAhZKY8cb6G+O1F0M6Z75ttTu5hk+SxdOnKSGj+eetDIu7Oax1P138ZdUU01qnBPR8rnxaEA==} + '@solid-primitives/event-listener@2.4.6': + resolution: {integrity: sha512-5I0YJcTVYIWoMmgBSROBZGcz+ymhew/pGTg2dHW74BUjFKsV8Li4bOZYl0YAGP4mHw5o4UBd9/BEesqBci3wxw==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/keyboard@1.3.5': - resolution: {integrity: sha512-sav+l+PL+74z3yaftVs7qd8c2SXkqzuxPOVibUe5wYMt+U5Hxp3V3XCPgBPN2I6cANjvoFtz0NiU8uHVLdi9FQ==} + '@solid-primitives/keyboard@1.3.7': + resolution: {integrity: sha512-558RPNYnXx4nGh537DSqAn4xMrC8iFipl/5+xzgzWoTNFst4RnUN3BOLmtDjJ0UGGoQXVMALYR3bNOHM0xnt1Q==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/resize-observer@2.1.5': - resolution: {integrity: sha512-AiyTknKcNBaKHbcSMuxtSNM8FjIuiSuFyFghdD0TcCMU9hKi9EmsC5pjfjDwxE+5EueB1a+T/34PLRI5vbBbKw==} + '@solid-primitives/resize-observer@2.2.0': + resolution: {integrity: sha512-9Fuu/EWBeGj+atGHRJp70HKhdfalmpjwxY8a32NZixdLNmfCJ45AfhLQNr6uOzETbbiMx4iCKlTrJ8KZCHC2Ww==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/rootless@1.5.3': - resolution: {integrity: sha512-N8cIDAHbWcLahNRLr0knAAQvXyEdEMoAZvIMZKmhNb1mlx9e2UOv9BRD5YNwQUJwbNoYVhhLwFOEOcVXFx0HqA==} + '@solid-primitives/rootless@1.5.4': + resolution: {integrity: sha512-TOIZa1VUfVJ+9nkCcRajw3U4t9vBOP1HxX1WHNTbXq32mXwlqTvUnC4CRIilohcryBkT9u2ZkhUDSHRTaGp55g==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/static-store@0.1.3': - resolution: {integrity: sha512-uxez7SXnr5GiRnzqO2IEDjOJRIXaG+0LZLBizmUA1FwSi+hrpuMzVBwyk70m4prcl8X6FDDXUl9O8hSq8wHbBQ==} + '@solid-primitives/static-store@0.1.4': + resolution: {integrity: sha512-LgtVaVBtB7EbmS4+M0b8xY5Iq6pUWXBsIC4VgtrFKDGDdyCaDt88sHk0fUlx1Enxm/XZnZyLXJABRoa39RjJqA==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/utils@6.4.0': - resolution: {integrity: sha512-AeGTBg8Wtkh/0s+evyLtP8piQoS4wyqqQaAFs2HJcFMMjYAtUgo+ZPduRXLjPlqKVc2ejeR544oeqpbn8Egn8A==} + '@solid-primitives/utils@6.4.1': + resolution: {integrity: sha512-ISSB5QX1qP2ynrheIpYwc4oKR5Ny4siNuUyf1qZniy+Il+p/PtDB0QK1Dnle8noiHpwRD3gpPdubOC3qI/Zamg==} peerDependencies: solid-js: ^1.6.12 @@ -6827,13 +7150,17 @@ packages: peerDependencies: eslint: ^9.0.0 || ^10.0.0 - '@sveltejs/acorn-typescript@1.0.10': - resolution: {integrity: sha512-4WfKk68eTih+MiJD4fSbxN7E8kVBmTMPWHUPYjvl2N0rMs53YLTT8/YjKU5Dtnz5LqDjl7LEw4U7lXR2W3J5WA==} + '@sveltejs/acorn-typescript@1.0.13': + resolution: {integrity: sha512-wgKggnhZVL9Bfx1OaKKTrYY9BFRk6C8UAkQNUcIv1+llzYrIqy+RZm5HPKzn0NpEBvTVhTqB4kQyllZywsRBRQ==} peerDependencies: acorn: ^8.9.0 - '@sveltejs/package@2.5.7': - resolution: {integrity: sha512-qqD9xa9H7TDiGFrF6rz7AirOR8k15qDK/9i4MIE8te4vWsv5GEogPks61rrZcLy+yWph+aI6pIj2MdoK3YI8AQ==} + '@sveltejs/load-config@0.2.3': + resolution: {integrity: sha512-VT3qmUb8pRV2QrZjd8iAmtg8lf4W0TIjZbvXtz5MKei/q96teWZgGJyyidJzOjzZzvdq616eSRVeMYIQChUTAQ==} + engines: {node: '>= 18.0.0'} + + '@sveltejs/package@2.5.8': + resolution: {integrity: sha512-zeBbsXYvHiBu56v4gJaGQoEHzg96w0E1j3dOMX8vo56s6vI5eQ57ZEZhudjwjnegnVitRRu5MrmhO0eNvaonIw==} engines: {node: ^16.14 || >=18} hasBin: true peerDependencies: @@ -6854,86 +7181,86 @@ packages: svelte: ^5.0.0 vite: ^6.0.0 - '@swc/core-darwin-arm64@1.15.40': - resolution: {integrity: sha512-PaYyclfmQ++77D8ityYvmmVzHv9aG8ROwt2GfG6/ccloy4Hgf80qtOnzb9VYvPsUT7Ty1uhuDRhv3XYpf62qhQ==} + '@swc/core-darwin-arm64@1.16.2': + resolution: {integrity: sha512-i/j0HNbnn79qnTVPicvay92Nark8fW8NQqn1e2mGERjUXNpBV0+SwQxlRpk2zBhn6laJ8PDI6Kn1nHZhnz3LCA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.15.40': - resolution: {integrity: sha512-HbbPzvfLBUXjIB1Ezks+//lNUjmLjfyd63XSwprJgrZaXYdm70kohXPJUWdqKZozolFxbPaO+xtBaiUp6BoueA==} + '@swc/core-darwin-x64@1.16.2': + resolution: {integrity: sha512-HrwqHyEyHVXO3qTk8EkNK7/b6sOZSEoNh+pot6RdE5x0LbNqfo8LtJUvi3UTXr+5ja/o5HbJdW80eCXo+NjbiA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.15.40': - resolution: {integrity: sha512-SlRZsCjOCPR2LvFs0Ri/Xrx/5o5TCt8vl4gW6mX1hEZOG0a625RxzRHpHdAQNGykmAN/7IeaFAJG+QnNmxlHcA==} + '@swc/core-linux-arm-gnueabihf@1.16.2': + resolution: {integrity: sha512-MdXi83Z/gGp1LIrg+h7HKxiul/z/Bty/ZJSvYAFqDl9zteC1XLSAZdScquKtXPp50rdyXqritTDCqQBhwVfZKA==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.15.40': - resolution: {integrity: sha512-Q8byxJt2fh8CR3EUX6snBpy47AoBVm+In/+Z3rjDHMjC38ZvR9/gtUUNCT0tfrn4EdVsO8/QPi59nxrxvqxvBQ==} + '@swc/core-linux-arm64-gnu@1.16.2': + resolution: {integrity: sha512-/jcTmK6Ktz3owM3YtiKvjofV6p3VpHnYzTIrOGwDIOsDigRAAVuZ8east33wYO/7UTdKYFlyHNnJNT0WJqOA3Q==} engines: {node: '>=10'} cpu: [arm64] os: [linux] libc: [glibc] - '@swc/core-linux-arm64-musl@1.15.40': - resolution: {integrity: sha512-4z0MgHU+7M0pZDqBN1El7mFXDI1SBwinfcUkAyA4v8QrhOIUOZltySt2aStQLZGrdXVXM4Y4ylfiTC04ED+MoQ==} + '@swc/core-linux-arm64-musl@1.16.2': + resolution: {integrity: sha512-4gFarKaFnlJTSlJYKmMhV4u+3YE4uYfiydpBoYjmgQhCf9lAieOq+WilZaK9vVSHeqLuQpTEiGULZqAdsRX5Dw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] libc: [musl] - '@swc/core-linux-ppc64-gnu@1.15.40': - resolution: {integrity: sha512-fLI4iUgeSZu0eRWUXwe6YzPFx9gHbFiPkl8Rp3mJfP8OpNR3nTQCGPvHdDh9xniW7mVvgMY4ni7A4VzqI1KrpA==} + '@swc/core-linux-ppc64-gnu@1.16.2': + resolution: {integrity: sha512-syqSLGd6KlZ1PciNzs6bIUlhOuFztZufebOHaERjc4N4SqNZxyqYd4I+jj/EfOYnpe0kNjccn9HJLN1p5dz3+w==} engines: {node: '>=10'} cpu: [ppc64] os: [linux] libc: [glibc] - '@swc/core-linux-s390x-gnu@1.15.40': - resolution: {integrity: sha512-YqeKMAb7d4nQSGMJQ454IlaCENpzcDqhvBE9+CPfdnYpnUXxd+BSrB6Xk0YjW8UyoEhUj4p6quATCxbsp6J3jg==} + '@swc/core-linux-s390x-gnu@1.16.2': + resolution: {integrity: sha512-ZBBLK+ewGyXLzWeMS7wbKtWBdnif6etn7xvPY/iOfbdsjX/+bgkp1pQt2lWF2wlu2hXYZuhJ/tHZE/QR8/apzg==} engines: {node: '>=10'} cpu: [s390x] os: [linux] libc: [glibc] - '@swc/core-linux-x64-gnu@1.15.40': - resolution: {integrity: sha512-7HOuS1iGcme/j/TuL1TfmmLGiMQrjv/GmjyZeydl00FKPtpGXEldwqfI56xgd1YzrzoB2svWjxbGGyQ0TEASxg==} + '@swc/core-linux-x64-gnu@1.16.2': + resolution: {integrity: sha512-LyHJgxCA4Tje0ysBMbEb0tt/ie8kgUKoFE3JAKFhpevmTmhYEoC0H9s47WuDsqiFckF1ITUguZIXJG6K5e0dvg==} engines: {node: '>=10'} cpu: [x64] os: [linux] libc: [glibc] - '@swc/core-linux-x64-musl@1.15.40': - resolution: {integrity: sha512-h4kZYHc7dpc9P9u4brRJaS8Pl7tPVHAeiLSzw7T5RfIJgAoSdaCMKzI/2Uay9gFhaw8uyCDl0L5q37r0EpAfIA==} + '@swc/core-linux-x64-musl@1.16.2': + resolution: {integrity: sha512-PghXJlVM1cgtLfNUR1vxFo1z+PDRAe8cWAJlZZ7spmeiN7BospGXg/MHUg7oNSgwSX7Zo//YKv9P5yD9apsFJQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] libc: [musl] - '@swc/core-win32-arm64-msvc@1.15.40': - resolution: {integrity: sha512-+mQgKZXSj6mV38Zh05QaxSjUDmGP/R2JWlXZTDLSPkDzHU6p3GxN9eeSf5dfyDVU86946fmCvSzyl/ucImx8+A==} + '@swc/core-win32-arm64-msvc@1.16.2': + resolution: {integrity: sha512-StTOSefYBxemvNYYUI3UmO1a8y+hSPjjfHogC2TEHL+Z1PlEBim/XtLas5rS04jAzT9RrNmbtX911SZ42H9jSQ==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.15.40': - resolution: {integrity: sha512-yvwdPLGd25mcj/mNatjNQ0lZujtQD6psH3v9PNmMb+fSzjbNG8KIDxjFWrcV+fsFVLOkyOmdJsFmX7NAFjVyPw==} + '@swc/core-win32-ia32-msvc@1.16.2': + resolution: {integrity: sha512-fycER209DYIzsibpTMC+chND05OfOjgztWL9U8OE6/uUlsOUZH3eh98isBLEnOymYUhlJLEt5++W1+KL/FOh5Q==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.15.40': - resolution: {integrity: sha512-OXtKsLU1bVtInzzDEAY2sYiF/rl4tvAnLLLpuMp3HzAOQZ5A+i69AKDhA1YLQTaMAqO3vzyYNVAYVRMPtSYD4w==} + '@swc/core-win32-x64-msvc@1.16.2': + resolution: {integrity: sha512-cSd1z6ivSrJPVr+moVwOHWjeKy6TpO4/Shwcv5KCrKYXCccxwh4pRy1C3fDioNx2PF1jPZWHKZjtXt+Be9VbaQ==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.15.40': - resolution: {integrity: sha512-2kwzJikRvgtNAG7MwVZY2vEzZjTxKIq5jXOihuSV/8U+Hej8Va22t65aKnJZs3P+NwojZvR8Mf8kyM7O+V8sQg==} + '@swc/core@1.16.2': + resolution: {integrity: sha512-95I4kiSMeveI/Mhi+tE4fiWcWLUMfzfKrk0jtr8LRMqHgOgq+xHS+zExkDqoO4b5OeeuXHMWVdD5MeP3X6sULw==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -6947,8 +7274,8 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@swc/types@0.1.26': - resolution: {integrity: sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==} + '@swc/types@0.1.28': + resolution: {integrity: sha512-V6Mnml8v09QALx6K0elJ7o9K/MkVDtW3t6L+7Ou/JcWtb3xwId2AH4FeOceySd2JaO87IMw4+6vSZxLm34LPbw==} '@tanstack/angular-store@0.9.3': resolution: {integrity: sha512-8i6GreuOQ7UFIQpYWLpXUaFHEP4XcaMcN+F05Bo5LOPN8s90fiCzt00CQbV9rbRHqzXaIcY8bwcXKOTRMxNVNQ==} @@ -6964,8 +7291,8 @@ packages: resolution: {integrity: sha512-cNnJ89Q021Zf883rlbBTfsaxTfi2r73/qejGtyTa7ksErF3hyDyAq1aTbo5crK9dAL7zSHh9viKY1BtMls1QOA==} engines: {node: '>=18'} - '@tanstack/devtools-event-client@0.4.3': - resolution: {integrity: sha512-OZI6QyULw0FI0wjgmeYzCIfbgPsOEzwJtCpa69XrfLMtNXLGnz3d/dIabk7frg0TmHo+Ah49w5I4KC7Tufwsvw==} + '@tanstack/devtools-event-client@0.4.4': + resolution: {integrity: sha512-6T5Yop/793YI+H+5J8Hsyj4kCih9sl4t3ElLgKioW5hk3ocn+ZdSJ94tT7vL7uabxSugWYBZlOTMPzEw2puvQw==} engines: {node: '>=18'} hasBin: true @@ -6975,8 +7302,8 @@ packages: peerDependencies: solid-js: '>=1.9.7' - '@tanstack/devtools-ui@0.5.2': - resolution: {integrity: sha512-GtaMk8kaGZ9ZdR8Pu5RAfcse/ZrxzH/xsAIFtHMapLs2VMqSPFfb1NvIDO1MAAfUcub8Ix8XKQEP0uYSPzoFKw==} + '@tanstack/devtools-ui@0.5.3': + resolution: {integrity: sha512-iJjwWtdXhUGpeHyyW9+3NhXhmlVFhh3v3UBNKCouykG9UFXEtneVVNXgSRpd70DeYJFmvKOY19LafKRI5/cM7A==} engines: {node: '>=18'} peerDependencies: solid-js: '>=1.9.7' @@ -7014,8 +7341,8 @@ packages: resolution: {integrity: sha512-2g+PuGR3GuvvCiR3xZs+IMqAvnYU9bvH+jRml0BFBSxHBj22xFCTNvJWhvgj7uICFF9IchDkFUto91xDPMu5cg==} engines: {node: '>=18'} - '@tanstack/history@1.162.0': - resolution: {integrity: sha512-79pf/RkhteYZTRgcR4F9kbk84P2N8rugQJswxfIqovlbRiT3yI7eBE+5QorIrZaOKktsgzRlXh1l/du/xpl4iA==} + '@tanstack/history@1.162.4': + resolution: {integrity: sha512-utTS5L2OkeYUzXGohL1Z8sefu1GLNOJcxe8Hd6iIdc/Xo1K1nDB2JEp4iSFhvYh33xKC9V91TxrS8qfrpoKobQ==} engines: {node: '>=20.19'} '@tanstack/lit-store@0.13.2': @@ -7023,17 +7350,23 @@ packages: peerDependencies: lit: ^3.0.0 + '@tanstack/octane-store@0.12.2': + resolution: {integrity: sha512-MCWaLcdfv3iOnAEYWJ2hF7G+BgxyVJpD6nUQ3ud9oXaNHX6thgSOQKkOCj/Eo6UzTnl6kKsxPYsgrgiwNympgA==} + engines: {node: '>=22'} + peerDependencies: + octane: 0.1.21 + '@tanstack/pacer-lite@0.1.1': resolution: {integrity: sha512-y/xtNPNt/YeyoVxE/JCx+T7yjEzpezmbb+toK8DDD1P4m7Kzs5YR956+7OKexG3f8aXgC3rLZl7b1V+yNUSy5w==} engines: {node: '>=18'} - '@tanstack/preact-store@0.13.1': - resolution: {integrity: sha512-0h8ku2LfJ/TtVtgx24CLgS2OgzY5wVsRWIGktE0yq6b6fHlsCcY55IEJXTDRs0RTYWFOXu7N/1kfb2SLEOasaw==} + '@tanstack/preact-store@0.13.2': + resolution: {integrity: sha512-CBosOLog5UnaZX9YHRA2LKJm5XR0tCABvNWDfDMcyFeLtEnJ9W9DOVbz4JxXMb3+LZhGEMVrt1iA77npNx/9rw==} peerDependencies: preact: ^10.0.0 - '@tanstack/query-core@5.100.14': - resolution: {integrity: sha512-5X41dGpxgeaHISCRW2oYwcSycZeULZzAunaudXT9ov1KOTj9xwt0CH6hbwqP1/z74ZWF7rYFnDpyYH07XFcZew==} + '@tanstack/query-core@5.103.1': + resolution: {integrity: sha512-rms8HqTGp6zA00dM+cUQ2eBcgzNJefuu5CAMB37i/6MiGT1zulPOytCFu2a0qjLqVR2n1jENPj9woqFQNuCzWA==} '@tanstack/react-devtools@0.9.13': resolution: {integrity: sha512-O9YXTEe2dlnw2pPNKFZ4Wk7zC4qrDvc0SAALKfMVedeZ2Dyd0LEJUabYS6GPm+DmnrBhc7nJx6Zqc9aDjFrj4g==} @@ -7044,38 +7377,31 @@ packages: react: '>=16.8' react-dom: '>=16.8' - '@tanstack/react-query@5.100.14': - resolution: {integrity: sha512-oOr6aRdSFEwWhzxEkD/9ZcItM3+LjBSkeVmadWKwUssAHTsqd/7bOjWrX4AbvEkoEhgAxzN0Xk6H/aYzXiYBAw==} + '@tanstack/react-query@5.103.1': + resolution: {integrity: sha512-rmAPPApNEK17VXRJhtE1rja53n23VV5w30C0saCgJhhX+EpdUnVqMGV/s5nnzV43X75KTHKzuoiuxSzGTBIkag==} peerDependencies: react: ^18 || ^19 - '@tanstack/react-router@1.170.17': - resolution: {integrity: sha512-ppLkjCfSMaeug9rmFRYzOd4TIqWV+yTE7tzIny7alJsSnM7w4lzEZm6eqCehG0SPetpZ0R3K+UnanSmBgOAVcQ==} - engines: {node: '>=20.19'} - peerDependencies: - react: '>=18.0.0 || >=19.0.0' - react-dom: '>=18.0.0 || >=19.0.0' - - '@tanstack/react-router@1.170.8': - resolution: {integrity: sha512-Qw2ju6jjnIsMpuW+VrnHZWHuugqs592PWsnI56sG28qNhg14CgRLahOcNajfuJR9P4MxKGP94WVzmFKSYUz/ig==} + '@tanstack/react-router@1.170.38': + resolution: {integrity: sha512-iHM9b0aDJbuvftmkiQXawzoqsdV68p2Re2safbVLCnxafe+iLKV++2i3hI/BMAP6uR92/Mjw94JKJJfD7pbwHQ==} engines: {node: '>=20.19'} peerDependencies: react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' - '@tanstack/react-start-client@1.168.15': - resolution: {integrity: sha512-pW50PHvadgi50iNCw6deUOvqc9rzs30SstyFZY2tcS9z1XlqTlELSvGowjxdu2m0ymtqm1emj1jau1iP7+3+PQ==} + '@tanstack/react-start-client@1.168.36': + resolution: {integrity: sha512-TRXZKag/Ng0TqVfcN4cbEDVJhEZYosHZ9/VAEhK3PK/YqznytK+bcoonE4jP5NCXMdH2YRTMsrWKrApEuWz0Cg==} engines: {node: '>=22.12.0'} peerDependencies: react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' - '@tanstack/react-start-rsc@0.1.26': - resolution: {integrity: sha512-+FMm3qtT1gWsl0i5sG/Q70mh1k7tzZUsPBaqbg4v34zVJZ+XGn1mJb34x2w7z1M0/e7co6GkZfV8BRpczrs8UA==} + '@tanstack/react-start-rsc@0.1.55': + resolution: {integrity: sha512-qfW89LMrewtMLHMCumMP3+3mf2gPezFE7FZ7CHPJis4paxt2A6Jl7eCpE6whYgc5DFiifUv9qdfbC22HIP0HAw==} engines: {node: '>=22.12.0'} peerDependencies: '@rspack/core': '>=2.0.0-0' - '@vitejs/plugin-rsc': '>=0.5.20' + '@vitejs/plugin-rsc': '>=0.5.30' react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' react-server-dom-rspack: '>=0.0.2' @@ -7087,15 +7413,15 @@ packages: react-server-dom-rspack: optional: true - '@tanstack/react-start-server@1.167.21': - resolution: {integrity: sha512-puJ7eFxaLuDzeM/tiLDJaXCA4uK+PZnEOoIC73zipsFqx865MGzrRS/GSZxeVxjavC5iHU+ZwC+rgI0qYSol1A==} + '@tanstack/react-start-server@1.167.43': + resolution: {integrity: sha512-/Fc1mOEBAyXmqxnihIkS1DrCcJX8ffrJ+xyc8nnFmO9YuCdrnZJskd48R1ZiOhM7u3vCPzDxUycIhKo8HlKn2g==} engines: {node: '>=22.12.0'} peerDependencies: react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' - '@tanstack/react-start@1.168.27': - resolution: {integrity: sha512-rdGFDqfCW71gyofyAxaYxhelNKmeVjpmbpm0uFYbNHORCa///4aBxi7B7ecShibKv9O4GfJ66MPX5F0ozbm+ig==} + '@tanstack/react-start@1.168.56': + resolution: {integrity: sha512-b/jVJS+yt7J0IKwXfVoA2mlhIi92sWfwCYrCVked0WERzgbYAad6xrOwNTljz9OKyeajofGrmMdKJgRzK1Lt2w==} engines: {node: '>=22.12.0'} peerDependencies: '@rsbuild/core': ^2.0.0 @@ -7111,36 +7437,26 @@ packages: vite: optional: true - '@tanstack/react-store@0.11.0': - resolution: {integrity: sha512-tX4YXh3PDkmpvGQWkWqKpzs/MSqbtuwY9dWdWhtV9Q50PmO+jOkUKIWIX4G85dwt7lxdHLXsiaEKPdKmC8F41w==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - '@tanstack/react-store@0.9.3': - resolution: {integrity: sha512-y2iHd/N9OkoQbFJLUX1T9vbc2O9tjH0pQRgTcx1/Nz4IlwLvkgpuglXUx+mXt0g5ZDFrEeDnONPqkbfxXJKwRg==} + '@tanstack/react-store@0.11.1': + resolution: {integrity: sha512-HaIGKI3YLmjBYIvy5DFDY23oNaYZIsTZfngey07Uh5iLVJgM3bIGCnZeOFOqzjFld9JHWcaHJnasD/bKoGKwJQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/router-core@1.171.14': - resolution: {integrity: sha512-Mo3hwx0qB0cJsVYGDjG0+Ouf7VV74h/vsoDMGztdlyzDanp4gBA2s7IVvm6hFrmQM6GpD9F0Z7SqD7OldfLE7g==} - engines: {node: '>=20.19'} - - '@tanstack/router-core@1.171.6': - resolution: {integrity: sha512-Ol6DQ+j6rf/rPVELIzo8LHwOQV2KL+zry3b+39kL/GKrt7YId52WJRAFMzuseY4XceSW+PU7sG/Cc1QkwJr0hg==} + '@tanstack/router-core@1.171.32': + resolution: {integrity: sha512-X86Jqk3vB2KJcUfS6oLi7B7yxbaa59QEhZRPPP1fRx3k+Jw/Fu1UYVBcRtdwK/OccQnrlQdVoKvNO3QXmyEBOw==} engines: {node: '>=20.19'} - '@tanstack/router-generator@1.167.18': - resolution: {integrity: sha512-kFvM4caRds9Q3EXg64bZubJ6rbDxyV0YDSBSGvOGzmKspQPdz5Xrh0uj5T1Ov8avUUg+c761u04VQAaEzSBXRw==} + '@tanstack/router-generator@1.167.38': + resolution: {integrity: sha512-lkqgFleDgfkW+QONVMKBs+ZGDUF0v9R9FkplS/GZvKDFpfnu+tZxmGlV2pryU1TDxyuSyjh56AtIla3NMrlScw==} engines: {node: '>=20.19'} - '@tanstack/router-plugin@1.168.19': - resolution: {integrity: sha512-aFglwLc+bbPTgZlkXn3PvOwpjJAfgUyPGSuql4MP3XrqTTh6WkBiy2RYb6oaG5h0s7EKwivEuq85K3Y4V0Mt1g==} + '@tanstack/router-plugin@1.168.40': + resolution: {integrity: sha512-ifiXjjR4uivxwRDhgYAcfyrcu+Mwx+vlG0QjjQ7N5C5sKmzpt5UtsL21TNVvZDSZl2Vae8DcL84Z02fOs8ZZMQ==} engines: {node: '>=20.19'} peerDependencies: '@rsbuild/core': '>=1.0.2 || ^2.0.0' - '@tanstack/react-router': ^1.170.17 + '@tanstack/react-router': ^1.170.38 vite: '>=5.0.0 || >=6.0.0 || >=7.0.0 || >=8.0.0' vite-plugin-solid: ^2.11.10 || ^3.0.0-0 webpack: '>=5.92.0' @@ -7156,8 +7472,8 @@ packages: webpack: optional: true - '@tanstack/router-utils@1.162.2': - resolution: {integrity: sha512-hTWqJtqIFFdvuCl8WXNyrodp2L9zo2G37xKRrcVmVRWpAB2h+U1LuRAfS4tsFTiWOIoE/B+WDVFB8JpoEdw6jQ==} + '@tanstack/router-utils@1.162.3': + resolution: {integrity: sha512-Icb0xGuG1+54IV0WMLRcc3ErTx2HeJWyPG661FkQ8UT6guoBq1FJjFRqlG/JS0xi4mFFkBhvwO7tbLa32f3yxA==} engines: {node: '>=20.19'} '@tanstack/solid-devtools@0.7.33': @@ -7166,21 +7482,21 @@ packages: peerDependencies: solid-js: '>=1.9.7' - '@tanstack/solid-store@0.11.0': - resolution: {integrity: sha512-2isL0ZnnyI1iN0V+QPrxE3OcPndohBgVlBcHZYoAOIAiU1WoWjVy0q5gb0suPu1Id0h5cKC23JnwzQTxWDZD0w==} + '@tanstack/solid-store@0.11.1': + resolution: {integrity: sha512-wzJsiqqLHyQacqbYPT8dKNfhR00NNu743vGeWz2lEpOyE/R+6AYIfFLhXsCIT/Kb+KKiT1KDkB2/35DhLEGx8g==} peerDependencies: solid-js: ^1.6.0 - '@tanstack/start-client-core@1.170.13': - resolution: {integrity: sha512-o37M3msIK5ec87kPrIYJWXb1XPnjIe5/jrkGLXiXpFuVL99z7mhoBCzftKtVPtzqI8EElnRE/VGFYT9BHNnWcw==} + '@tanstack/start-client-core@1.170.32': + resolution: {integrity: sha512-kawgeg3Ej/JvGeEN7txFdVN9kXOST9wl7yPojOGESiomwiubHKRdYUS6sBskW91j44H+HirQUppP4+Ha7kjb4A==} engines: {node: '>=22.12.0'} '@tanstack/start-fn-stubs@1.162.0': resolution: {integrity: sha512-QWfUZ3Yo923tdQn38LyKMU8rcTw69zc+T4dAvgTWV4O56SqFRsGfS0lSWIMhJRwXIx/bvdi7nTUBDdZtTHtpTQ==} engines: {node: '>=22.12.0'} - '@tanstack/start-plugin-core@1.171.19': - resolution: {integrity: sha512-+fpW3Z/2vPT8HDV1c5p2WC6/g2k/AV/ujdJVDcn/VFd+gXRtzSX1D/LfozlaDbhDoEsqOnAk/mGwjg60JkUA2Q==} + '@tanstack/start-plugin-core@1.171.46': + resolution: {integrity: sha512-d/cDPZNDdRl824mOamt6USO1ja5JAaIwkuT2FIBRkBdrKZgQ8GJWv5pqpkXMbKANc49V8bUBBOTjgiCdC7YsPw==} engines: {node: '>=22.12.0'} peerDependencies: '@rsbuild/core': ^2.0.0 @@ -7191,22 +7507,25 @@ packages: vite: optional: true - '@tanstack/start-server-core@1.169.16': - resolution: {integrity: sha512-lvAjQpH3nHJtd4xy0iHIaWbsTbyN9EBxuYCxbtXH0EpeBQPg+TCPhu9GQC9WbbA1rE//s82CpE55oYDQMqkU5A==} + '@tanstack/start-server-core@1.169.37': + resolution: {integrity: sha512-CjYMXg2XISMEJt9UVR4lbMRsnRyWPrdyuF8iuJ4gxTc1sVNRciwMVpMPVGQG2KuIma3ewlNxw8+Tpx2tnS3zRA==} engines: {node: '>=22.12.0'} - '@tanstack/start-storage-context@1.167.16': - resolution: {integrity: sha512-zTegxlij4BC1DbCrC6rsVlMOQVMzOuG5IllacZEkrUdhiFwMIMYpk0VWGH+d0ucx5RBkmv8e8GNX3AOVBWclfg==} + '@tanstack/start-storage-context@1.167.34': + resolution: {integrity: sha512-cRPE0kjt1CnOIhepmNOvRFwCGhDAnCRohPD3HmzqJJThPkixLBRuLDvIYp4hRPtM1TJ9hiKbYl24IxAhjZO5TA==} engines: {node: '>=22.12.0'} '@tanstack/store@0.11.0': resolution: {integrity: sha512-WlzzCt3xi0G6pCAJu1U+2jiECwabETDpQDi3hfkFZvJii9AuZqEKbOiVarX1/bWhTNjU486yQtJCCasi/0q+Cw==} + '@tanstack/store@0.11.1': + resolution: {integrity: sha512-mzTOBhypOuDJAy/D8n2MfUZ1HFkXnmSETviRyhqEC8LUE7/IZQExOTxMANj3KjTofYTkFNpBY67qaVrT41YccA==} + '@tanstack/store@0.9.3': resolution: {integrity: sha512-8reSzl/qGWGGVKhBoxXPMWzATSbZLZFWhwBAFO9NAyp0TxzfBP0mIrGb8CP8KrQTmvzXlR/vFPPUrHTLBGyFyw==} - '@tanstack/svelte-store@0.12.0': - resolution: {integrity: sha512-XhXlU3jIO/WxikfeVczRdsAvRWzsLBh8Ic6sC7nzfzvMbPut7ZSdCbE7/usfm0bMjVGMmZmyzZy2xRu73QYWAA==} + '@tanstack/svelte-store@0.12.1': + resolution: {integrity: sha512-ZFj8gyIWHZRYLv8RHp5jhnMhvw15g86KinotrUp9RfY7ygjkU3CcaMUytIdMJ4Xzq/9GqVlAphV9gFIGKRXWSw==} peerDependencies: svelte: ^5.0.0 @@ -7222,8 +7541,8 @@ packages: resolution: {integrity: sha512-FOl8EF6SAcljanKSm5aBeJaflFcxQAytTbxtNW8HC6D4x+UBW68IC4tBcrlrsI0wXHBmC/Gz4Ovvv8qCtiXSgQ==} engines: {node: '>=18'} - '@tanstack/vue-store@0.11.0': - resolution: {integrity: sha512-w1lE4D7oo6nIUhTQvL/RoTgcvoYJw+KvttWPNJd/Xu+MvNxMnjxFF/LgFp9vwmbNbiGhGCg3ZoPJptwjrfwNYw==} + '@tanstack/vue-store@0.11.1': + resolution: {integrity: sha512-0YmYwbiCQKhzfFTLpHybjoAVUh3GkQVYGguvGTzk/0wx0oWuni60huvRs1RqqRLJH6nig3PTYuLuQQ+X5s05gA==} peerDependencies: '@vue/composition-api': ^1.2.1 vue: ^2.5.0 || ^3.0.0 @@ -7231,17 +7550,15 @@ packages: '@vue/composition-api': optional: true - '@testing-library/angular@19.3.0': - resolution: {integrity: sha512-Wy2qpepHXOPSnTfH3NX0i9TZPTTrX+Bumd1u3UFJgl0N/iMLfCc9/LNIZCmbUFbT7t2pVLgXFL0kLHa5JuBy6A==} + '@testing-library/angular@19.5.0': + resolution: {integrity: sha512-wGSWTsibHaaQ0zMMlvqD1OEn+u3J2lu5BLFs7ULcUdy+kdqAFlDulexHFMpugdcJK1sTPu7yfJtI+cHf5si61w==} peerDependencies: - '@angular/common': '>= 21.0.0' '@angular/core': '>= 21.0.0' - '@angular/platform-browser': '>= 21.0.0' '@angular/router': '>= 21.0.0' '@testing-library/dom': ^10.0.0 - '@testing-library/dom@10.4.1': - resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} + '@testing-library/dom@10.4.2': + resolution: {integrity: sha512-yzr2S9HyAIdhz2/6qHgbs665Q7PKVcDF05vsOlHPxG1mo36gKVesdYVeDLnXgfjJ03CrKRk08knc6+E/9m8v2Q==} engines: {node: '>=18'} '@testing-library/dom@8.20.1': @@ -7252,9 +7569,12 @@ packages: resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} engines: {node: '>=14'} - '@testing-library/jest-dom@6.9.1': - resolution: {integrity: sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==} - engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + '@testing-library/jest-dom@6.10.0': + resolution: {integrity: sha512-HQwu0KaB2zyT0iLzBL+8CLyZDL3KlZlZJ+2iyc9uCUnlJVskJU/UlPuVCyIPhtukjPQdT2QNoR5nCP5FqTmmDQ==} + engines: {node: '>=22', npm: '>=6', yarn: '>=1'} + deprecated: Incorrect minor release with breaking changes (Node >=22 and required @testing-library/dom peer). Use 6.9.1 for the 6.x line, or upgrade to 7.0.0. + peerDependencies: + '@testing-library/dom': '>=10 <11' '@testing-library/preact@3.2.4': resolution: {integrity: sha512-F+kJ243LP6VmEK1M809unzTE/ijg+bsMNuiRN0JEDIJBELKKDNhdgC/WrUSZ7klwJvtlO3wQZ9ix+jhObG07Fg==} @@ -7262,8 +7582,8 @@ packages: peerDependencies: preact: '>=10 || ^10.0.0-alpha.0 || ^10.0.0-beta.0' - '@testing-library/react@16.3.2': - resolution: {integrity: sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==} + '@testing-library/react@16.3.3': + resolution: {integrity: sha512-Uo193NgQbPMz6lrrhtRQQFcMC6Re/ELLFbbuVL30WDlZxlpZf9/lMHTAVxPRLw1q1iu9OJmR1c2BLiENRstdBg==} engines: {node: '>=18'} peerDependencies: '@testing-library/dom': ^10.0.0 @@ -7277,14 +7597,14 @@ packages: '@types/react-dom': optional: true - '@testing-library/svelte-core@1.0.0': - resolution: {integrity: sha512-VkUePoLV6oOYwSUvX6ShA8KLnJqZiYMIbP2JW2t0GLWLkJxKGvuH5qrrZBV/X7cXFnLGuFQEC7RheYiZOW68KQ==} + '@testing-library/svelte-core@1.1.3': + resolution: {integrity: sha512-KkMAvXeWorxN2Yn0kdC1lfoAItxpoj4uOWzxK5leDrNxonLvS5nwBFvztrroyTszQ0Wf/EU6iLT8JhY5qcn22g==} engines: {node: '>=16'} peerDependencies: svelte: ^3 || ^4 || ^5 || ^5.0.0-next.0 - '@testing-library/svelte@5.3.1': - resolution: {integrity: sha512-8Ez7ZOqW5geRf9PF5rkuopODe5RGy3I9XR+kc7zHh26gBiktLaxTfKmhlGaSHYUOTQE7wFsLMN9xCJVCszw47w==} + '@testing-library/svelte@5.4.2': + resolution: {integrity: sha512-4o31E4HGo5BU5KwPkulNRocEden+7Tt9JYm9uhln5ajF7DULeyFA46BBWVfKJ8Ms9B3JmOFPTIiVamH7n3KpuQ==} engines: {node: '>= 10'} peerDependencies: svelte: ^3 || ^4 || ^5 || ^5.0.0-next.0 @@ -7296,8 +7616,8 @@ packages: vitest: optional: true - '@testing-library/user-event@14.6.1': - resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} + '@testing-library/user-event@14.6.7': + resolution: {integrity: sha512-MPCpX8bxe8zS+JmmTwLp8jd0dy1rAm60Te/SL8JrQM3qvQJcBOs1d7IefJMyZzqM3EWBrDn/LWDt1BCGu4ASfg==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' @@ -7312,12 +7632,128 @@ packages: '@vue/compiler-sfc': optional: true - '@ts-morph/common@0.22.0': - resolution: {integrity: sha512-HqNBuV/oIlMKdkLshXd1zKBqNQCsuPEsgQOkfFQ/eUKjRlwndXW1AjN9LVkBEIukm00gGXSRmfkl0Wv5VXLnlw==} + '@tsconfig/node10@1.0.13': + resolution: {integrity: sha512-gcLdvR9HO1ZJBypsOGqaP6TFEzb6vIta0KSTLt9NAQ6pXQO3cRgSVyCN6pzYqI9DlJgY71XKO0dpDhCf08b3pg==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} '@tsconfig/svelte@5.0.8': resolution: {integrity: sha512-UkNnw1/oFEfecR8ypyHIQuWYdkPvHiwcQ78sh+ymIiYoF+uc5H1UBetbjyqT+vgGJ3qQN6nhucJviX6HesWtKQ==} + '@tsrx/core@0.2.4': + resolution: {integrity: sha512-o07NiDB2yFeN2natoViMwwb9h0o3UDzYqGUJ7qe4w6r5Oc0WLoWFfrpRDUtWBpR+JL4Loc3lRxFdOD+Wz+0VlQ==} + + '@tsrx/eslint-parser@0.4.7': + resolution: {integrity: sha512-YQw3sp5Qy9NiXtE5mJRFJVxJvv1CTLM+9a/hlmLksOotzJXX43RyOzQ+YW5Vobqc+PiQqfxnHmkJv9iRXm/anA==} + engines: {node: '>=22.0.0'} + peerDependencies: + eslint: '>=9.0.0' + + '@tsrx/eslint-plugin@0.4.7': + resolution: {integrity: sha512-+RHqgRBBSa9mqcxF0b1s8O3NgRgB3OlOVB3hu24ael8GcXwJSSOcsIn3kwzwTbbLuZWyf6qk0ZiaivMlwCfw3g==} + engines: {node: '>=22.0.0'} + peerDependencies: + '@tsrx/eslint-parser': 0.4.7 + '@typescript-eslint/parser': ^8.56.1 + eslint: '>=9.0.0' + + '@tsrx/oxc-darwin-arm64@0.13.0': + resolution: {integrity: sha512-wk3JP8sBJBC1gxuG/fVlT/WnR/i2E2dYFpv8NnoSMcjSdoAw4e6cobgpzEWI2E8AXp7yQ5Nlp8gD+Xvt6AJTUg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@tsrx/oxc-darwin-x64@0.13.0': + resolution: {integrity: sha512-hgd/F9r92fdCW3g74tpo20OPd24Pk5z59gd5Ru1MH3b04ltRaMbyb7iJ+0RfPXmS1e6xqcPNB/ZmpForHKk/kA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@tsrx/oxc-linux-arm64-gnu@0.13.0': + resolution: {integrity: sha512-kF2S/syEGLUSx62lnfnK0XrMpWfrPapQE7Dh/BPe8vlmDJV8pR5/AAfY4fmmwGFq2ScTDz8Mh4kiQiC+Lv8kEQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tsrx/oxc-linux-arm64-musl@0.13.0': + resolution: {integrity: sha512-fZxDFbcaTnme/NNlN4w2pDc/EMxGS7zolWszr4GfacEztHdwJhm14lqSsQoOngCXJRbUu2CDr8xu9UF6AQ4VcA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@tsrx/oxc-linux-x64-gnu@0.13.0': + resolution: {integrity: sha512-LewgSG8znyAB8jSEuAmsCsr68geEz8RAnQng6urbHY3Bej94yd1m9584u28BMaU40UKPPGC90lqpqXMbbCie6Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@tsrx/oxc-linux-x64-musl@0.13.0': + resolution: {integrity: sha512-JfwZgs6Ro1vO91k8KjmRsV42LJSuHizCiqIAYI7oKMO/YuqFRMrYVWNGgzQCCNQ4kX76IwxIT96uy25T4IXW7g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@tsrx/oxc-win32-arm64-msvc@0.13.0': + resolution: {integrity: sha512-8mrA5IysbXdmnYTUViunWfTVoyr4yZkrKB96Qghj5VxQ9XnQi6a7kMdhdhKth4zPAYA0Q6MBcwVYhNaFBVlX+A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@tsrx/oxc-win32-x64-msvc@0.13.0': + resolution: {integrity: sha512-A+Z8EvdJD7uZDZYwUrqeICoMi3px7SU9Ofxcd6scBjqGfIUjtwq5RsNsrUKV+uxw9OLnrzlZbW+kcI2J6Sv9hQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@tsrx/oxc@0.13.0': + resolution: {integrity: sha512-Y8KEKepbugOuASyNVPazVulmdQy25LDYxUMw6MdiAWKmUWZ6RXzct8RgyiMqoif74LPOcKw+qpWZH3LJpeC7WA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + + '@tsrx/prettier-plugin@0.4.7': + resolution: {integrity: sha512-zriN5yNnEqNvtHkjkt9eaBSek2Ho9wzdWecya7D9mtGOQiTvzPvSjXBNW0+74gCHehmt/ytT13xeKhB//bnedw==} + peerDependencies: + prettier: '>=2.0.0' + + '@tsrx/runtime@0.2.2': + resolution: {integrity: sha512-EsqZjTKWd/qrwEEk7AtaKrmTvPZWRz+H06rJjgNAb1Om0RC45xX2hZjDlv/tE20o4gcOgSCfc/AzKTq6qXlp1A==} + + '@tsrx/typescript-plugin@0.4.6': + resolution: {integrity: sha512-hZOJuhZwoIPm9yR4yeeodZO5Py1ZVjED/jBesBdM7CSbKClJayaJ/WtZRiDwf5og40ElIqxp6TgscFlKRZ8KNg==} + hasBin: true + peerDependencies: + '@tsrx/preact': 0.2.4 + '@tsrx/react': 0.3.4 + '@tsrx/ripple': ^0.2.0 + '@tsrx/solid': 0.2.4 + '@tsrx/vue': 0.2.4 + octane: '*' + typescript: ^5.9.3 + peerDependenciesMeta: + '@tsrx/preact': + optional: true + '@tsrx/react': + optional: true + '@tsrx/ripple': + optional: true + '@tsrx/solid': + optional: true + '@tsrx/vue': + optional: true + octane: + optional: true + '@tufjs/canonical-json@2.0.0': resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} engines: {node: ^16.14.0 || >=18.0.0} @@ -7326,9 +7762,6 @@ packages: resolution: {integrity: sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==} engines: {node: ^20.17.0 || >=22.9.0} - '@tybys/wasm-util@0.10.2': - resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} - '@tybys/wasm-util@0.10.4': resolution: {integrity: sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==} @@ -7392,14 +7825,11 @@ packages: '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} - '@types/express-serve-static-core@4.19.8': - resolution: {integrity: sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==} + '@types/express-serve-static-core@4.19.9': + resolution: {integrity: sha512-QP2ESEe/ImWY0HDwNAnK9PvEffUyhLTnWkk7KXzHfyeWAnlrDe1fN77bXl6ia8KT3wPlmA7t9/VPRpnf4Ex9sg==} '@types/express@4.17.25': resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} @@ -7413,8 +7843,8 @@ packages: '@types/hast@2.3.10': resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/hast@3.0.5': + resolution: {integrity: sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==} '@types/http-errors@2.0.5': resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} @@ -7443,8 +7873,8 @@ packages: '@types/mdast@3.0.15': resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} - '@types/mdx@2.0.13': - resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + '@types/mdx@2.0.14': + resolution: {integrity: sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg==} '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} @@ -7452,8 +7882,8 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@24.12.4': - resolution: {integrity: sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==} + '@types/node@24.13.6': + resolution: {integrity: sha512-SGrw/h3KPFshy3OE6ZL53LMBG5vGQQ8/gIpiqz/kRZhPJ7HgwCEs8LBuNtWLa8dvGZVpSF7+Bf+c11HUrCb/yg==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -7467,18 +7897,18 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@19.2.3': - resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} + '@types/react-dom@19.3.0': + resolution: {integrity: sha512-ZI7bU42mZXXKHn/qNLEw2IrbiINU7X5+vfgdixBHkCNpYWXjKgfQ/P+uyGb5CjOLB9UcnTeg3rylQtV2hym44Q==} peerDependencies: - '@types/react': ^19.2.0 + '@types/react': ^19.3.0 '@types/react-transition-group@4.4.12': resolution: {integrity: sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==} peerDependencies: '@types/react': '*' - '@types/react@19.2.17': - resolution: {integrity: sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==} + '@types/react@19.2.18': + resolution: {integrity: sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==} '@types/retry@0.12.2': resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} @@ -7519,67 +7949,67 @@ packages: '@types/yargs@17.0.35': resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} - '@typescript-eslint/eslint-plugin@8.59.4': - resolution: {integrity: sha512-PegsU+XfyJJNjd4+u/k6f9yTyp0lEXXiPopUNobZcIAUJFGICFLN+sP0Rb3JehVmiij1Ph0dFGYqODoRo/2+6A==} + '@typescript-eslint/eslint-plugin@8.70.0': + resolution: {integrity: sha512-/v8HZt6RlyIZxB3ntehELOcUcfxKPVGWXnQdJuHRmzrqgF8nQypcC/oxGW+Ot4VGKDq81XugPKxx0n5PBtf9PA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.59.4 + '@typescript-eslint/parser': ^8.70.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.59.4': - resolution: {integrity: sha512-zORHqO/tuhxY1zWuTvMUqddRxpiFJ72xVfcNoWpqdLjs6lfPbuQBJuW4pk+49/uBMy7Ssr4bzgjiKmmDB1UbZQ==} + '@typescript-eslint/parser@8.70.0': + resolution: {integrity: sha512-zYvrmj9Yxd63UGaXw+kdt6A0F0s0qveJyuatIM77bYC2DE4pgmg7a50u8LR7PRtXd0x+h+Tl3eXabGm06SWd3Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.59.4': - resolution: {integrity: sha512-Ly00Vu4oAacfDeHp2Zg85ioNG6l8HG+tN1D7J+xTHSxu9y0awYKJ2zH1rFBn8ZSfuGK+7FxK3Cgl3uAz0aZZLg==} + '@typescript-eslint/project-service@8.70.0': + resolution: {integrity: sha512-hFHbTNqhU9G+2eKFXCBVb1tjFT/LceiJ4+HfLO4pTpDI0KHi6iajpcFFkaSQ9gXmCh7n82A0PthaayEdN6mspQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.59.4': - resolution: {integrity: sha512-mUeR/3H1WrTAddJrwut8OoPjfauaztMQmRwV5fQTUyNVJCLiUXXe4lGEyYIL2oFDpP7UtgbGJXCt72wT0z2S3Q==} + '@typescript-eslint/scope-manager@8.70.0': + resolution: {integrity: sha512-8nP3Kwh5hlgZ4FicGvmznAmJe8UL4sdU8tLukrPaMuQmDuk4Y8xYfzu/aYZW4xT2JCgc7H/TpDI5cGlxcWJSqQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.59.4': - resolution: {integrity: sha512-DLCpnKgD4alVxTBSKulK+gU1KCqOgUXfDRDXh2mZgzokQKa/70ax93I2uVO3m/LLvIAtWZIFoiifudmIqAxpMA==} + '@typescript-eslint/tsconfig-utils@8.70.0': + resolution: {integrity: sha512-adnkeeNq9Sq1sUf4+FRVc0KdgYghzsgFpZSQVZVvY0LCuUuN0FnQgyGzCJeC4fW1cdXseBAjU2EOqUIjbNcZUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.59.4': - resolution: {integrity: sha512-uonTuPAAKr9XaBGqJ3LjYTh72zy5DyGesljO9gtmk/eFW0W1fRHjnwVYKB35Lm8d5Q5CluEW3gPHjTvZTmgrfA==} + '@typescript-eslint/type-utils@8.70.0': + resolution: {integrity: sha512-NUMKIhYVaVIVLnRL9CRt+VVcuLgSHUCpXn4/+K8wql+vdInUzvx8BjUO1oJ7cG9shjFJKtF8F8Hh2kCh3/KBVw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.59.4': - resolution: {integrity: sha512-F1o7WJcCq+bc8dwcO/YsSEOudAH8RDtaOhM6wcAQhcUsFhnWQl81JKy48q1hoxAU0qrzM89+31GYh1515Zde3Q==} + '@typescript-eslint/types@8.70.0': + resolution: {integrity: sha512-asTOIYhDg4zdzOScCyaytrsV3cR6B4ecPQlXw/dJIm7J/MZTtCtfVII9JD8Geh4jTCrK/Xe6cg5UevoleMcoJQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.59.4': - resolution: {integrity: sha512-F+RuOmcDXo4+TPdfd/TCLS3m2nw8gE9XXyZLrA3JBfaA5tz9TtdkyD3YJFmPxulyc2cKbEok/CvFE3MgSLWnag==} + '@typescript-eslint/typescript-estree@8.70.0': + resolution: {integrity: sha512-d9NmHMPEKQ7QCLLm1jI3zmoQBwT5KwFYjXBJ9ymZfKCUU+5rmTRykKAFvH5Qn/ZCds3CEAFS9OC9M/jkl0X2bA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.59.4': - resolution: {integrity: sha512-cYXeNAUsG4lJo5dbc1FcKm+JwIWrj1/UpTORsC6tGMjEZ81DYcvIr9/ueikhMa/Y/gDQYGp+YX9/xQrXje5BJw==} + '@typescript-eslint/utils@8.70.0': + resolution: {integrity: sha512-oZmtKJz/4fufZ2p3+Cn3ijEojcdfR+1zYDH2xKYrEly0dR/Q/1xUPRCOlKGxod78nWlU2UnDe09GZ3TaknBFGA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.59.4': - resolution: {integrity: sha512-U3gxVaDVnuZKhSspW/MzMxE1kq7zOdc072FcSNoqA1I9p8HyKbBFfEHoWckBAMgNMph4MamwS5iTVzFmrnt8TQ==} + '@typescript-eslint/visitor-keys@8.70.0': + resolution: {integrity: sha512-BoC8PiO4Hkdo0TVJh9Ntxr5MxPDI7/oFsrygN5ADelFSeXG/qgNuucIGA+L5Z6JpPTE/uRfcTWtscjbUaufepQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.3.1': - resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} + '@ungap/structured-clone@1.4.0': + resolution: {integrity: sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==} '@unrs/resolver-binding-android-arm-eabi@1.12.2': resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} @@ -7712,8 +8142,8 @@ packages: '@vanilla-extract/babel-plugin-debug-ids@1.2.2': resolution: {integrity: sha512-MeDWGICAF9zA/OZLOKwhoRlsUW+fiMwnfuOAqFVohL31Agj7Q/RBWAYweqjHLgFBCsdnr6XIfwjJnmb2znEWxw==} - '@vanilla-extract/css@1.20.1': - resolution: {integrity: sha512-5I9RNo5uZW9tsBnqrWzJqELegOqTHBrZyDFnES0gR9gJJHBB9dom1N0bwITM9tKwBcfKrTX4a6DHVeQdJ2ubQA==} + '@vanilla-extract/css@1.21.2': + resolution: {integrity: sha512-ehF/tmv2MxQwOJB1DicALUqnjZTnmY9Y7J2ccKB578JzZpYeL6sLAUqbaXo1taw1Erp0qBq0I4Kejs0uU/pBfg==} '@vanilla-extract/integration@6.5.0': resolution: {integrity: sha512-E2YcfO8vA+vs+ua+gpvy1HRqvgWbI+MTlUpxA8FvatOvybuNcWAY0CKwQ/Gpj7rswYKtC6C7+xw33emM6/ImdQ==} @@ -7745,16 +8175,16 @@ packages: vite: ^5.0.0 || ^6.0.0 vue: ^3.2.25 - '@vitest/coverage-istanbul@3.2.4': - resolution: {integrity: sha512-IDlpuFJiWU9rhcKLkpzj8mFu/lpe64gVgnV15ZOrYx1iFzxxrxCzbExiUEKtwwXRvEiEMUS6iZeYgnMxgbqbxQ==} + '@vitest/coverage-istanbul@3.2.7': + resolution: {integrity: sha512-/o+QIJBJCBZm7FdyAMqYKvr8Cd0YsqPt9UwVT6bAA+U9Ae8AR39ZAjq7xnmKCO64TkzPm0Vvi7jzYZWLdu6Y5A==} peerDependencies: - vitest: 3.2.4 + vitest: 3.2.7 - '@vitest/expect@3.2.4': - resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} + '@vitest/expect@3.2.7': + resolution: {integrity: sha512-E8eBXaKibuvH2pSZErOjdVb5vF4PbKYcrnluBTYxEk1l/VhhwZg1kZQsdtjq+CsF5CFydf2Rdkz7jDHKSisi3w==} - '@vitest/mocker@3.2.4': - resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} + '@vitest/mocker@3.2.7': + resolution: {integrity: sha512-Trr0hYO9CM3Wj6ksWHRhK9IZpIY6wTMO5u/MqXurMxT57sWBaOPEtP3Oq60ihZuh5JsiagKfz95OcxdEP6dBrA==} peerDependencies: msw: ^2.4.9 vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 @@ -7764,20 +8194,20 @@ packages: vite: optional: true - '@vitest/pretty-format@3.2.4': - resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} + '@vitest/pretty-format@3.2.7': + resolution: {integrity: sha512-KUHlwqVu0sRlhCdyPdQ/wBoTfRahjUky1MubOmYw9fWfIZy1gNoHpuaaQBPAaMaVYdQYHJLurzj8ECCj5OwTqA==} - '@vitest/runner@3.2.4': - resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} + '@vitest/runner@3.2.7': + resolution: {integrity: sha512-sB9y4ovltoQP+WaUPwmSxO9WIg9Ig694Di5PalVPsYHklAdE027mehpWF2SQSVq+k6sFgaivbTjTJwZLSHbedA==} - '@vitest/snapshot@3.2.4': - resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} + '@vitest/snapshot@3.2.7': + resolution: {integrity: sha512-7C+MwShwtBSI5Buwoyg3s/iY1eHL9PKAf+O1wVh/TdnjXUtkoL/9YQtre90i4MtNXM6edP1wJ2zOBpfCyhIS7g==} - '@vitest/spy@3.2.4': - resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} + '@vitest/spy@3.2.7': + resolution: {integrity: sha512-Q2eQGI6d2L/hBtZ0qNuKcAGid68XK6cv1xsoaIma6PaJhHPoqcEJhYpXZ/5myCMqkNgtP6UKuBhbc0nHKnrkuQ==} - '@vitest/utils@3.2.4': - resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} + '@vitest/utils@3.2.7': + resolution: {integrity: sha512-x6BDOd7dyo3PFLY3I9/HJ25X/6OurhGXk2/B9gOZNPF7XDVjeBK4k01lQE5uvDpbuheErh91qYuE1E2OEjK3Rw==} '@volar/language-core@2.4.15': resolution: {integrity: sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==} @@ -7793,21 +8223,31 @@ packages: '@volar/typescript@2.4.15': resolution: {integrity: sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true '@volar/typescript@2.4.28': resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@vue/compiler-core@3.5.34': - resolution: {integrity: sha512-s9cLyK5mLcvZ4Agva5QgRsQyLKvts9WbU9DB6NqiZkkGEdwmcEiylj5Jbwkp680drF/NNCV8OlAJSe+yMLxaJw==} + '@vue/compiler-core@3.5.43': + resolution: {integrity: sha512-zdiLhnbe1QQqgDT8xZMpNmyqZ3qlI+/Q/FHQco57Kwl/b05HhCzN6eVGN9QU9rbga4CrS0H5SYY8VGHZCt/1Hg==} - '@vue/compiler-dom@3.5.34': - resolution: {integrity: sha512-EbF/T++k0e2MMZlJsBhzK8Sgwt0HcIPOhzn1CTB/lv6sQcyk+OWf8YeiLxZp3ro7MbbLcAfAJ6sEvjFWuNgUCw==} + '@vue/compiler-dom@3.5.43': + resolution: {integrity: sha512-PEZoAk3NQmsn/ejMzSOCyTYqwGqczrWm70PuhBKjjv1+TCoQAaO/zOqNwjV+honlNstT5ILxtc+8r8UUfj+iEQ==} - '@vue/compiler-sfc@3.5.34': - resolution: {integrity: sha512-D/ihr6uZeIt6r+pVZf46RWT1fAsLFMbUP7k8G1VkiiWexriED9GrX3echHd4Abbt17zjlfiFJ8z7a3BxZOPNjg==} + '@vue/compiler-sfc@3.5.43': + resolution: {integrity: sha512-FCbrG3XNCRl+js3huuKx4IVHBLTvMkJhVepjbxSPu1gn4yWLaYtGNQdjJGZaMytXB6qb76qQDDmDSLy/vkmleQ==} - '@vue/compiler-ssr@3.5.34': - resolution: {integrity: sha512-cDtTHKibkThKGHH1SP+WdccquNRYQDFH6rRjQCqT9G2ltFAfoR5pUftpab/z+aM5mW9HLLVQW7hfKKQe/1GBeQ==} + '@vue/compiler-ssr@3.5.43': + resolution: {integrity: sha512-GF62orf7KiJX9RqrHNGrYBudsQGD0OhJ5nDs90O8UiDuS40+YMYomiXu6w6EuvtXuRDc3MSNis3EaaSKAVSWpg==} '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} @@ -7828,25 +8268,23 @@ packages: typescript: optional: true - '@vue/reactivity@3.5.34': - resolution: {integrity: sha512-y9XDjCEuBp+98k+UL5dbYkh57AHU4o6cxZedOPXw3bmrZZYLQsVHguGurq7hVrPCSrQtrnz1f9dssyFr+dMXfQ==} + '@vue/reactivity@3.5.43': + resolution: {integrity: sha512-G/c9GyOZNI2jVaaS6OX1EF1SSFSv7H0ERqNTl4+DTFMlZmB5eVAB53aLQNam/7NL2NPtaDD7RdVrzf8uJzMuOA==} - '@vue/runtime-core@3.5.34': - resolution: {integrity: sha512-mKeBYvu8tcMSLhypAHBmriUFfWXKTCF/23Z4jiCoYK3UtWepkliViNLuR90V9XOyD62mUxs9p1jsrpK3CCGIzw==} + '@vue/runtime-core@3.5.43': + resolution: {integrity: sha512-hU6U6VnVhBGQDpvlnnDlIB8ZGJBiOcgk2lh/0InltHiz3D8oSkluvuvY+do1G2H3+udeKFsmaBlgVYP7gXQzEw==} - '@vue/runtime-dom@3.5.34': - resolution: {integrity: sha512-e8kZzERmCwUnBRVsgSQlAfrfU2rGoy0FFKPBXSlfEjc/O3KfA7QP0t1/2ZylrbchjmIKB4dPTd07A6WPr0eOrg==} + '@vue/runtime-dom@3.5.43': + resolution: {integrity: sha512-Bb2Jc0YjjJdMt1SJmb9b2L/IWd3I8lIT9x9eS/xvvP9CiVgna0ffua74xKRmt4/uSJ+0r4iN8ex1jrqkhQGWQw==} - '@vue/server-renderer@3.5.34': - resolution: {integrity: sha512-nHxmJoTrKsmrkbILRhkC9gY1G3moZbJTqCzDd7DOOzG5KH9oeJ0Unqrff5f9v0pW//jES05ZkJcNtfE8JjOIew==} - peerDependencies: - vue: 3.5.34 + '@vue/server-renderer@3.5.43': + resolution: {integrity: sha512-l2Ygjv9NehV94PSBxNWsAHC0j/eIIKbn92mBuWXAPGLnn6HfJ6MH5ubsd+Nk0YoZ5FRuxWI1P2VSoh+dbPQhCQ==} - '@vue/shared@3.5.34': - resolution: {integrity: sha512-24uqU4OIiX29ryC3MeWid/Xf2fa2EFRUVLb77nRhk+UrTVrh/XiGtFAFmJBAtBRbjwNdsPRP+jj/OL27Eg1NDA==} + '@vue/shared@3.5.43': + resolution: {integrity: sha512-uksS7YGMR5NZyr4JNq0Rp+QyLns0ueaz20KwzIPW9R0LH1Vnt4E+XUM29PNseEbf1www2gOuhuDi5AKOIXag9Q==} - '@vue/test-utils@2.4.10': - resolution: {integrity: sha512-SmoZ5EA1kYiAFs9NkYdiFFQF+cSnUwnvlYEbY+DogWQZUiqOm/Y29eSbc5T6yi75SgSF9863SBeXniIEoPajCA==} + '@vue/test-utils@2.5.1': + resolution: {integrity: sha512-V/4a99odJ7hapr0bRt35XxljGk8hefq31gSOnlKTcEq2fUeoj2qb+FcpJYfQu4qfYhW9Ug+O2+CZ3QmZ7gXDzA==} peerDependencies: '@vue/compiler-dom': 3.x '@vue/server-renderer': 3.x @@ -7903,12 +8341,12 @@ packages: '@webassemblyjs/wast-printer@1.14.1': resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - '@xmldom/xmldom@0.8.13': - resolution: {integrity: sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==} + '@xmldom/xmldom@0.8.15': + resolution: {integrity: sha512-/5NV/vDALVFDXgLmfsy9TRCBlKwO2LNBFzpzvb9iIj+jR+eSc6DLYYvVOdivT/jm7MtU6TebYuRmzEOI7w40UA==} engines: {node: '>=10.0.0'} - '@xmldom/xmldom@0.9.10': - resolution: {integrity: sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==} + '@xmldom/xmldom@0.9.12': + resolution: {integrity: sha512-5AXjrcMClTryPe9LgZrygpB1lj7s0S9E0+W+AHaVKAVyHanafK86iPSvG5xHVSp/jC+VH1UXu0TAEmY279xH7A==} engines: {node: '>=14.6'} '@xtuc/ieee754@1.2.0': @@ -7932,14 +8370,14 @@ packages: '@zxing/text-encoding@0.9.0': resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} - abbrev@2.0.0: - resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - abbrev@4.0.0: resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} engines: {node: ^20.17.0 || >=22.9.0} + abbrev@5.0.0: + resolution: {integrity: sha512-/XrFJgzQQQHpti1raDJC6m4ws6aNktmjBlhk8Fdlk7LwCEuDoieEJJY9OFHjfiFJFFRM2tK+Ky/IsfbbmlMu1w==} + engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} + abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -7963,8 +8401,12 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.16.0: - resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + acorn-walk@8.3.5: + resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} + engines: {node: '>=0.4.0'} + + acorn@8.18.0: + resolution: {integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==} engines: {node: '>=0.4.0'} hasBin: true @@ -7980,6 +8422,11 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} + agent-cli-detector@0.1.7: + resolution: {integrity: sha512-d8OWDVdZMgjhLUT9ZPgSv/BdFFF9pVuscC0JdUSz3bjwE15gcp6u/o0/JooM2yyAWC49KThFhXlgTXRa9B7yng==} + engines: {node: '>=18.18'} + hasBin: true + aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -7992,14 +8439,6 @@ packages: ajv: optional: true - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - ajv-formats@3.0.1: resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} peerDependencies: @@ -8035,6 +8474,9 @@ packages: alien-signals@1.0.13: resolution: {integrity: sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==} + alien-signals@3.2.0: + resolution: {integrity: sha512-5J9+NpCLHgic4xnZtI8SznvNagwJsZSvRFsAwoLlLw+Edaqa4upCiOC19P8Vx2DqmEvqK2qJBMtI8+9eXOEb/A==} + anser@1.4.10: resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==} @@ -8063,8 +8505,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + ansi-regex@6.3.0: + resolution: {integrity: sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==} engines: {node: '>=12'} ansi-styles@3.2.1: @@ -8083,8 +8525,8 @@ packages: resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} - ansis@4.3.0: - resolution: {integrity: sha512-44mvgtPvohuU/70DdY5Oz2AIrLJ9k6/5x4KmoSvPwO+5Moijo0+N9D0fKbbYZQWP1hNm5CpOf+E01jhxG/r8xg==} + ansis@4.4.0: + resolution: {integrity: sha512-9k3v7xcHwgdO/DruxGIg4HtjvlAZlcnsX/mzqUb1t3NkYnl9kK2UJ+Gq0io+vQf7iT//BD/HB/NBkUR1LWxoeA==} engines: {node: '>=14'} any-promise@1.3.0: @@ -8094,6 +8536,9 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -8121,11 +8566,11 @@ packages: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} - arkregex@0.0.5: - resolution: {integrity: sha512-ncYjBdLlh5/QnVsAA8De16Tc9EqmYM7y/WU9j+236KcyYNUXogpz3sC4ATIZYzzLxwI+0sEOaQLEmLmRleaEXw==} + arkregex@0.0.8: + resolution: {integrity: sha512-PJcx6G1kQTgLKPUbeYlYecDRaKq15AMSGVajlKFYWlPeJRQL+j3dKE6tyMs40HZ99djS1l9Vhl3ezAHy9JBIqQ==} - arktype@2.2.0: - resolution: {integrity: sha512-t54MZ7ti5BhOEvzEkgKnWvqj+UbDfWig+DHr5I34xatymPusKLS0lQpNJd8M6DzmIto2QGszHfNKoFIT8tMCZQ==} + arktype@2.2.3: + resolution: {integrity: sha512-7W+0RLTUNJiBFIIZXwOQxSR8Z273IAd6IvqBeG9+gHnQKFsIx2C0iOtGTmMrPnlX4qLXyc5+ll7A0BIj9WrbTg==} array-buffer-byte-length@1.0.2: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} @@ -8134,8 +8579,8 @@ packages: array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-includes@3.1.9: - resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} + array-includes@3.2.0: + resolution: {integrity: sha512-VXY5eFRarnXcYxwBjJzPmEhH55+rmP79/+ueDhi0F+TuqfHCItagIHqxeUZrmgrOPa31QTh9H85DjX3FfJ0FTg==} engines: {node: '>= 0.4'} array.prototype.findlast@1.2.5: @@ -8173,9 +8618,9 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} - ast-kit@3.0.0-beta.1: - resolution: {integrity: sha512-trmleAnZ2PxN/loHWVhhx1qeOHSRXq4TDsBBxq3GqeJitfk3+jTQ+v/C1km/KYq9M7wKqCewMh+/NAvVH7m+bw==} - engines: {node: '>=20.19.0'} + ast-kit@3.0.0: + resolution: {integrity: sha512-8OG92q3R35qjC/4i6BLBMg8IB+fClWu/1PEwg2Z9Rn+BuNaiEgJzpzn+pxWOdHJWDCAwu2JP0wCDTozAM4QirQ==} + engines: {node: ^22.18.0 || >=24.11.0} astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} @@ -8233,8 +8678,8 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - babel-plugin-jsx-dom-expressions@0.40.7: - resolution: {integrity: sha512-/O6JWUmjv03OI9lL2ry9bUjpD5S3PclM55RRJEyCdcFZ5W2SEA/59d+l2hNsk3gI6kiWRdRPdOtqZmsQzFN1pQ==} + babel-plugin-jsx-dom-expressions@0.40.10: + resolution: {integrity: sha512-lxve6Y02YiZTldB7efKpnbf1BH00XCFZNYYW235jSGsYaJNFtHrYlKV6/O+miHbjqpIr9FTe5+0no4hofAMbfA==} peerDependencies: '@babel/core': ^7.20.12 @@ -8287,8 +8732,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 || ^8.0.0-0 - babel-preset-expo@54.0.10: - resolution: {integrity: sha512-wTt7POavLFypLcPW/uC5v8y+mtQKDJiyGLzYCjqr9tx0Qc3vCXcDKk1iCFIj/++Iy5CWhhTflEa7VvVPNWeCfw==} + babel-preset-expo@54.0.12: + resolution: {integrity: sha512-6xeSkdaixmQhWSYL7tfLu0pOS0BY+8ftwmdNSHtpEFSizrXYZkCjk/B6Dxr+6nwNRihixMcS0aBlWS1wlDl3pw==} peerDependencies: '@babel/runtime': ^7.20.0 expo: '*' @@ -8305,11 +8750,11 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - babel-preset-solid@1.9.12: - resolution: {integrity: sha512-LLqnuKVDlKpyBlMPcH6qEvs/wmS9a+NczppxJ3ryS/c0O5IiSFOIBQi9GzyiGDSbcJpx4Gr87jyFTos1MyEuWg==} + babel-preset-solid@1.9.15: + resolution: {integrity: sha512-GBmg1OiPb+OwcH51XbDAKPtvrPfQW7rCJTJxcp8+yhtWwN+kqnbEJk2SgVybd+uhTxTKAvjaFyiQSr/eUZBwzg==} peerDependencies: '@babel/core': ^7.0.0 - solid-js: ^1.9.12 + solid-js: ^1.9.15 peerDependenciesMeta: solid-js: optional: true @@ -8331,8 +8776,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.32: - resolution: {integrity: sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==} + baseline-browser-mapping@2.11.25: + resolution: {integrity: sha512-gMmEShwwq7FJqMwvfRwvCl00v4kN+KOfJqXn+f4nrufak5gNHJOksd/60Dvjuz7sI8Y5WiSFBa8FEYr+zoyqCw==} engines: {node: '>=6.0.0'} hasBin: true @@ -8351,8 +8796,8 @@ packages: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} engines: {node: '>=12.0.0'} - bidi-js@1.0.3: - resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} + bidi-js@1.1.0: + resolution: {integrity: sha512-fX1Onk0tdVPC7obPWB5EbJ1z7NVhLq4m2xZLq2YXBkxzMXIGRpNMU88n0EPgWseKl12J7zXs7qrDxPK4sRs2fg==} big-integer@1.6.52: resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} @@ -8365,25 +8810,25 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - birecord@0.1.1: - resolution: {integrity: sha512-VUpsf/qykW0heRlC8LooCq28Kxn3mAqKohhDG/49rrsQ1dT1CXyj/pgXS+5BSRzFTR/3DyIBOqQOrGyZOh71Aw==} + birecord@0.1.2: + resolution: {integrity: sha512-5PAPTTmMpMEb+GuMb5DebfBkipRGyIW9+gtwEBSoDA9xkhHILm04+hZQ702pMksu3d8YAuGkmgTzQWcKqTPScA==} - birpc@4.0.0: - resolution: {integrity: sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==} + birpc@4.2.0: + resolution: {integrity: sha512-KxgKcZPfrtzJDDALHPguGpGJUrzdgpymyiQQgzFjWreHMOpWrnFNVREr5J48x2DBh8ZVioscrV1SBkDipGiX+Q==} bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - body-parser@1.20.5: - resolution: {integrity: sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==} + body-parser@1.20.8: + resolution: {integrity: sha512-JNcyFQ64OiijEkPzUBTCe+hyPXUD/3LEldGQ6iF5LR1w00mx9o7xtDWHXBY2iItjdCFGoilOLNQbH943ut7pHA==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - body-parser@2.2.2: - resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} + body-parser@2.3.0: + resolution: {integrity: sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==} engines: {node: '>=18'} - bonjour-service@1.4.0: - resolution: {integrity: sha512-fGQtj1qdR9vIKjFiWPQd52qIqwjaYqhcI40JEiDuvlZ86E7ZBPBwY9fPgHy9r2rYGIjiRfctNPYz6OQU73ww2w==} + bonjour-service@1.4.4: + resolution: {integrity: sha512-jCZcVv7eoc4QesRscwEZtSROBen+6LpKAmBIsQYQrsAeVHLyMXWX/t6eIV5KiRZYNUBl8eVqImEEMQ8L5+c/Kw==} boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -8399,15 +8844,15 @@ packages: resolution: {integrity: sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==} engines: {node: '>= 5.10.0'} - brace-expansion@1.1.14: - resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==} + brace-expansion@1.1.21: + resolution: {integrity: sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==} - brace-expansion@2.1.1: - resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} + brace-expansion@2.1.7: + resolution: {integrity: sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==} - brace-expansion@5.0.6: - resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} - engines: {node: 18 || 20 || >=22} + brace-expansion@5.0.12: + resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} + engines: {node: 20 || >=22} brace-expansion@5.0.9: resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} @@ -8420,8 +8865,8 @@ packages: browserify-zlib@0.1.4: resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} - browserslist@4.28.2: - resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} + browserslist@4.29.0: + resolution: {integrity: sha512-3GSvyjvDI4Dur1Meg2BekJquu5uF+9R9a1+5M1Mde192eZoXbeXjzgOsgqPS2V8D5wrrip0gR5Hf/GhWQ9ZzaA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -8490,8 +8935,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001793: - resolution: {integrity: sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==} + caniuse-lite@1.0.30001810: + resolution: {integrity: sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -8524,8 +8969,8 @@ packages: character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - chardet@2.1.1: - resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} + chardet@2.2.0: + resolution: {integrity: sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==} check-error@2.1.3: resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==} @@ -8639,9 +9084,6 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - code-block-writer@12.0.0: - resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==} - color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -8672,14 +9114,14 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} - commander@12.1.0: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} + commander@13.1.0: + resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} + engines: {node: '>=18'} + commander@14.0.3: resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} engines: {node: '>=20'} @@ -8695,8 +9137,8 @@ packages: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} - comment-parser@1.4.7: - resolution: {integrity: sha512-0h+uSNtQGW3D98eQt3jJ8L06Fves8hncB4V/PKdw/Qb8Hnk19VaKuTr55UNRYiSoVa7WwrFls+rh3ux9agmkeQ==} + comment-parser@1.4.9: + resolution: {integrity: sha512-+2AvZKjJaNq9GQljm3tr0utwrig5BL+jgJGvz5rDpGKNIp+ojcRXWUwBbh/sGIi1QCprR6PsKFakub+w1v+4hQ==} engines: {node: '>= 12.0.0'} common-path-prefix@3.0.0: @@ -8709,8 +9151,8 @@ packages: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} - compression@1.8.1: - resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} + compression@1.8.2: + resolution: {integrity: sha512-o8vI5RE5A6EVVOd9o41jKp41aJom+QTEO/Bx8MYNjexMo/Bv2WOjUfZr+aL0WnYSgymUy6zeguqLTsIhV0gMvQ==} engines: {node: '>= 0.8.0'} computeds@0.0.1: @@ -8722,8 +9164,8 @@ packages: confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - confbox@0.2.4: - resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==} + confbox@0.3.1: + resolution: {integrity: sha512-cKUSoKa8YxFZZSmraVi7onONx3amu77ngK3kGpsYHDH7drPwCRkQE1RYMPlLRrMtnciRj274XNRxcHxnKmDSnA==} config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -8748,8 +9190,8 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} - content-type@2.0.0: - resolution: {integrity: sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==} + content-type@2.1.0: + resolution: {integrity: sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==} engines: {node: '>=18'} convert-source-map@1.9.0: @@ -8772,9 +9214,6 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - copy-anything@2.0.6: - resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} - copy-anything@3.0.5: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} @@ -8785,8 +9224,9 @@ packages: peerDependencies: webpack: ^5.1.0 - core-js-compat@3.49.0: - resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} + core-js-compat@3.50.0: + resolution: {integrity: sha512-XGpFGbMLHwSt74YLTKho7Ib242qi6O8MSX+sRokV4oz7iKXvQWGYZthjIhjRGMxjzVkAubBO512dKGYcefmX3Q==} + engines: {node: '>=6.4.0'} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -8799,8 +9239,8 @@ packages: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} - cosmiconfig@9.0.1: - resolution: {integrity: sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==} + cosmiconfig@9.0.2: + resolution: {integrity: sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==} engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' @@ -8808,6 +9248,9 @@ packages: typescript: optional: true + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + cross-fetch@3.2.0: resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} @@ -8886,8 +9329,8 @@ packages: dataloader@2.2.3: resolution: {integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==} - dayjs@1.11.20: - resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} + dayjs@1.11.23: + resolution: {integrity: sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==} de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} @@ -8975,8 +9418,8 @@ packages: resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} engines: {node: '>=18'} - default-browser@5.5.0: - resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} + default-browser@5.5.1: + resolution: {integrity: sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==} engines: {node: '>=18'} defaults@1.0.4: @@ -9035,8 +9478,12 @@ packages: detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - devalue@5.8.1: - resolution: {integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==} + devalue@5.9.4: + resolution: {integrity: sha512-sPAT4pztbu6586/hrhOnMKS17IJrvg12mXiSPSS3W5qDeN2RGgvZ0diZCm31dBbnevfVmujNO3IM2wrS4Y2Rhg==} + + diff@4.0.4: + resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} + engines: {node: '>=0.3.1'} diff@5.2.2: resolution: {integrity: sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==} @@ -9111,24 +9558,24 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - editorconfig@1.0.7: - resolution: {integrity: sha512-e0GOtq/aTQhVdNyDU9e02+wz9oDDM+SIOQxWME2QRjzRX5yyLAuHDE+0aE8vHb9XRC8XD37eO2u57+F09JqFhw==} - engines: {node: '>=14'} + editorconfig@3.0.2: + resolution: {integrity: sha512-T0ix8GhtxyKVfUFEcvdNDt3YGqlwkFHbD4/5bgFUDgFmxhI/cSRAeJ87/Sz//Cq8Eam6JX/e23RkoFO71P7aAA==} + engines: {node: '>=20'} hasBin: true ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - effect@3.21.2: - resolution: {integrity: sha512-rXd2FGDM8KdjSIrc+mqEELo7ScW7xTVxEf1iInmPSpIde9/nyGuFM710cjTo7/EreGXiUX2MOonPpprbz2XHCg==} + effect@3.22.2: + resolution: {integrity: sha512-fm1CQXCs7GTMwpadZxwU5rnAb2bN6mbQpknq/pXBGCzSKkosNYb9k0wsoL0TfB10rSa5xOEZJjo77u/KLXSANg==} ejs@5.0.1: resolution: {integrity: sha512-COqBPFMxuPTPspXl2DkVYaDS3HtrD1GpzOGkNTJ1IYkifq/r9h8SVEFrjA3D9/VJGOEoMQcrlhpntcSUrM8k6A==} engines: {node: '>=0.12.18'} hasBin: true - electron-to-chromium@1.5.361: - resolution: {integrity: sha512-Q6Hts7N9FnJc5LeGRINFvLhCI9xZmNtTDe5ZbcVezQz7cU4a8Aua3GH1b8J2XY8Al9PF+OCwYqhgsOOheMdvkA==} + electron-to-chromium@1.5.433: + resolution: {integrity: sha512-5lCAbyZBjtmUt/RAGHRqrL2q0oEFRThDAsZHHDn9XHa89Qw7gMYOeSicBTy+AHfvo0r6vwsZvqNJTQIQy1BLzA==} emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -9143,8 +9590,8 @@ packages: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} engines: {node: '>= 4'} - empathic@2.0.1: - resolution: {integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==} + empathic@2.1.0: + resolution: {integrity: sha512-AnfC1ATldl49/cvZdLPDjBfrRNwbDO05aibiOtzQu3qtlbJtomNLhF30HEtn/7iBz50dlMECqATo3fG0LrdEgw==} engines: {node: '>=14'} encodeurl@1.0.2: @@ -9161,8 +9608,8 @@ packages: end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - enhanced-resolve@5.22.0: - resolution: {integrity: sha512-xYcDWrpELkFzz9SpZ3PlI6Eu6eD93Yf0WLDRxikGhWJ3MAir2SNZTIVCVZqZ/NUyx8AdMc2gT9C0gPiw18kG+A==} + enhanced-resolve@5.25.1: + resolution: {integrity: sha512-nGXts5znJzmWPu+mIE9izCOzdg63oJca2mDzGWWTth7sr4aCToKcoyFVBQwN75Ij5Pf6p510EwkTqViTRzDV+w==} engines: {node: '>=10.13.0'} entities@4.5.0: @@ -9177,10 +9624,15 @@ packages: resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} engines: {node: '>=0.12'} - entities@8.0.0: - resolution: {integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==} + entities@8.1.0: + resolution: {integrity: sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==} engines: {node: '>=20.19.0'} + env-cmd@11.0.0: + resolution: {integrity: sha512-gnG7H1PlwPqsGhFJNTv68lsDGyQdK+U9DwLVitcj1+wGq7LeOBgUzZd2puZ710bHcH9NfNeGWe2sbw7pdvAqDw==} + engines: {node: '>=20.10.0'} + hasBin: true + env-editor@0.4.2: resolution: {integrity: sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==} engines: {node: '>=8'} @@ -9206,6 +9658,10 @@ packages: error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + es-abstract-get@1.0.0: + resolution: {integrity: sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==} + engines: {node: '>= 0.4'} + es-abstract@1.24.2: resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} engines: {node: '>= 0.4'} @@ -9221,15 +9677,15 @@ packages: es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - es-iterator-helpers@1.3.2: - resolution: {integrity: sha512-HVLACW1TppGYjJ8H6/jqH/pqOtKRw6wMlrB23xfExmFWxFquAIWCmwoLsOyN96K4a5KbmOf5At9ZUO3GZbetAw==} + es-iterator-helpers@1.4.0: + resolution: {integrity: sha512-c/A0P0oxkACDc+cKWw8evLXK83oBKgn0qPOqCYT4x9uolpCIJAcYvJC9QYKNDRPsTeGyCrQ326jrvgZWdCdK5Q==} engines: {node: '>= 0.4'} es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - es-module-lexer@2.1.0: - resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} + es-module-lexer@2.3.2: + resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} @@ -9247,18 +9703,18 @@ packages: resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} engines: {node: '>= 0.4'} - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + es-to-primitive@1.3.4: + resolution: {integrity: sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==} engines: {node: '>= 0.4'} - esbuild-plugins-node-modules-polyfill@1.8.1: - resolution: {integrity: sha512-7vxzmyTFDhYUNhjlciMPmp32eUafNIHiXvo8ZD22PzccnxMoGpPnsYn17gSBoFZgpRYNdCJcAWsQ60YVKgKg3A==} + esbuild-plugins-node-modules-polyfill@1.8.3: + resolution: {integrity: sha512-DSWWgkQUkavjuyvuaTSd7FpOOZgMpsgmzANoNCCDtOt6NeK5k5bxrn/kSGxnEyiRfSvfIlwgYfOL7s6RRLaxKw==} engines: {node: '>=14.0.0'} peerDependencies: - esbuild: '>=0.14.0 <=0.27.x' + esbuild: '>=0.14.0 <=0.28.x' - esbuild-wasm@0.27.3: - resolution: {integrity: sha512-AUXuOxZ145/5Az+lIqk6TdJbxKTyDGkXMJpTExmBdbnHR6n6qAFx+F4oG9ORpVYJ9dQYeQAqzv51TO4DFKsbXw==} + esbuild-wasm@0.28.1: + resolution: {integrity: sha512-p/GD4E8oYRjg3kjdKrnMb0s4PzXgJF42e0MF4H0+ACyK/kIlFRp3e0fzOleIG+wBBm6MM3XQrbpe7soEA+vJIA==} engines: {node: '>=18'} hasBin: true @@ -9272,13 +9728,13 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + esbuild@0.28.1: + resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} engines: {node: '>=18'} hasBin: true - esbuild@0.27.7: - resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} + esbuild@0.28.2: + resolution: {integrity: sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==} engines: {node: '>=18'} hasBin: true @@ -9337,8 +9793,8 @@ packages: eslint-plugin-import-x: optional: true - eslint-module-utils@2.12.1: - resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} + eslint-module-utils@2.14.0: + resolution: {integrity: sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -9364,14 +9820,14 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-expo@1.0.3: - resolution: {integrity: sha512-C1v9NPvpDET36+7Klpp/+53Jl+VzOfpbDxpKtL/pAPhCDwTX0kW6Swo425PT0uc4AMT5jpQbB7hSKFjKOGMl4A==} + eslint-plugin-expo@1.1.0: + resolution: {integrity: sha512-vPP0EPx7IA7ZfP49dY4rq9RV5jqkFWG+Pih3/oGjzIRjMI+ogcOE8i6isYkLXAdw/yvFV2BRZkTaQaiOGQqn6Q==} engines: {node: '>=18.0.0'} peerDependencies: eslint: '>=8.10' - eslint-plugin-import-x@4.16.2: - resolution: {integrity: sha512-rM9K8UBHcWKpzQzStn1YRN2T5NvdeIfSVoKu/lKF41znQXHAUcBbYXe5wd6GNjZjTrP7viQ49n1D83x/2gYgIw==} + eslint-plugin-import-x@4.17.1: + resolution: {integrity: sha512-4cdstYkKCyjumM2Q9NSI03K8D2a9F4Ssz33K2lv2hQa4KmR9jPLwk3uWGtNvclfqBrPGfGuMBwsGMbe6dMRbfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/utils': ^8.56.0 @@ -9535,8 +9991,8 @@ packages: resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} - esrap@2.2.9: - resolution: {integrity: sha512-4KijP+NxCWthMCUC3qHbE6n4vCjqgJS1uAYKhuT/GWfFTf1Qyive2TgOjep+gzbSzRfnNyaN/UU9YmdOt8Eg0A==} + esrap@2.3.7: + resolution: {integrity: sha512-n2nf7fZR3c9yXf0BPEuHuXqT+KW0SJVj4cN5FMEkpCZ3scLjOQWpiccyCxVzCC2q1wubTghuEGzngJY/7Ah0Ow==} peerDependencies: '@typescript-eslint/types': ^8.2.0 peerDependenciesMeta: @@ -9609,8 +10065,8 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - eventsource-parser@3.0.8: - resolution: {integrity: sha512-70QWGkr4snxr0OXLRWsFLeRBIRPuQOvt4s8QYjmUlmlkyTZkRqS7EDVRZtzU3TiyDbXSzaOeF0XUKy8PchzukQ==} + eventsource-parser@3.1.1: + resolution: {integrity: sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==} engines: {node: '>=18.0.0'} eventsource@3.0.7: @@ -9625,8 +10081,8 @@ packages: resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} engines: {node: '>=6'} - expect-type@1.3.0: - resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} + expect-type@1.4.0: + resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} engines: {node: '>=12.0.0'} expo-asset@12.0.13: @@ -9636,20 +10092,20 @@ packages: react: '*' react-native: '*' - expo-constants@18.0.13: - resolution: {integrity: sha512-FnZn12E1dRYKDHlAdIyNFhBurKTS3F9CrfrBDJI5m3D7U17KBHMQ6JEfYlSj7LG7t+Ulr+IKaj58L1k5gBwTcQ==} + expo-constants@18.0.14: + resolution: {integrity: sha512-BUZm9mkl/TX7zNaN0N4C83ws7mEnesCFiKhqK+rMZwTD2+Q4wWB2kBltqnC/LrCRaMyRi40XxhCRVwuKnJkxXQ==} peerDependencies: expo: '*' react-native: '*' - expo-file-system@19.0.22: - resolution: {integrity: sha512-l9pgahSc7sJD0bP9vBNeXvZjy8QKDpVHVxWmei/ESQOrzmoj5BidziqLVsyZdxsi+PfdbTtttLTAmddH/JafYA==} + expo-file-system@19.0.24: + resolution: {integrity: sha512-hZs0Ng+coNjx7YJ8MPwfJpoU1SRul6OZ9LZycFzozUeoR+denbyr944YrMP9NVn+Zf1tdC7p0K0zgah3ZySOYg==} peerDependencies: expo: '*' react-native: '*' - expo-font@14.0.11: - resolution: {integrity: sha512-ga0q61ny4s/kr4k8JX9hVH69exVSIfcIc19+qZ7gt71Mqtm7xy2c6kwsPTCyhBW2Ro5yXTT8EaZOpuRi35rHbg==} + expo-font@14.0.12: + resolution: {integrity: sha512-QQzunE2Mxk45AsCWm3tK7OpVljbtVnKD58q4/qliev+cbye1IOduUnRIdD+P7DyButw17G9MTX795kgaQiz5hQ==} peerDependencies: expo: '*' react: '*' @@ -9683,8 +10139,8 @@ packages: react: '*' react-native: '*' - expo-modules-autolinking@3.0.25: - resolution: {integrity: sha512-YmHWctJlwvOuLZccg3cOXvSiXVJrPMKl7g2YR0YHWoGL9v2RvcmgaPJWPSLVW+voNEgEPsbo5UmUrAqbnYcBeg==} + expo-modules-autolinking@3.0.27: + resolution: {integrity: sha512-Ge216xmfXcba+aUQssfmUo9Hf92wXX3xcXJmOsC/wpuV5B5ozm4BTkRKpoCXEkdD8eJVmFy7ATS8yD3upFOPQA==} hasBin: true expo-modules-core@3.0.30: @@ -9693,15 +10149,15 @@ packages: react: '*' react-native: '*' - expo-router@6.0.23: - resolution: {integrity: sha512-qCxVAiCrCyu0npky6azEZ6dJDMt77OmCzEbpF6RbUTlfkaCA417LvY14SBkk0xyGruSxy/7pvJOI6tuThaUVCA==} + expo-router@6.0.24: + resolution: {integrity: sha512-KIssKXnwjrdCxPWC8GsMTfKTwng40VrCsO16O9x6fKlfUwBW8itxY9PpCGyQeMJkiEADa+DUhtrDgl+uHg4/DA==} peerDependencies: '@expo/metro-runtime': ^6.1.2 '@react-navigation/drawer': ^7.5.0 '@testing-library/react-native': '>= 12.0.0' expo: '*' expo-constants: ^18.0.13 - expo-linking: ^8.0.11 + expo-linking: ^8.0.12 react: '*' react-dom: '*' react-native: '*' @@ -9727,8 +10183,8 @@ packages: react-server-dom-webpack: optional: true - expo-server@1.0.6: - resolution: {integrity: sha512-vb5TBtskvEdzYuW79lATXutOEBfW5m6U4EFpNjCVZTnI7S//SAsLQkYEpn+EDfn84m6VQfzSGkIVR6YPaScKFA==} + expo-server@1.0.7: + resolution: {integrity: sha512-mcmyML3oXcqFUXUxtdtCL1O00ztNI2v76d+MdniXRUgHNxIcHZ05zo+DqBaOOT6LQnPk4vA4YHqQl7iGUfRb3g==} engines: {node: '>=20.16.0'} expo-splash-screen@31.0.13: @@ -9764,8 +10220,8 @@ packages: expo: '*' react-native: '*' - expo@54.0.34: - resolution: {integrity: sha512-XkVHguZZDC8BcTQxHAd14/TQFbDp1Wt0Z/KApO9t68Ll5A127hLCPzU+a9gytfCIiyL/V1IpF1vIcOLKEVAoNQ==} + expo@54.0.37: + resolution: {integrity: sha512-afzbtO4i/K9ZCrzyLgEOaXW56w/yuAK61JkCOMrw/S/VFCAp6YwKWA494X5mIcrVmRAmclv/ec7ga8ndTkzhxw==} hasBin: true peerDependencies: '@expo/dom-webview': '*' @@ -9784,22 +10240,22 @@ packages: exponential-backoff@3.1.3: resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} - express-rate-limit@8.5.2: - resolution: {integrity: sha512-5Kb34ipNX694DH48vN9irak1Qx30nb0PLYHXfJgw4YEjiC3ZEmZJhwOp+VfiCYwFzvFTdB9QkArYS5kXa2cx2A==} + express-rate-limit@8.7.0: + resolution: {integrity: sha512-hOwV7WOxXfjRpAM1DSJWZDXx3GhplwD8IfwuwvogD8i1Qnkgosw/H45s4ZnFAUHDAhPjlY9hLBvJhKmGMyY26g==} engines: {node: '>= 16'} peerDependencies: express: '>= 4.11' - express@4.22.2: - resolution: {integrity: sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==} + express@4.22.3: + resolution: {integrity: sha512-Bdcs4+3qlpVlx2NRn6fgX2Ue2/gGRaPeawebgclM0ERSCqDpA+owF1fdPwjJUTAJWMTuAaxjDf+hzb0/4eKvvw==} engines: {node: '>= 0.10.0'} express@5.2.1: resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} engines: {node: '>= 18'} - exsolve@1.0.8: - resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + exsolve@1.1.1: + resolution: {integrity: sha512-9U/jZUgjnSGyntRr6y5Muu1MJcwFl6kPu7k8qLF0IMNfLqvw0NZ4nnVDq0RVoZ0RvCyumib4Ez3KYrVfilrw+g==} extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -9827,8 +10283,8 @@ packages: fast-string-width@3.0.2: resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} - fast-uri@3.1.2: - resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} + fast-uri@3.1.8: + resolution: {integrity: sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==} fast-wrap-ansi@0.2.0: resolution: {integrity: sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w==} @@ -9836,8 +10292,8 @@ packages: fast-wrap-ansi@0.2.2: resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + fastq@1.20.3: + resolution: {integrity: sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==} fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} @@ -9925,8 +10381,8 @@ packages: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - flatted@3.4.2: - resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} + flatted@3.4.4: + resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} flow-enums-runtime@0.0.6: resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} @@ -9951,10 +10407,6 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - form-data@4.0.5: - resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} - engines: {node: '>= 6'} - form-data@4.0.6: resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} engines: {node: '>= 6'} @@ -10017,8 +10469,8 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + function.prototype.name@1.2.0: + resolution: {integrity: sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==} engines: {node: '>= 0.4'} functions-have-names@1.2.3: @@ -10039,8 +10491,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.6.0: - resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==} + get-east-asian-width@1.7.0: + resolution: {integrity: sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==} engines: {node: '>=18'} get-intrinsic@1.3.0: @@ -10071,12 +10523,13 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.14.0: - resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} - get-tsconfig@4.14.3: resolution: {integrity: sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA==} + get-tsconfig@5.0.0-beta.6: + resolution: {integrity: sha512-X6fBC0pmImC70gvX2zm56go9hx0MyoGVdG0tUCkg/D+Xnh5TJsOZ7iDbOdI3PvmtrDxnu1YdDufpK2QJX1Meqw==} + engines: {node: '>=20.20.0'} + getenv@2.0.0: resolution: {integrity: sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==} engines: {node: '>=6'} @@ -10089,8 +10542,8 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob-to-regex.js@1.2.0: - resolution: {integrity: sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==} + glob-to-regex.js@1.3.1: + resolution: {integrity: sha512-zhWhMRsgnOym+1txhUmYJGD6eUsbUdrZv55gCYKuJX8t2p3+M8My23PD09bEIsreGUs5pnSa/idmcfp2/IlqGg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -10111,6 +10564,10 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + global-prefix@4.0.0: + resolution: {integrity: sha512-w0Uf9Y9/nyHinEk5vMJKRie+wa4kR5hmDbEhGGds/kG1PwGLLHKRoNMeJOyCQjjBkANlnScqgzcFwGHgmgLkVA==} + engines: {node: '>=16'} + globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -10186,10 +10643,6 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - hasown@2.0.3: - resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} - engines: {node: '>= 0.4'} - hasown@2.0.4: resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} @@ -10231,12 +10684,12 @@ packages: hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - hono@4.12.23: - resolution: {integrity: sha512-eIaZ9qDgu7XV0pxOCrg7/WhnQ6Ivm22UcxhXx/A3dcbqbbYgBEkc6e/J/s7j2tS96zoB0S9VBdLwQNCWwUo4LA==} + hono@4.13.8: + resolution: {integrity: sha512-/Gng7NfoykZl2pjukW5Z6+8Yxm3BPRf86GTbQnt0SbySkvax4fyL4H3HhY1cCpBGmiW9XDRFzRV+CXK2W8QudQ==} engines: {node: '>=16.9.0'} - hookable@6.1.1: - resolution: {integrity: sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==} + hookable@6.1.2: + resolution: {integrity: sha512-+abwxtiEA52GCVIsQqut3S/uKTbUwYIp4Pe/vv+6py5XiXBCqMZHg6pA6Y5qhgLSEys0/cYuPbO0z1QFj5ZCmg==} hosted-git-info@6.1.3: resolution: {integrity: sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==} @@ -10290,8 +10743,8 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} - http-proxy-middleware@2.0.9: - resolution: {integrity: sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==} + http-proxy-middleware@2.0.10: + resolution: {integrity: sha512-RKzRWNPxUZqbuk3BC5mGVJbBnWgr+diEnjJexIOytFbBzDy88Fbh/YvBr3DsNrl1jYAfjWfpATEv0NO35FDuPQ==} engines: {node: '>=12.0.0'} peerDependencies: '@types/express': ^4.17.13 @@ -10299,9 +10752,9 @@ packages: '@types/express': optional: true - http-proxy-middleware@3.0.5: - resolution: {integrity: sha512-GLZZm1X38BPY4lkXA01jhwxvDoOkkXqjgVyUzVxiEK4iuRu03PZoYHhHRwxnfhQMDuaxi3vVri0YgSro/1oWqg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + http-proxy-middleware@3.0.7: + resolution: {integrity: sha512-iwbQltVlx8bCrqePUM8C+hllHvdawVhQJaLrj1X7qllkvFQdXFsr16pW/mo9+JDVjN+QO2XUx9jd8SmoFkE5qw==} + engines: {node: ^14.18.0 || ^16.10.0 || >=18.0.0} http-proxy@1.18.1: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} @@ -10338,8 +10791,8 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - iconv-lite@0.7.2: - resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + iconv-lite@0.7.3: + resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} engines: {node: '>=0.10.0'} icss-utils@5.1.0: @@ -10363,18 +10816,17 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} - image-size@0.5.5: - resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} - engines: {node: '>=0.10.0'} - hasBin: true + ignore@7.0.9: + resolution: {integrity: sha512-brTTsvFRt5C1gGHtPst/281UjPD5t9fBqbgoMPlVWy11ZLTPfu7HxK4ZYqO9H7o/yC9rSTCI85EaQ4OoY12qYw==} + engines: {node: '>= 4'} image-size@1.2.1: resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} engines: {node: '>=16.x'} hasBin: true - immutable@5.1.5: - resolution: {integrity: sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==} + immutable@5.1.9: + resolution: {integrity: sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==} import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} @@ -10409,6 +10861,10 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ini@4.1.3: + resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ini@6.0.0: resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} engines: {node: ^20.17.0 || >=22.9.0} @@ -10429,16 +10885,16 @@ packages: invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - ip-address@10.2.0: - resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} + ip-address@10.7.2: + resolution: {integrity: sha512-7H/2gFSIitxc0hG3nOI1glS8QLo/EHBFFLk8vEUjXY/xu0AdL8jZ9U1IzO2PUm0d2D/ofQcAifb0g6OBkt8U7w==} engines: {node: '>= 12'} ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - ipaddr.js@2.4.0: - resolution: {integrity: sha512-9VGk3HGanVE6JoZXHiCpnGy5X0jYDnN4EA4lntFPj+1vIWlFhIylq2CrrCOJH9EAhc5CYhq18F2Av2tgoAPsYQ==} + ipaddr.js@2.5.0: + resolution: {integrity: sha512-aq+t5NAc+cS6rZQQVWC2x98CPqGtKKTMDd4Gaodv0wShnItdKg/51djkGJ1hqH+Oy0ivDftCbSLCQob8zso01w==} engines: {node: '>= 10'} is-alphabetical@2.0.1: @@ -10488,8 +10944,8 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.16.2: - resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} + is-core-module@2.17.0: + resolution: {integrity: sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA==} engines: {node: '>= 0.4'} is-data-view@1.0.2: @@ -10516,6 +10972,10 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true + is-document.all@1.0.0: + resolution: {integrity: sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==} + engines: {node: '>= 0.4'} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -10547,8 +11007,8 @@ packages: is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - is-immutable-type@5.0.2: - resolution: {integrity: sha512-liGTvz7pbINOKvy0P4VTCEAIf8xrKJ9165xnwsS7udUyYxwDGBdQIJd+OhwxAn6Kv3pzdy1uha4oJCigzNw2xA==} + is-immutable-type@5.0.4: + resolution: {integrity: sha512-tDf0vB9dJJt/1USS2nvHJb8UsIAhs+pF6z8UZLNdhrzB+PKMrdcN45je9jhuFpaJOjJpoRhueFmFrRs5g/TNMA==} peerDependencies: eslint: '*' typescript: '>=4.7.4' @@ -10602,8 +11062,8 @@ packages: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + is-plain-object@5.1.0: + resolution: {integrity: sha512-bUi/yjmtKYcRVUtWRGr0UA6xEFh2I6zWUwMrUXB3s7bmYCaZ8a+0ZsTRkrawh/mzlSD1Y0Ph8bp/U+TvBpWDNw==} engines: {node: '>=0.10.0'} is-potential-custom-element-name@1.0.1: @@ -10663,9 +11123,6 @@ packages: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} - is-what@3.14.1: - resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} - is-what@4.1.16: resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} engines: {node: '>=12.13'} @@ -10688,13 +11145,17 @@ packages: isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isbot@5.1.40: - resolution: {integrity: sha512-yNeeynhhtIVRBk12tBV4eHNxwB42HzR4Q3Ea7vCOiJhImGaAIdIMrbJtacQlBizGLjUPw+akkFI5Dn9T70XoVQ==} + isbot@5.2.2: + resolution: {integrity: sha512-iQcBXcd+Rv/pkubRyGh2utW2j1oPG5hZY6TUhVPpqK4G+o3IbxpJNx04hgksjc/N7GK5pEorUxDeg31cFgEk/w==} engines: {node: '>=18'} isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@3.1.5: + resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} + engines: {node: '>=18'} + isexe@4.0.0: resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} engines: {node: '>=20'} @@ -10787,17 +11248,16 @@ packages: jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - jose@6.2.3: - resolution: {integrity: sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==} + jose@6.2.12: + resolution: {integrity: sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==} - js-beautify@1.15.4: - resolution: {integrity: sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==} + js-beautify@2.0.3: + resolution: {integrity: sha512-cyFbh3tkPhknnTD/0bLf0T0yy2ZIbqL05mttzbt4y1Zfr7NxqXQZ62dkBLKs3oHH/lpjmDRAnciJiSUyOy8XwQ==} engines: {node: '>=14'} hasBin: true - js-cookie@3.0.7: - resolution: {integrity: sha512-z/wZZgDrkNV1eA0ULjM/F9/50Ya8fbzgKneSpoPsXSGd0KnpdtHfOZWK+GcwLk+EZbS4F9RBhU+K2RgzuDaItw==} - engines: {node: '>=20'} + js-cookie@3.0.8: + resolution: {integrity: sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw==} js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -10805,12 +11265,12 @@ packages: js-tokens@9.0.1: resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} - js-yaml@3.14.2: - resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + js-yaml@3.15.2: + resolution: {integrity: sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w==} hasBin: true - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + js-yaml@4.3.2: + resolution: {integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==} hasBin: true jsc-safe-url@0.2.4: @@ -10917,9 +11377,6 @@ packages: resolution: {integrity: sha512-ONPnazC96VKDntab9j9JKwIWhZ4ZUceB4A9Epu4Ssg0hYFmtHZSeQ+n15nIwTFmcBUKtExOer8WTJ4GF9MO64A==} hasBin: true - launch-editor@2.13.2: - resolution: {integrity: sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==} - launch-editor@2.14.1: resolution: {integrity: sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==} @@ -10936,13 +11393,13 @@ packages: webpack: optional: true - less@4.4.2: - resolution: {integrity: sha512-j1n1IuTX1VQjIy3tT7cyGbX7nvQOsFLoIqobZv4ttI5axP923gA44zUj6miiA6R5Aoms4sEGVIIcucXUbRI14g==} - engines: {node: '>=14'} + less@4.9.0: + resolution: {integrity: sha512-umRhrCH7fCi8Uj2RcwKjJdvUORTjeWqkdKx0LbcZvjIwsAVsnIAGcxHaqowPeBFBjQuWOeC/bve0AlpFzF/+SQ==} + engines: {node: '>=18'} hasBin: true - less@4.6.4: - resolution: {integrity: sha512-OJmO5+HxZLLw0RLzkqaNHzcgEAQG7C0y3aMbwtCzIUFZsLMNNq/1IdAdHEycQ58CwUO3jPTHmoN+tE5I7FQxNg==} + less@4.9.1: + resolution: {integrity: sha512-orp15PfJvvNDIqJdVWzMI9Sjpjp3VTiw3sfvbB+67LlISTEn8uVT2EdYSuyl02BLvaftv6sdk9Umnxmm5rckmg==} engines: {node: '>=18'} hasBin: true @@ -10965,78 +11422,78 @@ packages: lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} - lightningcss-android-arm64@1.32.0: - resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} + lightningcss-android-arm64@1.33.0: + resolution: {integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [android] - lightningcss-darwin-arm64@1.32.0: - resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} + lightningcss-darwin-arm64@1.33.0: + resolution: {integrity: sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] - lightningcss-darwin-x64@1.32.0: - resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} + lightningcss-darwin-x64@1.33.0: + resolution: {integrity: sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] - lightningcss-freebsd-x64@1.32.0: - resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} + lightningcss-freebsd-x64@1.33.0: + resolution: {integrity: sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] - lightningcss-linux-arm-gnueabihf@1.32.0: - resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} + lightningcss-linux-arm-gnueabihf@1.33.0: + resolution: {integrity: sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] - lightningcss-linux-arm64-gnu@1.32.0: - resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} + lightningcss-linux-arm64-gnu@1.33.0: + resolution: {integrity: sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] libc: [glibc] - lightningcss-linux-arm64-musl@1.32.0: - resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} + lightningcss-linux-arm64-musl@1.33.0: + resolution: {integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] libc: [musl] - lightningcss-linux-x64-gnu@1.32.0: - resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} + lightningcss-linux-x64-gnu@1.33.0: + resolution: {integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] libc: [glibc] - lightningcss-linux-x64-musl@1.32.0: - resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} + lightningcss-linux-x64-musl@1.33.0: + resolution: {integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] libc: [musl] - lightningcss-win32-arm64-msvc@1.32.0: - resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} + lightningcss-win32-arm64-msvc@1.33.0: + resolution: {integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] - lightningcss-win32-x64-msvc@1.32.0: - resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} + lightningcss-win32-x64-msvc@1.33.0: + resolution: {integrity: sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] - lightningcss@1.32.0: - resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} + lightningcss@1.33.0: + resolution: {integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==} engines: {node: '>= 12.0.0'} lilconfig@3.1.3: @@ -11050,8 +11507,8 @@ packages: resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - linkify-it@5.0.1: - resolution: {integrity: sha512-wVoTjP4Q6R0NW5hiZkVJaFZPWgtXfoGF+6LucL3/FtiNjmcHhYjEr5f1Kqjirc1nBW07J/ZuRFumqr2oqccEWg==} + linkify-it@5.0.2: + resolution: {integrity: sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==} listr2@9.0.5: resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} @@ -11148,8 +11605,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.5.0: - resolution: {integrity: sha512-5YgH9UJd7wVb9hIouI2adWpgqrrICkt070Dnj8EUY1+B4B2P9eRLPAkAAo6NICA7CEhOIeBHl46u9zSNpNu7zA==} + lru-cache@11.5.3: + resolution: {integrity: sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -11176,16 +11633,19 @@ packages: magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} - make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} - make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} - make-fetch-happen@15.0.5: - resolution: {integrity: sha512-uCbIa8jWWmQZt4dSnEStkVC6gdakiinAm4PiGsywIkguF0eWMdcjDz0ECYhUolFU3pFLOev9VNPCEygydXnddg==} + make-dir@5.1.0: + resolution: {integrity: sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw==} + engines: {node: '>=18'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + make-fetch-happen@15.0.6: + resolution: {integrity: sha512-Je0fLJ0F5atA7F+eIlLzk+Wkcl57JDf4kf+EW8xiP5E31xOQxkIxTbgf1Oi1Lw9tRI9UEMRdI5Vz2xTzoNU1Jw==} engines: {node: ^20.17.0 || >=22.9.0} makeerror@1.0.12: @@ -11195,15 +11655,15 @@ packages: resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} engines: {node: '>=0.10.0'} - markdown-it@14.2.0: - resolution: {integrity: sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==} + markdown-it@14.3.2: + resolution: {integrity: sha512-sHHjZ5fJKlgrG4qns2YwVcdNep35h5fERrfkD2YNsb9UFk0UIHarbiTaHKVMlPuWAoiilyK8Fv/jAm11slsY7Q==} hasBin: true - markdown-link-extractor@4.0.3: - resolution: {integrity: sha512-aEltJiQ4/oC0h6Jbw/uuATGSHZPkcH8DIunNH1A0e+GSFkvZ6BbBkdvBTVfIV8r6HapCU3yTd0eFdi3ZeM1eAQ==} + markdown-link-extractor@4.0.4: + resolution: {integrity: sha512-Dw9saacqF4u1EjUm3O+f0ZTBM/o7l1IrdHS8z1KSFX2coECIcJTZbltICMKx6QwHBKlzMQXgtWYnIHX71WHZMw==} - marked@17.0.6: - resolution: {integrity: sha512-gB0gkNafnonOw0obSTEGZTT86IuhILt2Wfx0mWH/1Au83kybTayroZ/V6nS25mN7u8ASy+5fMhgB3XPNrOZdmA==} + marked@18.0.13: + resolution: {integrity: sha512-xTxVzZsBFwunP6HDmtBkabUQEYArnP7/rMDGmPj9SlrKlQ4i8MdYVow+nJL0eOqwpUqhzBoTBRADGN6uYwPyOw==} engines: {node: '>= 20'} hasBin: true @@ -11250,8 +11710,8 @@ packages: mdn-data@2.27.1: resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} - mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + mdurl@2.1.0: + resolution: {integrity: sha512-1+HBaOx0zi/dQWht8rNv9MYf9qqpqL/kxI0hXImU6Y547zM6Sni8BQibt7ifgMcYtQg41ao3Ivd6cnSM86inpg==} media-query-parser@2.0.2: resolution: {integrity: sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==} @@ -11260,14 +11720,12 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} - media-typer@1.1.0: - resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + media-typer@1.1.1: + resolution: {integrity: sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==} engines: {node: '>= 0.8'} - memfs@4.57.2: - resolution: {integrity: sha512-2nWzSsJzrukurSDna4Z0WywuScK4Id3tSKejgu74u8KCdW4uNrseKRSIDg75C6Yw5ZRqBe0F0EtMNlTbUq8bAQ==} - peerDependencies: - tslib: '2' + memfs@4.78.1: + resolution: {integrity: sha512-SkSlK6DZbzekBoiu0mcHUx9RRPnsBdaKQ36u8F3HvYZm/lRiD34YabQ2Xr76r+zYENzRPFKBsanAZPSl+r3Nqg==} memoize-one@5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} @@ -11301,80 +11759,80 @@ packages: resolution: {integrity: sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g==} engines: {node: '>=20.19.4'} - metro-babel-transformer@0.83.7: - resolution: {integrity: sha512-sBqBkt6kNut/88bv+Ucvm4yqdPetbvAEsHzi3MAgJEifOSYYzX5Z5Kgw3TFOrwf/mHJTOBG2ONlaMHoyfP15TA==} + metro-babel-transformer@0.83.8: + resolution: {integrity: sha512-tnn0J5wzgTgTx2OJy3Cwr1y79bJz4eNgFQd+2HENOs5Vz6QOMnt05z7J+BedIo9wIbpEa0iN9U1nerxyvMRE9g==} engines: {node: '>=20.19.4'} metro-cache-key@0.83.3: resolution: {integrity: sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw==} engines: {node: '>=20.19.4'} - metro-cache-key@0.83.7: - resolution: {integrity: sha512-W1c2Nmx8MiJTJt+eWhMO08z9VKi3kZOaz99IYGdqeqDgY9j+yZjXl62rUav4Di0heZfh4/n2s722PqRL1OODeg==} + metro-cache-key@0.83.8: + resolution: {integrity: sha512-I38PtcjT4crS5HY9UQ8i6z8S7tJ2WewtPGr/OwS6FcLKfy5T/1hlTaFw+wozUZkEtNpR6Gc0oJuvuKCbSoSN5A==} engines: {node: '>=20.19.4'} metro-cache@0.83.3: resolution: {integrity: sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q==} engines: {node: '>=20.19.4'} - metro-cache@0.83.7: - resolution: {integrity: sha512-E9SRePXQ1Zvlj79VcOk57q7VC7rMHMFQ+jhmPHBiq+dJ0bJB5BL87lWZF6oh5X76Cci5tpDuQNaDwwuSCToEeg==} + metro-cache@0.83.8: + resolution: {integrity: sha512-aogMG5WbKzW5000otNjYrS9hIoORzkCI1faPJK+vxQLaf2BorJKBBFe/jl2Tfsi1mZUglS2EBuBt8B3JB7MYDQ==} engines: {node: '>=20.19.4'} metro-config@0.83.3: resolution: {integrity: sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA==} engines: {node: '>=20.19.4'} - metro-config@0.83.7: - resolution: {integrity: sha512-83mjWFbFOt2GeJ6pFIum5mSnc1uTsZJAtD8o4ej0s4NVsYsA7fB+pHvTfHhFrpeMONaobu2riKavkPei05Er/Q==} + metro-config@0.83.8: + resolution: {integrity: sha512-crNbNy+/B4tCne2+HjUshwvC57gNBQj+V9fFSy3lHH2RlKcLHib3Mil/SfTX8Pfh2fCY5pPuSu2OKa7YiadB+Q==} engines: {node: '>=20.19.4'} metro-core@0.83.3: resolution: {integrity: sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw==} engines: {node: '>=20.19.4'} - metro-core@0.83.7: - resolution: {integrity: sha512-6yn3w1wnltT6RQl7p7YES2l95ArC+mWrOssEiH8p5/DDrJS65/szf9LsC9JrBv8c5DdvSY3V3f0GRYg0Ox7hCg==} + metro-core@0.83.8: + resolution: {integrity: sha512-NTyOUOQaQKvQgJG9VI2ymN6KTM7gHEqkVFhkPc9bK4BsHSTz/EaXuFBXtC+wtwINLeH9tbusL/jfsSmdEmuU7A==} engines: {node: '>=20.19.4'} metro-file-map@0.83.3: resolution: {integrity: sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA==} engines: {node: '>=20.19.4'} - metro-file-map@0.83.7: - resolution: {integrity: sha512-+j0F1m+FQYVAQ6syf+mwhIPV5GoFQrkInX8bppuc50IzNsZbMrp8R5H/Sx/K2daQ3YEa9F/XwkeZT8gzJfgeCw==} + metro-file-map@0.83.8: + resolution: {integrity: sha512-+W++EUuzEXIfWQEFTWQMVThzhWbnJL4gRNJ9WSHzIAM5pT7gsprUxo9+2hrfirURm/TLvrKwhq37oCECJcDSyQ==} engines: {node: '>=20.19.4'} metro-minify-terser@0.83.3: resolution: {integrity: sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ==} engines: {node: '>=20.19.4'} - metro-minify-terser@0.83.7: - resolution: {integrity: sha512-MfJar2IS4tBRuLb9svwb0Gu5l9BsH+pcRm8eGcEi/wy8MzZinfinh5dFLt2nWkocnulIgtGB5NkFDdbXqMXKhQ==} + metro-minify-terser@0.83.8: + resolution: {integrity: sha512-7tU0J5/c7LZaZJwTlOb1xq0NepTFvGzRxigDhZOq4jSE6g0BRHmBqe7XvLH3WcRiJNGy+eshcZr34RpMjb6mmg==} engines: {node: '>=20.19.4'} metro-resolver@0.83.3: resolution: {integrity: sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ==} engines: {node: '>=20.19.4'} - metro-resolver@0.83.7: - resolution: {integrity: sha512-WSJIENlMcoSsuz66IfBHOkgfp3KJt2UW2TnEHPf1b8pIG2eEXNOVmo2+03A0H17WY2XGXWgxL0CG7FAopqgB1A==} + metro-resolver@0.83.8: + resolution: {integrity: sha512-piU0NVTI9i37YztDVF5rtn9uxP3NebVT0xZM9NKJ9z0jbigrctUQksi3NoYIeJMvL6Wn2dgAehpcmmnfn+gUwA==} engines: {node: '>=20.19.4'} metro-runtime@0.83.3: resolution: {integrity: sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw==} engines: {node: '>=20.19.4'} - metro-runtime@0.83.7: - resolution: {integrity: sha512-9GKkJURaB2iyYoEExKnedzAHzxmKtSi+k0tsZUvMoU27tBZJElchYt7JH/Ai/XzYAI9lCAaV7u5HZSI8J5Z+wQ==} + metro-runtime@0.83.8: + resolution: {integrity: sha512-f7FfeM0pamq8vrvs8aO9KvIUabbUKe0WkHFpLt6Q9yIIIsORqNFwlgJeHGraOFPU7Cxqj5yLXkJu5bT1uwDXvw==} engines: {node: '>=20.19.4'} metro-source-map@0.83.3: resolution: {integrity: sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg==} engines: {node: '>=20.19.4'} - metro-source-map@0.83.7: - resolution: {integrity: sha512-JgA1h7oc1a1jydBe1GhVFsUoMYo3wLPk7oRA32rjlDsq+sP2JLt9x2p2lWbNSxTm/u8NV4VRid3hvEJgcX8tKw==} + metro-source-map@0.83.8: + resolution: {integrity: sha512-60Uor7bM+KsVewLkLCcZfkPFCbqjPDdoSmeBuT3+ye+ac80BuLWbbR8DpyxWpUqQeZPdaAT5ZqFgDIs8BNEcVA==} engines: {node: '>=20.19.4'} metro-symbolicate@0.83.3: @@ -11382,8 +11840,8 @@ packages: engines: {node: '>=20.19.4'} hasBin: true - metro-symbolicate@0.83.7: - resolution: {integrity: sha512-g4suyxw20WOHWI680c+Kq4wC/NF+Hx5pRH9afrMp+sMTxqLeKcPR1Xf4wMhsjlbvx7LbIREdke6q928jEjvJWw==} + metro-symbolicate@0.83.8: + resolution: {integrity: sha512-ZLrbqOqQ+m+Mpv7zo65XEXkNqVYvgUbY7tIsb9e1zSSmU/4C3D6DjaJvRHqcAdl0mkg8TI/csKooAEa5xcZNwg==} engines: {node: '>=20.19.4'} hasBin: true @@ -11391,16 +11849,16 @@ packages: resolution: {integrity: sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A==} engines: {node: '>=20.19.4'} - metro-transform-plugins@0.83.7: - resolution: {integrity: sha512-Ss0FpBiZDjX2kwhukMDl5sNdYK8T/06IPqxNE4H6PTlRlfs9q11cef13c/xESY/Pm4VCkp1yJUZO3kXzvMxQFA==} + metro-transform-plugins@0.83.8: + resolution: {integrity: sha512-9JRPkvi+m0QH2Y/w5RjCF9mHqOUNFpMFLDDLhKUjhcKESh8Wm3HKDdHXHVldTN1lTToCIabv81nF0zyJzKEJ5g==} engines: {node: '>=20.19.4'} metro-transform-worker@0.83.3: resolution: {integrity: sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA==} engines: {node: '>=20.19.4'} - metro-transform-worker@0.83.7: - resolution: {integrity: sha512-UegCo7ygB2fT64mRK2nbAjQVJ1zSwIIHy8d96jJv2nKZFDaViYBiughEdu5HM/Ceq0WN3LZrZk3zhl9aoiLYFw==} + metro-transform-worker@0.83.8: + resolution: {integrity: sha512-Pa2hOfhUmWpI/dmkhsLq8uGyFHK2opoEK7j/YCiRtqNSe0YzzxYguXTNgg8AMiuZfc9LPcB1AhGENS10O5wcIw==} engines: {node: '>=20.19.4'} metro@0.83.3: @@ -11408,8 +11866,8 @@ packages: engines: {node: '>=20.19.4'} hasBin: true - metro@0.83.7: - resolution: {integrity: sha512-SPaPEyvTsTmd0LpT7RaZciQyDw2i/JB7+iY9L5VfBo72+psescFxBqpI1TL9dnL+pmnfkU+l/J1mEEGLeF65EQ==} + metro@0.83.8: + resolution: {integrity: sha512-ZbJDJCDlvv0O3QHVbhZkyP2/DtebfEoDZ3wVyYHgu6Uoy6DmmE/bis6lIDBYh+kWPuaueJDegyutPjkIBLtZDQ==} engines: {node: '>=20.19.4'} hasBin: true @@ -11554,6 +12012,10 @@ packages: resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} + minimatch@3.0.8: resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} @@ -11619,19 +12081,14 @@ packages: engines: {node: '>=10'} hasBin: true - mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} - hasBin: true - mlly@1.8.2: resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} modern-ahocorasick@1.1.0: resolution: {integrity: sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ==} - morgan@1.10.1: - resolution: {integrity: sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==} + morgan@1.12.1: + resolution: {integrity: sha512-tljKC0ex20AjO58Ob/eZ53JloycbVswbVNCHx6V6VLGzqt/w8dIynVGL0G8qVjNKwiA7sYSogCrN6QtJ82IV+g==} engines: {node: '>= 0.8.0'} mri@1.2.0: @@ -11656,8 +12113,8 @@ packages: resolution: {integrity: sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw==} hasBin: true - msgpackr@1.11.12: - resolution: {integrity: sha512-RBdJ1Un7yGlXWajrkxcSa93nvQ0w4zBf60c0yYv7YtBelP8H2FA7XsfBbMHtXKXUMUxH7zV3Zuozh+kUQWhHvg==} + msgpackr@1.12.1: + resolution: {integrity: sha512-4EUH9tQHnMmEgzW/MdAP0KIfa1T9AF+htl0ffe2n5vb2EKn9y2co8ccpgWko6S52Jy1PQZKwRnx5/KkYjtd9MQ==} muggle-string@0.4.1: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} @@ -11673,8 +12130,8 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nanoid@3.3.12: - resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + nanoid@3.3.19: + resolution: {integrity: sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -11686,6 +12143,11 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + needle@2.9.1: + resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} + engines: {node: '>= 4.4.x'} + hasBin: true + needle@3.5.0: resolution: {integrity: sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==} engines: {node: '>= 4.4.x'} @@ -11699,9 +12161,9 @@ packages: resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} engines: {node: '>= 0.6'} - negotiator@1.0.0: - resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} - engines: {node: '>= 0.6'} + negotiator@1.1.0: + resolution: {integrity: sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==} + engines: {node: '>=18'} neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -11730,8 +12192,8 @@ packages: sass: optional: true - ng-packagr@21.2.3: - resolution: {integrity: sha512-jGq6yu0G6KReVK0i5RYVoV9HDL0mU626HrLBu5xvc8ZJ92n/+rLrFJuXdCnkroB9um+FBTQe/or6/A/2GAKhLw==} + ng-packagr@21.2.7: + resolution: {integrity: sha512-G1LWptU48IbGQcAqW77JfPpGwga5dI+XUOsyBDD1zPuA1QeLqnQTPqV4tSkbL8WZJwwmqgttRrL89DD35p8vuQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: @@ -11749,8 +12211,8 @@ packages: node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-exports-info@1.6.0: - resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} + node-exports-info@1.6.2: + resolution: {integrity: sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==} engines: {node: '>= 0.4'} node-fetch@2.7.0: @@ -11770,8 +12232,8 @@ packages: resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} hasBin: true - node-gyp@12.3.0: - resolution: {integrity: sha512-QNcUWM+HgJplcPzBvFBZ9VXacyGZ4+VTOb80PwWR+TlVzoHbRKULNEzpRsnaoxG3Wzr7Qh7BYxGDU3CbKib2Yg==} + node-gyp@12.4.0: + resolution: {integrity: sha512-OMcPNvqTCFUnNaBlmdgq+lfNqY7gTiSmNRDjY3uAXRyudeKZEZxu3CLtjMQrx4zZxCX2b/mpNqTtwuCJgXhHkw==} engines: {node: ^20.17.0 || >=22.9.0} hasBin: true @@ -11781,13 +12243,13 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.46: - resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} + node-releases@2.0.56: + resolution: {integrity: sha512-x0InOIyzgdk+eyaWaRJFH5snEtiImgBgblZ2CyPrLmqqcuMQkEvcDPHbzqbD8eDsSeJbVOjn+crzyzHaM4D+/A==} engines: {node: '>=18'} - nopt@7.2.1: - resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + nopt@10.0.1: + resolution: {integrity: sha512-df3sBr/6ax9hSGuC3CspvLlbnX8cP5L5nZwXF8cGN8l0zSWR6BvzmQ6jPUKjvo6+/xdpkNvEcucBNUdBeeV13g==} + engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} hasBin: true nopt@9.0.0: @@ -11877,8 +12339,8 @@ packages: resolution: {integrity: sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==} engines: {node: '>=20.19.4'} - ob1@0.83.7: - resolution: {integrity: sha512-9M5kpuOLyTPogMtZiQUIxdAZxl7Dxs6tVBbJErSumsqGMuhVSoUbkfeZ3XNPpLpwBBtqY5QDUzGwggLHX3slQg==} + ob1@0.83.8: + resolution: {integrity: sha512-pk7el+eTOzfSKMAY4QBiiwKzegXn633JQj13y+pW5E5IdS+yV2CfDJ9Hf20K/LKy8nCrP9dAmd7XOk52OJxifA==} engines: {node: '>=20.19.4'} object-assign@4.1.1: @@ -11920,8 +12382,27 @@ packages: obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - obug@2.1.1: - resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + obug@2.2.1: + resolution: {integrity: sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==} + engines: {node: '>=12.20.0'} + + octane@0.2.16: + resolution: {integrity: sha512-7jMzf0WZhu++BQD2jyzlSo7bNHRObpOsSIEsLuQ0lcNABYph+Wirs3TD0XZqApvrpVdWsLzSfdYlbI3CPJNO6w==} + engines: {node: '>=22.22.2'} + peerDependencies: + react: ^19.0.0 + react-dom: ^19.0.0 + typescript: ^5.9.3 + vite: ^8.0.16 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + typescript: + optional: true + vite: + optional: true on-finished@2.3.0: resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} @@ -11986,8 +12467,8 @@ packages: resolution: {integrity: sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==} engines: {node: '>=20'} - ora@9.4.0: - resolution: {integrity: sha512-84cglkRILFxdtA8hAvLNdMrtBpPNBTrQ9/ulg0FA7xLMnD6mifv+enAIeRmvtv+WgdCE+LPGOfQmtJRrVaIVhQ==} + ora@9.4.1: + resolution: {integrity: sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==} engines: {node: '>=20'} ordered-binary@1.6.1: @@ -11996,8 +12477,8 @@ packages: outdent@0.8.0: resolution: {integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==} - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + own-keys@1.0.2: + resolution: {integrity: sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==} engines: {node: '>= 0.4'} oxc-parser@0.121.0: @@ -12008,12 +12489,39 @@ packages: resolution: {integrity: sha512-zwajKw1GUa57IOdafIS7/yOObGF2NihwIfZfs5yJTRprMSkiwhWOc/k+n8bwnUPbHr2/XsjfBO8KyTPaW3VpWg==} engines: {node: ^20.19.0 || >=22.12.0} - oxc-resolver@11.19.1: - resolution: {integrity: sha512-qE/CIg/spwrTBFt5aKmwe3ifeDdLfA2NESN30E42X/lII5ClF8V7Wt6WIJhcGZjp0/Q+nQ+9vgxGk//xZNX2hg==} - oxc-resolver@11.24.2: resolution: {integrity: sha512-FY91FiDBj7ls5MsFS9jN3tjz2o0/zsdSsymlakySaBwVJZorHhkWyICLZMKxlu1R9vYo+sd3z1jwb4J8x7bNDw==} + oxfmt@0.59.0: + resolution: {integrity: sha512-Xqk6cPZS1yMvVa7OAuenaDZUsgMDutvvbZ9/L5gSvAfW64+WN4HVhgipLj5rVERbYQt8fLs9TopyZ1rU1XEG/w==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + svelte: ^5.0.0 + vite-plus: '*' + peerDependenciesMeta: + svelte: + optional: true + vite-plus: + optional: true + + oxlint-tsgolint@0.24.0: + resolution: {integrity: sha512-giCk5sEvG02d5tzPmFMX3hem8ndzEEu1xvGYS5OwNfO2WGl6ZVxt5LjE0yiMDoz94INI7XkXwgFAQiydPvVHDw==} + hasBin: true + + oxlint@1.74.0: + resolution: {integrity: sha512-odGl2s2x5IOJoj3A0v1k0PGBXVFBZeZ2+AK/+K2MJur7Ghi3bkyX5NuLUWHKqa4js1wjep3hJeuTQJOlr+4+dA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + oxlint-tsgolint: '>=0.24.0' + vite-plus: '*' + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + vite-plus: + optional: true + p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -12034,8 +12542,8 @@ packages: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} - p-map@7.0.4: - resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} + p-map@7.0.8: + resolution: {integrity: sha512-MitaVsCuCFIvOLLPIU7NnfrZvS9H9h7kwMUkDo+T2pEISaJD48IV9S8iIdXB7PsvvdxyYcsSTTrr90XKsbulNw==} engines: {node: '>=18'} p-retry@6.2.1: @@ -12049,14 +12557,11 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - package-manager-detector@1.6.0: - resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} - package-manager-detector@1.8.0: resolution: {integrity: sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==} - pacote@21.3.1: - resolution: {integrity: sha512-O0EDXi85LF4AzdjG74GUwEArhdvawi/YOHcsW6IijKNj7wm8IvEWNF5GnfuxNpQ/ZpO3L37+v8hqdVh8GgWYhg==} + pacote@21.5.1: + resolution: {integrity: sha512-KvcJ9iy3crysCsgqc4+PknH/w6jkrp8JN36mpZBPwNaDRwTfMZD37YzRazNstiZUOhuF5pno9f78n9mEJBavwg==} engines: {node: ^20.17.0 || >=22.9.0} hasBin: true @@ -12175,21 +12680,21 @@ packages: resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} engines: {node: '>=12'} - pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + pidtree@0.6.1: + resolution: {integrity: sha512-e0F9AOF1JMrCfBsyJOwU9lNvQ0WtXTq0j/4jk0BQ5JSI9VAybPXmDpPRw/2FQ3e5d3ZFN1mLh7jW99m/jjaptw==} engines: {node: '>=0.10'} hasBin: true - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - pirates@4.0.7: resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} - piscina@5.1.4: - resolution: {integrity: sha512-7uU4ZnKeQq22t9AsmHGD2w4OYQGonwFnTypDypaWi7Qr2EvQIFVtG8J5D/3bE7W123Wdc9+v4CZDu5hJXVCtBg==} + piscina@5.2.0: + resolution: {integrity: sha512-DszUCKeVN/5G5QKo6jAVHL8fmKnkJvQ0ACiVgY7YGCq3TUB2oznAOayvZPIAdEThvhczkXR+qm3IHsNXpFCYfA==} + engines: {node: '>=20.x'} + + piscina@5.3.2: + resolution: {integrity: sha512-vv7l/mM7B9WgrhDaudIqv1x6v4LOBRYYmpWGdWushhpbCmVHp11sUB2v4hj1CAeTGXVxuZFz6xOU1RalAiPKfQ==} engines: {node: '>=20.x'} pkce-challenge@5.0.1: @@ -12203,11 +12708,11 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - pkg-types@2.3.1: - resolution: {integrity: sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==} + pkg-types@2.3.3: + resolution: {integrity: sha512-j/lCFdcppV0JxWpCEITdbDltBxPP6cHT+yNJ6Go2OgoSA9518X847X9z0p6LtA4Nc16+eQzCZjRrWanTGvHJ5w==} - pkijs@3.4.0: - resolution: {integrity: sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==} + pkijs@3.4.1: + resolution: {integrity: sha512-Oo/NZcSWccq8KyoG7gLE9fnltgHns+pNCjCAp/WmjsUySi+sX7y4z4Xqu4fVb42CDHzRPl33fjzT15V1wvcyhA==} engines: {node: '>=16.0.0'} plist@3.1.1: @@ -12314,14 +12819,14 @@ packages: peerDependencies: postcss: '>=8.0.0' - postcss-safe-parser@7.0.1: - resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==} + postcss-safe-parser@7.1.0: + resolution: {integrity: sha512-1WzZxRLaAFwEh6Do+zyGpjWV3nGJNxxhuh7Ubu/q1ICImMgZJnLwhoaEpRbG4pJppp2Y1ncL9ffA2f+LhrefQg==} engines: {node: '>=18.0'} peerDependencies: postcss: ^8.4.31 - postcss-selector-parser@7.1.1: - resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} + postcss-selector-parser@7.1.6: + resolution: {integrity: sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==} engines: {node: '>=4'} postcss-simple-vars@7.0.1: @@ -12341,12 +12846,12 @@ packages: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.12: - resolution: {integrity: sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==} + postcss@8.5.23: + resolution: {integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.15: - resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} + postcss@8.5.28: + resolution: {integrity: sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==} engines: {node: ^10 || ^12 || >=14} postcss@8.5.6: @@ -12357,8 +12862,13 @@ packages: resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} engines: {node: '>=20'} - preact@10.29.2: - resolution: {integrity: sha512-7tNmwg/7mzzAoB/8kSg6Hl37JraAZw3Z3A0JSY7VXlZwo82Xn0G7wKbNNs2qoF4ZEEsQGTwDAroNdqKs1ofJxQ==} + preact@10.29.8: + resolution: {integrity: sha512-ej2aVZ+vZ8WO7tvlQWRM9N63A0KzF9q4mWJfDUHgYaIofWY9hu74QdnQrjoPMmZi2/nZ5gN0bJCQF49xQqx09Q==} + peerDependencies: + preact-render-to-string: '>=5' + peerDependenciesMeta: + preact-render-to-string: + optional: true prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -12374,8 +12884,8 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.8.3: - resolution: {integrity: sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==} + prettier@3.9.8: + resolution: {integrity: sha512-WRFq3Wn3WId7LLROfMLdH7xaFr2jR62wU8nLO6rQUOLOxNZUviyJQs1M0iIhLexSFy+L+w0ch66wtoO2jRjG0A==} engines: {node: '>=14'} hasBin: true @@ -12395,6 +12905,9 @@ packages: resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} engines: {node: '>=10'} + probe-image-size@7.4.0: + resolution: {integrity: sha512-cdEprVtZxV+awMde9X+4jILBFYh4CARxVrQaMl4wY4YcPWbul9jntXrIW95NInBDyJwcVUP3U0T6yukN8rMBaQ==} + proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -12445,8 +12958,8 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + proxy-addr@2.0.8: + resolution: {integrity: sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==} engines: {node: '>= 0.10'} proxy-from-env@2.1.0: @@ -12456,8 +12969,8 @@ packages: prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} - publint@0.3.21: - resolution: {integrity: sha512-OqejcnMV6E9zel2oCrUOJEiiFkGiAAni0A6ibfQNh1k9Gu5z4F+Yso8lllam7AzmV6Do0vp7u3UpZNRBwuXaHQ==} + publint@0.3.24: + resolution: {integrity: sha512-9zS56KrKBoqi5Qt8h92uMP8TTM9AYZSgnmCo4u2priMqkOZvQnTsziZ2p5LJ2ywbYkAjoCDp2jda9u4cgFefIw==} engines: {node: '>=18'} hasBin: true @@ -12484,16 +12997,16 @@ packages: pvtsutils@1.3.6: resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} - pvutils@1.1.5: - resolution: {integrity: sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==} + pvutils@1.2.0: + resolution: {integrity: sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg==} engines: {node: '>=16.0.0'} qrcode-terminal@0.11.0: resolution: {integrity: sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==} hasBin: true - qs@6.15.2: - resolution: {integrity: sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==} + qs@6.16.0: + resolution: {integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==} engines: {node: '>=0.6'} quansync@0.2.11: @@ -12516,6 +13029,10 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} + range-parser@1.3.0: + resolution: {integrity: sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==} + engines: {node: '>= 0.6'} + raw-body@2.5.3: resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} engines: {node: '>= 0.8'} @@ -12554,8 +13071,8 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-is@19.2.6: - resolution: {integrity: sha512-XjBR15BhXuylgWGuslhDKqlSayuqvqBX91BP8pauG8kd1zY8kotkNWbXksTCNRarse4kuGbe2kIY05ARtwNIvw==} + react-is@19.3.0: + resolution: {integrity: sha512-UpMYezM4v5/18F28aC66AEsjXIgE02kyEMH6yLdgLXu/UTfa1Ntwck/nNLrbqJsEXW7gPb0coNO9FQse9WTovA==} react-native-gesture-handler@2.28.0: resolution: {integrity: sha512-0msfJ1vRxXKVgTgvL+1ZOoYw3/0z1R+Ked0+udoJhyplC2jbVKIJ8Z1bzWdpQRCV3QcQ87Op0zJVE5DhKK2A0A==} @@ -12646,15 +13163,15 @@ packages: '@types/react': optional: true - react-router-dom@6.30.3: - resolution: {integrity: sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==} + react-router-dom@6.30.4: + resolution: {integrity: sha512-q4HvNl+mmDdkS0g+MqiBZNteQJCuimWoOyHMy4T/RQLAn9Z29+E91QXRaxOujeMl2HTzRSS0KFPd7lxX3PjV0Q==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' - react-router@6.30.3: - resolution: {integrity: sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==} + react-router@6.30.4: + resolution: {integrity: sha512-SVUsDe+DybHM/WmYKIVYhZh1o5Dcuf16yM6WjG02Q9XVFMZIJyHYhwrr6bFBXZkVP6z69kNkMyBCujt8FaFLJA==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' @@ -12700,8 +13217,8 @@ packages: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} - readdirp@5.0.0: - resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + readdirp@5.1.1: + resolution: {integrity: sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==} engines: {node: '>= 20.19.0'} redent@3.0.0: @@ -12739,8 +13256,8 @@ packages: regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.13.1: - resolution: {integrity: sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==} + regjsparser@0.13.3: + resolution: {integrity: sha512-ycwFAS14Jw4mppvmK4GR/J6u3WpWpjkEApehuHtLc/8VpPNpDMbQ4WjqwplXifGeyKOzHSFLmSPqzksDQE2Sfg==} hasBin: true remark-frontmatter@4.0.1: @@ -12892,8 +13409,8 @@ packages: peerDependencies: rollup: 2.x || 3.x || 4.x - rollup@4.60.4: - resolution: {integrity: sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g==} + rollup@4.63.4: + resolution: {integrity: sha512-4U0liVayNIoLp3GFl1FcI8561WepLnZ1rqfraGh7S9B3Ur5F9S283y8Futii7RUU2C/97tOBmBy7nYvhoiOpbQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -12908,10 +13425,6 @@ packages: resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} engines: {node: '>=18'} - run-applescript@7.1.0: - resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} - engines: {node: '>=18'} - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -12964,8 +13477,8 @@ packages: webpack: optional: true - sass@1.100.0: - resolution: {integrity: sha512-B5j0rYMlinhhOo9tjQebMVVn0TfyXAF+wB3b2ggZUuJ/is/Y+7+JGjirAMxHZ9Z3hIP98NPfamlAkBHa1lAaXQ==} + sass@1.104.1: + resolution: {integrity: sha512-yDA+1aIG3EHgN4V/BvuhCvu61FF6hEd4e+9DxikUm9U0CAGuvdIZ/UYy7qbOxjhbbWQraoyLlMuzdRGOSV5Bmw==} engines: {node: '>=20.19.0'} hasBin: true @@ -12974,8 +13487,8 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - sax@1.6.0: - resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} + sax@1.6.1: + resolution: {integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==} engines: {node: '>=11.0.0'} saxes@6.0.0: @@ -12985,8 +13498,8 @@ packages: scheduler@0.26.0: resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} - schema-utils@4.3.3: - resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} + schema-utils@4.5.0: + resolution: {integrity: sha512-zJlMCZ0cAR5p/Y4oVpRoqioDMJcGxaXRrQ/4rP4WyR84vc5z/DolXdbvXeDpTwbtocDFr2rhPqHPErDCUtz2kA==} engines: {node: '>= 10.13.0'} scule@1.3.0: @@ -12999,10 +13512,6 @@ packages: resolution: {integrity: sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==} engines: {node: '>=18'} - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -13027,13 +13536,13 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.8.1: - resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==} + semver@7.8.4: + resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==} engines: {node: '>=10'} hasBin: true - semver@7.8.4: - resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==} + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} engines: {node: '>=10'} hasBin: true @@ -13049,18 +13558,28 @@ packages: resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} engines: {node: '>=0.10.0'} - serialize-javascript@7.0.5: - resolution: {integrity: sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==} + serialize-javascript@7.1.1: + resolution: {integrity: sha512-k3CMsaIvvdSwm8oLB4MXSl0wH2/cwlH7xGcnRd2DaeRmBkbzYmyT8j0tsX60DwD1eRwHTpNpH8ljKu9oUT1MeQ==} engines: {node: '>=20.0.0'} - seroval-plugins@1.5.4: - resolution: {integrity: sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw==} + seroval-plugins@1.5.6: + resolution: {integrity: sha512-HXuLAX2pu/UByPpaeo/TaMfvMIi+1QqIoPJYCcAtU8QkVNwgR6MPlGuCQTErV1JwraaMbYaWVIBX7mppzGLATQ==} + engines: {node: '>=10'} + peerDependencies: + seroval: ^1.0 + + seroval-plugins@1.6.7: + resolution: {integrity: sha512-4Nk35ttD3DTDJW4hgw5StsVAPeU6qnDFnULAouw6tQ7oLTV/ICXrWpsXo2EE52eSP2joUMazbVf52mFEcADqRw==} engines: {node: '>=10'} peerDependencies: seroval: ^1.0 - seroval@1.5.4: - resolution: {integrity: sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw==} + seroval@1.5.6: + resolution: {integrity: sha512-rVQVWjjSvlINzaQPZH5JFqsqEsIWdTxY3iJZCnTL/5gQbXIRooVZKI60tVCkOVfzcRPejboxO2t0P89dg5mQaA==} + engines: {node: '>=10'} + + seroval@1.6.7: + resolution: {integrity: sha512-AeDcLh0yO2SFm9W71essgnSzLV9DI8ZH0x0knXn2DMnUZj728mpLbxjlbB6IqKCmqh8JA3cEqRyGoNkt584JcQ==} engines: {node: '>=10'} serve-index@1.9.2: @@ -13122,52 +13641,56 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shell-quote@1.8.4: - resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} + shell-quote@1.10.0: + resolution: {integrity: sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==} engines: {node: '>= 0.4'} - sherif-darwin-arm64@1.11.1: - resolution: {integrity: sha512-VoMrUv5QY6hQ2rByNa3AAhr/KGQsCb6pvAUNKa1iCh1jvnY836hQr6zNBw9hYCDkVv6t9sITFGJljwdTCQD4xw==} + sherif-darwin-arm64@1.13.0: + resolution: {integrity: sha512-k38jpGpZIEWS5dpSRLSvVi53LZuGO3hDqB88jgdLMDN11LZM6yTDcP0GytnQ8OpE6Br/Js6bDCLsdWDarZdV9g==} cpu: [arm64] os: [darwin] - sherif-darwin-x64@1.11.1: - resolution: {integrity: sha512-7j3yOCBkvVbltVT3lXoiazGfG2nb36FteYT5VZPEBSf8sTn1pPTScukAQ1Fdl+MphadGyici7XlRbDrtZ/wnvA==} + sherif-darwin-x64@1.13.0: + resolution: {integrity: sha512-W2bOj0Ya9A0fPSWzbeaaNg2RRRr48l2lArN8sGbfc9SZuJSJWXcdWkTVC3sEUiiXwpxNeLY/CsGNyQz5Izbfig==} cpu: [x64] os: [darwin] - sherif-linux-arm64-musl@1.11.1: - resolution: {integrity: sha512-DCf87RFqBh8ZrYgu3y+fv0x4kFn/np84m2jAEgygznwozH/VCfrXbHFVdhxW7762JCYkXbHO9dUj/ff5fkvkvw==} + sherif-linux-arm64-musl@1.13.0: + resolution: {integrity: sha512-9IDAlwYT5Ay2nex9Da3R98cvnPKVveT57i7pJXnnY/DC90qdqqz6Twlp7STRv+7qo4k4ES+2J9zQ0k6SDe888A==} cpu: [arm64] os: [linux] + libc: [musl] - sherif-linux-arm64@1.11.1: - resolution: {integrity: sha512-vCZFS7RxhZ/8g9bdj3UPNVPTcZiKiWigW+FIlVQEUKEKfG0MfSOMBJqEWPVVUniyJa3rdIxtmZKSdWkG0e1x3w==} + sherif-linux-arm64@1.13.0: + resolution: {integrity: sha512-Z94SgKNClWarVJj4LsayOmL7zccCUAvy3ugZnIO860FoJofh812KAyF8CdWrSho8qfmmoAzNcqSSc1OZh7+ckQ==} cpu: [arm64] os: [linux] + libc: [glibc] - sherif-linux-x64-musl@1.11.1: - resolution: {integrity: sha512-f8xitqXdHObUFPZo4QVbz3o30Y4+gHA3B5ZobsOWocnSfJBaUGutBzJsUsjG6w2tccSRn6+mugiMUGKIbIPZmQ==} + sherif-linux-x64-musl@1.13.0: + resolution: {integrity: sha512-2L+A8jF5ylojFwl7eAePR1h3Bzx24IcMgEoWObXgD70k6xF+GOJaM/n+q4MQ9YDntAKbJfMDr6ETjt6Bt/hosA==} cpu: [x64] os: [linux] + libc: [musl] - sherif-linux-x64@1.11.1: - resolution: {integrity: sha512-9t+p1X3SyhU75BrJNHBbj9i/aQxHC/sF+Mdkf17V5AlokCznFgYKQUXq5EVmcmRDDhDl69RMzCTLD95EBqUSYA==} + sherif-linux-x64@1.13.0: + resolution: {integrity: sha512-xGB9iiet8l/i8/YLZje8icpZyt4pVgoxB2+SoC6JCB8iDWsCVSuixebwX2t9yeGqXBXO1kphaW0TLf8Tmwy9JQ==} cpu: [x64] os: [linux] + libc: [glibc] - sherif-windows-arm64@1.11.1: - resolution: {integrity: sha512-Dnffgcyz9zLq/8UTY2REchJzRJWcWAuMWo5Vl5O17IZGkhl71dwa7/Vi2wC3EQd8WAVK/O82yArOYggWA0dj5w==} + sherif-windows-arm64@1.13.0: + resolution: {integrity: sha512-jHzJ/EcG4HuNLf/3AEDzbRkAofLPBHRJKJJMjAosampAe9861atu4q+Z2IZ1/sHg5oVnNgaNg/Xc5DDhGcQ/3w==} cpu: [arm64] os: [win32] - sherif-windows-x64@1.11.1: - resolution: {integrity: sha512-xjfYUL/IQ65DwHkRsWIxiZWtglKtL5/E3UHpnLwOui3jqW1V2K88SMct415dnlBQiL3U9VEIVUo1i+KmToOBgQ==} + sherif-windows-x64@1.13.0: + resolution: {integrity: sha512-KyMqQY62Eb3O+wePlw433mH2XBPVPLXdDjWPneg9pB6jeK0B1sgEzM2yks+aAP5asZ1Y8Q7C7iR7ZtbJKdsAtA==} cpu: [x64] os: [win32] - sherif@1.11.1: - resolution: {integrity: sha512-HBFce8NGaPuWPg5NXb6+aI7hJQFjTilhtbrgo+Y/BvtGlkuJAzLnkmC8nyD+p3v7oIAq4KQeA8qySKGga28xZg==} + sherif@1.13.0: + resolution: {integrity: sha512-Ld2nUOlwW1nmYDA2Q/5o7SC8WcCzVS7XjImmzW4a4z1o8DXJnt+2xYLvI42N5UYlNb/EevPahdC/XxIP6C38TQ==} hasBin: true side-channel-list@1.0.1: @@ -13182,8 +13705,8 @@ packages: resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} engines: {node: '>= 0.4'} - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + side-channel@1.1.1: + resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} engines: {node: '>= 0.4'} siginfo@2.0.0: @@ -13247,12 +13770,12 @@ packages: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} - socks@2.8.9: - resolution: {integrity: sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==} + socks@2.8.10: + resolution: {integrity: sha512-e0VyvkVTwVYViNovRkZ9aodhxVlyoMn7eJhVUPxZ+eK9P/7CBkxvvsBOHqFPEH416726W8tLXXXjKwqgTErrCQ==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - solid-js@1.9.13: - resolution: {integrity: sha512-6hJeJMOcEX8ktqjpDoJZEmld3ijvcvWBDtiXBm7f4332SiFN66QeAQI1REQshvyUoISsSeJ4PHDauKYbwao9JQ==} + solid-js@1.9.15: + resolution: {integrity: sha512-EeiY2xfpZJqPLjXspVEKjAII4yv8NyG//NxZ3IpOFHdUNnnTyL0uJOeS9LWGvA7cFCz5y94cjFwYlmw5Luncsg==} solid-refresh@0.6.3: resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} @@ -13299,8 +13822,8 @@ packages: spdx-expression-parse@4.0.0: resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} - spdx-license-ids@3.0.23: - resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==} + spdx-license-ids@3.0.24: + resolution: {integrity: sha512-cLS9TtWkIQFyLkJ3/5aFQAOHOSKTlOs/7WDut/XPSdjom1fJhUdkepeJAKXa9Y05+FabHd0sti+Et559vDtkpQ==} spdy-transport@3.0.0: resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} @@ -13316,8 +13839,8 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - srvx@0.11.16: - resolution: {integrity: sha512-bp07zRuycfTY43IjAvvTFnmnJi8ikW0VFiHwOhhYcVW/L4xQ1XY4PAd4Nuum1rsA17C39zL7x+CDhrn5AL32Rw==} + srvx@0.11.22: + resolution: {integrity: sha512-LqZxxBDMKuMAZzFzJnDCkFOrs9MZQZr0LvHiO/SuSZVdQaXD7xQ5UWTUxheJrQPve1qk9MG2B/yttUvJxw8egQ==} engines: {node: '>=20.16.0'} hasBin: true @@ -13354,6 +13877,11 @@ packages: resolution: {integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==} engines: {node: '>=6'} + standard-navigation@0.0.8: + resolution: {integrity: sha512-TyVbo7INUDWtsUWDFn8RR7kwR87U0S4xHfLfbbnyeC581TmmyqQ+eM+nPw8rQTSD8QitRVcYfPaSHr/QJiUy1g==} + peerDependencies: + react: '*' + statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} @@ -13377,6 +13905,9 @@ packages: resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==} engines: {node: '>= 0.10.0'} + stream-parser@0.3.1: + resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==} + stream-shift@1.0.3: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} @@ -13409,23 +13940,23 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} - string-width@8.2.1: - resolution: {integrity: sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==} + string-width@8.2.2: + resolution: {integrity: sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==} engines: {node: '>=20'} - string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + string.prototype.matchall@4.1.0: + resolution: {integrity: sha512-tHNHTxInrYLCga9O9YGxWA3G9/nnzQw8UGAyqGx3Ar1pSTTzIuM4woFSq4SowkXCjJIwq5sIiQvEfRI9tCH1qQ==} engines: {node: '>= 0.4'} string.prototype.repeat@1.0.0: resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + string.prototype.trim@1.2.11: + resolution: {integrity: sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + string.prototype.trimend@1.0.10: + resolution: {integrity: sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==} engines: {node: '>= 0.4'} string.prototype.trimstart@1.0.8: @@ -13542,36 +14073,36 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte-check@4.4.8: - resolution: {integrity: sha512-67adfgBox5eNSNIvIIwgFizKGdcRrGpiMoNO2obHcYuLz7iTa8Xgm/NGU3ntMFnNm8K1grFOIG6HhMLX/vcN8w==} + svelte-check@4.7.6: + resolution: {integrity: sha512-t2scM//ZuVbSY/T2w6FSBw1v9s2NEmh/g+sy1lqtosW5ylBV5AF4wFb1Ts9Kf3MbfPDUDJDZ9L436YT0SPTdvw==} engines: {node: '>= 18.0.0'} hasBin: true peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 - typescript: '>=5.0.0' + typescript: ^5.0.0 || ^6.0.0 - svelte2tsx@0.7.55: - resolution: {integrity: sha512-JWzgeM3lqySRNfqcsesvVEh8LhTWBxQJ9RMjzJ+VepdmXtVnNd0SbtGctG6+/fbHq0N6mhwSd823gszw9JHeGQ==} + svelte2tsx@0.7.61: + resolution: {integrity: sha512-EpQ/+UHITBULeUojx/LLD3uTYasZXcX1BrqlrzfLUnT9vdUhaOWK59a3ryWcFU8L0sY1SP+gRhJ2Beiis98+qw==} peerDependencies: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 typescript: ^4.9.4 || ^5.0.0 || ^6.0.0 - svelte@5.55.9: - resolution: {integrity: sha512-fTjjT8cHLDwigcu2j3pv7Jq04LklXevPB8uBgyHNiTXv+RMNvVnrjS4UEYrLMkhuq1vpCodHjiW+z/95SDs/fg==} + svelte@5.57.1: + resolution: {integrity: sha512-Uqj49lWKB+iSSnneuwiYYJ7MZgkB+eXr0LXBhv4uDuAkXqnWmq65Sxflfvp0Lc6MdKjMUxGaeOKWJqz5SNiVIA==} engines: {node: '>=18'} symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - tabbable@6.4.0: - resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} + tabbable@6.5.0: + resolution: {integrity: sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA==} tapable@2.3.3: resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} - tar-fs@2.1.4: - resolution: {integrity: sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==} + tar-fs@2.1.5: + resolution: {integrity: sha512-OboTd8mmMhZDNPV+UjQcK9yKAatXu2aJ+r1w4im1Otd4M4fl2hwvdoXUxIYHFTHWK/3y3FarBP70v3vwmGlOxw==} tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} @@ -13582,16 +14113,16 @@ packages: engines: {node: '>=10'} deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - tar@7.5.15: - resolution: {integrity: sha512-dzGK0boVlC4W5QFuQN1EFSl3bIDYsk7Tj40U6eIBnK2k/8ml7TZ5agbI5j5+qnoVcAA+rNtBml8SEiLxZpNqRQ==} + tar@7.5.22: + resolution: {integrity: sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==} engines: {node: '>=18'} terminal-link@2.1.1: resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} engines: {node: '>=8'} - terser-webpack-plugin@5.6.0: - resolution: {integrity: sha512-Eum+5ajkaOhf5KbM26osvv21kLD7BaGqQ1UA4Ami4arYwylmGUQTgHFpHDdmJod1q4QXa66p0to/FBKID+J1vA==} + terser-webpack-plugin@5.6.1: + resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==} engines: {node: '>= 10.13.0'} peerDependencies: '@minify-html/node': '*' @@ -13638,8 +14169,8 @@ packages: engines: {node: '>=10'} hasBin: true - terser@5.48.0: - resolution: {integrity: sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==} + terser@5.51.2: + resolution: {integrity: sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==} engines: {node: '>=10'} hasBin: true @@ -13658,8 +14189,8 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - thingies@2.6.0: - resolution: {integrity: sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==} + thingies@2.6.1: + resolution: {integrity: sha512-cV/CMGTK3M4MlnJ/0At6ismOw/A0EEniDNScajjz/Br3c1sqE72YD01rGpPTKwd27wAxI5Pr+6+0w8yofzFRYw==} engines: {node: '>=10.18'} peerDependencies: tslib: ^2 @@ -13684,10 +14215,6 @@ packages: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} - tinyglobby@0.2.16: - resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.17: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} @@ -13696,19 +14223,23 @@ packages: resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} + tinypool@2.1.0: + resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==} + engines: {node: ^20.0.0 || >=22.0.0} + tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} - tinyspy@4.0.4: - resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} + tinyspy@4.0.6: + resolution: {integrity: sha512-u8KszXvGfU68hVcZpRHKG28T0krMuv2G5nDhiHaMLen/gIuFEgIJhaJuO69qjnXg5paSrbPMFfx3brNuN8eVSg==} engines: {node: '>=14.0.0'} - tldts-core@7.4.0: - resolution: {integrity: sha512-/mb9kRld+x1sIMXxWNOAp5m6C+D4GrAORWlJkOJ5dElvxdN1eutz/o7qHLp9gFvDF4Y3/L2xeScoxz6AbEo8rQ==} + tldts-core@7.4.13: + resolution: {integrity: sha512-mbYsrih5FRtGxs3Usvl/PqwJsNpp+jsmrdFviiK02teHDG0/HebBG/pqCylje3kzgXYzuLoHJF/0mz9W53t8Xg==} - tldts@7.4.0: - resolution: {integrity: sha512-yHBe+zVfzNZ3QfTPW/Z6KK1G2t340gFjMHqI/4KKSt/abzYydzuCnpqdaF5gCCABby+9Yfbj59oR5F2Fd5CBzg==} + tldts@7.4.13: + resolution: {integrity: sha512-iHtaIWWIbMDkCeJdTBzZFGgbluE5J+oHlb2g7+oAz1S1gpuVpabRZdQyd471Vl8UUkcz2vXSL8xZH2kyCe8tfA==} hasBin: true tmp@0.2.7: @@ -13729,8 +14260,8 @@ packages: toml@3.0.0: resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} - tough-cookie@6.0.1: - resolution: {integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==} + tough-cookie@6.0.2: + resolution: {integrity: sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==} engines: {node: '>=16'} tr46@0.0.3: @@ -13770,8 +14301,23 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-morph@21.0.1: - resolution: {integrity: sha512-dbDtVdEAncKctzrVZ+Nr7kHpHkv+0JDJb2MjjpBaj8bFeCkePU9rHfMklmhuLFnpeq/EJZk2IhStY6NzqgjOkg==} + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + + ts-patch@3.3.0: + resolution: {integrity: sha512-zAOzDnd5qsfEnjd9IGy1IRuvA7ygyyxxdxesbhMdutt8AHFjD8Vw8hU2rMF89HX1BKRWFYqKHrO8Q6lw0NeUZg==} + hasBin: true ts-pattern@5.9.0: resolution: {integrity: sha512-6s5V71mX8qBUmlgbrfL33xDUwO0fq48rxAu2LBE11WBeGdpCPOsXksQbZJHvHwhrd3QjUusd3mAOM5Gg0mFBLg==} @@ -13875,12 +14421,12 @@ packages: resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + typed-array-byte-offset@1.0.5: + resolution: {integrity: sha512-0FHJvLPqZ7KJzp17O13jfsAjsqazgrxBu2zEK95PmUz8lv2+GjRuxUInCr2Rk9Dms3ihN21zJ929ZO43yJ95QQ==} engines: {node: '>= 0.4'} - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + typed-array-length@1.0.8: + resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==} engines: {node: '>= 0.4'} typed-assert@1.0.9: @@ -13904,8 +14450,8 @@ packages: peerDependencies: typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x - typescript-eslint@8.59.4: - resolution: {integrity: sha512-Rw6+44QNFaXtgHSjPy+Kw8hrJniMYzR85E9yLmOLcfZ91/rz+JXQbDTCmc6ccxMPY6K6PgAq26f0JCBfR7LIPQ==} + typescript-eslint@8.70.0: + resolution: {integrity: sha512-P/W5cz70/cQAuKfY3xwQMWWTV7BvJ0mAQmi+9mBcsVPaBUpd6Ohpa+fECv9rBFrQcig86jAiNBFNWUqnTjr4pw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -13967,19 +14513,15 @@ packages: unconfig-core@7.5.0: resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==} - undici-types@7.16.0: - resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} - undici@6.26.0: - resolution: {integrity: sha512-4yqz8a3n5HmGTlsbADNtr/dJlhkh/55Rq798G6ibiULcXbDtaLpTl1pvdqcbFfeoj3iSi52lePFM7h9H21cw/A==} + undici@6.28.1: + resolution: {integrity: sha512-zWpdTVD54H48CIybL0rWQ3ukpb9d23wM7eH5RtfdmeP70cWHNjtfo7P4vZX+5CoDcO53J4Pu5uXp7lNfjc6DRA==} engines: {node: '>=18.17'} - undici@7.24.4: - resolution: {integrity: sha512-BM/JzwwaRXxrLdElV2Uo6cTLEjhSb3WXboncJamZ15NgUURmvlXvxa6xkwIOILIjPNo9i8ku136ZvWV0Uly8+w==} - engines: {node: '>=20.18.1'} - - undici@7.26.0: - resolution: {integrity: sha512-3O9Tf67pGhgOv9jM35AbhkXAKi13f3oy3aE4CSgr+TckGeY+/iu97ZXN+J7DpHPzLbVApFd1IFhcnBjREYXYcg==} + undici@7.29.1: + resolution: {integrity: sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==} engines: {node: '>=20.18.1'} unicode-canonical-property-names-ecmascript@2.0.1: @@ -14045,9 +14587,41 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unplugin@3.0.0: - resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} + unplugin@3.4.0: + resolution: {integrity: sha512-9skdIFlCsPdFV7wUfZxNsFInlW+7nJmGu2gkTu0OUhF56aXGsHab9x52/QhdJ4lC7ZDPWTxbiC4ANqVlsuaW3w==} engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + '@farmfe/core': '*' + '@rsbuild/core': '*' + '@rspack/core': '*' + bun-types-no-globals: '*' + esbuild: '*' + rolldown: '*' + rollup: '*' + unloader: '*' + vite: '*' + webpack: '*' + peerDependenciesMeta: + '@farmfe/core': + optional: true + '@rsbuild/core': + optional: true + '@rspack/core': + optional: true + bun-types-no-globals: + optional: true + esbuild: + optional: true + rolldown: + optional: true + rollup: + optional: true + unloader: + optional: true + vite: + optional: true + webpack: + optional: true unrs-resolver@1.12.2: resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} @@ -14062,8 +14636,8 @@ packages: synckit: optional: true - update-browserslist-db@1.2.3: - resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + update-browserslist-db@1.3.3: + resolution: {integrity: sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -14123,8 +14697,8 @@ packages: '@types/react': optional: true - use-sync-external-store@1.6.0: - resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + use-sync-external-store@1.7.0: + resolution: {integrity: sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -14153,8 +14727,11 @@ packages: engines: {node: '>=8'} hasBin: true - valibot@1.4.1: - resolution: {integrity: sha512-klCmFTz2jeDluy9RwX+F884TCiogtdBJ/YaxSx1EOBYXa3NXNWj8kR1jjN8rzluwojJVWWaHJ4r1U5LfICnM3g==} + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + valibot@1.5.0: + resolution: {integrity: sha512-nil6AkP2TChWL43Z5uJ6GTxX01CUA+g8LWUM+N/rB9NBbkUMaUsi9PUNzlUPgoKASgmx9f7eGOYpJ04/fSa6FQ==} peerDependencies: typescript: '>=5' peerDependenciesMeta: @@ -14213,12 +14790,12 @@ packages: peerDependencies: vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - vite-plugin-solid@2.11.12: - resolution: {integrity: sha512-FgjPcx2OwX9h6f28jli7A4bG7PP3te8uyakE5iqsmpq3Jqi1TWLgSroC9N6cMfGRU2zXsl4Q6ISvTr2VL0QHpA==} + vite-plugin-solid@2.11.14: + resolution: {integrity: sha512-7ZVBt8rpoyqmlwin2kRIUveaHoF6/kulY7gsnD+qFh4nS29V4OPAnw+ojoAspXIjObiL9o1xh9a/nTuYHm02Rw==} peerDependencies: - '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* + '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.0.0 || ^7.0.0 solid-js: ^1.7.2 - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 peerDependenciesMeta: '@testing-library/jest-dom': optional: true @@ -14267,48 +14844,8 @@ packages: terser: optional: true - vite@7.3.2: - resolution: {integrity: sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' - less: ^4.0.0 - lightningcss: ^1.21.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - - vite@7.3.3: - resolution: {integrity: sha512-/4XH147Ui7OGTjg3HbdWe5arnZQSbfuRzdr9Ec7TQi5I7R+ir0Rlc9GIvD4v0XZurELqA035KVXJXpR61xhiTA==} + vite@7.3.6: + resolution: {integrity: sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -14355,16 +14892,16 @@ packages: vite: optional: true - vitest@3.2.4: - resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} + vitest@3.2.7: + resolution: {integrity: sha512-KrxIJ62Fd89gfysR4WotlgZABiz2dqFPgqGzX7s+CwsqLFomRH7777ZcrOD6+WVAh7khPQP41A+BKbpcJFrdEg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/debug': ^4.1.12 '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.2.4 - '@vitest/ui': 3.2.4 + '@vitest/browser': 3.2.7 + '@vitest/ui': 3.2.7 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -14386,11 +14923,11 @@ packages: vlq@1.0.1: resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} - vscode-uri@3.1.0: - resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + vscode-uri@3.2.0: + resolution: {integrity: sha512-m2gXo3bn0G1kT9InzMf07fTbqMbGtyckj3bH5ktLO+1Ssv+yiATZ4dhwaQv9UZWxJh6E9IFGnQyjgWVDWVBDrg==} - vue-component-type-helpers@3.3.2: - resolution: {integrity: sha512-l4Z2Y34m7nFMlx8vrslJaVtXxUpzgDMSESC7TakG/c5kwjYT/do+E0NcT2/vWDzaoIhsShg/2OKwX7Q4nbzC0g==} + vue-component-type-helpers@3.3.11: + resolution: {integrity: sha512-LwcxzeliO9fkQcpJG0PoX8X5kmAhKmH9wkpDLxNabwzkQ9Zeib2YVHwFV4pcWmMLfXVfjr/dSV+DaJ3cIPgSNA==} vue-demi@0.14.10: resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} @@ -14403,8 +14940,8 @@ packages: '@vue/composition-api': optional: true - vue-eslint-parser@10.4.0: - resolution: {integrity: sha512-Vxi9pJdbN3ZnVGLODVtZ7y4Y2kzAAE2Cm0CZ3ZDRvydVYxZ6VrnBhLikBsRS+dpwj4Jv4UCv21PTEwF5rQ9WXg==} + vue-eslint-parser@10.4.1: + resolution: {integrity: sha512-Gk6gRDj0n/fkRa3C3l0bBheoBckUq/Rs0F/TvMWIS6nzzx67amAViMe9CkNgsP2tXyQONvGiHQESHwFtZ3aYDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -14415,8 +14952,8 @@ packages: peerDependencies: typescript: '>=5.0.0' - vue@3.5.34: - resolution: {integrity: sha512-WdLBG9gm02OgJIG9axd5Hpx0TFLdzVgfG2evFFu8Rur5O/IoGc5cMjnjh3tPL6GnRGsYvUhBSKVPYVcxRKpMCA==} + vue@3.5.43: + resolution: {integrity: sha512-o5qZoksdnjIKvW1srZ3ab7pcDNYAerBjRe54D0LBLfRdCYFrSgBHVXokMas35czQc0//lmx4/tuY4ZNQ+Rf2Ng==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -14441,6 +14978,10 @@ packages: resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==} engines: {node: '>=10.13.0'} + watchpack@2.5.2: + resolution: {integrity: sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==} + engines: {node: '>=10.13.0'} + wbuf@1.7.3: resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} @@ -14477,8 +15018,8 @@ packages: webpack: optional: true - webpack-dev-server@5.2.3: - resolution: {integrity: sha512-9Gyu2F7+bg4Vv+pjbovuYDhHX+mqdqITykfzdM9UyKqKHlsE5aAjRhR+oOEfXW5vBeu8tarzlJFIZva4ZjAdrQ==} + webpack-dev-server@5.2.6: + resolution: {integrity: sha512-HNLRmamRvVavZQ+avceZifmv8hmdUjg43t6MI4SqJDwFdW7RPQwH5vzGhDRZSX59SgfbeHhLnq3g+uooWo7pVw==} engines: {node: '>= 18.12.0'} hasBin: true peerDependencies: @@ -14494,8 +15035,8 @@ packages: resolution: {integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==} engines: {node: '>=18.0.0'} - webpack-sources@3.5.0: - resolution: {integrity: sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==} + webpack-sources@3.5.1: + resolution: {integrity: sha512-jyuiGJdtvY434z5bUZrjz67v76/ePNvFZTp9Mdz29IlH4+GPsgyGjiv0fKI+M7BdkU6ADjulUcKAd3tUK3WlEw==} engines: {node: '>=10.13.0'} webpack-subresource-integrity@5.1.0: @@ -14521,8 +15062,8 @@ packages: webpack-cli: optional: true - websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + websocket-driver@0.7.5: + resolution: {integrity: sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==} engines: {node: '>=0.8.0'} websocket-extensions@0.1.4: @@ -14568,8 +15109,8 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} - which-typed-array@1.1.20: - resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} + which-typed-array@1.1.24: + resolution: {integrity: sha512-wk4Mf4pR5mRP7eYuuTBCIQ9d0ud2Fv2jRLQpfgnRjbOxAFHmjKFValgTpitVKzJJS8ajnYQV2Du1SZ8j6b/EUQ==} engines: {node: '>= 0.4'} which@2.0.2: @@ -14582,6 +15123,11 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + which@6.0.1: resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} engines: {node: ^20.17.0 || >=22.9.0} @@ -14625,8 +15171,8 @@ packages: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - ws@6.2.4: - resolution: {integrity: sha512-PNIUUyLI5YpkJZj60YBzX1o0ByQ4ovvfmq9N/Kig/PAYbVlGyz4R6G0SEWrD0O9acc0sT2+IdMBVLFv8FSi0Nw==} + ws@6.2.6: + resolution: {integrity: sha512-XTrf1gv7kXoVf1hbC3PAyAiPgR8Wz1blcrYIjEsUmr08BLksT41R8KbjmS9408C2ERx7v1JDLD/BkpLEttjfKA==} peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -14636,8 +15182,8 @@ packages: utf-8-validate: optional: true - ws@7.5.11: - resolution: {integrity: sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==} + ws@7.5.13: + resolution: {integrity: sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -14648,8 +15194,8 @@ packages: utf-8-validate: optional: true - ws@8.21.0: - resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} + ws@8.21.3: + resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -14739,10 +15285,22 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} + yargs@17.7.3: + resolution: {integrity: sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==} + engines: {node: '>=12'} + yargs@18.0.0: resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yargs@18.2.0: + resolution: {integrity: sha512-9OpKOLeaoNFecEp7P6iYbzze/5CqWoH7N3SMs/6y1XF4nMvFMspEGZzJ6uFi9MmQwXhyzqYoSEKO3tvA3Z/o2w==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -14751,12 +15309,12 @@ packages: resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} - yoctocolors@2.1.2: - resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} + yoctocolors@2.2.0: + resolution: {integrity: sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==} engines: {node: '>=18'} - zimmerframe@1.1.4: - resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} + zimmerframe@1.1.5: + resolution: {integrity: sha512-msJxIvYDYcoNL+PJsu+7qmpDWsYmAxTY+2TNYXXF0hzBzBk0BMecOqDOG/EckUoKCuKwObfbugIl8QpqHDXeFA==} zod-to-json-schema@3.25.2: resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} @@ -14775,8 +15333,8 @@ packages: zod@4.3.6: resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} - zod@4.4.3: - resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + zod@4.6.5: + resolution: {integrity: sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==} zone.js@0.15.1: resolution: {integrity: sha512-XE96n56IQpJM7NAoXswY3XRLcWFW83xe0BiAOeMD7K5k5xecOeul3Qcpx6GqEeeHNkW5DWL5zOyTbEfB4eti8w==} @@ -14786,7 +15344,7 @@ packages: snapshots: - '@0no-co/graphql.web@1.2.0': {} + '@0no-co/graphql.web@1.3.4': {} '@acemir/cssom@0.9.31': {} @@ -14881,100 +15439,99 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@analogjs/vite-plugin-angular@2.6.2(@angular-devkit/build-angular@21.2.12(825636156df100e32a721cab08b02a3e))(@angular/build@21.2.12(60b0737a044e59224c87543bc85cc8fb))(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))': + '@analogjs/vite-plugin-angular@2.7.2(@angular-devkit/build-angular@21.2.24(6337ba4fee33a534f2aa2c2a6189ee8b))(@angular/build@21.2.24(4581913d0c7b8c3c22911f228bda569a))(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))': dependencies: magic-string: 0.30.21 - obug: 2.1.1 - oxc-parser: 0.121.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) - tinyglobby: 0.2.16 - ts-morph: 21.0.1 + obug: 2.2.1 + oxc-parser: 0.121.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3) + tinyglobby: 0.2.17 optionalDependencies: - '@angular-devkit/build-angular': 21.2.12(825636156df100e32a721cab08b02a3e) - '@angular/build': 21.2.12(60b0737a044e59224c87543bc85cc8fb) - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + '@angular-devkit/build-angular': 21.2.24(6337ba4fee33a534f2aa2c2a6189ee8b) + '@angular/build': 21.2.24(4581913d0c7b8c3c22911f228bda569a) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' - '@analogjs/vitest-angular@2.6.2(@analogjs/vite-plugin-angular@2.6.2(@angular-devkit/build-angular@21.2.12(825636156df100e32a721cab08b02a3e))(@angular/build@21.2.12(60b0737a044e59224c87543bc85cc8fb))(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)))(@angular-devkit/architect@0.2102.12(chokidar@5.0.0))(@angular-devkit/schematics@21.2.12(chokidar@5.0.0))(vitest@3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@8.1.1))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@8.1.1)(terser@5.48.0)(yaml@2.9.0))(zone.js@0.15.1)': + '@analogjs/vitest-angular@2.7.2(@analogjs/vite-plugin-angular@2.7.2(@angular-devkit/build-angular@21.2.24(6337ba4fee33a534f2aa2c2a6189ee8b))(@angular/build@21.2.24(4581913d0c7b8c3c22911f228bda569a))(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(@angular-devkit/architect@0.2102.24(chokidar@5.0.0))(@angular-devkit/schematics@21.2.24(chokidar@5.0.0))(vitest@3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@8.1.1))(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1))(zone.js@0.15.1)': dependencies: - '@analogjs/vite-plugin-angular': 2.6.2(@angular-devkit/build-angular@21.2.12(825636156df100e32a721cab08b02a3e))(@angular/build@21.2.12(60b0737a044e59224c87543bc85cc8fb))(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular-devkit/schematics': 21.2.12(chokidar@5.0.0) - vitest: 3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@8.1.1))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@8.1.1)(terser@5.48.0)(yaml@2.9.0) + '@analogjs/vite-plugin-angular': 2.7.2(@angular-devkit/build-angular@21.2.24(6337ba4fee33a534f2aa2c2a6189ee8b))(@angular/build@21.2.24(4581913d0c7b8c3c22911f228bda569a))(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + '@angular-devkit/architect': 0.2102.24(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.24(chokidar@5.0.0) + vitest: 3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@8.1.1))(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1) optionalDependencies: zone.js: 0.15.1 - '@angular-devkit/architect@0.2102.12(chokidar@5.0.0)': + '@angular-devkit/architect@0.2102.24(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) + '@angular-devkit/core': 21.2.24(chokidar@5.0.0) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@21.2.12(825636156df100e32a721cab08b02a3e)': + '@angular-devkit/build-angular@21.2.24(6337ba4fee33a534f2aa2c2a6189ee8b)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular-devkit/build-webpack': 0.2102.12(chokidar@5.0.0)(webpack-dev-server@5.2.3(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) - '@angular/build': 21.2.12(6ce3b2d940df5673187e9a9be553d9a5) - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) - '@babel/core': 7.29.0(supports-color@8.1.1) + '@angular-devkit/architect': 0.2102.24(chokidar@5.0.0) + '@angular-devkit/build-webpack': 0.2102.24(chokidar@5.0.0)(webpack-dev-server@5.2.6(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + '@angular-devkit/core': 21.2.24(chokidar@5.0.0) + '@angular/build': 21.2.24(072d6511f22d80f64f6b281e2dda10ba) + '@angular/compiler-cli': 21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/generator': 7.29.1 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/preset-env': 7.29.2(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/preset-env': 7.29.2(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) '@babel/runtime': 7.29.2 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + '@ngtools/webpack': 21.2.24(@angular/compiler-cli@21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) ansi-colors: 4.1.3 - autoprefixer: 10.4.27(postcss@8.5.12) - babel-loader: 10.0.0(@babel/core@7.29.0(supports-color@8.1.1))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - browserslist: 4.28.2 - copy-webpack-plugin: 14.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - css-loader: 7.1.3(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - esbuild-wasm: 0.27.3 - http-proxy-middleware: 3.0.5(supports-color@8.1.1) + autoprefixer: 10.4.27(postcss@8.5.23) + babel-loader: 10.0.0(@babel/core@7.29.7(supports-color@7.2.0))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + browserslist: 4.29.0 + copy-webpack-plugin: 14.0.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + css-loader: 7.1.3(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + esbuild-wasm: 0.28.1 + http-proxy-middleware: 3.0.7(supports-color@8.1.1) istanbul-lib-instrument: 6.0.3(supports-color@8.1.1) jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 - less: 4.4.2 - less-loader: 12.3.1(less@4.4.2)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - license-webpack-plugin: 4.0.2(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + less: 4.9.0(supports-color@8.1.1) + less-loader: 12.3.1(less@4.9.0(supports-color@8.1.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + license-webpack-plugin: 4.0.2(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) loader-utils: 3.3.1 - mini-css-extract-plugin: 2.10.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + mini-css-extract-plugin: 2.10.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) open: 11.0.0 ora: 9.3.0 picomatch: 4.0.4 - piscina: 5.1.4 - postcss: 8.5.12 - postcss-loader: 8.2.0(postcss@8.5.12)(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + piscina: 5.2.0 + postcss: 8.5.23 + postcss-loader: 8.2.0(postcss@8.5.23)(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) resolve-url-loader: 5.0.0 rxjs: 7.8.2 sass: 1.97.3 - sass-loader: 16.0.7(sass@1.97.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + sass-loader: 16.0.7(sass@1.97.3)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) semver: 7.7.4 - source-map-loader: 5.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + source-map-loader: 5.0.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) source-map-support: 0.5.21 terser: 5.46.0 tinyglobby: 0.2.15 tree-kill: 1.2.2 tslib: 2.8.1 typescript: 5.9.3 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - webpack-dev-server: 5.2.3(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) + webpack-dev-middleware: 7.4.5(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + webpack-dev-server: 5.2.6(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + webpack-subresource-integrity: 5.1.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) optionalDependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) - esbuild: 0.27.3 - ng-packagr: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) + '@angular/core': 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) + esbuild: 0.28.1 + ng-packagr: 21.2.7(@angular/compiler-cli@21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3))(supports-color@8.1.1)(tslib@2.8.1)(typescript@5.9.3) transitivePeerDependencies: - '@angular/compiler' - '@emnapi/core' @@ -15008,69 +15565,69 @@ snapshots: - yaml optional: true - '@angular-devkit/build-angular@21.2.12(ecd13167f4bd33f6e977616867917e10)': + '@angular-devkit/build-angular@21.2.24(6c0c725f651b251987e889e8997415aa)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular-devkit/build-webpack': 0.2102.12(chokidar@5.0.0)(webpack-dev-server@5.2.3(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) - '@angular/build': 21.2.12(4a5dad358d011a8bdb0e788a8ba4d59b) - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) - '@babel/core': 7.29.0(supports-color@8.1.1) + '@angular-devkit/architect': 0.2102.24(chokidar@5.0.0) + '@angular-devkit/build-webpack': 0.2102.24(chokidar@5.0.0)(webpack-dev-server@5.2.6(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + '@angular-devkit/core': 21.2.24(chokidar@5.0.0) + '@angular/build': 21.2.24(ea0945a71b12a32ca7443e60b5f658e1) + '@angular/compiler-cli': 21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/generator': 7.29.1 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/preset-env': 7.29.2(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/preset-env': 7.29.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) '@babel/runtime': 7.29.2 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + '@ngtools/webpack': 21.2.24(@angular/compiler-cli@21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) ansi-colors: 4.1.3 - autoprefixer: 10.4.27(postcss@8.5.12) - babel-loader: 10.0.0(@babel/core@7.29.0(supports-color@8.1.1))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - browserslist: 4.28.2 - copy-webpack-plugin: 14.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - css-loader: 7.1.3(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - esbuild-wasm: 0.27.3 - http-proxy-middleware: 3.0.5(supports-color@8.1.1) + autoprefixer: 10.4.27(postcss@8.5.23) + babel-loader: 10.0.0(@babel/core@7.29.7(supports-color@8.1.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + browserslist: 4.29.0 + copy-webpack-plugin: 14.0.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + css-loader: 7.1.3(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + esbuild-wasm: 0.28.1 + http-proxy-middleware: 3.0.7(supports-color@8.1.1) istanbul-lib-instrument: 6.0.3(supports-color@8.1.1) jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 - less: 4.4.2 - less-loader: 12.3.1(less@4.4.2)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - license-webpack-plugin: 4.0.2(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + less: 4.9.0(supports-color@8.1.1) + less-loader: 12.3.1(less@4.9.0(supports-color@8.1.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + license-webpack-plugin: 4.0.2(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) loader-utils: 3.3.1 - mini-css-extract-plugin: 2.10.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + mini-css-extract-plugin: 2.10.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) open: 11.0.0 ora: 9.3.0 picomatch: 4.0.4 - piscina: 5.1.4 - postcss: 8.5.12 - postcss-loader: 8.2.0(postcss@8.5.12)(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + piscina: 5.2.0 + postcss: 8.5.23 + postcss-loader: 8.2.0(postcss@8.5.23)(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) resolve-url-loader: 5.0.0 rxjs: 7.8.2 sass: 1.97.3 - sass-loader: 16.0.7(sass@1.97.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + sass-loader: 16.0.7(sass@1.97.3)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) semver: 7.7.4 - source-map-loader: 5.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + source-map-loader: 5.0.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) source-map-support: 0.5.21 terser: 5.46.0 tinyglobby: 0.2.15 tree-kill: 1.2.2 tslib: 2.8.1 typescript: 5.9.3 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - webpack-dev-server: 5.2.3(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) + webpack-dev-middleware: 7.4.5(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + webpack-dev-server: 5.2.6(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + webpack-subresource-integrity: 5.1.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) optionalDependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) - esbuild: 0.27.3 - ng-packagr: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) + '@angular/core': 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) + esbuild: 0.28.1 + ng-packagr: 21.2.7(@angular/compiler-cli@21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3))(supports-color@8.1.1)(tslib@2.8.1)(typescript@5.9.3) transitivePeerDependencies: - '@angular/compiler' - '@emnapi/core' @@ -15103,69 +15660,69 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-angular@21.2.12(f3d6a3cdd807604cebe7e8e92974ab1b)': + '@angular-devkit/build-angular@21.2.24(98d149fd09f03ab518ddd9685edd4297)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular-devkit/build-webpack': 0.2102.12(chokidar@5.0.0)(webpack-dev-server@5.2.3(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) - '@angular/build': 21.2.12(bc21ba156c4f39184a955b848aea9045) - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) - '@babel/core': 7.29.0(supports-color@8.1.1) + '@angular-devkit/architect': 0.2102.24(chokidar@5.0.0) + '@angular-devkit/build-webpack': 0.2102.24(chokidar@5.0.0)(webpack-dev-server@5.2.6(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + '@angular-devkit/core': 21.2.24(chokidar@5.0.0) + '@angular/build': 21.2.24(bdfb25ca84d887a4495df23943296fae) + '@angular/compiler-cli': 21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/generator': 7.29.1 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/preset-env': 7.29.2(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/preset-env': 7.29.2(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) '@babel/runtime': 7.29.2 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + '@ngtools/webpack': 21.2.24(@angular/compiler-cli@21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) ansi-colors: 4.1.3 - autoprefixer: 10.4.27(postcss@8.5.12) - babel-loader: 10.0.0(@babel/core@7.29.0(supports-color@8.1.1))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - browserslist: 4.28.2 - copy-webpack-plugin: 14.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - css-loader: 7.1.3(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - esbuild-wasm: 0.27.3 - http-proxy-middleware: 3.0.5(supports-color@8.1.1) + autoprefixer: 10.4.27(postcss@8.5.23) + babel-loader: 10.0.0(@babel/core@7.29.7(supports-color@7.2.0))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + browserslist: 4.29.0 + copy-webpack-plugin: 14.0.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + css-loader: 7.1.3(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + esbuild-wasm: 0.28.1 + http-proxy-middleware: 3.0.7(supports-color@8.1.1) istanbul-lib-instrument: 6.0.3(supports-color@8.1.1) jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 - less: 4.4.2 - less-loader: 12.3.1(less@4.4.2)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - license-webpack-plugin: 4.0.2(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + less: 4.9.0(supports-color@8.1.1) + less-loader: 12.3.1(less@4.9.0(supports-color@8.1.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + license-webpack-plugin: 4.0.2(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) loader-utils: 3.3.1 - mini-css-extract-plugin: 2.10.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + mini-css-extract-plugin: 2.10.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) open: 11.0.0 ora: 9.3.0 picomatch: 4.0.4 - piscina: 5.1.4 - postcss: 8.5.12 - postcss-loader: 8.2.0(postcss@8.5.12)(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + piscina: 5.2.0 + postcss: 8.5.23 + postcss-loader: 8.2.0(postcss@8.5.23)(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) resolve-url-loader: 5.0.0 rxjs: 7.8.2 sass: 1.97.3 - sass-loader: 16.0.7(sass@1.97.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + sass-loader: 16.0.7(sass@1.97.3)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) semver: 7.7.4 - source-map-loader: 5.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + source-map-loader: 5.0.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) source-map-support: 0.5.21 terser: 5.46.0 tinyglobby: 0.2.15 tree-kill: 1.2.2 tslib: 2.8.1 typescript: 5.9.3 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - webpack-dev-server: 5.2.3(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) + webpack-dev-middleware: 7.4.5(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + webpack-dev-server: 5.2.6(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) + webpack-subresource-integrity: 5.1.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) optionalDependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) - esbuild: 0.27.3 - ng-packagr: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) + '@angular/core': 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) + esbuild: 0.28.1 + ng-packagr: 21.2.7(@angular/compiler-cli@21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3))(supports-color@8.1.1)(tslib@2.8.1)(typescript@5.9.3) transitivePeerDependencies: - '@angular/compiler' - '@emnapi/core' @@ -15198,233 +15755,82 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-angular@21.2.12(ffeda791aea3ab7b78d0c81a12bc1c94)': + '@angular-devkit/build-webpack@0.2102.24(chokidar@5.0.0)(webpack-dev-server@5.2.6(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23))': + dependencies: + '@angular-devkit/architect': 0.2102.24(chokidar@5.0.0) + rxjs: 7.8.2 + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) + webpack-dev-server: 5.2.6(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + transitivePeerDependencies: + - chokidar + + '@angular-devkit/core@21.2.24(chokidar@5.0.0)': + dependencies: + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) + jsonc-parser: 3.3.1 + picomatch: 4.0.4 + rxjs: 7.8.2 + source-map: 0.7.6 + optionalDependencies: + chokidar: 5.0.0 + + '@angular-devkit/schematics@21.2.24(chokidar@5.0.0)': + dependencies: + '@angular-devkit/core': 21.2.24(chokidar@5.0.0) + jsonc-parser: 3.3.1 + magic-string: 0.30.21 + ora: 9.3.0 + rxjs: 7.8.2 + transitivePeerDependencies: + - chokidar + + '@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))': + dependencies: + '@angular/core': 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) + tslib: 2.8.1 + + '@angular/build@21.2.24(072d6511f22d80f64f6b281e2dda10ba)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular-devkit/build-webpack': 0.2102.12(chokidar@5.0.0)(webpack-dev-server@5.2.3(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) - '@angular/build': 21.2.12(c538b6fdf77b18c9ed9237789e875a7b) - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/generator': 7.29.1 + '@angular-devkit/architect': 0.2102.24(chokidar@5.0.0) + '@angular/compiler': 21.2.23 + '@angular/compiler-cli': 21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/preset-env': 7.29.2(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/runtime': 7.29.2 - '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - ansi-colors: 4.1.3 - autoprefixer: 10.4.27(postcss@8.5.12) - babel-loader: 10.0.0(@babel/core@7.29.0(supports-color@8.1.1))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - browserslist: 4.28.2 - copy-webpack-plugin: 14.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - css-loader: 7.1.3(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - esbuild-wasm: 0.27.3 - http-proxy-middleware: 3.0.5(supports-color@8.1.1) + '@inquirer/confirm': 5.1.21(@types/node@24.13.6) + '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + beasties: 0.4.1 + browserslist: 4.29.0 + esbuild: 0.28.1 + https-proxy-agent: 7.0.6(supports-color@8.1.1) istanbul-lib-instrument: 6.0.3(supports-color@8.1.1) jsonc-parser: 3.3.1 - karma-source-map-support: 1.4.0 - less: 4.4.2 - less-loader: 12.3.1(less@4.4.2)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - license-webpack-plugin: 4.0.2(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - loader-utils: 3.3.1 - mini-css-extract-plugin: 2.10.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - open: 11.0.0 - ora: 9.3.0 + listr2: 9.0.5 + magic-string: 0.30.21 + mrmime: 2.0.1 + parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.4 - piscina: 5.1.4 - postcss: 8.5.12 - postcss-loader: 8.2.0(postcss@8.5.12)(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - resolve-url-loader: 5.0.0 - rxjs: 7.8.2 - sass: 1.97.3 - sass-loader: 16.0.7(sass@1.97.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - semver: 7.7.4 - source-map-loader: 5.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - source-map-support: 0.5.21 - terser: 5.46.0 - tinyglobby: 0.2.15 - tree-kill: 1.2.2 - tslib: 2.8.1 - typescript: 5.9.3 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - webpack-dev-server: 5.2.3(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - optionalDependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) - esbuild: 0.27.3 - ng-packagr: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) - transitivePeerDependencies: - - '@angular/compiler' - - '@emnapi/core' - - '@emnapi/runtime' - - '@minify-html/node' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - '@types/node' - - bufferutil - - chokidar - - clean-css - - cssnano - - csso - - debug - - html-minifier-terser - - html-webpack-plugin - - jiti - - lightningcss - - node-sass - - sass-embedded - - stylus - - sugarss - - supports-color - - tsx - - uglify-js - - utf-8-validate - - vitest - - webpack-cli - - yaml - - '@angular-devkit/build-webpack@0.2102.12(chokidar@5.0.0)(webpack-dev-server@5.2.3(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12))': - dependencies: - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - rxjs: 7.8.2 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) - webpack-dev-server: 5.2.3(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - transitivePeerDependencies: - - chokidar - - '@angular-devkit/core@21.2.12(chokidar@5.0.0)': - dependencies: - ajv: 8.18.0 - ajv-formats: 3.0.1(ajv@8.18.0) - jsonc-parser: 3.3.1 - picomatch: 4.0.4 - rxjs: 7.8.2 - source-map: 0.7.6 - optionalDependencies: - chokidar: 5.0.0 - - '@angular-devkit/schematics@21.2.12(chokidar@5.0.0)': - dependencies: - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) - jsonc-parser: 3.3.1 - magic-string: 0.30.21 - ora: 9.3.0 - rxjs: 7.8.2 - transitivePeerDependencies: - - chokidar - - '@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))': - dependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) - tslib: 2.8.1 - - '@angular/build@21.2.12(4a5dad358d011a8bdb0e788a8ba4d59b)': - dependencies: - '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular/compiler': 21.2.14 - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.21(@types/node@24.12.4) - '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.15))(terser@5.46.0)(yaml@2.9.0)) - beasties: 0.4.1 - browserslist: 4.28.2 - esbuild: 0.27.3 - https-proxy-agent: 7.0.6(supports-color@8.1.1) - istanbul-lib-instrument: 6.0.3(supports-color@8.1.1) - jsonc-parser: 3.3.1 - listr2: 9.0.5 - magic-string: 0.30.21 - mrmime: 2.0.1 - parse5-html-rewriting-stream: 8.0.0 - picomatch: 4.0.4 - piscina: 5.1.4 - rolldown: 1.0.0-rc.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + piscina: 5.2.0 + rolldown: 1.0.0-rc.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3) sass: 1.97.3 semver: 7.7.4 source-map-support: 0.5.21 tinyglobby: 0.2.15 tslib: 2.8.1 typescript: 5.9.3 - undici: 7.24.4 - vite: 7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.15))(terser@5.46.0)(yaml@2.9.0) + undici: 7.29.1 + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.0(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.28))(terser@5.46.0)(yaml@2.9.1) watchpack: 2.5.1 optionalDependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) - less: 4.4.2 + '@angular/core': 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) + less: 4.9.0(supports-color@8.1.1) lmdb: 3.5.1 - ng-packagr: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) - postcss: 8.5.12 - vitest: 3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@7.2.0))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@7.2.0)(terser@5.48.0)(yaml@2.9.0) - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - - '@types/node' - - chokidar - - jiti - - lightningcss - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - - '@angular/build@21.2.12(60b0737a044e59224c87543bc85cc8fb)': - dependencies: - '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular/compiler': 21.2.14 - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.21(@types/node@24.12.4) - '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) - beasties: 0.4.1 - browserslist: 4.28.2 - esbuild: 0.27.3 - https-proxy-agent: 7.0.6(supports-color@8.1.1) - istanbul-lib-instrument: 6.0.3(supports-color@8.1.1) - jsonc-parser: 3.3.1 - listr2: 9.0.5 - magic-string: 0.30.21 - mrmime: 2.0.1 - parse5-html-rewriting-stream: 8.0.0 - picomatch: 4.0.4 - piscina: 5.1.4 - rolldown: 1.0.0-rc.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) - sass: 1.97.3 - semver: 7.7.4 - source-map-support: 0.5.21 - tinyglobby: 0.2.15 - tslib: 2.8.1 - typescript: 5.9.3 - undici: 7.24.4 - vite: 7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) - watchpack: 2.5.1 - optionalDependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) - less: 4.6.4 - lmdb: 3.5.1 - ng-packagr: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) - postcss: 8.5.15 - vitest: 3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@8.1.1))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@8.1.1)(terser@5.48.0)(yaml@2.9.0) + ng-packagr: 21.2.7(@angular/compiler-cli@21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3))(supports-color@8.1.1)(tslib@2.8.1)(typescript@5.9.3) + postcss: 8.5.23 + vitest: 3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@8.1.1))(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -15441,20 +15847,20 @@ snapshots: - yaml optional: true - '@angular/build@21.2.12(6ce3b2d940df5673187e9a9be553d9a5)': + '@angular/build@21.2.24(4581913d0c7b8c3c22911f228bda569a)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular/compiler': 21.2.14 - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) - '@babel/core': 7.29.0(supports-color@8.1.1) + '@angular-devkit/architect': 0.2102.24(chokidar@5.0.0) + '@angular/compiler': 21.2.23 + '@angular/compiler-cli': 21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.21(@types/node@24.12.4) - '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.15))(terser@5.46.0)(yaml@2.9.0)) + '@inquirer/confirm': 5.1.21(@types/node@24.13.6) + '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) beasties: 0.4.1 - browserslist: 4.28.2 - esbuild: 0.27.3 + browserslist: 4.29.0 + esbuild: 0.28.1 https-proxy-agent: 7.0.6(supports-color@8.1.1) istanbul-lib-instrument: 6.0.3(supports-color@8.1.1) jsonc-parser: 3.3.1 @@ -15463,25 +15869,25 @@ snapshots: mrmime: 2.0.1 parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.4 - piscina: 5.1.4 - rolldown: 1.0.0-rc.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + piscina: 5.2.0 + rolldown: 1.0.0-rc.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3) sass: 1.97.3 semver: 7.7.4 source-map-support: 0.5.21 tinyglobby: 0.2.15 tslib: 2.8.1 typescript: 5.9.3 - undici: 7.24.4 - vite: 7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.15))(terser@5.46.0)(yaml@2.9.0) + undici: 7.29.1 + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) watchpack: 2.5.1 optionalDependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) - less: 4.4.2 + '@angular/core': 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) + less: 4.9.1(supports-color@8.1.1) lmdb: 3.5.1 - ng-packagr: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) - postcss: 8.5.12 - vitest: 3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@8.1.1))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@8.1.1)(terser@5.48.0)(yaml@2.9.0) + ng-packagr: 21.2.7(@angular/compiler-cli@21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3))(supports-color@8.1.1)(tslib@2.8.1)(typescript@5.9.3) + postcss: 8.5.28 + vitest: 3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@8.1.1))(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -15498,20 +15904,20 @@ snapshots: - yaml optional: true - '@angular/build@21.2.12(bc21ba156c4f39184a955b848aea9045)': + '@angular/build@21.2.24(bdfb25ca84d887a4495df23943296fae)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular/compiler': 21.2.14 - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) - '@babel/core': 7.29.0(supports-color@8.1.1) + '@angular-devkit/architect': 0.2102.24(chokidar@5.0.0) + '@angular/compiler': 21.2.23 + '@angular/compiler-cli': 21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.21(@types/node@24.12.4) - '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.12))(terser@5.46.0)(yaml@2.9.1)) + '@inquirer/confirm': 5.1.21(@types/node@24.13.6) + '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) beasties: 0.4.1 - browserslist: 4.28.2 - esbuild: 0.27.3 + browserslist: 4.29.0 + esbuild: 0.28.1 https-proxy-agent: 7.0.6(supports-color@8.1.1) istanbul-lib-instrument: 6.0.3(supports-color@8.1.1) jsonc-parser: 3.3.1 @@ -15520,25 +15926,25 @@ snapshots: mrmime: 2.0.1 parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.4 - piscina: 5.1.4 - rolldown: 1.0.0-rc.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + piscina: 5.2.0 + rolldown: 1.0.0-rc.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3) sass: 1.97.3 semver: 7.7.4 source-map-support: 0.5.21 tinyglobby: 0.2.15 tslib: 2.8.1 typescript: 5.9.3 - undici: 7.24.4 - vite: 7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.15))(terser@5.46.0)(yaml@2.9.1) + undici: 7.29.1 + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.0(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.28))(terser@5.46.0)(yaml@2.9.1) watchpack: 2.5.1 optionalDependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) - less: 4.4.2 + '@angular/core': 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) + less: 4.9.0(supports-color@8.1.1) lmdb: 3.5.1 - ng-packagr: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) - postcss: 8.5.12 - vitest: 3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@7.2.0))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@7.2.0)(terser@5.48.0)(yaml@2.9.0) + ng-packagr: 21.2.7(@angular/compiler-cli@21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3))(supports-color@8.1.1)(tslib@2.8.1)(typescript@5.9.3) + postcss: 8.5.23 + vitest: 3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@7.2.0))(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@7.2.0)(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -15554,20 +15960,20 @@ snapshots: - tsx - yaml - '@angular/build@21.2.12(c538b6fdf77b18c9ed9237789e875a7b)': + '@angular/build@21.2.24(ea0945a71b12a32ca7443e60b5f658e1)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular/compiler': 21.2.14 - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) - '@babel/core': 7.29.0(supports-color@8.1.1) + '@angular-devkit/architect': 0.2102.24(chokidar@5.0.0) + '@angular/compiler': 21.2.23 + '@angular/compiler-cli': 21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.21(@types/node@24.12.4) - '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.12))(terser@5.46.0)(yaml@2.9.1)) + '@inquirer/confirm': 5.1.21(@types/node@24.13.6) + '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.0(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.23))(terser@5.46.0)(yaml@2.9.1)) beasties: 0.4.1 - browserslist: 4.28.2 - esbuild: 0.27.3 + browserslist: 4.29.0 + esbuild: 0.28.1 https-proxy-agent: 7.0.6(supports-color@8.1.1) istanbul-lib-instrument: 6.0.3(supports-color@8.1.1) jsonc-parser: 3.3.1 @@ -15576,25 +15982,25 @@ snapshots: mrmime: 2.0.1 parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.4 - piscina: 5.1.4 - rolldown: 1.0.0-rc.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + piscina: 5.2.0 + rolldown: 1.0.0-rc.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3) sass: 1.97.3 semver: 7.7.4 source-map-support: 0.5.21 tinyglobby: 0.2.15 tslib: 2.8.1 typescript: 5.9.3 - undici: 7.24.4 - vite: 7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.12))(terser@5.46.0)(yaml@2.9.1) + undici: 7.29.1 + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.0(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.23))(terser@5.46.0)(yaml@2.9.1) watchpack: 2.5.1 optionalDependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) - less: 4.4.2 + '@angular/core': 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) + less: 4.9.0(supports-color@8.1.1) lmdb: 3.5.1 - ng-packagr: 21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) - postcss: 8.5.12 - vitest: 3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@7.2.0))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@7.2.0)(terser@5.48.0)(yaml@2.9.0) + ng-packagr: 21.2.7(@angular/compiler-cli@21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3))(supports-color@8.1.1)(tslib@2.8.1)(typescript@5.9.3) + postcss: 8.5.23 + vitest: 3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@7.2.0))(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@7.2.0)(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -15610,22 +16016,22 @@ snapshots: - tsx - yaml - '@angular/cli@21.2.12(@types/node@24.12.4)(chokidar@5.0.0)(supports-color@8.1.1)': + '@angular/cli@21.2.24(@types/node@24.13.6)(chokidar@5.0.0)(supports-color@8.1.1)': dependencies: - '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) - '@angular-devkit/schematics': 21.2.12(chokidar@5.0.0) - '@inquirer/prompts': 7.10.1(@types/node@24.12.4) - '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.10.1(@types/node@24.12.4))(@types/node@24.12.4)(listr2@9.0.5) - '@modelcontextprotocol/sdk': 1.26.0(supports-color@8.1.1)(zod@4.3.6) - '@schematics/angular': 21.2.12(chokidar@5.0.0) + '@angular-devkit/architect': 0.2102.24(chokidar@5.0.0) + '@angular-devkit/core': 21.2.24(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.24(chokidar@5.0.0) + '@inquirer/prompts': 7.10.1(@types/node@24.13.6) + '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.10.1(@types/node@24.13.6))(@types/node@24.13.6)(listr2@9.0.5) + '@modelcontextprotocol/sdk': 1.30.0(supports-color@8.1.1)(zod@4.3.6) + '@schematics/angular': 21.2.24(chokidar@5.0.0) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.48.1 ini: 6.0.0 jsonc-parser: 3.3.1 listr2: 9.0.5 npm-package-arg: 13.0.2 - pacote: 21.3.1(supports-color@8.1.1) + pacote: 21.5.1(supports-color@8.1.1) parse5-html-rewriting-stream: 8.0.0 semver: 7.7.4 yargs: 18.0.0 @@ -15636,94 +16042,94 @@ snapshots: - chokidar - supports-color - '@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3)': + '@angular/compiler-cli@21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3)': dependencies: - '@angular/compiler': 21.2.14 - '@babel/core': 7.29.0(supports-color@8.1.1) - '@jridgewell/sourcemap-codec': 1.5.5 + '@angular/compiler': 21.2.23 + '@babel/core': 7.29.7(supports-color@8.1.1) + '@jridgewell/sourcemap-codec': 1.6.0 chokidar: 5.0.0 convert-source-map: 1.9.0 reflect-metadata: 0.2.2 - semver: 7.8.1 + semver: 7.8.5 tslib: 2.8.1 - yargs: 18.0.0 + yargs: 18.2.0 optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@angular/compiler@21.2.14': + '@angular/compiler@21.2.23': dependencies: tslib: 2.8.1 - '@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 21.2.14 + '@angular/compiler': 21.2.23 zone.js: 0.15.1 - '@angular/forms@21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/forms@21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) '@standard-schema/spec': 1.1.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/platform-browser-dynamic@21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))': + '@angular/platform-browser-dynamic@21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@21.2.23)(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))': dependencies: - '@angular/common': 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/compiler': 21.2.14 - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': 21.2.23 + '@angular/core': 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) tslib: 2.8.1 - '@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/animations': 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/router@21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/router@21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@ark/schema@0.56.0': + '@ark/schema@0.56.2': dependencies: - '@ark/util': 0.56.0 + '@ark/util': 0.56.2 - '@ark/util@0.56.0': {} + '@ark/util@0.56.2': {} '@asamuzakjp/css-color@4.1.2': dependencies: - '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-color-parser': 4.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) - '@csstools/css-tokenizer': 4.0.0 - lru-cache: 11.5.0 + '@csstools/css-calc': 3.4.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.1))(@csstools/css-tokenizer@4.0.1) + '@csstools/css-color-parser': 4.2.3(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.1))(@csstools/css-tokenizer@4.0.1) + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.1) + '@csstools/css-tokenizer': 4.0.1 + lru-cache: 11.5.3 '@asamuzakjp/dom-selector@6.8.1': dependencies: '@asamuzakjp/nwsapi': 2.3.9 - bidi-js: 1.0.3 + bidi-js: 1.1.0 css-tree: 3.2.1 is-potential-custom-element-name: 1.0.1 - lru-cache: 11.5.0 + lru-cache: 11.5.3 '@asamuzakjp/nwsapi@2.3.9': {} @@ -15731,12 +16137,6 @@ snapshots: dependencies: '@babel/highlight': 7.25.9 - '@babel/code-frame@7.27.1': - dependencies: - '@babel/helper-validator-identifier': 7.29.7 - js-tokens: 4.0.0 - picocolors: 1.1.1 - '@babel/code-frame@7.29.7': dependencies: '@babel/helper-validator-identifier': 7.29.7 @@ -15745,37 +16145,17 @@ snapshots: '@babel/compat-data@7.29.7': {} - '@babel/core@7.29.0(supports-color@8.1.1)': - dependencies: - '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.1 - '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/helpers': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) - '@babel/types': 7.29.7 - '@jridgewell/remapping': 2.3.5 - convert-source-map: 2.0.0 - debug: 4.4.3(supports-color@8.1.1) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/core@7.29.7(supports-color@7.2.0)': dependencies: '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.7 + '@babel/generator': 7.29.8 '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@7.2.0) '@babel/helpers': 7.29.7 - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.9 '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@7.2.0) - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@7.2.0) + '@babel/types': 7.29.8 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3(supports-color@7.2.0) @@ -15788,14 +16168,14 @@ snapshots: '@babel/core@7.29.7(supports-color@8.1.1)': dependencies: '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.7 + '@babel/generator': 7.29.8 '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) '@babel/helpers': 7.29.7 - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.9 '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@8.1.1) + '@babel/types': 7.29.8 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3(supports-color@8.1.1) @@ -15807,16 +16187,16 @@ snapshots: '@babel/generator@7.29.1': dependencies: - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 7.29.9 + '@babel/types': 7.29.8 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/generator@7.29.7': + '@babel/generator@7.29.8': dependencies: - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 7.29.9 + '@babel/types': 7.29.8 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 @@ -15832,33 +16212,20 @@ snapshots: '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@babel/helper-annotate-as-pure@7.29.7': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@babel/helper-compilation-targets@7.29.7': dependencies: '@babel/compat-data': 7.29.7 '@babel/helper-validator-option': 7.29.7 - browserslist: 4.28.2 + browserslist: 4.29.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': - dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-annotate-as-pure': 7.29.7 - '@babel/helper-member-expression-to-functions': 7.29.7(supports-color@8.1.1) - '@babel/helper-optimise-call-expression': 7.29.7 - '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@8.1.1) - '@babel/traverse': 7.29.7(supports-color@8.1.1) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: '@babel/core': 7.29.7(supports-color@7.2.0) @@ -15867,7 +16234,7 @@ snapshots: '@babel/helper-optimise-call-expression': 7.29.7 '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@8.1.1) - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -15880,14 +16247,14 @@ snapshots: '@babel/helper-optimise-call-expression': 7.29.7 '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@8.1.1) - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-annotate-as-pure': 7.29.7 regexpu-core: 6.4.0 semver: 6.3.1 @@ -15899,9 +16266,9 @@ snapshots: regexpu-core: 6.4.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 debug: 4.4.3(supports-color@8.1.1) @@ -15925,35 +16292,26 @@ snapshots: '@babel/helper-member-expression-to-functions@7.29.7(supports-color@8.1.1)': dependencies: - '@babel/traverse': 7.29.7(supports-color@8.1.1) - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@8.1.1) + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.18.6': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@babel/helper-module-imports@7.29.7(supports-color@7.2.0)': dependencies: - '@babel/traverse': 7.29.7(supports-color@7.2.0) - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@7.2.0) + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.29.7(supports-color@8.1.1)': dependencies: - '@babel/traverse': 7.29.7(supports-color@8.1.1) - '@babel/types': 7.29.7 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': - dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-module-imports': 7.29.7(supports-color@8.1.1) - '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -15962,7 +16320,7 @@ snapshots: '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-module-imports': 7.29.7(supports-color@7.2.0) '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@7.2.0) + '@babel/traverse': 7.29.8(supports-color@7.2.0) transitivePeerDependencies: - supports-color @@ -15971,7 +16329,7 @@ snapshots: '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-module-imports': 7.29.7(supports-color@8.1.1) '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -15980,22 +16338,22 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-module-imports': 7.29.7(supports-color@8.1.1) '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.29.7': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@babel/helper-plugin-utils@7.29.7': {} - '@babel/helper-remap-async-to-generator@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/helper-remap-async-to-generator@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-annotate-as-pure': 7.29.7 '@babel/helper-wrap-function': 7.29.7(supports-color@8.1.1) - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -16004,16 +16362,7 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.29.7 '@babel/helper-wrap-function': 7.29.7(supports-color@8.1.1) - '@babel/traverse': 7.29.7(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - '@babel/helper-replace-supers@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': - dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-member-expression-to-functions': 7.29.7(supports-color@8.1.1) - '@babel/helper-optimise-call-expression': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -16022,7 +16371,7 @@ snapshots: '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-member-expression-to-functions': 7.29.7(supports-color@8.1.1) '@babel/helper-optimise-call-expression': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -16031,43 +16380,45 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-member-expression-to-functions': 7.29.7(supports-color@8.1.1) '@babel/helper-optimise-call-expression': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.29.7(supports-color@8.1.1)': dependencies: - '@babel/traverse': 7.29.7(supports-color@8.1.1) - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@8.1.1) + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@babel/helper-string-parser@7.29.7': {} - '@babel/helper-string-parser@8.0.0-rc.6': {} + '@babel/helper-string-parser@8.0.6': {} '@babel/helper-validator-identifier@7.29.7': {} '@babel/helper-validator-identifier@8.0.0-rc.3': {} + '@babel/helper-validator-identifier@8.0.6': {} + '@babel/helper-validator-option@7.29.7': {} '@babel/helper-wrap-function@7.29.7(supports-color@8.1.1)': dependencies: '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@8.1.1) + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color '@babel/helpers@7.29.7': dependencies: '@babel/template': 7.29.7 - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@babel/highlight@7.25.9': dependencies: @@ -16076,71 +16427,102 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/parser@7.29.7': + '@babel/parser@7.29.9': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@babel/parser@8.0.0-rc.3': dependencies: '@babel/types': 8.0.0-rc.3 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/parser@8.0.6': + dependencies: + '@babel/types': 8.0.6 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': + dependencies: + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@8.1.1) - '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@8.1.1) + '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-decorators@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-decorators': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-export-default-from@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color - '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': + '@babel/plugin-proposal-decorators@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.7(supports-color@7.2.0) - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-decorators': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) transitivePeerDependencies: - supports-color + '@babel/plugin-proposal-export-default-from@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': + dependencies: + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) @@ -16149,9 +16531,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7(supports-color@8.1.1))': + dependencies: + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: @@ -16193,14 +16579,19 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-import-assertions@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-syntax-import-assertions@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-import-assertions@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': @@ -16278,15 +16669,21 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-arrow-functions@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-arrow-functions@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-arrow-functions@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': @@ -16294,12 +16691,21 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': + dependencies: + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -16308,16 +16714,25 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-module-imports': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': + dependencies: + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-module-imports': 7.29.7(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -16330,14 +16745,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-block-scoped-functions@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-block-scoped-functions@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': + dependencies: + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-block-scoping@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-block-scoping@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-block-scoping@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': @@ -16345,10 +16765,10 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-class-properties@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-class-properties@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -16361,10 +16781,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-class-static-block@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -16377,15 +16797,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-classes@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-annotate-as-pure': 7.29.7 '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-globals': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -16397,13 +16817,13 @@ snapshots: '@babel/helper-globals': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-computed-properties@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/template': 7.29.7 @@ -16413,11 +16833,11 @@ snapshots: '@babel/helper-plugin-utils': 7.29.7 '@babel/template': 7.29.7 - '@babel/plugin-transform-destructuring@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-destructuring@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -16425,48 +16845,83 @@ snapshots: dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-dotall-regex@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-dotall-regex@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-dotall-regex@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': + dependencies: + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-duplicate-keys@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-duplicate-keys@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-duplicate-keys@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-dynamic-import@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-dynamic-import@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-explicit-resource-management@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-dynamic-import@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + + '@babel/plugin-transform-explicit-resource-management@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-exponentiation-operator@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-explicit-resource-management@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-exponentiation-operator@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-export-namespace-from@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-exponentiation-operator@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-export-namespace-from@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-export-namespace-from@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': @@ -16480,9 +16935,9 @@ snapshots: '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-flow': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) - '@babel/plugin-transform-for-of@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-for-of@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@8.1.1) transitivePeerDependencies: @@ -16496,12 +16951,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-function-name@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -16510,18 +16965,23 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-json-strings@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-literals@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-json-strings@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-literals@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-literals@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': @@ -16529,9 +16989,9 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-logical-assignment-operators@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-logical-assignment-operators@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-logical-assignment-operators@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': @@ -16539,23 +16999,28 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-member-expression-literals@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-member-expression-literals@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-modules-amd@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-member-expression-literals@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-modules-amd@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-modules-amd@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -16576,28 +17041,46 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-modules-systemjs@7.29.8(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-modules-systemjs@7.29.8(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-modules-umd@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': @@ -16606,14 +17089,19 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-new-target@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-new-target@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-nullish-coalescing-operator@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-new-target@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-nullish-coalescing-operator@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-nullish-coalescing-operator@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': @@ -16621,9 +17109,9 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-numeric-separator@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-numeric-separator@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-numeric-separator@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': @@ -16631,14 +17119,14 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-object-rest-spread@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-object-rest-spread@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -16649,21 +17137,29 @@ snapshots: '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-object-super@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-object-super@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-catch-binding@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-optional-catch-binding@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': @@ -16671,9 +17167,9 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-optional-chaining@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-optional-chaining@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@8.1.1) transitivePeerDependencies: @@ -16687,9 +17183,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-parameters@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-parameters@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': @@ -16697,10 +17193,10 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-private-methods@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-private-methods@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -16713,11 +17209,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-private-property-in-object@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-annotate-as-pure': 7.29.7 - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -16731,9 +17227,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-property-literals@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-property-literals@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': + dependencies: + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-react-display-name@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': @@ -16775,7 +17276,7 @@ snapshots: '@babel/helper-module-imports': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -16785,35 +17286,58 @@ snapshots: '@babel/helper-annotate-as-pure': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-regenerator@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-regenerator@7.29.8(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-regenerator@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': + '@babel/plugin-transform-regenerator@7.29.8(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-regexp-modifiers@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-regexp-modifiers@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-reserved-words@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-regexp-modifiers@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-reserved-words@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-runtime@7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-reserved-words@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-runtime@7.29.0(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-module-imports': 7.29.7(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-runtime@7.29.0(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': + dependencies: + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-module-imports': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -16830,9 +17354,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-shorthand-properties@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-shorthand-properties@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': @@ -16840,15 +17364,15 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-spread@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-spread@7.29.8(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-spread@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-spread@7.29.8(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 @@ -16856,9 +17380,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-sticky-regex@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-sticky-regex@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': @@ -16866,9 +17390,9 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-template-literals@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-template-literals@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-template-literals@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': @@ -16876,143 +17400,248 @@ snapshots: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-typeof-symbol@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-typeof-symbol@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-typeof-symbol@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': + dependencies: + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-typescript@7.29.9(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@8.1.1) + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-typescript@7.29.9(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': + dependencies: + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@8.1.1) + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-unicode-escapes@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-unicode-escapes@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-typescript@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': + '@babel/plugin-transform-unicode-property-regex@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: '@babel/core': 7.29.7(supports-color@7.2.0) - '@babel/helper-annotate-as-pure': 7.29.7 - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@8.1.1) - '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-typescript@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-unicode-property-regex@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/helper-annotate-as-pure': 7.29.7 - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@8.1.1) - '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-unicode-escapes@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-unicode-property-regex@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/plugin-transform-unicode-sets-regex@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': + '@babel/plugin-transform-unicode-sets-regex@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-unicode-sets-regex@7.29.7(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/preset-env@7.29.2(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1)': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) + '@babel/compat-data': 7.29.7 + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-syntax-import-assertions': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-arrow-functions': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-block-scoped-functions': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-block-scoping': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-class-properties': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-class-static-block': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-classes': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-computed-properties': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-dotall-regex': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-duplicate-keys': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-dynamic-import': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-explicit-resource-management': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-exponentiation-operator': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-export-namespace-from': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-for-of': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-function-name': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-json-strings': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-literals': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-logical-assignment-operators': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-member-expression-literals': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-modules-amd': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-modules-systemjs': 7.29.8(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-modules-umd': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-new-target': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-nullish-coalescing-operator': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-numeric-separator': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-object-rest-spread': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-object-super': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-optional-catch-binding': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-private-methods': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-private-property-in-object': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-property-literals': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-regenerator': 7.29.8(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-regexp-modifiers': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-reserved-words': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-shorthand-properties': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-spread': 7.29.8(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-sticky-regex': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-template-literals': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-typeof-symbol': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-unicode-escapes': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-unicode-property-regex': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-unicode-regex': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/plugin-transform-unicode-sets-regex': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.7(supports-color@7.2.0)) + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + core-js-compat: 3.50.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color - '@babel/preset-env@7.29.2(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/preset-env@7.29.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/compat-data': 7.29.7 - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-validator-option': 7.29.7 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-syntax-import-assertions': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-arrow-functions': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-block-scoped-functions': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-block-scoping': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-class-properties': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-class-static-block': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-classes': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-computed-properties': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-dotall-regex': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-duplicate-keys': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-dynamic-import': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-explicit-resource-management': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-exponentiation-operator': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-export-namespace-from': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-for-of': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-function-name': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-json-strings': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-literals': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-logical-assignment-operators': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-member-expression-literals': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-modules-amd': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-modules-systemjs': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-modules-umd': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-new-target': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-nullish-coalescing-operator': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-numeric-separator': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-object-rest-spread': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-object-super': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-optional-catch-binding': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-private-methods': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-private-property-in-object': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-property-literals': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-regenerator': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-regexp-modifiers': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-reserved-words': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-shorthand-properties': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-spread': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-sticky-regex': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-template-literals': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-typeof-symbol': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-unicode-escapes': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-unicode-property-regex': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-unicode-regex': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/plugin-transform-unicode-sets-regex': 7.29.7(@babel/core@7.29.0(supports-color@8.1.1)) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0(supports-color@8.1.1)) - babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - core-js-compat: 3.49.0 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-syntax-import-assertions': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-arrow-functions': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-block-scoped-functions': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-block-scoping': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-class-properties': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-class-static-block': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-classes': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-computed-properties': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-dotall-regex': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-duplicate-keys': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-dynamic-import': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-explicit-resource-management': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-exponentiation-operator': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-export-namespace-from': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-for-of': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-function-name': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-json-strings': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-literals': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-logical-assignment-operators': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-member-expression-literals': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-modules-amd': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-modules-systemjs': 7.29.8(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-modules-umd': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-new-target': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-nullish-coalescing-operator': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-numeric-separator': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-object-rest-spread': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-object-super': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-optional-catch-binding': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-private-methods': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-private-property-in-object': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-property-literals': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-regenerator': 7.29.8(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-regexp-modifiers': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-reserved-words': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-shorthand-properties': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-spread': 7.29.8(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-sticky-regex': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-template-literals': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-typeof-symbol': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-unicode-escapes': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-unicode-property-regex': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-unicode-regex': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-unicode-sets-regex': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.7(supports-color@8.1.1)) + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + core-js-compat: 3.50.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0(supports-color@8.1.1))': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.7(supports-color@7.2.0))': + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/types': 7.29.8 + esutils: 2.0.3 + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.29.7 - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 esutils: 2.0.3 '@babel/preset-react@7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': @@ -17034,7 +17663,7 @@ snapshots: '@babel/helper-validator-option': 7.29.7 '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) - '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + '@babel/plugin-transform-typescript': 7.29.9(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -17045,7 +17674,7 @@ snapshots: '@babel/helper-validator-option': 7.29.7 '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-typescript': 7.29.9(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -17056,43 +17685,48 @@ snapshots: '@babel/template@7.29.7': dependencies: '@babel/code-frame': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 7.29.9 + '@babel/types': 7.29.8 - '@babel/traverse@7.29.7(supports-color@7.2.0)': + '@babel/traverse@7.29.8(supports-color@7.2.0)': dependencies: '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.7 + '@babel/generator': 7.29.8 '@babel/helper-globals': 7.29.7 - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.9 '@babel/template': 7.29.7 - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 debug: 4.4.3(supports-color@7.2.0) transitivePeerDependencies: - supports-color - '@babel/traverse@7.29.7(supports-color@8.1.1)': + '@babel/traverse@7.29.8(supports-color@8.1.1)': dependencies: '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.7 + '@babel/generator': 7.29.8 '@babel/helper-globals': 7.29.7 - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.9 '@babel/template': 7.29.7 - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/types@7.29.7': + '@babel/types@7.29.8': dependencies: '@babel/helper-string-parser': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 '@babel/types@8.0.0-rc.3': dependencies: - '@babel/helper-string-parser': 8.0.0-rc.6 + '@babel/helper-string-parser': 8.0.6 '@babel/helper-validator-identifier': 8.0.0-rc.3 + '@babel/types@8.0.6': + dependencies: + '@babel/helper-string-parser': 8.0.6 + '@babel/helper-validator-identifier': 8.0.6 + '@changesets/apply-release-plan@8.1.1': dependencies: '@changesets/config': 4.0.1 @@ -17102,7 +17736,7 @@ snapshots: '@changesets/types': 7.0.0 import-meta-resolve: 4.2.0 jsonc-parser: 3.3.1 - semver: 7.8.1 + semver: 7.8.5 '@changesets/assemble-release-plan@7.0.0': dependencies: @@ -17110,7 +17744,7 @@ snapshots: '@changesets/get-dependents-graph': 3.0.0 '@changesets/should-skip-package': 1.0.0 '@changesets/types': 7.0.0 - semver: 7.8.1 + semver: 7.8.5 '@changesets/changelog-git@1.0.0': dependencies: @@ -17141,8 +17775,8 @@ snapshots: cac: 7.0.0 import-meta-resolve: 4.2.0 launch-editor: 2.14.1 - package-manager-detector: 1.6.0 - semver: 7.8.1 + package-manager-detector: 1.8.0 + semver: 7.8.5 tinyexec: 1.1.2 '@changesets/config@4.0.1': @@ -17163,7 +17797,7 @@ snapshots: '@changesets/get-dependents-graph@3.0.0': dependencies: '@changesets/types': 7.0.0 - semver: 7.8.1 + semver: 7.8.5 '@changesets/get-github-info@1.0.1': dependencies: @@ -17174,13 +17808,13 @@ snapshots: '@changesets/errors': 1.0.0 '@changesets/types': 7.0.0 '@manypkg/get-packages': 3.1.0 - picomatch: 4.0.4 + picomatch: 4.0.7 tinyexec: 1.1.2 '@changesets/parse@1.0.0': dependencies: '@changesets/types': 7.0.0 - yaml: 2.9.0 + yaml: 2.9.1 '@changesets/pre@3.0.0': dependencies: @@ -17208,7 +17842,7 @@ snapshots: '@clack/core@1.4.3': dependencies: - fast-wrap-ansi: 0.2.2 + fast-wrap-ansi: 0.2.0 sisteransi: 1.0.5 '@clack/core@1.5.1': @@ -17220,7 +17854,7 @@ snapshots: dependencies: '@clack/core': 1.4.3 fast-string-width: 3.0.2 - fast-wrap-ansi: 0.2.2 + fast-wrap-ansi: 0.2.0 sisteransi: 1.0.5 '@clack/prompts@1.8.1': @@ -17230,29 +17864,37 @@ snapshots: fast-wrap-ansi: 0.2.2 sisteransi: 1.0.5 - '@csstools/color-helpers@6.0.2': {} + '@commander-js/extra-typings@13.1.0(commander@13.1.0)': + dependencies: + commander: 13.1.0 + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@csstools/color-helpers@6.1.1': {} - '@csstools/css-calc@3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-calc@3.4.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.1))(@csstools/css-tokenizer@4.0.1)': dependencies: - '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) - '@csstools/css-tokenizer': 4.0.0 + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.1) + '@csstools/css-tokenizer': 4.0.1 - '@csstools/css-color-parser@4.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-color-parser@4.2.3(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.1))(@csstools/css-tokenizer@4.0.1)': dependencies: - '@csstools/color-helpers': 6.0.2 - '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) - '@csstools/css-tokenizer': 4.0.0 + '@csstools/color-helpers': 6.1.1 + '@csstools/css-calc': 3.4.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.1))(@csstools/css-tokenizer@4.0.1) + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.1) + '@csstools/css-tokenizer': 4.0.1 - '@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.1)': dependencies: - '@csstools/css-tokenizer': 4.0.0 + '@csstools/css-tokenizer': 4.0.1 - '@csstools/css-syntax-patches-for-csstree@1.1.4(css-tree@3.2.1)': + '@csstools/css-syntax-patches-for-csstree@1.1.14(css-tree@3.2.1)': optionalDependencies: css-tree: 3.2.1 - '@csstools/css-tokenizer@4.0.0': {} + '@csstools/css-tokenizer@4.0.1': {} '@discoveryjs/json-ext@0.6.3': {} @@ -17270,6 +17912,7 @@ snapshots: dependencies: '@emnapi/wasi-threads': 1.2.2 tslib: 2.8.1 + optional: true '@emnapi/core@1.4.5': dependencies: @@ -17284,6 +17927,12 @@ snapshots: '@emnapi/runtime@1.11.2': dependencies: tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.11.3': + dependencies: + tslib: 2.8.1 + optional: true '@emnapi/runtime@1.4.5': dependencies: @@ -17301,6 +17950,7 @@ snapshots: '@emnapi/wasi-threads@1.2.2': dependencies: tslib: 2.8.1 + optional: true '@emotion/babel-plugin@11.13.5(supports-color@8.1.1)': dependencies: @@ -17334,7 +17984,7 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1)': + '@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1)': dependencies: '@babel/runtime': 7.29.7 '@emotion/babel-plugin': 11.13.5(supports-color@8.1.1) @@ -17346,7 +17996,7 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 transitivePeerDependencies: - supports-color @@ -17360,18 +18010,18 @@ snapshots: '@emotion/sheet@1.4.0': {} - '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1)': + '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1)': dependencies: '@babel/runtime': 7.29.7 '@emotion/babel-plugin': 11.13.5(supports-color@8.1.1) '@emotion/is-prop-valid': 1.4.0 - '@emotion/react': 11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + '@emotion/react': 11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) '@emotion/serialize': 1.3.3 '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.1.0) '@emotion/utils': 1.4.2 react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 transitivePeerDependencies: - supports-color @@ -17388,10 +18038,10 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/aix-ppc64@0.27.3': + '@esbuild/aix-ppc64@0.28.1': optional: true - '@esbuild/aix-ppc64@0.27.7': + '@esbuild/aix-ppc64@0.28.2': optional: true '@esbuild/android-arm64@0.17.6': @@ -17400,10 +18050,10 @@ snapshots: '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm64@0.27.3': + '@esbuild/android-arm64@0.28.1': optional: true - '@esbuild/android-arm64@0.27.7': + '@esbuild/android-arm64@0.28.2': optional: true '@esbuild/android-arm@0.17.6': @@ -17412,10 +18062,10 @@ snapshots: '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-arm@0.27.3': + '@esbuild/android-arm@0.28.1': optional: true - '@esbuild/android-arm@0.27.7': + '@esbuild/android-arm@0.28.2': optional: true '@esbuild/android-x64@0.17.6': @@ -17424,10 +18074,10 @@ snapshots: '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/android-x64@0.27.3': + '@esbuild/android-x64@0.28.1': optional: true - '@esbuild/android-x64@0.27.7': + '@esbuild/android-x64@0.28.2': optional: true '@esbuild/darwin-arm64@0.17.6': @@ -17436,10 +18086,10 @@ snapshots: '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.27.3': + '@esbuild/darwin-arm64@0.28.1': optional: true - '@esbuild/darwin-arm64@0.27.7': + '@esbuild/darwin-arm64@0.28.2': optional: true '@esbuild/darwin-x64@0.17.6': @@ -17448,10 +18098,10 @@ snapshots: '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/darwin-x64@0.27.3': + '@esbuild/darwin-x64@0.28.1': optional: true - '@esbuild/darwin-x64@0.27.7': + '@esbuild/darwin-x64@0.28.2': optional: true '@esbuild/freebsd-arm64@0.17.6': @@ -17460,10 +18110,10 @@ snapshots: '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.27.3': + '@esbuild/freebsd-arm64@0.28.1': optional: true - '@esbuild/freebsd-arm64@0.27.7': + '@esbuild/freebsd-arm64@0.28.2': optional: true '@esbuild/freebsd-x64@0.17.6': @@ -17472,10 +18122,10 @@ snapshots: '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.27.3': + '@esbuild/freebsd-x64@0.28.1': optional: true - '@esbuild/freebsd-x64@0.27.7': + '@esbuild/freebsd-x64@0.28.2': optional: true '@esbuild/linux-arm64@0.17.6': @@ -17484,10 +18134,10 @@ snapshots: '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm64@0.27.3': + '@esbuild/linux-arm64@0.28.1': optional: true - '@esbuild/linux-arm64@0.27.7': + '@esbuild/linux-arm64@0.28.2': optional: true '@esbuild/linux-arm@0.17.6': @@ -17496,10 +18146,10 @@ snapshots: '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-arm@0.27.3': + '@esbuild/linux-arm@0.28.1': optional: true - '@esbuild/linux-arm@0.27.7': + '@esbuild/linux-arm@0.28.2': optional: true '@esbuild/linux-ia32@0.17.6': @@ -17508,10 +18158,10 @@ snapshots: '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-ia32@0.27.3': + '@esbuild/linux-ia32@0.28.1': optional: true - '@esbuild/linux-ia32@0.27.7': + '@esbuild/linux-ia32@0.28.2': optional: true '@esbuild/linux-loong64@0.17.6': @@ -17520,10 +18170,10 @@ snapshots: '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-loong64@0.27.3': + '@esbuild/linux-loong64@0.28.1': optional: true - '@esbuild/linux-loong64@0.27.7': + '@esbuild/linux-loong64@0.28.2': optional: true '@esbuild/linux-mips64el@0.17.6': @@ -17532,10 +18182,10 @@ snapshots: '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-mips64el@0.27.3': + '@esbuild/linux-mips64el@0.28.1': optional: true - '@esbuild/linux-mips64el@0.27.7': + '@esbuild/linux-mips64el@0.28.2': optional: true '@esbuild/linux-ppc64@0.17.6': @@ -17544,10 +18194,10 @@ snapshots: '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-ppc64@0.27.3': + '@esbuild/linux-ppc64@0.28.1': optional: true - '@esbuild/linux-ppc64@0.27.7': + '@esbuild/linux-ppc64@0.28.2': optional: true '@esbuild/linux-riscv64@0.17.6': @@ -17556,10 +18206,10 @@ snapshots: '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.27.3': + '@esbuild/linux-riscv64@0.28.1': optional: true - '@esbuild/linux-riscv64@0.27.7': + '@esbuild/linux-riscv64@0.28.2': optional: true '@esbuild/linux-s390x@0.17.6': @@ -17568,10 +18218,10 @@ snapshots: '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-s390x@0.27.3': + '@esbuild/linux-s390x@0.28.1': optional: true - '@esbuild/linux-s390x@0.27.7': + '@esbuild/linux-s390x@0.28.2': optional: true '@esbuild/linux-x64@0.17.6': @@ -17580,16 +18230,16 @@ snapshots: '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/linux-x64@0.27.3': + '@esbuild/linux-x64@0.28.1': optional: true - '@esbuild/linux-x64@0.27.7': + '@esbuild/linux-x64@0.28.2': optional: true - '@esbuild/netbsd-arm64@0.27.3': + '@esbuild/netbsd-arm64@0.28.1': optional: true - '@esbuild/netbsd-arm64@0.27.7': + '@esbuild/netbsd-arm64@0.28.2': optional: true '@esbuild/netbsd-x64@0.17.6': @@ -17598,16 +18248,16 @@ snapshots: '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.27.3': + '@esbuild/netbsd-x64@0.28.1': optional: true - '@esbuild/netbsd-x64@0.27.7': + '@esbuild/netbsd-x64@0.28.2': optional: true - '@esbuild/openbsd-arm64@0.27.3': + '@esbuild/openbsd-arm64@0.28.1': optional: true - '@esbuild/openbsd-arm64@0.27.7': + '@esbuild/openbsd-arm64@0.28.2': optional: true '@esbuild/openbsd-x64@0.17.6': @@ -17616,16 +18266,16 @@ snapshots: '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.27.3': + '@esbuild/openbsd-x64@0.28.1': optional: true - '@esbuild/openbsd-x64@0.27.7': + '@esbuild/openbsd-x64@0.28.2': optional: true - '@esbuild/openharmony-arm64@0.27.3': + '@esbuild/openharmony-arm64@0.28.1': optional: true - '@esbuild/openharmony-arm64@0.27.7': + '@esbuild/openharmony-arm64@0.28.2': optional: true '@esbuild/sunos-x64@0.17.6': @@ -17634,10 +18284,10 @@ snapshots: '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.27.3': + '@esbuild/sunos-x64@0.28.1': optional: true - '@esbuild/sunos-x64@0.27.7': + '@esbuild/sunos-x64@0.28.2': optional: true '@esbuild/win32-arm64@0.17.6': @@ -17646,10 +18296,10 @@ snapshots: '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-arm64@0.27.3': + '@esbuild/win32-arm64@0.28.1': optional: true - '@esbuild/win32-arm64@0.27.7': + '@esbuild/win32-arm64@0.28.2': optional: true '@esbuild/win32-ia32@0.17.6': @@ -17658,10 +18308,10 @@ snapshots: '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-ia32@0.27.3': + '@esbuild/win32-ia32@0.28.1': optional: true - '@esbuild/win32-ia32@0.27.7': + '@esbuild/win32-ia32@0.28.2': optional: true '@esbuild/win32-x64@0.17.6': @@ -17670,18 +18320,18 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@esbuild/win32-x64@0.27.3': + '@esbuild/win32-x64@0.28.1': optional: true - '@esbuild/win32-x64@0.27.7': + '@esbuild/win32-x64@0.28.2': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))': + '@eslint-community/eslint-utils@4.10.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))': dependencies: eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.9.1(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))': + '@eslint-community/eslint-utils@4.10.1(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))': dependencies: eslint: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) eslint-visitor-keys: 3.4.3 @@ -17691,9 +18341,9 @@ snapshots: '@eslint-react/ast@1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)': dependencies: '@eslint-react/eff': 1.53.1 - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/typescript-estree': 8.59.4(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/typescript-estree': 8.70.0(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) string-ts: 2.3.1 ts-pattern: 5.9.0 transitivePeerDependencies: @@ -17708,11 +18358,11 @@ snapshots: '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/var': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/type-utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - birecord: 0.1.1 + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/type-utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + birecord: 0.1.2 ts-pattern: 5.9.0 transitivePeerDependencies: - eslint @@ -17726,10 +18376,10 @@ snapshots: '@eslint-react/eff': 1.53.1 '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/type-utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/type-utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) eslint-plugin-react-debug: 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) eslint-plugin-react-dom: 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) @@ -17746,9 +18396,9 @@ snapshots: '@eslint-react/kit@1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)': dependencies: '@eslint-react/eff': 1.53.1 - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) ts-pattern: 5.9.0 - zod: 4.4.3 + zod: 4.6.5 transitivePeerDependencies: - eslint - supports-color @@ -17758,9 +18408,9 @@ snapshots: dependencies: '@eslint-react/eff': 1.53.1 '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) ts-pattern: 5.9.0 - zod: 4.4.3 + zod: 4.6.5 transitivePeerDependencies: - eslint - supports-color @@ -17770,9 +18420,9 @@ snapshots: dependencies: '@eslint-react/ast': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/eff': 1.53.1 - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) string-ts: 2.3.1 ts-pattern: 5.9.0 transitivePeerDependencies: @@ -17802,7 +18452,7 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.5(supports-color@7.2.0)': + '@eslint/eslintrc@3.3.7(supports-color@7.2.0)': dependencies: ajv: 6.15.0 debug: 4.4.3(supports-color@7.2.0) @@ -17810,13 +18460,13 @@ snapshots: globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 - js-yaml: 4.1.1 + js-yaml: 4.3.2 minimatch: 3.1.5 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/eslintrc@3.3.5(supports-color@8.1.1)': + '@eslint/eslintrc@3.3.7(supports-color@8.1.1)': dependencies: ajv: 6.15.0 debug: 4.4.3(supports-color@8.1.1) @@ -17824,7 +18474,7 @@ snapshots: globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 - js-yaml: 4.1.1 + js-yaml: 4.3.2 minimatch: 3.1.5 strip-json-comments: 3.1.1 transitivePeerDependencies: @@ -17832,7 +18482,7 @@ snapshots: '@eslint/js@9.36.0': {} - '@eslint/js@9.39.4': {} + '@eslint/js@9.39.5': {} '@eslint/object-schema@2.1.7': {} @@ -17841,44 +18491,47 @@ snapshots: '@eslint/core': 0.15.2 levn: 0.4.1 - '@exodus/bytes@1.15.1': {} + '@exodus/bytes@1.15.1(@noble/hashes@2.4.0)': + optionalDependencies: + '@noble/hashes': 2.4.0 - '@expo/cli@54.0.24(expo-router@6.0.23)(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3)': + '@expo/cli@54.0.27(expo-router@6.0.24)(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3)': dependencies: - '@0no-co/graphql.web': 1.2.0 + '@0no-co/graphql.web': 1.3.4 '@expo/code-signing-certificates': 0.0.6 - '@expo/config': 12.0.13(supports-color@8.1.1) - '@expo/config-plugins': 54.0.4(supports-color@8.1.1) + '@expo/config': 12.0.14(supports-color@8.1.1) + '@expo/config-plugins': 54.0.5(supports-color@8.1.1) '@expo/devcert': 1.2.1(supports-color@8.1.1) - '@expo/env': 2.0.11(supports-color@8.1.1) - '@expo/image-utils': 0.8.14(supports-color@8.1.1)(typescript@5.9.3) + '@expo/env': 2.0.12(supports-color@8.1.1) + '@expo/image-utils': 0.8.17(supports-color@8.1.1)(typescript@5.9.3) '@expo/json-file': 10.2.0 '@expo/metro': 54.2.0(supports-color@8.1.1) - '@expo/metro-config': 54.0.15(expo@54.0.34)(supports-color@8.1.1) - '@expo/osascript': 2.6.0 - '@expo/package-manager': 1.12.0 - '@expo/plist': 0.4.8 - '@expo/prebuild-config': 54.0.8(expo@54.0.34)(supports-color@8.1.1)(typescript@5.9.3) - '@expo/schema-utils': 0.1.8 + '@expo/metro-config': 54.0.17(expo@54.0.37)(supports-color@8.1.1) + '@expo/osascript': 2.7.1 + '@expo/package-manager': 1.13.1 + '@expo/plist': 0.4.9 + '@expo/prebuild-config': 54.0.9(expo@54.0.37)(supports-color@8.1.1)(typescript@5.9.3) + '@expo/schema-utils': 0.1.9 '@expo/spawn-async': 1.8.0 '@expo/ws-tunnel': 1.0.6 - '@expo/xcpretty': 4.4.4 + '@expo/xcpretty': 4.4.5 '@react-native/dev-middleware': 0.81.5(supports-color@8.1.1) '@urql/core': 5.2.0 '@urql/exchange-retry': 1.3.2(@urql/core@5.2.0) accepts: 1.3.8 + agent-cli-detector: 0.1.7 arg: 5.0.2 better-opn: 3.0.2 bplist-creator: 0.1.0 bplist-parser: 0.3.2 chalk: 4.1.2 ci-info: 3.9.0 - compression: 1.8.1(supports-color@8.1.1) + compression: 1.8.2(supports-color@8.1.1) connect: 3.7.0(supports-color@8.1.1) debug: 4.4.3(supports-color@8.1.1) env-editor: 0.4.2 - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) - expo-server: 1.0.6 + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + expo-server: 1.0.7 freeport-async: 2.0.0 getenv: 2.0.0 glob: 13.0.6 @@ -17887,7 +18540,7 @@ snapshots: node-forge: 1.4.0 npm-package-arg: 11.0.3 ora: 3.4.0 - picomatch: 4.0.4 + picomatch: 4.0.7 pretty-bytes: 5.6.0 pretty-format: 29.7.0 progress: 2.0.3 @@ -17898,20 +18551,20 @@ snapshots: resolve: 1.22.12 resolve-from: 5.0.0 resolve.exports: 2.0.3 - semver: 7.8.1 + semver: 7.8.5 send: 0.19.2(supports-color@8.1.1) slugify: 1.6.9 source-map-support: 0.5.21 stacktrace-parser: 0.1.11 structured-headers: 0.4.1 - tar: 7.5.15 + tar: 7.5.22 terminal-link: 2.1.1 - undici: 6.26.0 + undici: 6.28.1 wrap-ansi: 7.0.0 - ws: 8.21.0 + ws: 8.21.3 optionalDependencies: - expo-router: 6.0.23(c7c2013fda48cef4065ef0e95e77f784) - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + expo-router: 6.0.24(3a123a5aaca9c4c45b93faf4bd84db41) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) transitivePeerDependencies: - bufferutil - graphql @@ -17923,18 +18576,18 @@ snapshots: dependencies: node-forge: 1.4.0 - '@expo/config-plugins@54.0.4(supports-color@8.1.1)': + '@expo/config-plugins@54.0.5(supports-color@8.1.1)': dependencies: '@expo/config-types': 54.0.10 - '@expo/json-file': 10.0.15 - '@expo/plist': 0.4.8 + '@expo/json-file': 10.0.16 + '@expo/plist': 0.4.9 '@expo/sdk-runtime-versions': 1.0.0 chalk: 4.1.2 debug: 4.4.3(supports-color@8.1.1) getenv: 2.0.0 glob: 13.0.6 resolve-from: 5.0.0 - semver: 7.8.1 + semver: 7.8.5 slash: 3.0.0 slugify: 1.6.9 xcode: 3.0.1 @@ -17944,10 +18597,10 @@ snapshots: '@expo/config-types@54.0.10': {} - '@expo/config@12.0.13(supports-color@8.1.1)': + '@expo/config@12.0.14(supports-color@8.1.1)': dependencies: '@babel/code-frame': 7.10.4 - '@expo/config-plugins': 54.0.4(supports-color@8.1.1) + '@expo/config-plugins': 54.0.5(supports-color@8.1.1) '@expo/config-types': 54.0.10 '@expo/json-file': 10.2.0 deepmerge: 4.3.1 @@ -17956,7 +18609,7 @@ snapshots: require-from-string: 2.0.2 resolve-from: 5.0.0 resolve-workspace-root: 2.0.1 - semver: 7.8.1 + semver: 7.8.5 slugify: 1.6.9 sucrase: 3.35.1 transitivePeerDependencies: @@ -17969,14 +18622,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/devtools@0.1.8(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': + '@expo/devtools@0.1.8(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': dependencies: chalk: 4.1.2 optionalDependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) - '@expo/env@2.0.11(supports-color@8.1.1)': + '@expo/env@2.0.12(supports-color@8.1.1)': dependencies: chalk: 4.1.2 debug: 4.4.3(supports-color@8.1.1) @@ -17995,29 +18648,29 @@ snapshots: getenv: 2.0.0 glob: 13.0.6 ignore: 5.3.2 - minimatch: 10.2.5 + minimatch: 10.2.6 p-limit: 3.1.0 resolve-from: 5.0.0 - semver: 7.8.1 + semver: 7.8.5 transitivePeerDependencies: - supports-color - '@expo/image-utils@0.8.14(supports-color@8.1.1)(typescript@5.9.3)': + '@expo/image-utils@0.8.17(supports-color@8.1.1)(typescript@5.9.3)': dependencies: - '@expo/require-utils': 55.0.5(supports-color@8.1.1)(typescript@5.9.3) + '@expo/require-utils': 55.0.8(supports-color@8.1.1)(typescript@5.9.3) '@expo/spawn-async': 1.8.0 chalk: 4.1.2 getenv: 2.0.0 jimp-compact: 0.16.1 parse-png: 2.1.0 - semver: 7.8.1 + semver: 7.8.5 transitivePeerDependencies: - supports-color - typescript - '@expo/json-file@10.0.15': + '@expo/json-file@10.0.16': dependencies: - '@babel/code-frame': 7.29.7 + '@babel/code-frame': 7.10.4 json5: 2.2.3 '@expo/json-file@10.2.0': @@ -18025,17 +18678,22 @@ snapshots: '@babel/code-frame': 7.29.7 json5: 2.2.3 - '@expo/metro-config@54.0.15(expo@54.0.34)(supports-color@8.1.1)': + '@expo/json-file@11.0.1': + dependencies: + '@babel/code-frame': 7.29.7 + json5: 2.2.3 + + '@expo/metro-config@54.0.17(expo@54.0.37)(supports-color@8.1.1)': dependencies: '@babel/code-frame': 7.29.7 '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/generator': 7.29.7 - '@expo/config': 12.0.13(supports-color@8.1.1) - '@expo/env': 2.0.11(supports-color@8.1.1) - '@expo/json-file': 10.0.15 + '@babel/generator': 7.29.8 + '@expo/config': 12.0.14(supports-color@8.1.1) + '@expo/env': 2.0.12(supports-color@8.1.1) + '@expo/json-file': 10.0.16 '@expo/metro': 54.2.0(supports-color@8.1.1) '@expo/spawn-async': 1.8.0 - browserslist: 4.28.2 + browserslist: 4.29.0 chalk: 4.1.2 debug: 4.4.3(supports-color@8.1.1) dotenv: 16.4.7 @@ -18044,24 +18702,24 @@ snapshots: glob: 13.0.6 hermes-parser: 0.29.1 jsc-safe-url: 0.2.4 - lightningcss: 1.32.0 - picomatch: 4.0.4 + lightningcss: 1.33.0 + picomatch: 4.0.7 postcss: 8.4.49 resolve-from: 5.0.0 optionalDependencies: - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@expo/metro-runtime@6.1.2(expo@54.0.34)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': + '@expo/metro-runtime@6.1.2(expo@54.0.37)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': dependencies: anser: 1.4.10 - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) pretty-format: 29.7.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) stacktrace-parser: 0.1.11 whatwg-fetch: 3.6.20 optionalDependencies: @@ -18088,43 +18746,43 @@ snapshots: - supports-color - utf-8-validate - '@expo/osascript@2.6.0': + '@expo/osascript@2.7.1': dependencies: '@expo/spawn-async': 1.8.0 - '@expo/package-manager@1.12.0': + '@expo/package-manager@1.13.1': dependencies: - '@expo/json-file': 10.2.0 + '@expo/json-file': 11.0.1 '@expo/spawn-async': 1.8.0 chalk: 4.1.2 npm-package-arg: 11.0.3 ora: 3.4.0 resolve-workspace-root: 2.0.1 - '@expo/plist@0.4.8': + '@expo/plist@0.4.9': dependencies: - '@xmldom/xmldom': 0.8.13 + '@xmldom/xmldom': 0.8.15 base64-js: 1.5.1 xmlbuilder: 15.1.1 - '@expo/prebuild-config@54.0.8(expo@54.0.34)(supports-color@8.1.1)(typescript@5.9.3)': + '@expo/prebuild-config@54.0.9(expo@54.0.37)(supports-color@8.1.1)(typescript@5.9.3)': dependencies: - '@expo/config': 12.0.13(supports-color@8.1.1) - '@expo/config-plugins': 54.0.4(supports-color@8.1.1) + '@expo/config': 12.0.14(supports-color@8.1.1) + '@expo/config-plugins': 54.0.5(supports-color@8.1.1) '@expo/config-types': 54.0.10 - '@expo/image-utils': 0.8.14(supports-color@8.1.1)(typescript@5.9.3) + '@expo/image-utils': 0.8.17(supports-color@8.1.1)(typescript@5.9.3) '@expo/json-file': 10.2.0 '@react-native/normalize-colors': 0.81.5 debug: 4.4.3(supports-color@8.1.1) - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) resolve-from: 5.0.0 - semver: 7.8.1 + semver: 7.8.5 xml2js: 0.6.0 transitivePeerDependencies: - supports-color - typescript - '@expo/require-utils@55.0.5(supports-color@8.1.1)(typescript@5.9.3)': + '@expo/require-utils@55.0.8(supports-color@8.1.1)(typescript@5.9.3)': dependencies: '@babel/code-frame': 7.29.7 '@babel/core': 7.29.7(supports-color@8.1.1) @@ -18134,7 +18792,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/schema-utils@0.1.8': {} + '@expo/schema-utils@0.1.9': {} '@expo/sdk-runtime-versions@1.0.0': {} @@ -18144,44 +18802,44 @@ snapshots: '@expo/sudo-prompt@9.3.2': {} - '@expo/vector-icons@15.1.1(expo-font@14.0.11(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': + '@expo/vector-icons@15.1.1(expo-font@14.0.12(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': dependencies: - expo-font: 14.0.11(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + expo-font: 14.0.12(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) '@expo/ws-tunnel@1.0.6': {} - '@expo/xcpretty@4.4.4': + '@expo/xcpretty@4.4.5': dependencies: '@babel/code-frame': 7.29.7 chalk: 4.1.2 - js-yaml: 4.1.1 + js-yaml: 4.3.2 - '@floating-ui/core@1.7.5': + '@floating-ui/core@1.8.0': dependencies: - '@floating-ui/utils': 0.2.11 + '@floating-ui/utils': 0.2.12 - '@floating-ui/dom@1.7.6': + '@floating-ui/dom@1.8.0': dependencies: - '@floating-ui/core': 1.7.5 - '@floating-ui/utils': 0.2.11 + '@floating-ui/core': 1.8.0 + '@floating-ui/utils': 0.2.12 - '@floating-ui/react-dom@2.1.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@floating-ui/react-dom@2.1.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@floating-ui/dom': 1.7.6 + '@floating-ui/dom': 1.8.0 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) '@floating-ui/react@0.26.28(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@floating-ui/react-dom': 2.1.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@floating-ui/utils': 0.2.11 + '@floating-ui/react-dom': 2.1.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@floating-ui/utils': 0.2.12 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - tabbable: 6.4.0 + tabbable: 6.5.0 - '@floating-ui/utils@0.2.11': {} + '@floating-ui/utils@0.2.12': {} '@gar/promise-retry@1.0.3': {} @@ -18196,9 +18854,9 @@ snapshots: '@harperfast/extended-iterable@1.0.3': optional: true - '@hono/node-server@1.19.14(hono@4.12.23)': + '@hono/node-server@2.1.1(hono@4.13.8)': dependencies: - hono: 4.12.23 + hono: 4.13.8 '@humanfs/core@0.19.2': dependencies: @@ -18301,7 +18959,7 @@ snapshots: '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.10.0 + '@emnapi/runtime': 1.11.3 optional: true '@img/sharp-win32-arm64@0.34.5': @@ -18315,128 +18973,128 @@ snapshots: '@inquirer/ansi@1.0.2': {} - '@inquirer/checkbox@4.3.2(@types/node@24.12.4)': + '@inquirer/checkbox@4.3.2(@types/node@24.13.6)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/core': 10.3.2(@types/node@24.13.6) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.13.6) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 - '@inquirer/confirm@5.1.21(@types/node@24.12.4)': + '@inquirer/confirm@5.1.21(@types/node@24.13.6)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.12.4) - '@inquirer/type': 3.0.10(@types/node@24.12.4) + '@inquirer/core': 10.3.2(@types/node@24.13.6) + '@inquirer/type': 3.0.10(@types/node@24.13.6) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 - '@inquirer/core@10.3.2(@types/node@24.12.4)': + '@inquirer/core@10.3.2(@types/node@24.13.6)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.13.6) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 - '@inquirer/editor@4.2.23(@types/node@24.12.4)': + '@inquirer/editor@4.2.23(@types/node@24.13.6)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.12.4) - '@inquirer/external-editor': 1.0.3(@types/node@24.12.4) - '@inquirer/type': 3.0.10(@types/node@24.12.4) + '@inquirer/core': 10.3.2(@types/node@24.13.6) + '@inquirer/external-editor': 1.0.3(@types/node@24.13.6) + '@inquirer/type': 3.0.10(@types/node@24.13.6) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 - '@inquirer/expand@4.0.23(@types/node@24.12.4)': + '@inquirer/expand@4.0.23(@types/node@24.13.6)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.12.4) - '@inquirer/type': 3.0.10(@types/node@24.12.4) + '@inquirer/core': 10.3.2(@types/node@24.13.6) + '@inquirer/type': 3.0.10(@types/node@24.13.6) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 - '@inquirer/external-editor@1.0.3(@types/node@24.12.4)': + '@inquirer/external-editor@1.0.3(@types/node@24.13.6)': dependencies: - chardet: 2.1.1 - iconv-lite: 0.7.2 + chardet: 2.2.0 + iconv-lite: 0.7.3 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 '@inquirer/figures@1.0.15': {} - '@inquirer/input@4.3.1(@types/node@24.12.4)': + '@inquirer/input@4.3.1(@types/node@24.13.6)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.12.4) - '@inquirer/type': 3.0.10(@types/node@24.12.4) + '@inquirer/core': 10.3.2(@types/node@24.13.6) + '@inquirer/type': 3.0.10(@types/node@24.13.6) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 - '@inquirer/number@3.0.23(@types/node@24.12.4)': + '@inquirer/number@3.0.23(@types/node@24.13.6)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.12.4) - '@inquirer/type': 3.0.10(@types/node@24.12.4) + '@inquirer/core': 10.3.2(@types/node@24.13.6) + '@inquirer/type': 3.0.10(@types/node@24.13.6) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 - '@inquirer/password@4.0.23(@types/node@24.12.4)': + '@inquirer/password@4.0.23(@types/node@24.13.6)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@24.12.4) - '@inquirer/type': 3.0.10(@types/node@24.12.4) + '@inquirer/core': 10.3.2(@types/node@24.13.6) + '@inquirer/type': 3.0.10(@types/node@24.13.6) optionalDependencies: - '@types/node': 24.12.4 - - '@inquirer/prompts@7.10.1(@types/node@24.12.4)': - dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@24.12.4) - '@inquirer/confirm': 5.1.21(@types/node@24.12.4) - '@inquirer/editor': 4.2.23(@types/node@24.12.4) - '@inquirer/expand': 4.0.23(@types/node@24.12.4) - '@inquirer/input': 4.3.1(@types/node@24.12.4) - '@inquirer/number': 3.0.23(@types/node@24.12.4) - '@inquirer/password': 4.0.23(@types/node@24.12.4) - '@inquirer/rawlist': 4.1.11(@types/node@24.12.4) - '@inquirer/search': 3.2.2(@types/node@24.12.4) - '@inquirer/select': 4.4.2(@types/node@24.12.4) + '@types/node': 24.13.6 + + '@inquirer/prompts@7.10.1(@types/node@24.13.6)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@24.13.6) + '@inquirer/confirm': 5.1.21(@types/node@24.13.6) + '@inquirer/editor': 4.2.23(@types/node@24.13.6) + '@inquirer/expand': 4.0.23(@types/node@24.13.6) + '@inquirer/input': 4.3.1(@types/node@24.13.6) + '@inquirer/number': 3.0.23(@types/node@24.13.6) + '@inquirer/password': 4.0.23(@types/node@24.13.6) + '@inquirer/rawlist': 4.1.11(@types/node@24.13.6) + '@inquirer/search': 3.2.2(@types/node@24.13.6) + '@inquirer/select': 4.4.2(@types/node@24.13.6) optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 - '@inquirer/rawlist@4.1.11(@types/node@24.12.4)': + '@inquirer/rawlist@4.1.11(@types/node@24.13.6)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.12.4) - '@inquirer/type': 3.0.10(@types/node@24.12.4) + '@inquirer/core': 10.3.2(@types/node@24.13.6) + '@inquirer/type': 3.0.10(@types/node@24.13.6) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 - '@inquirer/search@3.2.2(@types/node@24.12.4)': + '@inquirer/search@3.2.2(@types/node@24.13.6)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/core': 10.3.2(@types/node@24.13.6) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.13.6) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 - '@inquirer/select@4.4.2(@types/node@24.12.4)': + '@inquirer/select@4.4.2(@types/node@24.13.6)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/core': 10.3.2(@types/node@24.13.6) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.13.6) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 - '@inquirer/type@3.0.10(@types/node@24.12.4)': + '@inquirer/type@3.0.10(@types/node@24.13.6)': optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 '@isaacs/cliui@8.0.2': dependencies: @@ -18458,7 +19116,7 @@ snapshots: camelcase: 5.3.1 find-up: 4.1.0 get-package-type: 0.1.0 - js-yaml: 3.14.2 + js-yaml: 3.15.2 resolve-from: 5.0.0 '@istanbuljs/schema@0.1.6': {} @@ -18473,21 +19131,21 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 24.12.4 + '@types/node': 24.13.6 jest-mock: 29.7.0 '@jest/fake-timers@29.7.0': dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 24.12.4 + '@types/node': 24.13.6 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 '@jest/schemas@29.6.3': dependencies: - '@sinclair/typebox': 0.27.10 + '@sinclair/typebox': 0.27.12 '@jest/transform@29.7.0(supports-color@8.1.1)': dependencies: @@ -18514,13 +19172,13 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 24.12.4 + '@types/node': 24.13.6 '@types/yargs': 17.0.35 chalk: 4.1.2 '@jridgewell/gen-mapping@0.3.13': dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/remapping@2.3.5': @@ -18535,12 +19193,17 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/sourcemap-codec@1.6.0': {} '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.6.0 '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': dependencies: @@ -18566,58 +19229,59 @@ snapshots: dependencies: tslib: 2.8.1 - '@jsonjoy.com/fs-core@4.57.2(tslib@2.8.1)': + '@jsonjoy.com/fs-core@4.78.1(tslib@2.8.1)': dependencies: - '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) - thingies: 2.6.0(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.78.1(tslib@2.8.1) + thingies: 2.6.1(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-fsa@4.57.2(tslib@2.8.1)': + '@jsonjoy.com/fs-fsa@4.78.1(tslib@2.8.1)': dependencies: - '@jsonjoy.com/fs-core': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) - thingies: 2.6.0(tslib@2.8.1) + '@jsonjoy.com/fs-core': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.78.1(tslib@2.8.1) + thingies: 2.6.1(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-node-builtins@4.57.2(tslib@2.8.1)': + '@jsonjoy.com/fs-node-builtins@4.78.1(tslib@2.8.1)': dependencies: tslib: 2.8.1 - '@jsonjoy.com/fs-node-to-fsa@4.57.2(tslib@2.8.1)': + '@jsonjoy.com/fs-node-to-fsa@4.78.1(tslib@2.8.1)': dependencies: - '@jsonjoy.com/fs-fsa': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-fsa': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.78.1(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-node-utils@4.57.2(tslib@2.8.1)': + '@jsonjoy.com/fs-node-utils@4.78.1(tslib@2.8.1)': dependencies: - '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.78.1(tslib@2.8.1) + glob-to-regex.js: 1.3.1(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-node@4.57.2(tslib@2.8.1)': + '@jsonjoy.com/fs-node@4.78.1(tslib@2.8.1)': dependencies: - '@jsonjoy.com/fs-core': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-print': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-snapshot': 4.57.2(tslib@2.8.1) - glob-to-regex.js: 1.2.0(tslib@2.8.1) - thingies: 2.6.0(tslib@2.8.1) + '@jsonjoy.com/fs-core': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-print': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-snapshot': 4.78.1(tslib@2.8.1) + glob-to-regex.js: 1.3.1(tslib@2.8.1) + thingies: 2.6.1(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-print@4.57.2(tslib@2.8.1)': + '@jsonjoy.com/fs-print@4.78.1(tslib@2.8.1)': dependencies: - '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.78.1(tslib@2.8.1) tree-dump: 1.1.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-snapshot@4.57.2(tslib@2.8.1)': + '@jsonjoy.com/fs-snapshot@4.78.1(tslib@2.8.1)': dependencies: '@jsonjoy.com/buffers': 17.67.0(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.78.1(tslib@2.8.1) '@jsonjoy.com/json-pack': 17.67.0(tslib@2.8.1) '@jsonjoy.com/util': 17.67.0(tslib@2.8.1) tslib: 2.8.1 @@ -18630,7 +19294,7 @@ snapshots: '@jsonjoy.com/json-pointer': 1.0.2(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) hyperdyperid: 1.2.0 - thingies: 2.6.0(tslib@2.8.1) + thingies: 2.6.1(tslib@2.8.1) tree-dump: 1.1.0(tslib@2.8.1) tslib: 2.8.1 @@ -18642,7 +19306,7 @@ snapshots: '@jsonjoy.com/json-pointer': 17.67.0(tslib@2.8.1) '@jsonjoy.com/util': 17.67.0(tslib@2.8.1) hyperdyperid: 1.2.0 - thingies: 2.6.0(tslib@2.8.1) + thingies: 2.6.1(tslib@2.8.1) tree-dump: 1.1.0(tslib@2.8.1) tslib: 2.8.1 @@ -18673,16 +19337,20 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.5(@inquirer/prompts@7.10.1(@types/node@24.12.4))(@types/node@24.12.4)(listr2@9.0.5)': + '@listr2/prompt-adapter-inquirer@3.0.5(@inquirer/prompts@7.10.1(@types/node@24.13.6))(@types/node@24.13.6)(listr2@9.0.5)': dependencies: - '@inquirer/prompts': 7.10.1(@types/node@24.12.4) - '@inquirer/type': 3.0.10(@types/node@24.12.4) + '@inquirer/prompts': 7.10.1(@types/node@24.13.6) + '@inquirer/type': 3.0.10(@types/node@24.13.6) listr2: 9.0.5 transitivePeerDependencies: - '@types/node' '@lit-labs/ssr-dom-shim@1.6.0': {} + '@lit/context@1.1.6': + dependencies: + '@lit/reactive-element': 2.1.2 + '@lit/reactive-element@2.1.2': dependencies: '@lit-labs/ssr-dom-shim': 1.6.0 @@ -18708,7 +19376,7 @@ snapshots: '@lmdb/lmdb-win32-x64@3.5.1': optional: true - '@mantine/core@7.17.8(@mantine/hooks@7.17.8(react@19.1.0))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@mantine/core@7.17.8(@mantine/hooks@7.17.8(react@19.1.0))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@floating-ui/react': 0.26.28(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/hooks': 7.17.8(react@19.1.0) @@ -18716,8 +19384,8 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) react-number-format: 5.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.1.0) - react-textarea-autosize: 8.5.9(@types/react@19.2.17)(react@19.1.0) + react-remove-scroll: 2.7.2(@types/react@19.2.18)(react@19.1.0) + react-textarea-autosize: 8.5.9(@types/react@19.2.18)(react@19.1.0) type-fest: 4.41.0 transitivePeerDependencies: - '@types/react' @@ -18738,18 +19406,19 @@ snapshots: '@manypkg/tools@2.1.2': dependencies: jju: 1.4.0 - tinyglobby: 0.2.16 - yaml: 2.9.0 + tinyglobby: 0.2.17 + yaml: 2.9.1 - '@material/web@2.4.1': + '@material/web@2.5.0': dependencies: + '@lit/context': 1.1.6 lit: 3.3.3 tslib: 2.8.1 '@mdx-js/mdx@2.3.0(supports-color@8.1.1)': dependencies: '@types/estree-jsx': 1.0.5 - '@types/mdx': 2.0.13 + '@types/mdx': 2.0.14 estree-util-build-jsx: 2.2.2 estree-util-is-identifier-name: 2.1.0 estree-util-to-js: 1.2.0 @@ -18768,23 +19437,23 @@ snapshots: transitivePeerDependencies: - supports-color - '@microsoft/api-extractor-model@7.29.6(@types/node@24.12.4)': + '@microsoft/api-extractor-model@7.29.6(@types/node@24.13.6)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.7.0(@types/node@24.12.4) + '@rushstack/node-core-library': 5.7.0(@types/node@24.13.6) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.47.7(@types/node@24.12.4)': + '@microsoft/api-extractor@7.47.7(@types/node@24.13.6)': dependencies: - '@microsoft/api-extractor-model': 7.29.6(@types/node@24.12.4) + '@microsoft/api-extractor-model': 7.29.6(@types/node@24.13.6) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.7.0(@types/node@24.12.4) + '@rushstack/node-core-library': 5.7.0(@types/node@24.13.6) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.14.0(@types/node@24.12.4) - '@rushstack/ts-command-line': 4.22.6(@types/node@24.12.4) + '@rushstack/terminal': 0.14.0(@types/node@24.13.6) + '@rushstack/ts-command-line': 4.22.6(@types/node@24.13.6) lodash: 4.17.23 minimatch: 3.0.8 resolve: 1.22.12 @@ -18803,20 +19472,20 @@ snapshots: '@microsoft/tsdoc@0.15.1': {} - '@modelcontextprotocol/sdk@1.26.0(supports-color@8.1.1)(zod@4.3.6)': + '@modelcontextprotocol/sdk@1.30.0(supports-color@8.1.1)(zod@4.3.6)': dependencies: - '@hono/node-server': 1.19.14(hono@4.12.23) + '@hono/node-server': 2.1.1(hono@4.13.8) ajv: 8.20.0 ajv-formats: 3.0.1(ajv@8.20.0) content-type: 1.0.5 cors: 2.8.6 cross-spawn: 7.0.6 eventsource: 3.0.7 - eventsource-parser: 3.0.8 + eventsource-parser: 3.1.1 express: 5.2.1(supports-color@8.1.1) - express-rate-limit: 8.5.2(express@5.2.1(supports-color@8.1.1)) - hono: 4.12.23 - jose: 6.2.3 + express-rate-limit: 8.7.0(express@5.2.1(supports-color@8.1.1))(supports-color@8.1.1) + hono: 4.13.8 + jose: 6.2.12 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 @@ -18845,37 +19514,37 @@ snapshots: '@mui/core-downloads-tracker@6.5.0': {} - '@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@babel/runtime': 7.29.7 '@mui/core-downloads-tracker': 6.5.0 - '@mui/system': 6.5.0(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0) - '@mui/types': 7.2.24(@types/react@19.2.17) - '@mui/utils': 6.4.9(@types/react@19.2.17)(react@19.1.0) + '@mui/system': 6.5.0(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0) + '@mui/types': 7.2.24(@types/react@19.2.18) + '@mui/utils': 6.4.9(@types/react@19.2.18)(react@19.1.0) '@popperjs/core': 2.11.8 - '@types/react-transition-group': 4.4.12(@types/react@19.2.17) + '@types/react-transition-group': 4.4.12(@types/react@19.2.18) clsx: 2.1.1 csstype: 3.2.3 prop-types: 15.8.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-is: 19.2.6 + react-is: 19.3.0 react-transition-group: 4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) - '@types/react': 19.2.17 + '@emotion/react': 11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) + '@types/react': 19.2.18 - '@mui/private-theming@6.4.9(@types/react@19.2.17)(react@19.1.0)': + '@mui/private-theming@6.4.9(@types/react@19.2.18)(react@19.1.0)': dependencies: '@babel/runtime': 7.29.7 - '@mui/utils': 6.4.9(@types/react@19.2.17)(react@19.1.0) + '@mui/utils': 6.4.9(@types/react@19.2.18)(react@19.1.0) prop-types: 15.8.1 react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@mui/styled-engine@6.5.0(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': + '@mui/styled-engine@6.5.0(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': dependencies: '@babel/runtime': 7.29.7 '@emotion/cache': 11.14.0 @@ -18885,40 +19554,43 @@ snapshots: prop-types: 15.8.1 react: 19.1.0 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + '@emotion/react': 11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) - '@mui/system@6.5.0(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)': + '@mui/system@6.5.0(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)': dependencies: '@babel/runtime': 7.29.7 - '@mui/private-theming': 6.4.9(@types/react@19.2.17)(react@19.1.0) - '@mui/styled-engine': 6.5.0(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) - '@mui/types': 7.2.24(@types/react@19.2.17) - '@mui/utils': 6.4.9(@types/react@19.2.17)(react@19.1.0) + '@mui/private-theming': 6.4.9(@types/react@19.2.18)(react@19.1.0) + '@mui/styled-engine': 6.5.0(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + '@mui/types': 7.2.24(@types/react@19.2.18) + '@mui/utils': 6.4.9(@types/react@19.2.18)(react@19.1.0) clsx: 2.1.1 csstype: 3.2.3 prop-types: 15.8.1 react: 19.1.0 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) - '@types/react': 19.2.17 + '@emotion/react': 11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) + '@types/react': 19.2.18 - '@mui/types@7.2.24(@types/react@19.2.17)': + '@mui/types@7.2.24(@types/react@19.2.18)': optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@mui/utils@6.4.9(@types/react@19.2.17)(react@19.1.0)': + '@mui/utils@6.4.9(@types/react@19.2.18)(react@19.1.0)': dependencies: '@babel/runtime': 7.29.7 - '@mui/types': 7.2.24(@types/react@19.2.17) + '@mui/types': 7.2.24(@types/react@19.2.18) '@types/prop-types': 15.7.15 clsx: 2.1.1 prop-types: 15.8.1 react: 19.1.0 - react-is: 19.2.6 + react-is: 19.3.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 + + '@napi-rs/lzma-linux-x64-gnu@1.5.1': + optional: true '@napi-rs/nice-android-arm-eabi@1.1.1': optional: true @@ -18994,28 +19666,28 @@ snapshots: '@napi-rs/wasm-runtime@0.2.4': dependencies: - '@emnapi/core': 1.11.2 - '@emnapi/runtime': 1.11.2 + '@emnapi/core': 1.4.5 + '@emnapi/runtime': 1.4.5 '@tybys/wasm-util': 0.9.0 - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + '@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 - '@tybys/wasm-util': 0.10.2 + '@tybys/wasm-util': 0.10.4 optional: true - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': + '@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': dependencies: '@emnapi/core': 1.11.2 '@emnapi/runtime': 1.11.2 - '@tybys/wasm-util': 0.10.2 + '@tybys/wasm-util': 0.10.4 optional: true - '@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': + '@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)': dependencies: '@emnapi/core': 1.11.2 - '@emnapi/runtime': 1.11.2 + '@emnapi/runtime': 1.11.3 '@tybys/wasm-util': 0.10.4 optional: true @@ -19045,13 +19717,15 @@ snapshots: '@next/swc-win32-x64-msvc@16.2.6': optional: true - '@ngtools/webpack@21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12))': + '@ngtools/webpack@21.2.24(@angular/compiler-cli@21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23))': dependencies: - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) + '@angular/compiler-cli': 21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3) typescript: 5.9.3 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) - '@noble/hashes@1.4.0': {} + '@noble/hashes@1.8.0': {} + + '@noble/hashes@2.4.0': {} '@nodelib/fs.scandir@2.1.5': dependencies: @@ -19063,27 +19737,27 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 + fastq: 1.20.3 '@nolyfill/is-core-module@1.0.39': {} - '@npmcli/agent@4.0.0(supports-color@8.1.1)': + '@npmcli/agent@4.0.2(supports-color@8.1.1)': dependencies: agent-base: 7.1.4 http-proxy-agent: 7.0.2(supports-color@8.1.1) https-proxy-agent: 7.0.6(supports-color@8.1.1) - lru-cache: 11.5.0 + lru-cache: 11.5.3 socks-proxy-agent: 8.0.5(supports-color@8.1.1) transitivePeerDependencies: - supports-color '@npmcli/fs@3.1.1': dependencies: - semver: 7.8.1 + semver: 7.8.5 '@npmcli/fs@5.0.0': dependencies: - semver: 7.8.1 + semver: 7.7.4 '@npmcli/git@4.1.0': dependencies: @@ -19093,7 +19767,7 @@ snapshots: proc-log: 3.0.0 promise-inflight: 1.0.1 promise-retry: 2.0.1 - semver: 7.8.1 + semver: 7.8.5 which: 3.0.1 transitivePeerDependencies: - bluebird @@ -19103,10 +19777,10 @@ snapshots: '@gar/promise-retry': 1.0.3 '@npmcli/promise-spawn': 9.0.1 ini: 6.0.0 - lru-cache: 11.5.0 + lru-cache: 11.5.3 npm-pick-manifest: 11.0.3 proc-log: 6.1.0 - semver: 7.8.1 + semver: 7.7.4 which: 6.0.1 '@npmcli/installed-package-contents@4.0.0': @@ -19124,7 +19798,7 @@ snapshots: json-parse-even-better-errors: 3.0.2 normalize-package-data: 5.0.0 proc-log: 3.0.0 - semver: 7.8.1 + semver: 7.8.5 transitivePeerDependencies: - bluebird @@ -19135,7 +19809,7 @@ snapshots: hosted-git-info: 9.0.3 json-parse-even-better-errors: 5.0.0 proc-log: 6.1.0 - semver: 7.8.1 + semver: 7.7.4 spdx-expression-parse: 4.0.0 '@npmcli/promise-spawn@6.0.2': @@ -19153,7 +19827,7 @@ snapshots: '@npmcli/node-gyp': 5.0.0 '@npmcli/package-json': 7.0.5 '@npmcli/promise-spawn': 9.0.1 - node-gyp: 12.3.0 + node-gyp: 12.4.0 proc-log: 6.1.0 '@nx/nx-darwin-arm64@23.2.1': @@ -19186,7 +19860,12 @@ snapshots: '@nx/nx-win32-x64-msvc@23.2.1': optional: true - '@one-ini/wasm@0.1.1': {} + '@octanejs/testing-library@0.1.52(octane@0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))': + dependencies: + '@testing-library/dom': 10.4.2 + octane: 0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + + '@one-ini/wasm@0.2.1': {} '@oozcitak/dom@2.0.2': dependencies: @@ -19301,9 +19980,9 @@ snapshots: '@oxc-parser/binding-openharmony-arm64@0.150.0': optional: true - '@oxc-parser/binding-wasm32-wasi@0.121.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': + '@oxc-parser/binding-wasm32-wasi@0.121.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)': dependencies: - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -19333,269 +20012,332 @@ snapshots: '@oxc-project/types@0.127.0': {} + '@oxc-project/types@0.140.0': {} + '@oxc-project/types@0.150.0': {} - '@oxc-resolver/binding-android-arm-eabi@11.19.1': + '@oxc-resolver/binding-android-arm-eabi@11.24.2': + optional: true + + '@oxc-resolver/binding-android-arm64@11.24.2': optional: true - '@oxc-resolver/binding-android-arm-eabi@11.24.2': + '@oxc-resolver/binding-darwin-arm64@11.24.2': optional: true - '@oxc-resolver/binding-android-arm64@11.19.1': + '@oxc-resolver/binding-darwin-x64@11.24.2': optional: true - '@oxc-resolver/binding-android-arm64@11.24.2': + '@oxc-resolver/binding-freebsd-x64@11.24.2': optional: true - '@oxc-resolver/binding-darwin-arm64@11.19.1': + '@oxc-resolver/binding-linux-arm-gnueabihf@11.24.2': optional: true - '@oxc-resolver/binding-darwin-arm64@11.24.2': + '@oxc-resolver/binding-linux-arm-musleabihf@11.24.2': optional: true - '@oxc-resolver/binding-darwin-x64@11.19.1': + '@oxc-resolver/binding-linux-arm64-gnu@11.24.2': optional: true - '@oxc-resolver/binding-darwin-x64@11.24.2': + '@oxc-resolver/binding-linux-arm64-musl@11.24.2': optional: true - '@oxc-resolver/binding-freebsd-x64@11.19.1': + '@oxc-resolver/binding-linux-ppc64-gnu@11.24.2': optional: true - '@oxc-resolver/binding-freebsd-x64@11.24.2': + '@oxc-resolver/binding-linux-riscv64-gnu@11.24.2': optional: true - '@oxc-resolver/binding-linux-arm-gnueabihf@11.19.1': + '@oxc-resolver/binding-linux-riscv64-musl@11.24.2': optional: true - '@oxc-resolver/binding-linux-arm-gnueabihf@11.24.2': + '@oxc-resolver/binding-linux-s390x-gnu@11.24.2': optional: true - '@oxc-resolver/binding-linux-arm-musleabihf@11.19.1': + '@oxc-resolver/binding-linux-x64-gnu@11.24.2': optional: true - '@oxc-resolver/binding-linux-arm-musleabihf@11.24.2': + '@oxc-resolver/binding-linux-x64-musl@11.24.2': optional: true - '@oxc-resolver/binding-linux-arm64-gnu@11.19.1': + '@oxc-resolver/binding-openharmony-arm64@11.24.2': optional: true - '@oxc-resolver/binding-linux-arm64-gnu@11.24.2': + '@oxc-resolver/binding-wasm32-wasi@11.24.2': + dependencies: + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 + '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) optional: true - '@oxc-resolver/binding-linux-arm64-musl@11.19.1': + '@oxc-resolver/binding-win32-arm64-msvc@11.24.2': optional: true - '@oxc-resolver/binding-linux-arm64-musl@11.24.2': + '@oxc-resolver/binding-win32-x64-msvc@11.24.2': optional: true - '@oxc-resolver/binding-linux-ppc64-gnu@11.19.1': + '@oxfmt/binding-android-arm-eabi@0.59.0': optional: true - '@oxc-resolver/binding-linux-ppc64-gnu@11.24.2': + '@oxfmt/binding-android-arm64@0.59.0': optional: true - '@oxc-resolver/binding-linux-riscv64-gnu@11.19.1': + '@oxfmt/binding-darwin-arm64@0.59.0': optional: true - '@oxc-resolver/binding-linux-riscv64-gnu@11.24.2': + '@oxfmt/binding-darwin-x64@0.59.0': optional: true - '@oxc-resolver/binding-linux-riscv64-musl@11.19.1': + '@oxfmt/binding-freebsd-x64@0.59.0': optional: true - '@oxc-resolver/binding-linux-riscv64-musl@11.24.2': + '@oxfmt/binding-linux-arm-gnueabihf@0.59.0': optional: true - '@oxc-resolver/binding-linux-s390x-gnu@11.19.1': + '@oxfmt/binding-linux-arm-musleabihf@0.59.0': optional: true - '@oxc-resolver/binding-linux-s390x-gnu@11.24.2': + '@oxfmt/binding-linux-arm64-gnu@0.59.0': optional: true - '@oxc-resolver/binding-linux-x64-gnu@11.19.1': + '@oxfmt/binding-linux-arm64-musl@0.59.0': optional: true - '@oxc-resolver/binding-linux-x64-gnu@11.24.2': + '@oxfmt/binding-linux-ppc64-gnu@0.59.0': optional: true - '@oxc-resolver/binding-linux-x64-musl@11.19.1': + '@oxfmt/binding-linux-riscv64-gnu@0.59.0': optional: true - '@oxc-resolver/binding-linux-x64-musl@11.24.2': + '@oxfmt/binding-linux-riscv64-musl@0.59.0': optional: true - '@oxc-resolver/binding-openharmony-arm64@11.19.1': + '@oxfmt/binding-linux-s390x-gnu@0.59.0': optional: true - '@oxc-resolver/binding-openharmony-arm64@11.24.2': + '@oxfmt/binding-linux-x64-gnu@0.59.0': optional: true - '@oxc-resolver/binding-wasm32-wasi@11.19.1(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': - dependencies: - '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' + '@oxfmt/binding-linux-x64-musl@0.59.0': optional: true - '@oxc-resolver/binding-wasm32-wasi@11.24.2': - dependencies: - '@emnapi/core': 1.11.2 - '@emnapi/runtime': 1.11.2 - '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + '@oxfmt/binding-openharmony-arm64@0.59.0': optional: true - '@oxc-resolver/binding-win32-arm64-msvc@11.19.1': + '@oxfmt/binding-win32-arm64-msvc@0.59.0': optional: true - '@oxc-resolver/binding-win32-arm64-msvc@11.24.2': + '@oxfmt/binding-win32-ia32-msvc@0.59.0': optional: true - '@oxc-resolver/binding-win32-ia32-msvc@11.19.1': + '@oxfmt/binding-win32-x64-msvc@0.59.0': optional: true - '@oxc-resolver/binding-win32-x64-msvc@11.19.1': + '@oxlint-tsgolint/darwin-arm64@0.24.0': optional: true - '@oxc-resolver/binding-win32-x64-msvc@11.24.2': + '@oxlint-tsgolint/darwin-x64@0.24.0': + optional: true + + '@oxlint-tsgolint/linux-arm64@0.24.0': + optional: true + + '@oxlint-tsgolint/linux-x64@0.24.0': + optional: true + + '@oxlint-tsgolint/win32-arm64@0.24.0': + optional: true + + '@oxlint-tsgolint/win32-x64@0.24.0': + optional: true + + '@oxlint/binding-android-arm-eabi@1.74.0': + optional: true + + '@oxlint/binding-android-arm64@1.74.0': optional: true - '@package-json/types@0.0.12': {} + '@oxlint/binding-darwin-arm64@1.74.0': + optional: true + + '@oxlint/binding-darwin-x64@1.74.0': + optional: true + + '@oxlint/binding-freebsd-x64@1.74.0': + optional: true + + '@oxlint/binding-linux-arm-gnueabihf@1.74.0': + optional: true + + '@oxlint/binding-linux-arm-musleabihf@1.74.0': + optional: true + + '@oxlint/binding-linux-arm64-gnu@1.74.0': + optional: true + + '@oxlint/binding-linux-arm64-musl@1.74.0': + optional: true + + '@oxlint/binding-linux-ppc64-gnu@1.74.0': + optional: true + + '@oxlint/binding-linux-riscv64-gnu@1.74.0': + optional: true + + '@oxlint/binding-linux-riscv64-musl@1.74.0': + optional: true + + '@oxlint/binding-linux-s390x-gnu@1.74.0': + optional: true + + '@oxlint/binding-linux-x64-gnu@1.74.0': + optional: true + + '@oxlint/binding-linux-x64-musl@1.74.0': + optional: true + + '@oxlint/binding-openharmony-arm64@1.74.0': + optional: true + + '@oxlint/binding-win32-arm64-msvc@1.74.0': + optional: true + + '@oxlint/binding-win32-ia32-msvc@1.74.0': + optional: true - '@parcel/watcher-android-arm64@2.5.6': + '@oxlint/binding-win32-x64-msvc@1.74.0': optional: true - '@parcel/watcher-darwin-arm64@2.5.6': + '@parcel/watcher-android-arm64@2.6.0': optional: true - '@parcel/watcher-darwin-x64@2.5.6': + '@parcel/watcher-darwin-arm64@2.6.0': optional: true - '@parcel/watcher-freebsd-x64@2.5.6': + '@parcel/watcher-darwin-x64@2.6.0': optional: true - '@parcel/watcher-linux-arm-glibc@2.5.6': + '@parcel/watcher-freebsd-x64@2.6.0': optional: true - '@parcel/watcher-linux-arm-musl@2.5.6': + '@parcel/watcher-linux-arm-glibc@2.6.0': optional: true - '@parcel/watcher-linux-arm64-glibc@2.5.6': + '@parcel/watcher-linux-arm-musl@2.6.0': optional: true - '@parcel/watcher-linux-arm64-musl@2.5.6': + '@parcel/watcher-linux-arm64-glibc@2.6.0': optional: true - '@parcel/watcher-linux-x64-glibc@2.5.6': + '@parcel/watcher-linux-arm64-musl@2.6.0': optional: true - '@parcel/watcher-linux-x64-musl@2.5.6': + '@parcel/watcher-linux-x64-glibc@2.6.0': optional: true - '@parcel/watcher-win32-arm64@2.5.6': + '@parcel/watcher-linux-x64-musl@2.6.0': optional: true - '@parcel/watcher-win32-ia32@2.5.6': + '@parcel/watcher-win32-arm64@2.6.0': optional: true - '@parcel/watcher-win32-x64@2.5.6': + '@parcel/watcher-win32-x64@2.6.0': optional: true - '@parcel/watcher@2.5.6': + '@parcel/watcher@2.6.0': dependencies: detect-libc: 2.1.2 is-glob: 4.0.3 node-addon-api: 7.1.1 - picomatch: 4.0.7 + picomatch: 4.0.4 optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.6 - '@parcel/watcher-darwin-arm64': 2.5.6 - '@parcel/watcher-darwin-x64': 2.5.6 - '@parcel/watcher-freebsd-x64': 2.5.6 - '@parcel/watcher-linux-arm-glibc': 2.5.6 - '@parcel/watcher-linux-arm-musl': 2.5.6 - '@parcel/watcher-linux-arm64-glibc': 2.5.6 - '@parcel/watcher-linux-arm64-musl': 2.5.6 - '@parcel/watcher-linux-x64-glibc': 2.5.6 - '@parcel/watcher-linux-x64-musl': 2.5.6 - '@parcel/watcher-win32-arm64': 2.5.6 - '@parcel/watcher-win32-ia32': 2.5.6 - '@parcel/watcher-win32-x64': 2.5.6 - optional: true - - '@peculiar/asn1-cms@2.7.0': - dependencies: - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 - '@peculiar/asn1-x509-attr': 2.7.0 + '@parcel/watcher-android-arm64': 2.6.0 + '@parcel/watcher-darwin-arm64': 2.6.0 + '@parcel/watcher-darwin-x64': 2.6.0 + '@parcel/watcher-freebsd-x64': 2.6.0 + '@parcel/watcher-linux-arm-glibc': 2.6.0 + '@parcel/watcher-linux-arm-musl': 2.6.0 + '@parcel/watcher-linux-arm64-glibc': 2.6.0 + '@parcel/watcher-linux-arm64-musl': 2.6.0 + '@parcel/watcher-linux-x64-glibc': 2.6.0 + '@parcel/watcher-linux-x64-musl': 2.6.0 + '@parcel/watcher-win32-arm64': 2.6.0 + '@parcel/watcher-win32-x64': 2.6.0 + optional: true + + '@peculiar/asn1-cms@2.9.5': + dependencies: + '@peculiar/asn1-schema': 2.9.5 + '@peculiar/asn1-x509': 2.9.5 + '@peculiar/asn1-x509-attr': 2.9.5 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-csr@2.7.0': + '@peculiar/asn1-csr@2.9.5': dependencies: - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 + '@peculiar/asn1-schema': 2.9.5 + '@peculiar/asn1-x509': 2.9.5 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-ecc@2.7.0': + '@peculiar/asn1-ecc@2.9.5': dependencies: - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 + '@peculiar/asn1-schema': 2.9.5 + '@peculiar/asn1-x509': 2.9.5 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-pfx@2.7.0': + '@peculiar/asn1-pfx@2.9.5': dependencies: - '@peculiar/asn1-cms': 2.7.0 - '@peculiar/asn1-pkcs8': 2.7.0 - '@peculiar/asn1-rsa': 2.7.0 - '@peculiar/asn1-schema': 2.7.0 + '@peculiar/asn1-cms': 2.9.5 + '@peculiar/asn1-pkcs8': 2.9.5 + '@peculiar/asn1-rsa': 2.9.5 + '@peculiar/asn1-schema': 2.9.5 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-pkcs8@2.7.0': + '@peculiar/asn1-pkcs8@2.9.5': dependencies: - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 + '@peculiar/asn1-schema': 2.9.5 + '@peculiar/asn1-x509': 2.9.5 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-pkcs9@2.7.0': + '@peculiar/asn1-pkcs9@2.9.5': dependencies: - '@peculiar/asn1-cms': 2.7.0 - '@peculiar/asn1-pfx': 2.7.0 - '@peculiar/asn1-pkcs8': 2.7.0 - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 - '@peculiar/asn1-x509-attr': 2.7.0 + '@peculiar/asn1-cms': 2.9.5 + '@peculiar/asn1-pfx': 2.9.5 + '@peculiar/asn1-pkcs8': 2.9.5 + '@peculiar/asn1-schema': 2.9.5 + '@peculiar/asn1-x509': 2.9.5 + '@peculiar/asn1-x509-attr': 2.9.5 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-rsa@2.7.0': + '@peculiar/asn1-rsa@2.9.5': dependencies: - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 + '@peculiar/asn1-schema': 2.9.5 + '@peculiar/asn1-x509': 2.9.5 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-schema@2.7.0': + '@peculiar/asn1-schema@2.9.5': dependencies: '@peculiar/utils': 2.0.3 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-x509-attr@2.7.0': + '@peculiar/asn1-x509-attr@2.9.5': dependencies: - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 + '@peculiar/asn1-schema': 2.9.5 + '@peculiar/asn1-x509': 2.9.5 asn1js: 3.0.10 tslib: 2.8.1 - '@peculiar/asn1-x509@2.7.0': + '@peculiar/asn1-x509@2.9.5': dependencies: - '@peculiar/asn1-schema': 2.7.0 + '@peculiar/asn1-schema': 2.9.5 '@peculiar/utils': 2.0.3 asn1js: 3.0.10 tslib: 2.8.1 @@ -19606,13 +20348,13 @@ snapshots: '@peculiar/x509@1.14.3': dependencies: - '@peculiar/asn1-cms': 2.7.0 - '@peculiar/asn1-csr': 2.7.0 - '@peculiar/asn1-ecc': 2.7.0 - '@peculiar/asn1-pkcs9': 2.7.0 - '@peculiar/asn1-rsa': 2.7.0 - '@peculiar/asn1-schema': 2.7.0 - '@peculiar/asn1-x509': 2.7.0 + '@peculiar/asn1-cms': 2.9.5 + '@peculiar/asn1-csr': 2.9.5 + '@peculiar/asn1-ecc': 2.9.5 + '@peculiar/asn1-pkcs9': 2.9.5 + '@peculiar/asn1-rsa': 2.9.5 + '@peculiar/asn1-schema': 2.9.5 + '@peculiar/asn1-x509': 2.9.5 pvtsutils: 1.3.6 reflect-metadata: 0.2.2 tslib: 2.8.1 @@ -19625,257 +20367,269 @@ snapshots: '@popperjs/core@2.11.8': {} - '@preact/preset-vite@2.10.5(@babel/core@7.29.7(supports-color@8.1.1))(preact@10.29.2)(rollup@4.60.4)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))': + '@preact/preset-vite@2.10.6(@babel/core@7.29.7(supports-color@8.1.1))(preact@10.29.8)(rollup@4.63.4)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) '@babel/plugin-transform-react-jsx-development': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) - '@prefresh/vite': 2.4.12(preact@10.29.2)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) + '@prefresh/vite': 2.4.12(preact@10.29.8)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + '@rollup/pluginutils': 5.4.0(rollup@4.63.4) babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.29.7(supports-color@8.1.1)) debug: 4.4.3(supports-color@8.1.1) magic-string: 0.30.21 picocolors: 1.1.1 - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) - vite-prerender-plugin: 0.5.13(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) - zimmerframe: 1.1.4 + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + vite-prerender-plugin: 0.5.13(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + zimmerframe: 1.1.5 transitivePeerDependencies: - preact - rollup - supports-color - '@prefresh/babel-plugin@0.5.3': {} + '@prefresh/babel-plugin@0.5.4(@babel/core@7.29.7(supports-color@8.1.1))': + dependencies: + '@babel/core': 7.29.7(supports-color@8.1.1) - '@prefresh/core@1.5.10(preact@10.29.2)': + '@prefresh/core@1.5.11(preact@10.29.8)': dependencies: - preact: 10.29.2 + preact: 10.29.8 '@prefresh/utils@1.2.1': {} - '@prefresh/vite@2.4.12(preact@10.29.2)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))': + '@prefresh/vite@2.4.12(preact@10.29.8)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) - '@prefresh/babel-plugin': 0.5.3 - '@prefresh/core': 1.5.10(preact@10.29.2) + '@prefresh/babel-plugin': 0.5.4(@babel/core@7.29.7(supports-color@8.1.1)) + '@prefresh/core': 1.5.11(preact@10.29.8) '@prefresh/utils': 1.2.1 '@rollup/pluginutils': 4.2.1 - preact: 10.29.2 - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + preact: 10.29.8 + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - supports-color - '@publint/pack@0.1.4': {} + '@publint/pack@0.1.7': + dependencies: + tinyexec: 1.1.2 - '@quansync/fs@1.0.0': + '@quansync/fs@1.1.0': dependencies: quansync: 1.0.0 - '@radix-ui/primitive@1.1.3': {} + '@radix-ui/primitive@1.1.7': {} - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-collection@1.1.15(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.17)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@types/react': 19.2.18 + '@types/react-dom': 19.3.0(@types/react@19.2.18) + + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.18)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.2.18 - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.17)(react@19.1.0)': + '@radix-ui/react-compose-refs@1.1.5(@types/react@19.2.18)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@radix-ui/react-context@1.1.2(@types/react@19.2.17)(react@19.1.0)': + '@radix-ui/react-context@1.2.2(@types/react@19.2.18)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 - - '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.1.0) + '@types/react': 19.2.18 + + '@radix-ui/react-dialog@1.1.23(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.1.0) aria-hidden: 1.2.6 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.1.0) + react-remove-scroll: 2.7.2(@types/react@19.2.18)(react@19.1.0) optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@types/react': 19.2.18 + '@types/react-dom': 19.3.0(@types/react@19.2.18) - '@radix-ui/react-direction@1.1.1(@types/react@19.2.17)(react@19.1.0)': + '@radix-ui/react-direction@1.1.4(@types/react@19.2.18)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dismissable-layer@1.1.19(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.17)(react@19.1.0) + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.18)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@types/react': 19.2.18 + '@types/react-dom': 19.3.0(@types/react@19.2.18) - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.17)(react@19.1.0)': + '@radix-ui/react-focus-guards@1.1.6(@types/react@19.2.18)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-focus-scope@1.1.16(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@types/react': 19.2.18 + '@types/react-dom': 19.3.0(@types/react@19.2.18) - '@radix-ui/react-id@1.1.1(@types/react@19.2.17)(react@19.1.0)': + '@radix-ui/react-id@1.1.4(@types/react@19.2.18)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-portal@1.1.17(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@types/react': 19.2.18 + '@types/react-dom': 19.3.0(@types/react@19.2.18) - '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-presence@1.1.10(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@types/react': 19.2.18 + '@types/react-dom': 19.3.0(@types/react@19.2.18) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-primitive@2.1.10(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.17)(react@19.1.0) + '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) - - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.1.0) + '@types/react': 19.2.18 + '@types/react-dom': 19.3.0(@types/react@19.2.18) + + '@radix-ui/react-roving-focus@1.1.19(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-use-is-hydrated': 0.1.3(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@types/react': 19.2.18 + '@types/react-dom': 19.3.0(@types/react@19.2.18) - '@radix-ui/react-slot@1.2.0(@types/react@19.2.17)(react@19.1.0)': + '@radix-ui/react-slot@1.2.0(@types/react@19.2.18)(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@radix-ui/react-slot@1.2.3(@types/react@19.2.17)(react@19.1.0)': + '@radix-ui/react-slot@1.3.3(@types/react@19.2.18)(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.17)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 - - '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.17)(react@19.1.0) + '@types/react': 19.2.18 + + '@radix-ui/react-tabs@1.1.21(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@types/react': 19.2.18 + '@types/react-dom': 19.3.0(@types/react@19.2.18) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.17)(react@19.1.0)': + '@radix-ui/react-use-callback-ref@1.1.4(@types/react@19.2.18)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.17)(react@19.1.0)': + '@radix-ui/react-use-controllable-state@1.2.6(@types/react@19.2.18)(react@19.1.0)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.1.0) + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.17)(react@19.1.0)': + '@radix-ui/react-use-effect-event@0.0.5(@types/react@19.2.18)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.17)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.17)(react@19.1.0)': + '@radix-ui/react-use-is-hydrated@0.1.3(@types/react@19.2.18)(react@19.1.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.17)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.17)(react@19.1.0)': + '@radix-ui/react-use-layout-effect@1.1.4(@types/react@19.2.18)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 '@react-native/assets-registry@0.81.5': {} '@react-native/babel-plugin-codegen@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) '@react-native/codegen': 0.81.5(@babel/core@7.29.7(supports-color@8.1.1)) transitivePeerDependencies: - '@babel/core' @@ -19916,12 +20670,12 @@ snapshots: '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) '@babel/plugin-transform-react-jsx-source': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) - '@babel/plugin-transform-regenerator': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) + '@babel/plugin-transform-regenerator': 7.29.8(@babel/core@7.29.7(supports-color@8.1.1)) '@babel/plugin-transform-runtime': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) '@babel/plugin-transform-shorthand-properties': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) - '@babel/plugin-transform-spread': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-spread': 7.29.8(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) '@babel/plugin-transform-sticky-regex': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) - '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/plugin-transform-typescript': 7.29.9(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) '@babel/plugin-transform-unicode-regex': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) '@babel/template': 7.29.7 '@react-native/babel-plugin-codegen': 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) @@ -19934,22 +20688,22 @@ snapshots: '@react-native/codegen@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.9 glob: 7.2.3 hermes-parser: 0.29.1 invariant: 2.2.4 nullthrows: 1.1.1 - yargs: 17.7.2 + yargs: 17.7.3 '@react-native/community-cli-plugin@0.81.5(supports-color@8.1.1)': dependencies: '@react-native/dev-middleware': 0.81.5(supports-color@8.1.1) debug: 4.4.3(supports-color@8.1.1) invariant: 2.2.4 - metro: 0.83.7(supports-color@8.1.1) - metro-config: 0.83.7(supports-color@8.1.1) - metro-core: 0.83.7 - semver: 7.8.1 + metro: 0.83.8(supports-color@8.1.1) + metro-config: 0.83.8(supports-color@8.1.1) + metro-core: 0.83.8 + semver: 7.8.5 transitivePeerDependencies: - bufferutil - supports-color @@ -19969,7 +20723,7 @@ snapshots: nullthrows: 1.1.1 open: 7.4.2 serve-static: 1.16.3(supports-color@8.1.1) - ws: 6.2.4 + ws: 6.2.6 transitivePeerDependencies: - bufferutil - supports-color @@ -19983,96 +20737,96 @@ snapshots: '@react-native/normalize-colors@0.81.5': {} - '@react-native/virtualized-lists@0.81.5(@types/react@19.2.17)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': + '@react-native/virtualized-lists@0.81.5(@types/react@19.2.18)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@react-navigation/bottom-tabs@7.16.1(@react-navigation/native@7.2.4(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': + '@react-navigation/bottom-tabs@7.19.2(@react-navigation/native@7.4.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': dependencies: - '@react-navigation/elements': 2.9.18(@react-navigation/native@7.2.4(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) - '@react-navigation/native': 7.2.4(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + '@react-navigation/elements': 2.9.43(@react-navigation/native@7.4.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + '@react-navigation/native': 7.4.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) color: 4.2.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) - react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) sf-symbols-typescript: 2.2.0 transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@react-navigation/core@7.17.4(react@19.1.0)': + '@react-navigation/core@7.22.1(react@19.1.0)': dependencies: - '@react-navigation/routers': 7.5.5 + '@react-navigation/routers': 7.6.4 escape-string-regexp: 4.0.0 fast-deep-equal: 3.1.3 - nanoid: 3.3.12 - query-string: 7.1.3 + nanoid: 3.3.19 react: 19.1.0 - react-is: 19.2.6 + react-is: 19.3.0 use-latest-callback: 0.2.6(react@19.1.0) - use-sync-external-store: 1.6.0(react@19.1.0) + use-sync-external-store: 1.7.0(react@19.1.0) - '@react-navigation/elements@2.9.18(@react-navigation/native@7.2.4(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': + '@react-navigation/elements@2.9.43(@react-navigation/native@7.4.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': dependencies: - '@react-navigation/native': 7.2.4(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + '@react-navigation/native': 7.4.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) color: 4.2.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) use-latest-callback: 0.2.6(react@19.1.0) - use-sync-external-store: 1.6.0(react@19.1.0) + use-sync-external-store: 1.7.0(react@19.1.0) - '@react-navigation/native-stack@7.15.1(@react-navigation/native@7.2.4(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': + '@react-navigation/native-stack@7.19.2(@react-navigation/native@7.4.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': dependencies: - '@react-navigation/elements': 2.9.18(@react-navigation/native@7.2.4(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) - '@react-navigation/native': 7.2.4(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + '@react-navigation/elements': 2.9.43(@react-navigation/native@7.4.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + '@react-navigation/native': 7.4.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) color: 4.2.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) - react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) sf-symbols-typescript: 2.2.0 warn-once: 0.1.1 transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@react-navigation/native@7.2.4(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': + '@react-navigation/native@7.4.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)': dependencies: - '@react-navigation/core': 7.17.4(react@19.1.0) + '@react-navigation/core': 7.22.1(react@19.1.0) escape-string-regexp: 4.0.0 fast-deep-equal: 3.1.3 - nanoid: 3.3.12 + nanoid: 3.3.19 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) + standard-navigation: 0.0.8(react@19.1.0) use-latest-callback: 0.2.6(react@19.1.0) - '@react-navigation/routers@7.5.5': + '@react-navigation/routers@7.6.4': dependencies: - nanoid: 3.3.12 + nanoid: 3.3.19 - '@remix-run/dev@2.17.4(@remix-run/react@2.17.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.9.3))(@remix-run/serve@2.17.4(supports-color@8.1.1)(typescript@5.9.3))(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.48.0)(typescript@5.9.3)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0))(yaml@2.9.0)': + '@remix-run/dev@2.17.5(@remix-run/react@2.17.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.9.3))(@remix-run/serve@2.17.5(supports-color@8.1.1)(typescript@5.9.3))(@types/node@24.13.6)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.51.2)(ts-node@10.9.2(@swc/core@1.16.2)(@types/node@24.13.6)(typescript@5.9.3))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1))(yaml@2.9.1)': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/generator': 7.29.7 - '@babel/parser': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/parser': 7.29.9 '@babel/plugin-syntax-decorators': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) '@babel/preset-typescript': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/traverse': 7.29.7(supports-color@8.1.1) - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@8.1.1) + '@babel/types': 7.29.8 '@mdx-js/mdx': 2.3.0(supports-color@8.1.1) '@npmcli/package-json': 4.0.1 - '@remix-run/node': 2.17.4(typescript@5.9.3) - '@remix-run/react': 2.17.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.9.3) - '@remix-run/router': 1.23.2 - '@remix-run/server-runtime': 2.17.4(typescript@5.9.3) - '@types/mdx': 2.0.13 - '@vanilla-extract/integration': 6.5.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.48.0) + '@remix-run/node': 2.17.5(typescript@5.9.3) + '@remix-run/react': 2.17.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.9.3) + '@remix-run/router': 1.23.3 + '@remix-run/server-runtime': 2.17.5(typescript@5.9.3) + '@types/mdx': 2.0.14 + '@vanilla-extract/integration': 6.5.0(@types/node@24.13.6)(babel-plugin-macros@3.1.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.51.2) arg: 5.0.2 cacache: 17.1.4 chalk: 4.1.2 @@ -20081,10 +20835,10 @@ snapshots: dotenv: 16.6.1 es-module-lexer: 1.7.0 esbuild: 0.17.6 - esbuild-plugins-node-modules-polyfill: 1.8.1(esbuild@0.17.6) + esbuild-plugins-node-modules-polyfill: 1.8.3(esbuild@0.17.6) execa: 5.1.1 exit-hook: 2.2.1 - express: 4.22.2(supports-color@8.1.1) + express: 4.22.3(supports-color@8.1.1) fs-extra: 10.1.0 get-port: 5.1.1 gunzip-maybe: 1.4.2 @@ -20097,27 +20851,27 @@ snapshots: pathe: 1.1.2 picocolors: 1.1.1 picomatch: 2.3.2 - pidtree: 0.6.0 + pidtree: 0.6.1 postcss: 8.5.6 postcss-discard-duplicates: 5.1.0(postcss@8.5.6) - postcss-load-config: 4.0.2(postcss@8.5.6) + postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.16.2)(@types/node@24.13.6)(typescript@5.9.3)) postcss-modules: 6.0.1(postcss@8.5.6) prettier: 2.8.8 pretty-ms: 7.0.1 react-refresh: 0.14.2 remark-frontmatter: 4.0.1 remark-mdx-frontmatter: 1.1.1 - semver: 7.8.1 + semver: 7.8.5 set-cookie-parser: 2.7.2 - tar-fs: 2.1.4 + tar-fs: 2.1.5 tsconfig-paths: 4.2.0 - valibot: 1.4.1(typescript@5.9.3) - vite-node: 3.2.4(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.48.0)(yaml@2.9.0) - ws: 7.5.11 + valibot: 1.5.0(typescript@5.9.3) + vite-node: 3.2.4(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1) + ws: 7.5.13 optionalDependencies: - '@remix-run/serve': 2.17.4(supports-color@8.1.1)(typescript@5.9.3) + '@remix-run/serve': 2.17.5(supports-color@8.1.1)(typescript@5.9.3) typescript: 5.9.3 - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -20137,56 +20891,56 @@ snapshots: - utf-8-validate - yaml - '@remix-run/express@2.17.4(express@4.22.2(supports-color@8.1.1))(typescript@5.9.3)': + '@remix-run/express@2.17.5(express@4.22.3(supports-color@8.1.1))(typescript@5.9.3)': dependencies: - '@remix-run/node': 2.17.4(typescript@5.9.3) - express: 4.22.2(supports-color@8.1.1) + '@remix-run/node': 2.17.5(typescript@5.9.3) + express: 4.22.3(supports-color@8.1.1) optionalDependencies: typescript: 5.9.3 - '@remix-run/node@2.17.4(typescript@5.9.3)': + '@remix-run/node@2.17.5(typescript@5.9.3)': dependencies: - '@remix-run/server-runtime': 2.17.4(typescript@5.9.3) + '@remix-run/server-runtime': 2.17.5(typescript@5.9.3) '@remix-run/web-fetch': 4.4.2 '@web3-storage/multipart-parser': 1.0.0 cookie-signature: 1.2.2 source-map-support: 0.5.21 stream-slice: 0.1.2 - undici: 6.26.0 + undici: 6.28.1 optionalDependencies: typescript: 5.9.3 - '@remix-run/react@2.17.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.9.3)': + '@remix-run/react@2.17.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.9.3)': dependencies: - '@remix-run/router': 1.23.2 - '@remix-run/server-runtime': 2.17.4(typescript@5.9.3) + '@remix-run/router': 1.23.3 + '@remix-run/server-runtime': 2.17.5(typescript@5.9.3) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-router: 6.30.3(react@19.1.0) - react-router-dom: 6.30.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-router: 6.30.4(react@19.1.0) + react-router-dom: 6.30.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) turbo-stream: 2.4.1 optionalDependencies: typescript: 5.9.3 - '@remix-run/router@1.23.2': {} + '@remix-run/router@1.23.3': {} - '@remix-run/serve@2.17.4(supports-color@8.1.1)(typescript@5.9.3)': + '@remix-run/serve@2.17.5(supports-color@8.1.1)(typescript@5.9.3)': dependencies: - '@remix-run/express': 2.17.4(express@4.22.2(supports-color@8.1.1))(typescript@5.9.3) - '@remix-run/node': 2.17.4(typescript@5.9.3) + '@remix-run/express': 2.17.5(express@4.22.3(supports-color@8.1.1))(typescript@5.9.3) + '@remix-run/node': 2.17.5(typescript@5.9.3) chokidar: 3.6.0 - compression: 1.8.1(supports-color@8.1.1) - express: 4.22.2(supports-color@8.1.1) + compression: 1.8.2(supports-color@8.1.1) + express: 4.22.3(supports-color@8.1.1) get-port: 5.1.1 - morgan: 1.10.1(supports-color@8.1.1) + morgan: 1.12.1(supports-color@8.1.1) source-map-support: 0.5.21 transitivePeerDependencies: - supports-color - typescript - '@remix-run/server-runtime@2.17.4(typescript@5.9.3)': + '@remix-run/server-runtime@2.17.5(typescript@5.9.3)': dependencies: - '@remix-run/router': 1.23.2 + '@remix-run/router': 1.23.3 '@types/cookie': 0.6.0 '@web3-storage/multipart-parser': 1.0.0 cookie: 0.7.2 @@ -20294,12 +21048,12 @@ snapshots: dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': + '@rolldown/binding-wasm32-wasi@1.0.0-rc.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)': dependencies: - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -20325,109 +21079,110 @@ snapshots: '@rolldown/pluginutils@1.0.0-rc.4': {} - '@rollup/plugin-json@6.1.0(rollup@4.60.4)': + '@rollup/plugin-json@6.1.0(rollup@4.63.4)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) + '@rollup/pluginutils': 5.4.0(rollup@4.63.4) optionalDependencies: - rollup: 4.60.4 + rollup: 4.63.4 '@rollup/pluginutils@4.2.1': dependencies: estree-walker: 2.0.2 picomatch: 2.3.2 - '@rollup/pluginutils@5.3.0(rollup@4.60.4)': + '@rollup/pluginutils@5.4.0(rollup@4.63.4)': dependencies: '@types/estree': 1.0.9 estree-walker: 2.0.2 - picomatch: 4.0.4 + picomatch: 4.0.7 optionalDependencies: - rollup: 4.60.4 + rollup: 4.63.4 - '@rollup/rollup-android-arm-eabi@4.60.4': + '@rollup/rollup-android-arm-eabi@4.63.4': optional: true - '@rollup/rollup-android-arm64@4.60.4': + '@rollup/rollup-android-arm64@4.63.4': optional: true - '@rollup/rollup-darwin-arm64@4.60.4': + '@rollup/rollup-darwin-arm64@4.63.4': optional: true - '@rollup/rollup-darwin-x64@4.60.4': + '@rollup/rollup-darwin-x64@4.63.4': optional: true - '@rollup/rollup-freebsd-arm64@4.60.4': + '@rollup/rollup-freebsd-arm64@4.63.4': optional: true - '@rollup/rollup-freebsd-x64@4.60.4': + '@rollup/rollup-freebsd-x64@4.63.4': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.60.4': + '@rollup/rollup-linux-arm-gnueabihf@4.63.4': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.60.4': + '@rollup/rollup-linux-arm-musleabihf@4.63.4': optional: true - '@rollup/rollup-linux-arm64-gnu@4.60.4': + '@rollup/rollup-linux-arm64-gnu@4.63.4': optional: true - '@rollup/rollup-linux-arm64-musl@4.60.4': + '@rollup/rollup-linux-arm64-musl@4.63.4': optional: true - '@rollup/rollup-linux-loong64-gnu@4.60.4': + '@rollup/rollup-linux-loong64-gnu@4.63.4': optional: true - '@rollup/rollup-linux-loong64-musl@4.60.4': + '@rollup/rollup-linux-loong64-musl@4.63.4': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.60.4': + '@rollup/rollup-linux-ppc64-gnu@4.63.4': optional: true - '@rollup/rollup-linux-ppc64-musl@4.60.4': + '@rollup/rollup-linux-ppc64-musl@4.63.4': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.60.4': + '@rollup/rollup-linux-riscv64-gnu@4.63.4': optional: true - '@rollup/rollup-linux-riscv64-musl@4.60.4': + '@rollup/rollup-linux-riscv64-musl@4.63.4': optional: true - '@rollup/rollup-linux-s390x-gnu@4.60.4': + '@rollup/rollup-linux-s390x-gnu@4.63.4': optional: true - '@rollup/rollup-linux-x64-gnu@4.60.4': + '@rollup/rollup-linux-x64-gnu@4.63.4': optional: true - '@rollup/rollup-linux-x64-musl@4.60.4': + '@rollup/rollup-linux-x64-musl@4.63.4': optional: true - '@rollup/rollup-openbsd-x64@4.60.4': + '@rollup/rollup-openbsd-x64@4.63.4': optional: true - '@rollup/rollup-openharmony-arm64@4.60.4': + '@rollup/rollup-openharmony-arm64@4.63.4': optional: true - '@rollup/rollup-win32-arm64-msvc@4.60.4': + '@rollup/rollup-win32-arm64-msvc@4.63.4': optional: true - '@rollup/rollup-win32-ia32-msvc@4.60.4': + '@rollup/rollup-win32-ia32-msvc@4.63.4': optional: true - '@rollup/rollup-win32-x64-gnu@4.60.4': + '@rollup/rollup-win32-x64-gnu@4.63.4': optional: true - '@rollup/rollup-win32-x64-msvc@4.60.4': + '@rollup/rollup-win32-x64-msvc@4.63.4': optional: true - '@rollup/wasm-node@4.60.4': + '@rollup/wasm-node@4.63.4': dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 optionalDependencies: + '@napi-rs/lzma-linux-x64-gnu': 1.5.1 fsevents: 2.3.3 '@rtsao/scc@1.1.0': {} - '@rushstack/node-core-library@5.7.0(@types/node@24.12.4)': + '@rushstack/node-core-library@5.7.0(@types/node@24.13.6)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -20438,33 +21193,33 @@ snapshots: resolve: 1.22.12 semver: 7.5.4 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 '@rushstack/rig-package@0.5.3': dependencies: resolve: 1.22.12 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.14.0(@types/node@24.12.4)': + '@rushstack/terminal@0.14.0(@types/node@24.13.6)': dependencies: - '@rushstack/node-core-library': 5.7.0(@types/node@24.12.4) + '@rushstack/node-core-library': 5.7.0(@types/node@24.13.6) supports-color: 8.1.1 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 - '@rushstack/ts-command-line@4.22.6(@types/node@24.12.4)': + '@rushstack/ts-command-line@4.22.6(@types/node@24.13.6)': dependencies: - '@rushstack/terminal': 0.14.0(@types/node@24.12.4) + '@rushstack/terminal': 0.14.0(@types/node@24.13.6) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 transitivePeerDependencies: - '@types/node' - '@schematics/angular@21.2.12(chokidar@5.0.0)': + '@schematics/angular@21.2.24(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 21.2.12(chokidar@5.0.0) - '@angular-devkit/schematics': 21.2.12(chokidar@5.0.0) + '@angular-devkit/core': 21.2.24(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.24(chokidar@5.0.0) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -20485,32 +21240,32 @@ snapshots: '@shikijs/types@3.23.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@shikijs/vscode-textmate@10.0.2': {} '@sigstore/bundle@4.0.0': dependencies: - '@sigstore/protobuf-specs': 0.5.1 + '@sigstore/protobuf-specs': 0.5.2 '@sigstore/core@3.2.1': {} - '@sigstore/protobuf-specs@0.5.1': {} + '@sigstore/protobuf-specs@0.5.2': {} '@sigstore/sign@4.1.1(supports-color@8.1.1)': dependencies: '@gar/promise-retry': 1.0.3 '@sigstore/bundle': 4.0.0 '@sigstore/core': 3.2.1 - '@sigstore/protobuf-specs': 0.5.1 - make-fetch-happen: 15.0.5(supports-color@8.1.1) + '@sigstore/protobuf-specs': 0.5.2 + make-fetch-happen: 15.0.6(supports-color@8.1.1) proc-log: 6.1.0 transitivePeerDependencies: - supports-color '@sigstore/tuf@4.0.2(supports-color@8.1.1)': dependencies: - '@sigstore/protobuf-specs': 0.5.1 + '@sigstore/protobuf-specs': 0.5.2 tuf-js: 4.1.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -20519,9 +21274,9 @@ snapshots: dependencies: '@sigstore/bundle': 4.0.0 '@sigstore/core': 3.2.1 - '@sigstore/protobuf-specs': 0.5.1 + '@sigstore/protobuf-specs': 0.5.2 - '@sinclair/typebox@0.27.10': {} + '@sinclair/typebox@0.27.12': {} '@sinonjs/commons@3.0.1': dependencies: @@ -20531,147 +21286,171 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@solid-primitives/event-listener@2.4.5(solid-js@1.9.13)': + '@solid-primitives/event-listener@2.4.6(solid-js@1.9.15)': dependencies: - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) - solid-js: 1.9.13 + '@solid-primitives/utils': 6.4.1(solid-js@1.9.15) + solid-js: 1.9.15 - '@solid-primitives/keyboard@1.3.5(solid-js@1.9.13)': + '@solid-primitives/keyboard@1.3.7(solid-js@1.9.15)': dependencies: - '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.13) - '@solid-primitives/rootless': 1.5.3(solid-js@1.9.13) - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) - solid-js: 1.9.13 + '@solid-primitives/event-listener': 2.4.6(solid-js@1.9.15) + '@solid-primitives/rootless': 1.5.4(solid-js@1.9.15) + '@solid-primitives/utils': 6.4.1(solid-js@1.9.15) + solid-js: 1.9.15 - '@solid-primitives/resize-observer@2.1.5(solid-js@1.9.13)': + '@solid-primitives/resize-observer@2.2.0(solid-js@1.9.15)': dependencies: - '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.13) - '@solid-primitives/rootless': 1.5.3(solid-js@1.9.13) - '@solid-primitives/static-store': 0.1.3(solid-js@1.9.13) - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) - solid-js: 1.9.13 + '@solid-primitives/event-listener': 2.4.6(solid-js@1.9.15) + '@solid-primitives/rootless': 1.5.4(solid-js@1.9.15) + '@solid-primitives/static-store': 0.1.4(solid-js@1.9.15) + '@solid-primitives/utils': 6.4.1(solid-js@1.9.15) + solid-js: 1.9.15 - '@solid-primitives/rootless@1.5.3(solid-js@1.9.13)': + '@solid-primitives/rootless@1.5.4(solid-js@1.9.15)': dependencies: - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) - solid-js: 1.9.13 + '@solid-primitives/utils': 6.4.1(solid-js@1.9.15) + solid-js: 1.9.15 - '@solid-primitives/static-store@0.1.3(solid-js@1.9.13)': + '@solid-primitives/static-store@0.1.4(solid-js@1.9.15)': dependencies: - '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) - solid-js: 1.9.13 + '@solid-primitives/utils': 6.4.1(solid-js@1.9.15) + solid-js: 1.9.15 - '@solid-primitives/utils@6.4.0(solid-js@1.9.13)': + '@solid-primitives/utils@6.4.1(solid-js@1.9.15)': dependencies: - solid-js: 1.9.13 + solid-js: 1.9.15 - '@solidjs/testing-library@0.8.10(solid-js@1.9.13)': + '@solidjs/testing-library@0.8.10(solid-js@1.9.15)': dependencies: - '@testing-library/dom': 10.4.1 - solid-js: 1.9.13 + '@testing-library/dom': 10.4.2 + solid-js: 1.9.15 '@standard-schema/spec@1.1.0': {} '@stylistic/eslint-plugin@5.10.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)) - '@typescript-eslint/types': 8.59.4 + '@eslint-community/eslint-utils': 4.10.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)) + '@typescript-eslint/types': 8.70.0 eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 - picomatch: 4.0.4 + picomatch: 4.0.7 - '@sveltejs/acorn-typescript@1.0.10(acorn@8.16.0)': + '@sveltejs/acorn-typescript@1.0.13(acorn@8.18.0)': dependencies: - acorn: 8.16.0 + acorn: 8.18.0 - '@sveltejs/package@2.5.7(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@5.9.3)': + '@sveltejs/load-config@0.2.3': {} + + '@sveltejs/package@2.5.8(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)': dependencies: chokidar: 5.0.0 kleur: 4.1.5 sade: 1.8.1 - semver: 7.8.1 - svelte: 5.55.9(@typescript-eslint/types@8.59.4) - svelte2tsx: 0.7.55(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@5.9.3) + semver: 7.8.5 + svelte: 5.57.1(@typescript-eslint/types@8.70.0) + svelte2tsx: 0.7.61(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3) transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(supports-color@8.1.1)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)))(supports-color@8.1.1)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(supports-color@7.2.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(supports-color@7.2.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))': + dependencies: + '@sveltejs/vite-plugin-svelte': 5.1.1(supports-color@7.2.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + debug: 4.4.3(supports-color@7.2.0) + svelte: 5.57.1(@typescript-eslint/types@8.70.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(supports-color@8.1.1)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(supports-color@8.1.1)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.1.1(supports-color@8.1.1)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + '@sveltejs/vite-plugin-svelte': 5.1.1(supports-color@8.1.1)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) debug: 4.4.3(supports-color@8.1.1) - svelte: 5.55.9(@typescript-eslint/types@8.59.4) - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + svelte: 5.57.1(@typescript-eslint/types@8.70.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte@5.1.1(supports-color@7.2.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(supports-color@7.2.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(supports-color@7.2.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + debug: 4.4.3(supports-color@7.2.0) + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.21 + svelte: 5.57.1(@typescript-eslint/types@8.70.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + vitefu: 1.1.3(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.1.1(supports-color@8.1.1)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))': + '@sveltejs/vite-plugin-svelte@5.1.1(supports-color@8.1.1)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(supports-color@8.1.1)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)))(supports-color@8.1.1)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(supports-color@8.1.1)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(supports-color@8.1.1)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) debug: 4.4.3(supports-color@8.1.1) deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.21 - svelte: 5.55.9(@typescript-eslint/types@8.59.4) - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) - vitefu: 1.1.3(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + svelte: 5.57.1(@typescript-eslint/types@8.70.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + vitefu: 1.1.3(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) transitivePeerDependencies: - supports-color - '@swc/core-darwin-arm64@1.15.40': + '@swc/core-darwin-arm64@1.16.2': optional: true - '@swc/core-darwin-x64@1.15.40': + '@swc/core-darwin-x64@1.16.2': optional: true - '@swc/core-linux-arm-gnueabihf@1.15.40': + '@swc/core-linux-arm-gnueabihf@1.16.2': optional: true - '@swc/core-linux-arm64-gnu@1.15.40': + '@swc/core-linux-arm64-gnu@1.16.2': optional: true - '@swc/core-linux-arm64-musl@1.15.40': + '@swc/core-linux-arm64-musl@1.16.2': optional: true - '@swc/core-linux-ppc64-gnu@1.15.40': + '@swc/core-linux-ppc64-gnu@1.16.2': optional: true - '@swc/core-linux-s390x-gnu@1.15.40': + '@swc/core-linux-s390x-gnu@1.16.2': optional: true - '@swc/core-linux-x64-gnu@1.15.40': + '@swc/core-linux-x64-gnu@1.16.2': optional: true - '@swc/core-linux-x64-musl@1.15.40': + '@swc/core-linux-x64-musl@1.16.2': optional: true - '@swc/core-win32-arm64-msvc@1.15.40': + '@swc/core-win32-arm64-msvc@1.16.2': optional: true - '@swc/core-win32-ia32-msvc@1.15.40': + '@swc/core-win32-ia32-msvc@1.16.2': optional: true - '@swc/core-win32-x64-msvc@1.15.40': + '@swc/core-win32-x64-msvc@1.16.2': optional: true - '@swc/core@1.15.40': + '@swc/core@1.16.2': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.26 + '@swc/types': 0.1.28 optionalDependencies: - '@swc/core-darwin-arm64': 1.15.40 - '@swc/core-darwin-x64': 1.15.40 - '@swc/core-linux-arm-gnueabihf': 1.15.40 - '@swc/core-linux-arm64-gnu': 1.15.40 - '@swc/core-linux-arm64-musl': 1.15.40 - '@swc/core-linux-ppc64-gnu': 1.15.40 - '@swc/core-linux-s390x-gnu': 1.15.40 - '@swc/core-linux-x64-gnu': 1.15.40 - '@swc/core-linux-x64-musl': 1.15.40 - '@swc/core-win32-arm64-msvc': 1.15.40 - '@swc/core-win32-ia32-msvc': 1.15.40 - '@swc/core-win32-x64-msvc': 1.15.40 + '@swc/core-darwin-arm64': 1.16.2 + '@swc/core-darwin-x64': 1.16.2 + '@swc/core-linux-arm-gnueabihf': 1.16.2 + '@swc/core-linux-arm64-gnu': 1.16.2 + '@swc/core-linux-arm64-musl': 1.16.2 + '@swc/core-linux-ppc64-gnu': 1.16.2 + '@swc/core-linux-s390x-gnu': 1.16.2 + '@swc/core-linux-x64-gnu': 1.16.2 + '@swc/core-linux-x64-musl': 1.16.2 + '@swc/core-win32-arm64-msvc': 1.16.2 + '@swc/core-win32-ia32-msvc': 1.16.2 + '@swc/core-win32-x64-msvc': 1.16.2 '@swc/counter@0.1.3': {} @@ -20679,81 +21458,81 @@ snapshots: dependencies: tslib: 2.8.1 - '@swc/types@0.1.26': + '@swc/types@0.1.28': dependencies: '@swc/counter': 0.1.3 - '@tanstack/angular-store@0.9.3(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))': + '@tanstack/angular-store@0.9.3(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) '@tanstack/store': 0.9.3 tslib: 2.8.1 '@tanstack/devtools-client@0.0.6': dependencies: - '@tanstack/devtools-event-client': 0.4.3 + '@tanstack/devtools-event-client': 0.4.4 '@tanstack/devtools-event-bus@0.4.1': dependencies: - ws: 8.21.0 + ws: 8.21.3 transitivePeerDependencies: - bufferutil - utf-8-validate - '@tanstack/devtools-event-client@0.4.3': {} + '@tanstack/devtools-event-client@0.4.4': {} - '@tanstack/devtools-ui@0.5.0(csstype@3.2.3)(solid-js@1.9.13)': + '@tanstack/devtools-ui@0.5.0(csstype@3.2.3)(solid-js@1.9.15)': dependencies: clsx: 2.1.1 - dayjs: 1.11.20 + dayjs: 1.11.23 goober: 2.1.19(csstype@3.2.3) - solid-js: 1.9.13 + solid-js: 1.9.15 transitivePeerDependencies: - csstype - '@tanstack/devtools-ui@0.5.2(csstype@3.2.3)(solid-js@1.9.13)': + '@tanstack/devtools-ui@0.5.3(csstype@3.2.3)(solid-js@1.9.15)': dependencies: clsx: 2.1.1 - dayjs: 1.11.20 + dayjs: 1.11.23 goober: 2.1.19(csstype@3.2.3) - solid-js: 1.9.13 + solid-js: 1.9.15 transitivePeerDependencies: - csstype - '@tanstack/devtools-utils@0.4.0(@types/react@19.2.17)(preact@10.29.2)(react@19.1.0)(solid-js@1.9.13)(vue@3.5.34(typescript@5.9.3))': + '@tanstack/devtools-utils@0.4.0(@types/react@19.2.18)(preact@10.29.8)(react@19.1.0)(solid-js@1.9.15)(vue@3.5.43(typescript@5.9.3))': optionalDependencies: - '@types/react': 19.2.17 - preact: 10.29.2 + '@types/react': 19.2.18 + preact: 10.29.8 react: 19.1.0 - solid-js: 1.9.13 - vue: 3.5.34(typescript@5.9.3) + solid-js: 1.9.15 + vue: 3.5.43(typescript@5.9.3) - '@tanstack/devtools@0.10.14(csstype@3.2.3)(solid-js@1.9.13)': + '@tanstack/devtools@0.10.14(csstype@3.2.3)(solid-js@1.9.15)': dependencies: - '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.13) - '@solid-primitives/keyboard': 1.3.5(solid-js@1.9.13) - '@solid-primitives/resize-observer': 2.1.5(solid-js@1.9.13) + '@solid-primitives/event-listener': 2.4.6(solid-js@1.9.15) + '@solid-primitives/keyboard': 1.3.7(solid-js@1.9.15) + '@solid-primitives/resize-observer': 2.2.0(solid-js@1.9.15) '@tanstack/devtools-client': 0.0.6 '@tanstack/devtools-event-bus': 0.4.1 - '@tanstack/devtools-ui': 0.5.0(csstype@3.2.3)(solid-js@1.9.13) + '@tanstack/devtools-ui': 0.5.0(csstype@3.2.3)(solid-js@1.9.15) clsx: 2.1.1 goober: 2.1.19(csstype@3.2.3) - solid-js: 1.9.13 + solid-js: 1.9.15 transitivePeerDependencies: - bufferutil - csstype - utf-8-validate - '@tanstack/eslint-config@0.3.2(@typescript-eslint/utils@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)': + '@tanstack/eslint-config@0.3.2(@typescript-eslint/utils@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)': dependencies: - '@eslint/js': 9.39.4 + '@eslint/js': 9.39.5 '@stylistic/eslint-plugin': 5.10.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)) - eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0) + eslint-plugin-import-x: 4.17.1(@typescript-eslint/utils@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0) eslint-plugin-n: 17.24.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(typescript@5.9.3) globals: 16.5.0 - typescript-eslint: 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - vue-eslint-parser: 10.4.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0) + typescript-eslint: 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + vue-eslint-parser: 10.4.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0) transitivePeerDependencies: - '@typescript-eslint/utils' - eslint @@ -20761,27 +21540,32 @@ snapshots: - supports-color - typescript - '@tanstack/history@1.162.0': {} + '@tanstack/history@1.162.4': {} '@tanstack/lit-store@0.13.2(lit@3.3.3)': dependencies: '@tanstack/store': 0.11.0 lit: 3.3.3 + '@tanstack/octane-store@0.12.2(octane@0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))': + dependencies: + '@tanstack/store': 0.11.1 + octane: 0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + '@tanstack/pacer-lite@0.1.1': {} - '@tanstack/preact-store@0.13.1(preact@10.29.2)': + '@tanstack/preact-store@0.13.2(preact@10.29.8)': dependencies: - '@tanstack/store': 0.11.0 - preact: 10.29.2 + '@tanstack/store': 0.11.1 + preact: 10.29.8 - '@tanstack/query-core@5.100.14': {} + '@tanstack/query-core@5.103.1': {} - '@tanstack/react-devtools@0.9.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.13)': + '@tanstack/react-devtools@0.9.13(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(csstype@3.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.15)': dependencies: - '@tanstack/devtools': 0.10.14(csstype@3.2.3)(solid-js@1.9.13) - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@tanstack/devtools': 0.10.14(csstype@3.2.3)(solid-js@1.9.15) + '@types/react': 19.2.18 + '@types/react-dom': 19.3.0(@types/react@19.2.18) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: @@ -20790,242 +21574,247 @@ snapshots: - solid-js - utf-8-validate - '@tanstack/react-query@5.100.14(react@19.1.0)': - dependencies: - '@tanstack/query-core': 5.100.14 - react: 19.1.0 - - '@tanstack/react-router@1.170.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@tanstack/react-query@5.103.1(react@19.1.0)': dependencies: - '@tanstack/history': 1.162.0 - '@tanstack/react-store': 0.9.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/router-core': 1.171.14 - isbot: 5.1.40 + '@tanstack/query-core': 5.103.1 react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - '@tanstack/react-router@1.170.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@tanstack/react-router@1.170.38(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@tanstack/history': 1.162.0 - '@tanstack/react-store': 0.9.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/router-core': 1.171.6 - isbot: 5.1.40 + '@tanstack/history': 1.162.4 + '@tanstack/react-store': 0.11.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/router-core': 1.171.32 + isbot: 5.2.2 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@tanstack/react-start-client@1.168.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@tanstack/react-start-client@1.168.36(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@tanstack/react-router': 1.170.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/router-core': 1.171.14 - '@tanstack/start-client-core': 1.170.13 + '@tanstack/react-router': 1.170.38(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/router-core': 1.171.32 + '@tanstack/start-client-core': 1.170.32 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@tanstack/react-start-rsc@0.1.26(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(supports-color@8.1.1)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15))': + '@tanstack/react-start-rsc@0.1.55(esbuild@0.28.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.63.4)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28))': dependencies: - '@tanstack/react-router': 1.170.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/router-core': 1.171.14 - '@tanstack/router-utils': 1.162.2(supports-color@8.1.1) - '@tanstack/start-client-core': 1.170.13 + '@tanstack/react-router': 1.170.38(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/router-core': 1.171.32 + '@tanstack/router-utils': 1.162.3(supports-color@8.1.1) + '@tanstack/start-client-core': 1.170.32 '@tanstack/start-fn-stubs': 1.162.0 - '@tanstack/start-plugin-core': 1.171.19(@tanstack/react-router@1.170.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(supports-color@8.1.1)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15)) - '@tanstack/start-server-core': 1.169.16 - '@tanstack/start-storage-context': 1.167.16 + '@tanstack/start-plugin-core': 1.171.46(@tanstack/react-router@1.170.38(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(esbuild@0.28.2)(rollup@4.63.4)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)) + '@tanstack/start-storage-context': 1.167.34 pathe: 2.0.3 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: + - '@farmfe/core' - '@rsbuild/core' + - bun-types-no-globals - crossws + - esbuild + - rolldown + - rollup - supports-color + - unloader - vite - vite-plugin-solid - webpack - '@tanstack/react-start-server@1.167.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@tanstack/react-start-server@1.167.43(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@tanstack/react-router': 1.170.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/router-core': 1.171.14 - '@tanstack/start-server-core': 1.169.16 + '@tanstack/react-router': 1.170.38(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/router-core': 1.171.32 + '@tanstack/start-server-core': 1.169.37 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: - crossws - '@tanstack/react-start@1.168.27(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(supports-color@8.1.1)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15))': + '@tanstack/react-start@1.168.56(esbuild@0.28.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.63.4)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28))': dependencies: - '@tanstack/react-router': 1.170.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/react-start-client': 1.168.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/react-start-rsc': 0.1.26(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(supports-color@8.1.1)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15)) - '@tanstack/react-start-server': 1.167.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/router-utils': 1.162.2(supports-color@8.1.1) - '@tanstack/start-client-core': 1.170.13 - '@tanstack/start-plugin-core': 1.171.19(@tanstack/react-router@1.170.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(supports-color@8.1.1)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15)) - '@tanstack/start-server-core': 1.169.16 + '@tanstack/react-router': 1.170.38(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/react-start-client': 1.168.36(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/react-start-rsc': 0.1.55(esbuild@0.28.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.63.4)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)) + '@tanstack/react-start-server': 1.167.43(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/router-utils': 1.162.3(supports-color@8.1.1) + '@tanstack/start-client-core': 1.170.32 + '@tanstack/start-plugin-core': 1.171.46(@tanstack/react-router@1.170.38(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(esbuild@0.28.2)(rollup@4.63.4)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)) + '@tanstack/start-server-core': 1.169.37 pathe: 2.0.3 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: + - '@farmfe/core' - '@rspack/core' + - bun-types-no-globals - crossws + - esbuild - react-server-dom-rspack + - rolldown + - rollup - supports-color + - unloader - vite-plugin-solid - webpack - '@tanstack/react-store@0.11.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@tanstack/store': 0.11.0 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - use-sync-external-store: 1.6.0(react@19.1.0) - - '@tanstack/react-store@0.9.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@tanstack/react-store@0.11.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@tanstack/store': 0.9.3 + '@tanstack/store': 0.11.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - use-sync-external-store: 1.6.0(react@19.1.0) - - '@tanstack/router-core@1.171.14': - dependencies: - '@tanstack/history': 1.162.0 - cookie-es: 3.1.1 - seroval: 1.5.4 - seroval-plugins: 1.5.4(seroval@1.5.4) + use-sync-external-store: 1.7.0(react@19.1.0) - '@tanstack/router-core@1.171.6': + '@tanstack/router-core@1.171.32': dependencies: - '@tanstack/history': 1.162.0 + '@tanstack/history': 1.162.4 cookie-es: 3.1.1 - seroval: 1.5.4 - seroval-plugins: 1.5.4(seroval@1.5.4) + seroval: 1.6.7 + seroval-plugins: 1.6.7(seroval@1.6.7) - '@tanstack/router-generator@1.167.18(supports-color@8.1.1)': + '@tanstack/router-generator@1.167.38(supports-color@8.1.1)': dependencies: - '@babel/types': 7.29.7 - '@tanstack/router-core': 1.171.14 - '@tanstack/router-utils': 1.162.2(supports-color@8.1.1) + '@babel/types': 7.29.8 + '@tanstack/router-core': 1.171.32 + '@tanstack/router-utils': 1.162.3(supports-color@8.1.1) '@tanstack/virtual-file-routes': 1.162.0 jiti: 2.7.0 magic-string: 0.30.21 - prettier: 3.8.3 - zod: 4.4.3 + prettier: 3.9.8 + zod: 4.6.5 transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.168.19(@tanstack/react-router@1.170.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(supports-color@8.1.1)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15))': + '@tanstack/router-plugin@1.168.40(@tanstack/react-router@1.170.38(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(esbuild@0.28.2)(rollup@4.63.4)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28))': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/template': 7.29.7 - '@babel/types': 7.29.7 - '@tanstack/router-core': 1.171.14 - '@tanstack/router-generator': 1.167.18(supports-color@8.1.1) - '@tanstack/router-utils': 1.162.2(supports-color@8.1.1) + '@babel/types': 7.29.8 + '@tanstack/router-core': 1.171.32 + '@tanstack/router-generator': 1.167.38(supports-color@8.1.1) + '@tanstack/router-utils': 1.162.3(supports-color@8.1.1) chokidar: 5.0.0 - unplugin: 3.0.0 - zod: 4.4.3 + unplugin: 3.4.0(esbuild@0.28.2)(rollup@4.63.4)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)) + zod: 4.6.5 optionalDependencies: - '@tanstack/react-router': 1.170.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) - vite-plugin-solid: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15) + '@tanstack/react-router': 1.170.38(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + vite-plugin-solid: 2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28) transitivePeerDependencies: + - '@farmfe/core' + - '@rspack/core' + - bun-types-no-globals + - esbuild + - rolldown + - rollup - supports-color + - unloader - '@tanstack/router-utils@1.162.2(supports-color@8.1.1)': + '@tanstack/router-utils@1.162.3(supports-color@8.1.1)': dependencies: - '@babel/generator': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 - ansis: 4.3.0 + '@babel/generator': 7.29.8 + '@babel/parser': 7.29.9 + '@babel/types': 7.29.8 + ansis: 4.4.0 babel-dead-code-elimination: 1.0.12(supports-color@8.1.1) diff: 8.0.4 pathe: 2.0.3 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 transitivePeerDependencies: - supports-color - '@tanstack/solid-devtools@0.7.33(csstype@3.2.3)(solid-js@1.9.13)': + '@tanstack/solid-devtools@0.7.33(solid-js@1.9.15)': dependencies: - '@tanstack/devtools': 0.10.14(csstype@3.2.3)(solid-js@1.9.13) - solid-js: 1.9.13 + '@tanstack/devtools': 0.10.14(csstype@3.2.3)(solid-js@1.9.15) + solid-js: 1.9.15 transitivePeerDependencies: - bufferutil - csstype - utf-8-validate - '@tanstack/solid-store@0.11.0(solid-js@1.9.13)': + '@tanstack/solid-store@0.11.1(solid-js@1.9.15)': dependencies: - '@tanstack/store': 0.11.0 - solid-js: 1.9.13 + '@tanstack/store': 0.11.1 + solid-js: 1.9.15 - '@tanstack/start-client-core@1.170.13': + '@tanstack/start-client-core@1.170.32': dependencies: - '@tanstack/router-core': 1.171.14 + '@tanstack/router-core': 1.171.32 '@tanstack/start-fn-stubs': 1.162.0 - '@tanstack/start-storage-context': 1.167.16 - seroval: 1.5.4 + '@tanstack/start-storage-context': 1.167.34 + seroval: 1.6.7 '@tanstack/start-fn-stubs@1.162.0': {} - '@tanstack/start-plugin-core@1.171.19(@tanstack/react-router@1.170.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(supports-color@8.1.1)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15))': + '@tanstack/start-plugin-core@1.171.46(@tanstack/react-router@1.170.38(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(esbuild@0.28.2)(rollup@4.63.4)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28))': dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.7 '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/types': 7.29.7 - '@tanstack/router-core': 1.171.14 - '@tanstack/router-generator': 1.167.18(supports-color@8.1.1) - '@tanstack/router-plugin': 1.168.19(@tanstack/react-router@1.170.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(supports-color@8.1.1)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15)) - '@tanstack/router-utils': 1.162.2(supports-color@8.1.1) - '@tanstack/start-server-core': 1.169.16 - exsolve: 1.0.8 - lightningcss: 1.32.0 + '@babel/types': 7.29.8 + '@jridgewell/remapping': 2.3.5 + '@tanstack/router-core': 1.171.32 + '@tanstack/router-generator': 1.167.38(supports-color@8.1.1) + '@tanstack/router-plugin': 1.168.40(@tanstack/react-router@1.170.38(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(esbuild@0.28.2)(rollup@4.63.4)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)) + '@tanstack/router-utils': 1.162.3(supports-color@8.1.1) + '@tanstack/start-server-core': 1.169.37 + exsolve: 1.1.1 + lightningcss: 1.33.0 pathe: 2.0.3 - picomatch: 4.0.4 - seroval: 1.5.4 + picomatch: 4.0.7 + seroval: 1.6.7 source-map: 0.7.6 - srvx: 0.11.16 - tinyglobby: 0.2.16 + srvx: 0.11.22 + tinyglobby: 0.2.17 ufo: 1.6.4 - vitefu: 1.1.3(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + vitefu: 1.1.3(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) xmlbuilder2: 4.0.3 - zod: 4.4.3 + zod: 4.6.5 optionalDependencies: - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: + - '@farmfe/core' + - '@rspack/core' - '@tanstack/react-router' + - bun-types-no-globals - crossws + - esbuild + - rolldown + - rollup - supports-color + - unloader - vite-plugin-solid - webpack - '@tanstack/start-server-core@1.169.16': + '@tanstack/start-server-core@1.169.37': dependencies: - '@tanstack/history': 1.162.0 - '@tanstack/router-core': 1.171.14 - '@tanstack/start-client-core': 1.170.13 - '@tanstack/start-storage-context': 1.167.16 + '@tanstack/history': 1.162.4 + '@tanstack/router-core': 1.171.32 + '@tanstack/start-client-core': 1.170.32 + '@tanstack/start-storage-context': 1.167.34 fetchdts: 0.1.7 h3-v2: h3@2.0.1-rc.20 - seroval: 1.5.4 + seroval: 1.6.7 transitivePeerDependencies: - crossws - '@tanstack/start-storage-context@1.167.16': + '@tanstack/start-storage-context@1.167.34': dependencies: - '@tanstack/router-core': 1.171.14 + '@tanstack/router-core': 1.171.32 '@tanstack/store@0.11.0': {} + '@tanstack/store@0.11.1': {} + '@tanstack/store@0.9.3': {} - '@tanstack/svelte-store@0.12.0(svelte@5.55.9(@typescript-eslint/types@8.59.4))': + '@tanstack/svelte-store@0.12.1(svelte@5.57.1(@typescript-eslint/types@8.70.0))': dependencies: - '@tanstack/store': 0.11.0 - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + '@tanstack/store': 0.11.1 + svelte: 5.57.1(@typescript-eslint/types@8.70.0) '@tanstack/typedoc-config@0.3.1(typescript@5.9.3)': dependencies: @@ -21037,12 +21826,12 @@ snapshots: '@tanstack/virtual-file-routes@1.162.0': {} - '@tanstack/vite-config@0.4.1(@types/node@24.12.4)(rollup@4.60.4)(supports-color@7.2.0)(typescript@5.9.3)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))': + '@tanstack/vite-config@0.4.1(@types/node@24.13.6)(rollup@4.63.4)(supports-color@7.2.0)(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))': dependencies: - rollup-plugin-preserve-directives: 0.4.0(rollup@4.60.4) - vite-plugin-dts: 4.2.3(@types/node@24.12.4)(rollup@4.60.4)(supports-color@7.2.0)(typescript@5.9.3)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) - vite-plugin-externalize-deps: 0.10.0(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) - vite-tsconfig-paths: 5.1.4(supports-color@7.2.0)(typescript@5.9.3)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + rollup-plugin-preserve-directives: 0.4.0(rollup@4.63.4) + vite-plugin-dts: 4.2.3(@types/node@24.13.6)(rollup@4.63.4)(supports-color@7.2.0)(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + vite-plugin-externalize-deps: 0.10.0(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + vite-tsconfig-paths: 5.1.4(supports-color@7.2.0)(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) transitivePeerDependencies: - '@types/node' - rollup @@ -21050,22 +21839,20 @@ snapshots: - typescript - vite - '@tanstack/vue-store@0.11.0(vue@3.5.34(typescript@5.9.3))': + '@tanstack/vue-store@0.11.1(vue@3.5.43(typescript@5.9.3))': dependencies: - '@tanstack/store': 0.11.0 - vue: 3.5.34(typescript@5.9.3) - vue-demi: 0.14.10(vue@3.5.34(typescript@5.9.3)) + '@tanstack/store': 0.11.1 + vue: 3.5.43(typescript@5.9.3) + vue-demi: 0.14.10(vue@3.5.43(typescript@5.9.3)) - '@testing-library/angular@19.3.0(3552bf3db4cf28d0cedfe8eb15d0ed21)': + '@testing-library/angular@19.5.0(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/router@21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(@testing-library/dom@10.4.2)': dependencies: - '@angular/common': 21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/router': 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.14(@angular/animations@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@testing-library/dom': 10.4.1 + '@angular/core': 21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/router': 21.2.23(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@21.2.23(@angular/animations@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@21.2.23(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@21.2.23(@angular/compiler@21.2.23)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@testing-library/dom': 10.4.2 tslib: 2.8.1 - '@testing-library/dom@10.4.1': + '@testing-library/dom@10.4.2': dependencies: '@babel/code-frame': 7.29.7 '@babel/runtime': 7.29.7 @@ -21098,80 +21885,168 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.9.1': + '@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2)': dependencies: '@adobe/css-tools': 4.5.0 + '@testing-library/dom': 10.4.2 aria-query: 5.3.2 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/preact@3.2.4(preact@10.29.2)': + '@testing-library/preact@3.2.4(preact@10.29.8)': dependencies: '@testing-library/dom': 8.20.1 - preact: 10.29.2 + preact: 10.29.8 - '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@testing-library/react@16.3.3(@testing-library/dom@10.4.2)(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@babel/runtime': 7.29.7 - '@testing-library/dom': 10.4.1 + '@testing-library/dom': 10.4.2 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@types/react': 19.2.18 + '@types/react-dom': 19.3.0(@types/react@19.2.18) - '@testing-library/svelte-core@1.0.0(svelte@5.55.9(@typescript-eslint/types@8.59.4))': + '@testing-library/svelte-core@1.1.3(svelte@5.57.1(@typescript-eslint/types@8.70.0))': dependencies: - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.57.1(@typescript-eslint/types@8.70.0) - '@testing-library/svelte@5.3.1(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(vitest@3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@8.1.1))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@8.1.1)(terser@5.48.0)(yaml@2.9.0))': + '@testing-library/svelte@5.4.2(svelte@5.57.1(@typescript-eslint/types@8.70.0))(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(vitest@3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@8.1.1))(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1))': dependencies: - '@testing-library/dom': 10.4.1 - '@testing-library/svelte-core': 1.0.0(svelte@5.55.9(@typescript-eslint/types@8.59.4)) - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + '@testing-library/dom': 10.4.2 + '@testing-library/svelte-core': 1.1.3(svelte@5.57.1(@typescript-eslint/types@8.70.0)) + svelte: 5.57.1(@typescript-eslint/types@8.70.0) optionalDependencies: - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) - vitest: 3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@8.1.1))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@8.1.1)(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + vitest: 3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@8.1.1))(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1) - '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': + '@testing-library/user-event@14.6.7(@testing-library/dom@10.4.2)': dependencies: - '@testing-library/dom': 10.4.1 + '@testing-library/dom': 10.4.2 - '@testing-library/vue@8.1.0(@vue/compiler-dom@3.5.34)(@vue/compiler-sfc@3.5.34)(@vue/server-renderer@3.5.34(vue@3.5.34(typescript@5.9.3)))(vue@3.5.34(typescript@5.9.3))': + '@testing-library/vue@8.1.0(@vue/compiler-dom@3.5.43)(@vue/compiler-sfc@3.5.43)(@vue/server-renderer@3.5.43)(vue@3.5.43(typescript@5.9.3))': dependencies: '@babel/runtime': 7.29.7 '@testing-library/dom': 9.3.4 - '@vue/test-utils': 2.4.10(@vue/compiler-dom@3.5.34)(@vue/server-renderer@3.5.34(vue@3.5.34(typescript@5.9.3)))(vue@3.5.34(typescript@5.9.3)) - vue: 3.5.34(typescript@5.9.3) + '@vue/test-utils': 2.5.1(@vue/compiler-dom@3.5.43)(@vue/server-renderer@3.5.43)(vue@3.5.43(typescript@5.9.3)) + vue: 3.5.43(typescript@5.9.3) optionalDependencies: - '@vue/compiler-sfc': 3.5.34 + '@vue/compiler-sfc': 3.5.43 transitivePeerDependencies: - '@vue/compiler-dom' - '@vue/server-renderer' - '@ts-morph/common@0.22.0': - dependencies: - fast-glob: 3.3.3 - minimatch: 9.0.9 - mkdirp: 3.0.1 - path-browserify: 1.0.1 + '@tsconfig/node10@1.0.13': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} '@tsconfig/svelte@5.0.8': {} - '@tufjs/canonical-json@2.0.0': {} + '@tsrx/core@0.2.4(@typescript-eslint/types@8.70.0)': + dependencies: + '@jridgewell/sourcemap-codec': 1.6.0 + '@noble/hashes': 2.4.0 + '@sveltejs/acorn-typescript': 1.0.13(acorn@8.18.0) + '@tsrx/runtime': 0.2.2 + '@types/estree': 1.0.9 + '@types/estree-jsx': 1.0.5 + acorn: 8.18.0 + esrap: 2.3.7(@typescript-eslint/types@8.70.0) + get-tsconfig: 5.0.0-beta.6 + magic-string: 0.30.21 + zimmerframe: 1.1.5 + transitivePeerDependencies: + - '@typescript-eslint/types' - '@tufjs/models@4.1.0': + '@tsrx/eslint-parser@0.4.7(@typescript-eslint/types@8.70.0)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))': dependencies: - '@tufjs/canonical-json': 2.0.0 - minimatch: 10.2.5 + '@tsrx/core': 0.2.4(@typescript-eslint/types@8.70.0) + eslint: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) + transitivePeerDependencies: + - '@typescript-eslint/types' - '@tybys/wasm-util@0.10.2': + '@tsrx/eslint-plugin@0.4.7(@tsrx/eslint-parser@0.4.7(@typescript-eslint/types@8.70.0)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1)))(@typescript-eslint/parser@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))': dependencies: - tslib: 2.8.1 + '@tsrx/eslint-parser': 0.4.7(@typescript-eslint/types@8.70.0)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1)) + '@typescript-eslint/parser': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) + eslint: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) + + '@tsrx/oxc-darwin-arm64@0.13.0': + optional: true + + '@tsrx/oxc-darwin-x64@0.13.0': + optional: true + + '@tsrx/oxc-linux-arm64-gnu@0.13.0': + optional: true + + '@tsrx/oxc-linux-arm64-musl@0.13.0': + optional: true + + '@tsrx/oxc-linux-x64-gnu@0.13.0': + optional: true + + '@tsrx/oxc-linux-x64-musl@0.13.0': + optional: true + + '@tsrx/oxc-win32-arm64-msvc@0.13.0': + optional: true + + '@tsrx/oxc-win32-x64-msvc@0.13.0': optional: true + '@tsrx/oxc@0.13.0(svelte@5.57.1(@typescript-eslint/types@8.70.0))': + dependencies: + '@oxc-project/types': 0.140.0 + oxfmt-current: oxfmt@0.59.0(svelte@5.57.1(@typescript-eslint/types@8.70.0)) + oxlint-current: oxlint@1.74.0(oxlint-tsgolint@0.24.0) + oxlint-tsgolint: 0.24.0 + pathe: 2.0.3 + tinyglobby: 0.2.17 + optionalDependencies: + '@tsrx/oxc-darwin-arm64': 0.13.0 + '@tsrx/oxc-darwin-x64': 0.13.0 + '@tsrx/oxc-linux-arm64-gnu': 0.13.0 + '@tsrx/oxc-linux-arm64-musl': 0.13.0 + '@tsrx/oxc-linux-x64-gnu': 0.13.0 + '@tsrx/oxc-linux-x64-musl': 0.13.0 + '@tsrx/oxc-win32-arm64-msvc': 0.13.0 + '@tsrx/oxc-win32-x64-msvc': 0.13.0 + transitivePeerDependencies: + - svelte + - vite-plus + + '@tsrx/prettier-plugin@0.4.7(@typescript-eslint/types@8.70.0)(prettier@3.9.8)': + dependencies: + '@tsrx/core': 0.2.4(@typescript-eslint/types@8.70.0) + prettier: 3.9.8 + transitivePeerDependencies: + - '@typescript-eslint/types' + + '@tsrx/runtime@0.2.2': {} + + '@tsrx/typescript-plugin@0.4.6(octane@0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)))(typescript@5.9.3)': + dependencies: + '@volar/language-core': 2.4.28 + '@volar/typescript': 2.4.28(typescript@5.9.3) + typescript: 5.9.3 + optionalDependencies: + octane: 0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + + '@tufjs/canonical-json@2.0.0': {} + + '@tufjs/models@4.1.0': + dependencies: + '@tufjs/canonical-json': 2.0.0 + minimatch: 10.2.6 + '@tybys/wasm-util@0.10.4': dependencies: tslib: 2.8.1 @@ -21191,33 +22066,33 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 7.29.9 + '@babel/types': 7.29.8 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 7.29.9 + '@babel/types': 7.29.8 '@types/babel__traverse@7.28.0': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 24.12.4 + '@types/node': 24.13.6 '@types/bonjour@3.5.13': dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 '@types/chai@5.2.3': dependencies: @@ -21226,12 +22101,12 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 4.19.8 - '@types/node': 24.12.4 + '@types/express-serve-static-core': 4.19.9 + '@types/node': 24.13.6 '@types/connect@3.4.38': dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 '@types/cookie@0.6.0': {} @@ -21257,13 +22132,11 @@ snapshots: dependencies: '@types/estree': 1.0.9 - '@types/estree@1.0.8': {} - '@types/estree@1.0.9': {} - '@types/express-serve-static-core@4.19.8': + '@types/express-serve-static-core@4.19.9': dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 '@types/qs': 6.15.1 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -21271,13 +22144,13 @@ snapshots: '@types/express@4.17.25': dependencies: '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 4.19.8 + '@types/express-serve-static-core': 4.19.9 '@types/qs': 6.15.1 '@types/serve-static': 1.15.10 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 '@types/hammerjs@2.0.46': {} @@ -21285,7 +22158,7 @@ snapshots: dependencies: '@types/unist': 2.0.11 - '@types/hast@3.0.4': + '@types/hast@3.0.5': dependencies: '@types/unist': 3.0.3 @@ -21293,7 +22166,7 @@ snapshots: '@types/http-proxy@1.17.17': dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 '@types/istanbul-lib-coverage@2.0.6': {} @@ -21315,15 +22188,15 @@ snapshots: dependencies: '@types/unist': 2.0.11 - '@types/mdx@2.0.13': {} + '@types/mdx@2.0.14': {} '@types/mime@1.3.5': {} '@types/ms@2.1.0': {} - '@types/node@24.12.4': + '@types/node@24.13.6': dependencies: - undici-types: 7.16.0 + undici-types: 7.18.2 '@types/parse-json@4.0.2': {} @@ -21333,15 +22206,15 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-dom@19.2.3(@types/react@19.2.17)': + '@types/react-dom@19.3.0(@types/react@19.2.18)': dependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@types/react-transition-group@4.4.12(@types/react@19.2.17)': + '@types/react-transition-group@4.4.12(@types/react@19.2.18)': dependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@types/react@19.2.17': + '@types/react@19.2.18': dependencies: csstype: 3.2.3 @@ -21350,11 +22223,11 @@ snapshots: '@types/send@0.17.6': dependencies: '@types/mime': 1.3.5 - '@types/node': 24.12.4 + '@types/node': 24.13.6 '@types/send@1.2.1': dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 '@types/serve-index@1.9.4': dependencies: @@ -21363,12 +22236,12 @@ snapshots: '@types/serve-static@1.15.10': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 24.12.4 + '@types/node': 24.13.6 '@types/send': 0.17.6 '@types/sockjs@0.3.36': dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 '@types/stack-utils@2.0.3': {} @@ -21380,7 +22253,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 '@types/yargs-parser@21.0.3': {} @@ -21388,94 +22261,94 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.59.4(@typescript-eslint/parser@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.70.0(@typescript-eslint/parser@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/type-utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.59.4 + '@typescript-eslint/parser': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/type-utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.70.0 eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) - ignore: 7.0.5 + ignore: 7.0.9 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.59.4(@typescript-eslint/parser@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.70.0(@typescript-eslint/parser@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/type-utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.59.4 + '@typescript-eslint/parser': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/type-utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.70.0 eslint: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) - ignore: 7.0.5 + ignore: 7.0.9 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)': + '@typescript-eslint/parser@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/typescript-estree': 8.59.4(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.59.4 + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/typescript-estree': 8.70.0(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.70.0 debug: 4.4.3(supports-color@7.2.0) eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3)': + '@typescript-eslint/parser@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/typescript-estree': 8.59.4(supports-color@8.1.1)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.59.4 + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/typescript-estree': 8.70.0(supports-color@8.1.1)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.70.0 debug: 4.4.3(supports-color@8.1.1) eslint: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.59.4(supports-color@7.2.0)(typescript@5.9.3)': + '@typescript-eslint/project-service@8.70.0(supports-color@7.2.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.59.4(typescript@5.9.3) - '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/tsconfig-utils': 8.70.0(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 debug: 4.4.3(supports-color@7.2.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.59.4(supports-color@8.1.1)(typescript@5.9.3)': + '@typescript-eslint/project-service@8.70.0(supports-color@8.1.1)(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.59.4(typescript@5.9.3) - '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/tsconfig-utils': 8.70.0(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 debug: 4.4.3(supports-color@8.1.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.59.4': + '@typescript-eslint/scope-manager@8.70.0': dependencies: - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/visitor-keys': 8.59.4 + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/visitor-keys': 8.70.0 - '@typescript-eslint/tsconfig-utils@8.59.4(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.70.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/typescript-estree': 8.59.4(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/typescript-estree': 8.70.0(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) debug: 4.4.3(supports-color@7.2.0) eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) ts-api-utils: 2.5.0(typescript@5.9.3) @@ -21483,11 +22356,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/typescript-estree': 8.59.4(supports-color@8.1.1)(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/typescript-estree': 8.70.0(supports-color@8.1.1)(typescript@5.9.3) + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) debug: 4.4.3(supports-color@8.1.1) eslint: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) ts-api-utils: 2.5.0(typescript@5.9.3) @@ -21495,66 +22368,66 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.59.4': {} + '@typescript-eslint/types@8.70.0': {} - '@typescript-eslint/typescript-estree@8.59.4(supports-color@7.2.0)(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.70.0(supports-color@7.2.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.59.4(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.59.4(typescript@5.9.3) - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/visitor-keys': 8.59.4 + '@typescript-eslint/project-service': 8.70.0(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.70.0(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/visitor-keys': 8.70.0 debug: 4.4.3(supports-color@7.2.0) - minimatch: 10.2.5 - semver: 7.8.1 - tinyglobby: 0.2.16 + minimatch: 10.2.6 + semver: 7.8.5 + tinyglobby: 0.2.17 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.59.4(supports-color@8.1.1)(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.70.0(supports-color@8.1.1)(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.59.4(supports-color@8.1.1)(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.59.4(typescript@5.9.3) - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/visitor-keys': 8.59.4 + '@typescript-eslint/project-service': 8.70.0(supports-color@8.1.1)(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.70.0(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/visitor-keys': 8.70.0 debug: 4.4.3(supports-color@8.1.1) - minimatch: 10.2.5 - semver: 7.8.1 - tinyglobby: 0.2.16 + minimatch: 10.2.6 + semver: 7.8.5 + tinyglobby: 0.2.17 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)': + '@typescript-eslint/utils@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)) - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/typescript-estree': 8.59.4(supports-color@7.2.0)(typescript@5.9.3) + '@eslint-community/eslint-utils': 4.10.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)) + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/typescript-estree': 8.70.0(supports-color@7.2.0)(typescript@5.9.3) eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3)': + '@typescript-eslint/utils@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1)) - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/typescript-estree': 8.59.4(supports-color@8.1.1)(typescript@5.9.3) + '@eslint-community/eslint-utils': 4.10.1(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1)) + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/typescript-estree': 8.70.0(supports-color@8.1.1)(typescript@5.9.3) eslint: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.59.4': + '@typescript-eslint/visitor-keys@8.70.0': dependencies: - '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/types': 8.70.0 eslint-visitor-keys: 5.0.1 - '@ungap/structured-clone@1.3.1': {} + '@ungap/structured-clone@1.4.0': {} '@unrs/resolver-binding-android-arm-eabi@1.12.2': optional: true @@ -21614,7 +22487,7 @@ snapshots: dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': @@ -21628,7 +22501,7 @@ snapshots: '@urql/core@5.2.0': dependencies: - '@0no-co/graphql.web': 1.2.0 + '@0no-co/graphql.web': 1.3.4 wonka: 6.3.6 transitivePeerDependencies: - graphql @@ -21644,7 +22517,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vanilla-extract/css@1.20.1(babel-plugin-macros@3.1.0)': + '@vanilla-extract/css@1.21.2(babel-plugin-macros@3.1.0)': dependencies: '@emotion/hash': 0.9.2 '@vanilla-extract/private': 1.0.9 @@ -21660,12 +22533,12 @@ snapshots: transitivePeerDependencies: - babel-plugin-macros - '@vanilla-extract/integration@6.5.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.48.0)': + '@vanilla-extract/integration@6.5.0(@types/node@24.13.6)(babel-plugin-macros@3.1.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.51.2)': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) '@vanilla-extract/babel-plugin-debug-ids': 1.2.2(supports-color@8.1.1) - '@vanilla-extract/css': 1.20.1(babel-plugin-macros@3.1.0) + '@vanilla-extract/css': 1.21.2(babel-plugin-macros@3.1.0) esbuild: 0.17.6 eval: 0.1.8 find-up: 5.0.0 @@ -21673,8 +22546,8 @@ snapshots: lodash: 4.18.1 mlly: 1.8.2 outdent: 0.8.0 - vite: 5.4.21(@types/node@24.12.4)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0) - vite-node: 1.6.1(@types/node@24.12.4)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.48.0) + vite: 5.4.21(@types/node@24.13.6)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2) + vite-node: 1.6.1(@types/node@24.13.6)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.51.2) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -21689,28 +22562,28 @@ snapshots: '@vanilla-extract/private@1.0.9': {} - '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.12))(terser@5.46.0)(yaml@2.9.1))': + '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.0(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.23))(terser@5.46.0)(yaml@2.9.1))': dependencies: - vite: 7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.12))(terser@5.46.0)(yaml@2.9.1) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.0(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.23))(terser@5.46.0)(yaml@2.9.1) - '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.15))(terser@5.46.0)(yaml@2.9.0))': + '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))': dependencies: - vite: 7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.15))(terser@5.46.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) - '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))': + '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))': dependencies: - vite: 7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) optional: true - '@vitejs/plugin-react-swc@3.11.0(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0))': + '@vitejs/plugin-react-swc@3.11.0(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.27 - '@swc/core': 1.15.40 - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0) + '@swc/core': 1.16.2 + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - '@swc/helpers' - '@vitejs/plugin-react@5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))': + '@vitejs/plugin-react@5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) @@ -21718,11 +22591,11 @@ snapshots: '@rolldown/pluginutils': 1.0.0-rc.3 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@5.2.0(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0))': + '@vitejs/plugin-react@5.2.0(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1))': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) @@ -21730,16 +22603,16 @@ snapshots: '@rolldown/pluginutils': 1.0.0-rc.3 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.9.3))': + '@vitejs/plugin-vue@5.2.4(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(vue@3.5.43(typescript@5.9.3))': dependencies: - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) - vue: 3.5.34(typescript@5.9.3) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + vue: 3.5.43(typescript@5.9.3) - '@vitest/coverage-istanbul@3.2.4(supports-color@7.2.0)(vitest@3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@7.2.0))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@7.2.0)(terser@5.48.0)(yaml@2.9.0))': + '@vitest/coverage-istanbul@3.2.7(supports-color@7.2.0)(vitest@3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@7.2.0))(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@7.2.0)(terser@5.51.2)(yaml@2.9.1))': dependencies: '@istanbuljs/schema': 0.1.6 debug: 4.4.3(supports-color@7.2.0) @@ -21751,49 +22624,57 @@ snapshots: magicast: 0.3.5 test-exclude: 7.0.2 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@7.2.0))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@7.2.0)(terser@5.48.0)(yaml@2.9.0) + vitest: 3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@7.2.0))(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@7.2.0)(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - supports-color - '@vitest/expect@3.2.4': + '@vitest/expect@3.2.7': dependencies: '@types/chai': 5.2.3 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 + '@vitest/spy': 3.2.7 + '@vitest/utils': 3.2.7 chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0))': + '@vitest/mocker@3.2.7(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))': + dependencies: + '@vitest/spy': 3.2.7 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + + '@vitest/mocker@3.2.7(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))': dependencies: - '@vitest/spy': 3.2.4 + '@vitest/spy': 3.2.7 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) - '@vitest/pretty-format@3.2.4': + '@vitest/pretty-format@3.2.7': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.2.4': + '@vitest/runner@3.2.7': dependencies: - '@vitest/utils': 3.2.4 + '@vitest/utils': 3.2.7 pathe: 2.0.3 strip-literal: 3.1.0 - '@vitest/snapshot@3.2.4': + '@vitest/snapshot@3.2.7': dependencies: - '@vitest/pretty-format': 3.2.4 + '@vitest/pretty-format': 3.2.7 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@3.2.4': + '@vitest/spy@3.2.7': dependencies: - tinyspy: 4.0.4 + tinyspy: 4.0.6 - '@vitest/utils@3.2.4': + '@vitest/utils@3.2.7': dependencies: - '@vitest/pretty-format': 3.2.4 + '@vitest/pretty-format': 3.2.7 loupe: 3.2.1 tinyrainbow: 2.0.0 @@ -21809,47 +22690,51 @@ snapshots: '@volar/source-map@2.4.28': {} - '@volar/typescript@2.4.15': + '@volar/typescript@2.4.15(typescript@5.9.3)': dependencies: '@volar/language-core': 2.4.15 path-browserify: 1.0.1 - vscode-uri: 3.1.0 + vscode-uri: 3.2.0 + optionalDependencies: + typescript: 5.9.3 - '@volar/typescript@2.4.28': + '@volar/typescript@2.4.28(typescript@5.9.3)': dependencies: '@volar/language-core': 2.4.28 path-browserify: 1.0.1 - vscode-uri: 3.1.0 + vscode-uri: 3.2.0 + optionalDependencies: + typescript: 5.9.3 - '@vue/compiler-core@3.5.34': + '@vue/compiler-core@3.5.43': dependencies: - '@babel/parser': 7.29.7 - '@vue/shared': 3.5.34 + '@babel/parser': 7.29.9 + '@vue/shared': 3.5.43 entities: 7.0.1 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.34': + '@vue/compiler-dom@3.5.43': dependencies: - '@vue/compiler-core': 3.5.34 - '@vue/shared': 3.5.34 + '@vue/compiler-core': 3.5.43 + '@vue/shared': 3.5.43 - '@vue/compiler-sfc@3.5.34': + '@vue/compiler-sfc@3.5.43': dependencies: - '@babel/parser': 7.29.7 - '@vue/compiler-core': 3.5.34 - '@vue/compiler-dom': 3.5.34 - '@vue/compiler-ssr': 3.5.34 - '@vue/shared': 3.5.34 + '@babel/parser': 7.29.9 + '@vue/compiler-core': 3.5.43 + '@vue/compiler-dom': 3.5.43 + '@vue/compiler-ssr': 3.5.43 + '@vue/shared': 3.5.43 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.15 + postcss: 8.5.28 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.34': + '@vue/compiler-ssr@3.5.43': dependencies: - '@vue/compiler-dom': 3.5.34 - '@vue/shared': 3.5.34 + '@vue/compiler-dom': 3.5.43 + '@vue/shared': 3.5.43 '@vue/compiler-vue2@2.7.16': dependencies: @@ -21859,9 +22744,9 @@ snapshots: '@vue/language-core@2.1.6(typescript@5.9.3)': dependencies: '@volar/language-core': 2.4.28 - '@vue/compiler-dom': 3.5.34 + '@vue/compiler-dom': 3.5.43 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.34 + '@vue/shared': 3.5.43 computeds: 0.0.1 minimatch: 9.0.9 muggle-string: 0.4.1 @@ -21872,9 +22757,9 @@ snapshots: '@vue/language-core@2.2.12(typescript@5.9.3)': dependencies: '@volar/language-core': 2.4.15 - '@vue/compiler-dom': 3.5.34 + '@vue/compiler-dom': 3.5.43 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.34 + '@vue/shared': 3.5.43 alien-signals: 1.0.13 minimatch: 9.0.9 muggle-string: 0.4.1 @@ -21882,38 +22767,38 @@ snapshots: optionalDependencies: typescript: 5.9.3 - '@vue/reactivity@3.5.34': + '@vue/reactivity@3.5.43': dependencies: - '@vue/shared': 3.5.34 + '@vue/shared': 3.5.43 - '@vue/runtime-core@3.5.34': + '@vue/runtime-core@3.5.43': dependencies: - '@vue/reactivity': 3.5.34 - '@vue/shared': 3.5.34 + '@vue/reactivity': 3.5.43 + '@vue/shared': 3.5.43 - '@vue/runtime-dom@3.5.34': + '@vue/runtime-dom@3.5.43': dependencies: - '@vue/reactivity': 3.5.34 - '@vue/runtime-core': 3.5.34 - '@vue/shared': 3.5.34 + '@vue/reactivity': 3.5.43 + '@vue/runtime-core': 3.5.43 + '@vue/shared': 3.5.43 csstype: 3.2.3 - '@vue/server-renderer@3.5.34(vue@3.5.34(typescript@5.9.3))': + '@vue/server-renderer@3.5.43': dependencies: - '@vue/compiler-ssr': 3.5.34 - '@vue/shared': 3.5.34 - vue: 3.5.34(typescript@5.9.3) + '@vue/compiler-ssr': 3.5.43 + '@vue/runtime-dom': 3.5.43 + '@vue/shared': 3.5.43 - '@vue/shared@3.5.34': {} + '@vue/shared@3.5.43': {} - '@vue/test-utils@2.4.10(@vue/compiler-dom@3.5.34)(@vue/server-renderer@3.5.34(vue@3.5.34(typescript@5.9.3)))(vue@3.5.34(typescript@5.9.3))': + '@vue/test-utils@2.5.1(@vue/compiler-dom@3.5.43)(@vue/server-renderer@3.5.43)(vue@3.5.43(typescript@5.9.3))': dependencies: - '@vue/compiler-dom': 3.5.34 - js-beautify: 1.15.4 - vue: 3.5.34(typescript@5.9.3) - vue-component-type-helpers: 3.3.2 + '@vue/compiler-dom': 3.5.43 + js-beautify: 2.0.3 + vue: 3.5.43(typescript@5.9.3) + vue-component-type-helpers: 3.3.11 optionalDependencies: - '@vue/server-renderer': 3.5.34(vue@3.5.34(typescript@5.9.3)) + '@vue/server-renderer': 3.5.43 '@web3-storage/multipart-parser@1.0.0': {} @@ -21993,9 +22878,9 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 - '@xmldom/xmldom@0.8.13': {} + '@xmldom/xmldom@0.8.15': {} - '@xmldom/xmldom@0.9.10': {} + '@xmldom/xmldom@0.9.12': {} '@xtuc/ieee754@1.2.0': {} @@ -22015,10 +22900,10 @@ snapshots: '@zxing/text-encoding@0.9.0': optional: true - abbrev@2.0.0: {} - abbrev@4.0.0: {} + abbrev@5.0.0: {} + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 @@ -22031,17 +22916,21 @@ snapshots: accepts@2.0.0: dependencies: mime-types: 3.0.2 - negotiator: 1.0.0 + negotiator: 1.1.0 + + acorn-import-phases@1.0.4(acorn@8.18.0): + dependencies: + acorn: 8.18.0 - acorn-import-phases@1.0.4(acorn@8.16.0): + acorn-jsx@5.3.2(acorn@8.18.0): dependencies: - acorn: 8.16.0 + acorn: 8.18.0 - acorn-jsx@5.3.2(acorn@8.16.0): + acorn-walk@8.3.5: dependencies: - acorn: 8.16.0 + acorn: 8.18.0 - acorn@8.16.0: {} + acorn@8.18.0: {} adjust-sourcemap-loader@4.0.0: dependencies: @@ -22056,6 +22945,8 @@ snapshots: agent-base@7.1.4: {} + agent-cli-detector@0.1.7: {} + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 @@ -22065,10 +22956,6 @@ snapshots: optionalDependencies: ajv: 8.13.0 - ajv-formats@2.1.1(ajv@8.20.0): - optionalDependencies: - ajv: 8.20.0 - ajv-formats@3.0.1(ajv@8.13.0): optionalDependencies: ajv: 8.13.0 @@ -22110,14 +22997,14 @@ snapshots: ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.2 + fast-uri: 3.1.8 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.2 + fast-uri: 3.1.8 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -22140,6 +23027,8 @@ snapshots: alien-signals@1.0.13: {} + alien-signals@3.2.0: {} + anser@1.4.10: {} ansi-colors@4.1.3: {} @@ -22158,7 +23047,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.2.2: {} + ansi-regex@6.3.0: {} ansi-styles@3.2.1: dependencies: @@ -22172,7 +23061,7 @@ snapshots: ansi-styles@6.2.3: {} - ansis@4.3.0: {} + ansis@4.4.0: {} any-promise@1.3.0: {} @@ -22181,6 +23070,8 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.2 + arg@4.1.3: {} + arg@5.0.2: {} argparse@1.0.10: @@ -22205,15 +23096,15 @@ snapshots: aria-query@5.3.2: {} - arkregex@0.0.5: + arkregex@0.0.8: dependencies: - '@ark/util': 0.56.0 + '@ark/util': 0.56.2 - arktype@2.2.0: + arktype@2.2.3: dependencies: - '@ark/schema': 0.56.0 - '@ark/util': 0.56.0 - arkregex: 0.0.5 + '@ark/schema': 0.56.2 + '@ark/util': 0.56.2 + arkregex: 0.0.8 array-buffer-byte-length@1.0.2: dependencies: @@ -22222,14 +23113,14 @@ snapshots: array-flatten@1.1.1: {} - array-includes@3.1.9: + array-includes@3.2.0: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 es-abstract: 1.24.2 es-object-atoms: 1.1.2 - get-intrinsic: 1.3.0 + es-shim-unscopables: 1.1.0 is-string: 1.1.1 math-intrinsics: 1.1.0 @@ -22289,14 +23180,14 @@ snapshots: asn1js@3.0.10: dependencies: pvtsutils: 1.3.6 - pvutils: 1.1.5 + pvutils: 1.2.0 tslib: 2.8.1 assertion-error@2.0.1: {} - ast-kit@3.0.0-beta.1: + ast-kit@3.0.0: dependencies: - '@babel/parser': 8.0.0-rc.3 + '@babel/parser': 8.0.6 estree-walker: 3.0.3 pathe: 2.0.3 @@ -22308,13 +23199,13 @@ snapshots: asynckit@0.4.0: {} - autoprefixer@10.4.27(postcss@8.5.12): + autoprefixer@10.4.27(postcss@8.5.23): dependencies: - browserslist: 4.28.2 - caniuse-lite: 1.0.30001793 + browserslist: 4.29.0 + caniuse-lite: 1.0.30001810 fraction.js: 5.3.4 picocolors: 1.1.1 - postcss: 8.5.12 + postcss: 8.5.23 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: @@ -22324,7 +23215,7 @@ snapshots: axios@1.18.1(debug@4.4.3(supports-color@7.2.0))(supports-color@7.2.0): dependencies: follow-redirects: 1.16.0(debug@4.4.3(supports-color@7.2.0)) - form-data: 4.0.5 + form-data: 4.0.6 https-proxy-agent: 5.0.1(supports-color@7.2.0) proxy-from-env: 2.1.0 transitivePeerDependencies: @@ -22336,9 +23227,9 @@ snapshots: babel-dead-code-elimination@1.0.12(supports-color@8.1.1): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/parser': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) - '@babel/types': 7.29.7 + '@babel/parser': 7.29.9 + '@babel/traverse': 7.29.8(supports-color@8.1.1) + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -22355,11 +23246,17 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@10.0.0(@babel/core@7.29.0(supports-color@8.1.1))(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)): + babel-loader@10.0.0(@babel/core@7.29.7(supports-color@7.2.0))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)): + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + find-up: 5.0.0 + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) + + babel-loader@10.0.0(@babel/core@7.29.7(supports-color@8.1.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)): dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@8.1.1) find-up: 5.0.0 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) babel-plugin-istanbul@6.1.1(supports-color@8.1.1): dependencies: @@ -22374,16 +23271,16 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.29.7 - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 - babel-plugin-jsx-dom-expressions@0.40.7(@babel/core@7.29.7(supports-color@7.2.0)): + babel-plugin-jsx-dom-expressions@0.40.10(@babel/core@7.29.7(supports-color@7.2.0)): dependencies: '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-module-imports': 7.18.6 '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 html-entities: 2.3.3 parse5: 7.3.0 @@ -22393,11 +23290,11 @@ snapshots: cosmiconfig: 7.1.0 resolve: 1.22.12 - babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1): + babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1): dependencies: '@babel/compat-data': 7.29.7 - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -22411,11 +23308,11 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1): + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1): dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - core-js-compat: 3.49.0 + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + core-js-compat: 3.50.0 transitivePeerDependencies: - supports-color @@ -22423,22 +23320,30 @@ snapshots: dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) - core-js-compat: 3.49.0 + core-js-compat: 3.50.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1): + dependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) + core-js-compat: 3.50.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1): + babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1): dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) - core-js-compat: 3.49.0 + '@babel/core': 7.29.7(supports-color@8.1.1) + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + core-js-compat: 3.50.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1): + babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1): dependencies: - '@babel/core': 7.29.0(supports-color@8.1.1) - '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -22451,11 +23356,11 @@ snapshots: babel-plugin-react-compiler@1.0.0: dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 babel-plugin-react-compiler@19.1.0-rc.3: dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 babel-plugin-react-native-web@0.21.2: {} @@ -22492,7 +23397,7 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.7(supports-color@8.1.1)) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.7(supports-color@8.1.1)) - babel-preset-expo@54.0.10(@babel/core@7.29.7(supports-color@8.1.1))(@babel/runtime@7.29.7)(expo@54.0.34)(react-refresh@0.14.2)(supports-color@8.1.1): + babel-preset-expo@54.0.12(@babel/core@7.29.7(supports-color@8.1.1))(@babel/runtime@7.29.7)(expo@54.0.37)(react-refresh@0.14.2)(supports-color@8.1.1): dependencies: '@babel/helper-module-imports': 7.29.7(supports-color@8.1.1) '@babel/plugin-proposal-decorators': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) @@ -22519,7 +23424,7 @@ snapshots: resolve-from: 5.0.0 optionalDependencies: '@babel/runtime': 7.29.7 - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) transitivePeerDependencies: - '@babel/core' - supports-color @@ -22530,12 +23435,12 @@ snapshots: babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.7(supports-color@8.1.1)) - babel-preset-solid@1.9.12(@babel/core@7.29.7(supports-color@7.2.0))(solid-js@1.9.13): + babel-preset-solid@1.9.15(@babel/core@7.29.7(supports-color@7.2.0))(solid-js@1.9.15): dependencies: '@babel/core': 7.29.7(supports-color@7.2.0) - babel-plugin-jsx-dom-expressions: 0.40.7(@babel/core@7.29.7(supports-color@7.2.0)) + babel-plugin-jsx-dom-expressions: 0.40.10(@babel/core@7.29.7(supports-color@7.2.0)) optionalDependencies: - solid-js: 1.9.13 + solid-js: 1.9.15 bail@2.0.2: {} @@ -22547,7 +23452,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.10.32: {} + baseline-browser-mapping@2.11.25: {} basic-auth@2.0.1: dependencies: @@ -22565,13 +23470,13 @@ snapshots: picocolors: 1.1.1 postcss: 8.5.6 postcss-media-query-parser: 0.2.3 - postcss-safe-parser: 7.0.1(postcss@8.5.6) + postcss-safe-parser: 7.1.0(postcss@8.5.6) better-opn@3.0.2: dependencies: open: 8.4.2 - bidi-js@1.0.3: + bidi-js@1.1.0: dependencies: require-from-string: 2.0.2 @@ -22581,9 +23486,9 @@ snapshots: binary-extensions@2.3.0: {} - birecord@0.1.1: {} + birecord@0.1.2: {} - birpc@4.0.0: {} + birpc@4.2.0: {} bl@4.1.0: dependencies: @@ -22591,7 +23496,7 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - body-parser@1.20.5(supports-color@8.1.1): + body-parser@1.20.8(supports-color@8.1.1): dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -22601,28 +23506,28 @@ snapshots: http-errors: 2.0.1 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.15.2 + qs: 6.16.0 raw-body: 2.5.3 type-is: 1.6.18 unpipe: 1.0.0 transitivePeerDependencies: - supports-color - body-parser@2.2.2(supports-color@8.1.1): + body-parser@2.3.0(supports-color@8.1.1): dependencies: bytes: 3.1.2 - content-type: 1.0.5 + content-type: 2.1.0 debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.3 on-finished: 2.4.1 - qs: 6.15.2 + qs: 6.16.0 raw-body: 3.0.2 type-is: 2.1.0 transitivePeerDependencies: - supports-color - bonjour-service@1.4.0: + bonjour-service@1.4.4: dependencies: fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 @@ -22641,22 +23546,22 @@ snapshots: dependencies: big-integer: 1.6.52 - brace-expansion@1.1.14: + brace-expansion@1.1.21: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.1.1: + brace-expansion@2.1.7: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.6: + brace-expansion@5.0.12: dependencies: balanced-match: 4.0.4 brace-expansion@5.0.9: dependencies: - balanced-match: 4.0.4 + balanced-match: 4.0.3 braces@3.0.3: dependencies: @@ -22666,13 +23571,13 @@ snapshots: dependencies: pako: 0.2.9 - browserslist@4.28.2: + browserslist@4.29.0: dependencies: - baseline-browser-mapping: 2.10.32 - caniuse-lite: 1.0.30001793 - electron-to-chromium: 1.5.361 - node-releases: 2.0.46 - update-browserslist-db: 1.2.3(browserslist@4.28.2) + baseline-browser-mapping: 2.11.25 + caniuse-lite: 1.0.30001810 + electron-to-chromium: 1.5.433 + node-releases: 2.0.56 + update-browserslist-db: 1.3.3(browserslist@4.29.0) bser@2.1.1: dependencies: @@ -22687,7 +23592,7 @@ snapshots: bundle-name@4.1.0: dependencies: - run-applescript: 7.1.0 + run-applescript: 7.0.0 bytes@3.1.2: {} @@ -22717,12 +23622,12 @@ snapshots: '@npmcli/fs': 5.0.0 fs-minipass: 3.0.3 glob: 13.0.6 - lru-cache: 11.5.0 + lru-cache: 11.5.3 minipass: 7.1.3 minipass-collect: 2.0.1 minipass-flush: 1.0.7 minipass-pipeline: 1.2.4 - p-map: 7.0.4 + p-map: 7.0.8 ssri: 13.0.1 call-bind-apply-helpers@1.0.2: @@ -22750,7 +23655,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001793: {} + caniuse-lite@1.0.30001810: {} ccount@2.0.1: {} @@ -22783,7 +23688,7 @@ snapshots: character-reference-invalid@2.0.1: {} - chardet@2.1.1: {} + chardet@2.2.0: {} check-error@2.1.3: {} @@ -22807,7 +23712,7 @@ snapshots: parse5: 7.3.0 parse5-htmlparser2-tree-adapter: 7.1.0 parse5-parser-stream: 7.1.2 - undici: 7.26.0 + undici: 7.29.1 whatwg-mimetype: 4.0.0 chokidar@3.6.0: @@ -22828,7 +23733,7 @@ snapshots: chokidar@5.0.0: dependencies: - readdirp: 5.0.0 + readdirp: 5.1.1 chownr@1.1.4: {} @@ -22838,7 +23743,7 @@ snapshots: chrome-launcher@0.15.2(supports-color@8.1.1): dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2(supports-color@8.1.1) @@ -22849,7 +23754,7 @@ snapshots: chromium-edge-launcher@0.2.0(supports-color@8.1.1): dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2(supports-color@8.1.1) @@ -22885,7 +23790,7 @@ snapshots: cli-truncate@5.2.0: dependencies: slice-ansi: 8.0.0 - string-width: 8.2.1 + string-width: 8.2.2 cli-width@4.1.0: {} @@ -22913,8 +23818,6 @@ snapshots: clsx@2.1.1: {} - code-block-writer@12.0.0: {} - color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -22945,10 +23848,10 @@ snapshots: comma-separated-tokens@2.0.3: {} - commander@10.0.1: {} - commander@12.1.0: {} + commander@13.1.0: {} + commander@14.0.3: {} commander@2.20.3: {} @@ -22957,7 +23860,7 @@ snapshots: commander@7.2.0: {} - comment-parser@1.4.7: {} + comment-parser@1.4.9: {} common-path-prefix@3.0.0: {} @@ -22967,11 +23870,12 @@ snapshots: dependencies: mime-db: 1.54.0 - compression@1.8.1(supports-color@8.1.1): + compression@1.8.2(supports-color@8.1.1): dependencies: bytes: 3.1.2 compressible: 2.0.18 debug: 2.6.9(supports-color@8.1.1) + destroy: 1.2.0 negotiator: 0.6.4 on-headers: 1.1.0 safe-buffer: 5.2.1 @@ -22985,7 +23889,7 @@ snapshots: confbox@0.1.8: {} - confbox@0.2.4: {} + confbox@0.3.1: {} config-chain@1.1.13: dependencies: @@ -23011,7 +23915,7 @@ snapshots: content-type@1.0.5: {} - content-type@2.0.0: {} + content-type@2.1.0: {} convert-source-map@1.9.0: {} @@ -23025,26 +23929,22 @@ snapshots: cookie@0.7.2: {} - copy-anything@2.0.6: - dependencies: - is-what: 3.14.1 - copy-anything@3.0.5: dependencies: is-what: 4.1.16 - copy-webpack-plugin@14.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)): + copy-webpack-plugin@14.0.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)): dependencies: glob-parent: 6.0.2 normalize-path: 3.0.0 - schema-utils: 4.3.3 - serialize-javascript: 7.0.5 + schema-utils: 4.5.0 + serialize-javascript: 7.1.1 tinyglobby: 0.2.15 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) - core-js-compat@3.49.0: + core-js-compat@3.50.0: dependencies: - browserslist: 4.28.2 + browserslist: 4.29.0 core-util-is@1.0.3: {} @@ -23061,15 +23961,17 @@ snapshots: path-type: 4.0.0 yaml: 1.10.3 - cosmiconfig@9.0.1(typescript@5.9.3): + cosmiconfig@9.0.2(typescript@5.9.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 - js-yaml: 4.1.1 + js-yaml: 4.3.2 parse-json: 5.2.0 optionalDependencies: typescript: 5.9.3 + create-require@1.1.1: {} + cross-fetch@3.2.0: dependencies: node-fetch: 2.7.0 @@ -23086,7 +23988,7 @@ snapshots: dependencies: hyphenate-style-name: 1.1.0 - css-loader@7.1.3(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)): + css-loader@7.1.3(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)): dependencies: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 @@ -23097,7 +23999,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.4 optionalDependencies: - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) css-select@5.2.2: dependencies: @@ -23131,9 +24033,9 @@ snapshots: cssstyle@5.3.7: dependencies: '@asamuzakjp/css-color': 4.1.2 - '@csstools/css-syntax-patches-for-csstree': 1.1.4(css-tree@3.2.1) + '@csstools/css-syntax-patches-for-csstree': 1.1.14(css-tree@3.2.1) css-tree: 3.2.1 - lru-cache: 11.5.0 + lru-cache: 11.5.3 csstype@3.2.3: {} @@ -23164,10 +24066,17 @@ snapshots: dataloader@2.2.3: {} - dayjs@1.11.20: {} + dayjs@1.11.23: {} de-indent@1.0.2: {} + debug@2.6.9(supports-color@7.2.0): + dependencies: + ms: 2.0.0 + optionalDependencies: + supports-color: 7.2.0 + optional: true + debug@2.6.9(supports-color@8.1.1): dependencies: ms: 2.0.0 @@ -23233,10 +24142,10 @@ snapshots: object-keys: 1.1.1 object.assign: 4.1.7 regexp.prototype.flags: 1.5.4 - side-channel: 1.1.0 + side-channel: 1.1.1 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.20 + which-typed-array: 1.1.24 deep-extend@0.6.0: {} @@ -23253,9 +24162,9 @@ snapshots: default-browser@5.2.1: dependencies: bundle-name: 4.1.0 - default-browser-id: 5.0.1 + default-browser-id: 5.0.0 - default-browser@5.5.0: + default-browser@5.5.1: dependencies: bundle-name: 4.1.0 default-browser-id: 5.0.1 @@ -23300,7 +24209,9 @@ snapshots: detect-node@2.1.0: {} - devalue@5.8.1: {} + devalue@5.9.4: {} + + diff@4.0.4: {} diff@5.2.2: {} @@ -23347,15 +24258,15 @@ snapshots: dotenv-expand@12.0.3: dependencies: - dotenv: 16.6.1 + dotenv: 16.4.7 dotenv@16.4.7: {} dotenv@16.6.1: {} - dts-resolver@2.1.3(oxc-resolver@11.19.1(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)): + dts-resolver@2.1.3(oxc-resolver@11.24.2): optionalDependencies: - oxc-resolver: 11.19.1(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + oxc-resolver: 11.24.2 dunder-proto@1.0.1: dependencies: @@ -23372,23 +24283,23 @@ snapshots: eastasianwidth@0.2.0: {} - editorconfig@1.0.7: + editorconfig@3.0.2: dependencies: - '@one-ini/wasm': 0.1.1 - commander: 10.0.1 - minimatch: 9.0.9 - semver: 7.8.1 + '@one-ini/wasm': 0.2.1 + commander: 14.0.3 + minimatch: 10.2.6 + semver: 7.8.5 ee-first@1.1.1: {} - effect@3.21.2: + effect@3.22.2: dependencies: '@standard-schema/spec': 1.1.0 fast-check: 3.23.2 ejs@5.0.1: {} - electron-to-chromium@1.5.361: {} + electron-to-chromium@1.5.433: {} emoji-regex@10.6.0: {} @@ -23398,7 +24309,7 @@ snapshots: emojis-list@3.0.0: {} - empathic@2.0.1: {} + empathic@2.1.0: {} encodeurl@1.0.2: {} @@ -23413,7 +24324,7 @@ snapshots: dependencies: once: 1.4.0 - enhanced-resolve@5.22.0: + enhanced-resolve@5.25.1: dependencies: graceful-fs: 4.2.11 tapable: 2.3.3 @@ -23424,7 +24335,13 @@ snapshots: entities@7.0.1: {} - entities@8.0.0: {} + entities@8.1.0: {} + + env-cmd@11.0.0: + dependencies: + '@commander-js/extra-typings': 13.1.0(commander@13.1.0) + commander: 13.1.0 + cross-spawn: 7.0.6 env-editor@0.4.2: {} @@ -23447,6 +24364,13 @@ snapshots: dependencies: stackframe: 1.3.4 + es-abstract-get@1.0.0: + dependencies: + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + is-callable: 1.2.7 + object-inspect: 1.13.4 + es-abstract@1.24.2: dependencies: array-buffer-byte-length: 1.0.2 @@ -23461,8 +24385,8 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.2 es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 + es-to-primitive: 1.3.4 + function.prototype.name: 1.2.0 get-intrinsic: 1.3.0 get-proto: 1.0.1 get-symbol-description: 1.1.0 @@ -23471,7 +24395,7 @@ snapshots: has-property-descriptors: 1.0.2 has-proto: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.3 + hasown: 2.0.4 internal-slot: 1.1.0 is-array-buffer: 3.0.5 is-callable: 1.2.7 @@ -23487,22 +24411,22 @@ snapshots: object-inspect: 1.13.4 object-keys: 1.1.1 object.assign: 4.1.7 - own-keys: 1.0.1 + own-keys: 1.0.2 regexp.prototype.flags: 1.5.4 safe-array-concat: 1.1.4 safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 set-proto: 1.0.0 stop-iteration-iterator: 1.1.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 + string.prototype.trim: 1.2.11 + string.prototype.trimend: 1.0.10 string.prototype.trimstart: 1.0.8 typed-array-buffer: 1.0.3 typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 + typed-array-byte-offset: 1.0.5 + typed-array-length: 1.0.8 unbox-primitive: 1.1.0 - which-typed-array: 1.1.20 + which-typed-array: 1.1.24 es-define-property@1.0.1: {} @@ -23520,7 +24444,7 @@ snapshots: isarray: 2.0.5 stop-iteration-iterator: 1.1.0 - es-iterator-helpers@1.3.2: + es-iterator-helpers@1.4.0: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 @@ -23541,7 +24465,7 @@ snapshots: es-module-lexer@1.7.0: {} - es-module-lexer@2.1.0: {} + es-module-lexer@2.3.2: {} es-object-atoms@1.1.1: dependencies: @@ -23556,26 +24480,29 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 - hasown: 2.0.3 + hasown: 2.0.4 es-shim-unscopables@1.1.0: dependencies: - hasown: 2.0.3 + hasown: 2.0.4 - es-to-primitive@1.3.0: + es-to-primitive@1.3.4: dependencies: + es-abstract-get: 1.0.0 + es-define-property: 1.0.1 + es-errors: 1.3.0 is-callable: 1.2.7 is-date-object: 1.1.0 is-symbol: 1.1.1 - esbuild-plugins-node-modules-polyfill@1.8.1(esbuild@0.17.6): + esbuild-plugins-node-modules-polyfill@1.8.3(esbuild@0.17.6): dependencies: '@jspm/core': 2.1.0 esbuild: 0.17.6 local-pkg: 1.2.1 resolve.exports: 2.0.3 - esbuild-wasm@0.27.3: {} + esbuild-wasm@0.28.1: {} esbuild@0.17.6: optionalDependencies: @@ -23628,63 +24555,63 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - esbuild@0.27.3: + esbuild@0.28.1: optionalDependencies: - '@esbuild/aix-ppc64': 0.27.3 - '@esbuild/android-arm': 0.27.3 - '@esbuild/android-arm64': 0.27.3 - '@esbuild/android-x64': 0.27.3 - '@esbuild/darwin-arm64': 0.27.3 - '@esbuild/darwin-x64': 0.27.3 - '@esbuild/freebsd-arm64': 0.27.3 - '@esbuild/freebsd-x64': 0.27.3 - '@esbuild/linux-arm': 0.27.3 - '@esbuild/linux-arm64': 0.27.3 - '@esbuild/linux-ia32': 0.27.3 - '@esbuild/linux-loong64': 0.27.3 - '@esbuild/linux-mips64el': 0.27.3 - '@esbuild/linux-ppc64': 0.27.3 - '@esbuild/linux-riscv64': 0.27.3 - '@esbuild/linux-s390x': 0.27.3 - '@esbuild/linux-x64': 0.27.3 - '@esbuild/netbsd-arm64': 0.27.3 - '@esbuild/netbsd-x64': 0.27.3 - '@esbuild/openbsd-arm64': 0.27.3 - '@esbuild/openbsd-x64': 0.27.3 - '@esbuild/openharmony-arm64': 0.27.3 - '@esbuild/sunos-x64': 0.27.3 - '@esbuild/win32-arm64': 0.27.3 - '@esbuild/win32-ia32': 0.27.3 - '@esbuild/win32-x64': 0.27.3 - - esbuild@0.27.7: + '@esbuild/aix-ppc64': 0.28.1 + '@esbuild/android-arm': 0.28.1 + '@esbuild/android-arm64': 0.28.1 + '@esbuild/android-x64': 0.28.1 + '@esbuild/darwin-arm64': 0.28.1 + '@esbuild/darwin-x64': 0.28.1 + '@esbuild/freebsd-arm64': 0.28.1 + '@esbuild/freebsd-x64': 0.28.1 + '@esbuild/linux-arm': 0.28.1 + '@esbuild/linux-arm64': 0.28.1 + '@esbuild/linux-ia32': 0.28.1 + '@esbuild/linux-loong64': 0.28.1 + '@esbuild/linux-mips64el': 0.28.1 + '@esbuild/linux-ppc64': 0.28.1 + '@esbuild/linux-riscv64': 0.28.1 + '@esbuild/linux-s390x': 0.28.1 + '@esbuild/linux-x64': 0.28.1 + '@esbuild/netbsd-arm64': 0.28.1 + '@esbuild/netbsd-x64': 0.28.1 + '@esbuild/openbsd-arm64': 0.28.1 + '@esbuild/openbsd-x64': 0.28.1 + '@esbuild/openharmony-arm64': 0.28.1 + '@esbuild/sunos-x64': 0.28.1 + '@esbuild/win32-arm64': 0.28.1 + '@esbuild/win32-ia32': 0.28.1 + '@esbuild/win32-x64': 0.28.1 + + esbuild@0.28.2: optionalDependencies: - '@esbuild/aix-ppc64': 0.27.7 - '@esbuild/android-arm': 0.27.7 - '@esbuild/android-arm64': 0.27.7 - '@esbuild/android-x64': 0.27.7 - '@esbuild/darwin-arm64': 0.27.7 - '@esbuild/darwin-x64': 0.27.7 - '@esbuild/freebsd-arm64': 0.27.7 - '@esbuild/freebsd-x64': 0.27.7 - '@esbuild/linux-arm': 0.27.7 - '@esbuild/linux-arm64': 0.27.7 - '@esbuild/linux-ia32': 0.27.7 - '@esbuild/linux-loong64': 0.27.7 - '@esbuild/linux-mips64el': 0.27.7 - '@esbuild/linux-ppc64': 0.27.7 - '@esbuild/linux-riscv64': 0.27.7 - '@esbuild/linux-s390x': 0.27.7 - '@esbuild/linux-x64': 0.27.7 - '@esbuild/netbsd-arm64': 0.27.7 - '@esbuild/netbsd-x64': 0.27.7 - '@esbuild/openbsd-arm64': 0.27.7 - '@esbuild/openbsd-x64': 0.27.7 - '@esbuild/openharmony-arm64': 0.27.7 - '@esbuild/sunos-x64': 0.27.7 - '@esbuild/win32-arm64': 0.27.7 - '@esbuild/win32-ia32': 0.27.7 - '@esbuild/win32-x64': 0.27.7 + '@esbuild/aix-ppc64': 0.28.2 + '@esbuild/android-arm': 0.28.2 + '@esbuild/android-arm64': 0.28.2 + '@esbuild/android-x64': 0.28.2 + '@esbuild/darwin-arm64': 0.28.2 + '@esbuild/darwin-x64': 0.28.2 + '@esbuild/freebsd-arm64': 0.28.2 + '@esbuild/freebsd-x64': 0.28.2 + '@esbuild/linux-arm': 0.28.2 + '@esbuild/linux-arm64': 0.28.2 + '@esbuild/linux-ia32': 0.28.2 + '@esbuild/linux-loong64': 0.28.2 + '@esbuild/linux-mips64el': 0.28.2 + '@esbuild/linux-ppc64': 0.28.2 + '@esbuild/linux-riscv64': 0.28.2 + '@esbuild/linux-s390x': 0.28.2 + '@esbuild/linux-x64': 0.28.2 + '@esbuild/netbsd-arm64': 0.28.2 + '@esbuild/netbsd-x64': 0.28.2 + '@esbuild/openbsd-arm64': 0.28.2 + '@esbuild/openbsd-x64': 0.28.2 + '@esbuild/openharmony-arm64': 0.28.2 + '@esbuild/sunos-x64': 0.28.2 + '@esbuild/win32-arm64': 0.28.2 + '@esbuild/win32-ia32': 0.28.2 + '@esbuild/win32-x64': 0.28.2 escalade@3.2.0: {} @@ -23699,16 +24626,16 @@ snapshots: eslint-compat-utils@0.5.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)): dependencies: eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) - semver: 7.8.1 + semver: 7.8.5 - eslint-config-expo@10.0.0(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3): + eslint-config-expo@10.0.0(eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.59.4(@typescript-eslint/parser@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) - '@typescript-eslint/parser': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.70.0(@typescript-eslint/parser@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) + '@typescript-eslint/parser': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) eslint: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1))(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) - eslint-plugin-expo: 1.0.3(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1))(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) + eslint-plugin-expo: 1.1.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) eslint-plugin-react: 7.37.5(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1)) eslint-plugin-react-hooks: 5.2.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1)) globals: 16.5.0 @@ -23720,7 +24647,7 @@ snapshots: eslint-import-context@0.1.9(unrs-resolver@1.12.2): dependencies: - get-tsconfig: 4.14.0 + get-tsconfig: 4.14.3 stable-hash-x: 0.2.0 optionalDependencies: unrs-resolver: 1.12.2 @@ -23728,7 +24655,7 @@ snapshots: eslint-import-resolver-node@0.3.10(supports-color@7.2.0): dependencies: debug: 3.2.7(supports-color@7.2.0) - is-core-module: 2.16.2 + is-core-module: 2.17.0 resolve: 2.0.0-next.7 transitivePeerDependencies: - supports-color @@ -23737,97 +24664,95 @@ snapshots: eslint-import-resolver-node@0.3.10(supports-color@8.1.1): dependencies: debug: 3.2.7(supports-color@8.1.1) - is-core-module: 2.16.2 + is-core-module: 2.17.0 resolve: 2.0.0-next.7 transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1))(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1))(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@8.1.1) eslint: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) - get-tsconfig: 4.14.0 + get-tsconfig: 4.14.3 is-bun-module: 2.0.0 stable-hash: 0.0.5 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 unrs-resolver: 1.12.2 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) - eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) + eslint-plugin-import-x: 4.17.1(@typescript-eslint/utils@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1): + eslint-module-utils@2.14.0(@typescript-eslint/parser@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1): dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: - '@typescript-eslint/parser': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) + '@typescript-eslint/parser': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) eslint: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) eslint-import-resolver-node: 0.3.10(supports-color@8.1.1) - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1))(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1))(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) transitivePeerDependencies: - supports-color eslint-plugin-es-x@7.8.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)) + '@eslint-community/eslint-utils': 4.10.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)) '@eslint-community/regexpp': 4.12.2 eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) eslint-compat-utils: 0.5.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)) - eslint-plugin-expo@1.0.3(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3): + eslint-plugin-expo@1.1.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3): dependencies: - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) eslint: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0): + eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0): dependencies: - '@package-json/types': 0.0.12 - '@typescript-eslint/types': 8.59.4 - comment-parser: 1.4.7 + '@typescript-eslint/types': 8.70.0 + comment-parser: 1.4.9 debug: 4.4.3(supports-color@7.2.0) eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) eslint-import-context: 0.1.9(unrs-resolver@1.12.2) is-glob: 4.0.3 - minimatch: 10.2.5 - semver: 7.8.1 + minimatch: 10.2.6 + semver: 7.8.5 stable-hash-x: 0.2.0 unrs-resolver: 1.12.2 optionalDependencies: - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) eslint-import-resolver-node: 0.3.10(supports-color@7.2.0) transitivePeerDependencies: - supports-color - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1): + eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1): dependencies: - '@package-json/types': 0.0.12 - '@typescript-eslint/types': 8.59.4 - comment-parser: 1.4.7 + '@typescript-eslint/types': 8.70.0 + comment-parser: 1.4.9 debug: 4.4.3(supports-color@8.1.1) eslint: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) eslint-import-context: 0.1.9(unrs-resolver@1.12.2) is-glob: 4.0.3 - minimatch: 10.2.5 - semver: 7.8.1 + minimatch: 10.2.6 + semver: 7.8.5 stable-hash-x: 0.2.0 unrs-resolver: 1.12.2 optionalDependencies: - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) eslint-import-resolver-node: 0.3.10(supports-color@8.1.1) transitivePeerDependencies: - supports-color optional: true - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1): dependencies: '@rtsao/scc': 1.1.0 - array-includes: 3.1.9 + array-includes: 3.2.0 array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 array.prototype.flatmap: 1.3.3 @@ -23835,19 +24760,19 @@ snapshots: doctrine: 2.1.0 eslint: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) eslint-import-resolver-node: 0.3.10(supports-color@8.1.1) - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) - hasown: 2.0.3 - is-core-module: 2.16.2 + eslint-module-utils: 2.14.0(@typescript-eslint/parser@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) + hasown: 2.0.4 + is-core-module: 2.17.0 is-glob: 4.0.3 minimatch: 3.1.5 object.fromentries: 2.0.8 object.groupby: 1.0.3 object.values: 1.2.1 semver: 6.3.1 - string.prototype.trimend: 1.0.9 + string.prototype.trimend: 1.0.10 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) + '@typescript-eslint/parser': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -23855,15 +24780,15 @@ snapshots: eslint-plugin-n@17.24.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(typescript@5.9.3): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)) - enhanced-resolve: 5.22.0 + '@eslint-community/eslint-utils': 4.10.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)) + enhanced-resolve: 5.25.1 eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) eslint-plugin-es-x: 7.8.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)) - get-tsconfig: 4.14.0 + get-tsconfig: 4.14.3 globals: 15.15.0 globrex: 0.1.2 ignore: 5.3.2 - semver: 7.8.1 + semver: 7.8.5 ts-declaration-location: 1.0.7(typescript@5.9.3) transitivePeerDependencies: - typescript @@ -23871,7 +24796,7 @@ snapshots: eslint-plugin-react-compiler@19.1.0-rc.2(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.9 '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) eslint: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) hermes-parser: 0.25.1 @@ -23888,10 +24813,10 @@ snapshots: '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/var': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/type-utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/type-utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) string-ts: 2.3.1 ts-pattern: 5.9.0 @@ -23908,9 +24833,9 @@ snapshots: '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/var': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) compare-versions: 6.1.1 eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) string-ts: 2.3.1 @@ -23928,10 +24853,10 @@ snapshots: '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/var': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/type-utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/type-utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) string-ts: 2.3.1 ts-pattern: 5.9.0 @@ -23956,10 +24881,10 @@ snapshots: '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/var': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/type-utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/type-utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) string-ts: 2.3.1 ts-pattern: 5.9.0 @@ -23976,9 +24901,9 @@ snapshots: '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/var': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) string-ts: 2.3.1 ts-pattern: 5.9.0 @@ -23995,13 +24920,13 @@ snapshots: '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) '@eslint-react/var': 1.53.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/type-utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.70.0 + '@typescript-eslint/type-utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) compare-versions: 6.1.1 eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) - is-immutable-type: 5.0.2(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + is-immutable-type: 5.0.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) string-ts: 2.3.1 ts-pattern: 5.9.0 optionalDependencies: @@ -24012,15 +24937,15 @@ snapshots: eslint-plugin-react@7.37.5(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1)): dependencies: - array-includes: 3.1.9 + array-includes: 3.2.0 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.3.2 + es-iterator-helpers: 1.4.0 eslint: 9.36.0(jiti@2.7.0)(supports-color@8.1.1) estraverse: 5.3.0 - hasown: 2.0.3 + hasown: 2.0.4 jsx-ast-utils: 3.3.5 minimatch: 3.1.5 object.entries: 1.1.9 @@ -24029,7 +24954,7 @@ snapshots: prop-types: 15.8.1 resolve: 2.0.0-next.7 semver: 6.3.1 - string.prototype.matchall: 4.0.12 + string.prototype.matchall: 4.1.0 string.prototype.repeat: 1.0.0 eslint-scope@5.1.1: @@ -24057,12 +24982,12 @@ snapshots: eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)) + '@eslint-community/eslint-utils': 4.10.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.21.2(supports-color@7.2.0) '@eslint/config-helpers': 0.3.1 '@eslint/core': 0.15.2 - '@eslint/eslintrc': 3.3.5(supports-color@7.2.0) + '@eslint/eslintrc': 3.3.7(supports-color@7.2.0) '@eslint/js': 9.36.0 '@eslint/plugin-kit': 0.3.5 '@humanfs/node': 0.16.8 @@ -24099,12 +25024,12 @@ snapshots: eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1)) + '@eslint-community/eslint-utils': 4.10.1(eslint@9.36.0(jiti@2.7.0)(supports-color@8.1.1)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.21.2(supports-color@8.1.1) '@eslint/config-helpers': 0.3.1 '@eslint/core': 0.15.2 - '@eslint/eslintrc': 3.3.5(supports-color@8.1.1) + '@eslint/eslintrc': 3.3.7(supports-color@8.1.1) '@eslint/js': 9.36.0 '@eslint/plugin-kit': 0.3.5 '@humanfs/node': 0.16.8 @@ -24143,14 +25068,14 @@ snapshots: espree@10.4.0: dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) + acorn: 8.18.0 + acorn-jsx: 5.3.2(acorn@8.18.0) eslint-visitor-keys: 4.2.1 espree@11.2.0: dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) + acorn: 8.18.0 + acorn-jsx: 5.3.2(acorn@8.18.0) eslint-visitor-keys: 5.0.1 esprima@4.0.1: {} @@ -24159,11 +25084,11 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@2.2.9(@typescript-eslint/types@8.59.4): + esrap@2.3.7(@typescript-eslint/types@8.70.0): dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 optionalDependencies: - '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/types': 8.70.0 esrecurse@4.3.0: dependencies: @@ -24214,7 +25139,7 @@ snapshots: eval@0.1.8: dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 require-like: 0.1.2 event-target-shim@5.0.1: {} @@ -24225,11 +25150,11 @@ snapshots: events@3.3.0: {} - eventsource-parser@3.0.8: {} + eventsource-parser@3.1.1: {} eventsource@3.0.7: dependencies: - eventsource-parser: 3.0.8 + eventsource-parser: 3.1.1 execa@5.1.1: dependencies: @@ -24245,68 +25170,68 @@ snapshots: exit-hook@2.2.1: {} - expect-type@1.3.0: {} + expect-type@1.4.0: {} - expo-asset@12.0.13(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3): + expo-asset@12.0.13(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3): dependencies: - '@expo/image-utils': 0.8.14(supports-color@8.1.1)(typescript@5.9.3) - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) - expo-constants: 18.0.13(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1) + '@expo/image-utils': 0.8.17(supports-color@8.1.1)(typescript@5.9.3) + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + expo-constants: 18.0.14(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - typescript - expo-constants@18.0.13(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1): + expo-constants@18.0.14(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1): dependencies: - '@expo/config': 12.0.13(supports-color@8.1.1) - '@expo/env': 2.0.11(supports-color@8.1.1) - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + '@expo/config': 12.0.14(supports-color@8.1.1) + '@expo/env': 2.0.12(supports-color@8.1.1) + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - expo-file-system@19.0.22(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1)): + expo-file-system@19.0.24(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1)): dependencies: - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) - expo-font@14.0.11(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): + expo-font@14.0.12(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): dependencies: - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) fontfaceobserver: 2.3.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) - expo-haptics@15.0.8(expo@54.0.34): + expo-haptics@15.0.8(expo@54.0.37): dependencies: - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) - expo-image@3.0.11(expo@54.0.34)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): + expo-image@3.0.11(expo@54.0.37)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): dependencies: - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) optionalDependencies: react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - expo-keep-awake@15.0.8(expo@54.0.34)(react@19.1.0): + expo-keep-awake@15.0.8(expo@54.0.37)(react@19.1.0): dependencies: - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) react: 19.1.0 - expo-linking@8.0.12(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1): + expo-linking@8.0.12(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1): dependencies: - expo-constants: 18.0.13(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1) + expo-constants: 18.0.14(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1) invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) transitivePeerDependencies: - expo - supports-color - expo-modules-autolinking@3.0.25: + expo-modules-autolinking@3.0.27: dependencies: '@expo/spawn-async': 1.8.0 chalk: 4.1.2 @@ -24314,48 +25239,48 @@ snapshots: require-from-string: 2.0.2 resolve-from: 5.0.0 - expo-modules-core@3.0.30(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): + expo-modules-core@3.0.30(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): dependencies: invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) - expo-router@6.0.23(c7c2013fda48cef4065ef0e95e77f784): + expo-router@6.0.24(3a123a5aaca9c4c45b93faf4bd84db41): dependencies: - '@expo/metro-runtime': 6.1.2(expo@54.0.34)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) - '@expo/schema-utils': 0.1.8 - '@radix-ui/react-slot': 1.2.0(@types/react@19.2.17)(react@19.1.0) - '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-navigation/bottom-tabs': 7.16.1(@react-navigation/native@7.2.4(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) - '@react-navigation/native': 7.2.4(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) - '@react-navigation/native-stack': 7.15.1(@react-navigation/native@7.2.4(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + '@expo/metro-runtime': 6.1.2(expo@54.0.37)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + '@expo/schema-utils': 0.1.9 + '@radix-ui/react-slot': 1.2.0(@types/react@19.2.18)(react@19.1.0) + '@radix-ui/react-tabs': 1.1.21(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-navigation/bottom-tabs': 7.19.2(@react-navigation/native@7.4.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + '@react-navigation/native': 7.4.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + '@react-navigation/native-stack': 7.19.2(@react-navigation/native@7.4.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) client-only: 0.0.1 debug: 4.4.3(supports-color@8.1.1) escape-string-regexp: 4.0.0 - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) - expo-constants: 18.0.13(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1) - expo-linking: 8.0.12(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1) - expo-server: 1.0.6 + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + expo-constants: 18.0.14(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1) + expo-linking: 8.0.12(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1) + expo-server: 1.0.7 fast-deep-equal: 3.1.3 invariant: 2.2.4 - nanoid: 3.3.12 + nanoid: 3.3.19 query-string: 7.1.3 react: 19.1.0 react-fast-compare: 3.2.2 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) - react-native-is-edge-to-edge: 1.3.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) - react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) + react-native-is-edge-to-edge: 1.3.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) semver: 7.6.3 server-only: 0.0.1 sf-symbols-typescript: 2.2.0 shallowequal: 1.1.0 use-latest-callback: 0.2.6(react@19.1.0) - vaul: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + vaul: 1.1.2(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) optionalDependencies: react-dom: 19.1.0(react@19.1.0) - react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) - react-native-reanimated: 4.1.7(react-native-worklets@0.5.1(@babel/core@7.29.7(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + react-native-reanimated: 4.1.7(react-native-worklets@0.5.1(@babel/core@7.29.7(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@react-native-masked-view/masked-view' @@ -24363,71 +25288,71 @@ snapshots: - '@types/react-dom' - supports-color - expo-server@1.0.6: {} + expo-server@1.0.7: {} - expo-splash-screen@31.0.13(expo@54.0.34)(supports-color@8.1.1)(typescript@5.9.3): + expo-splash-screen@31.0.13(expo@54.0.37)(supports-color@8.1.1)(typescript@5.9.3): dependencies: - '@expo/prebuild-config': 54.0.8(expo@54.0.34)(supports-color@8.1.1)(typescript@5.9.3) - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + '@expo/prebuild-config': 54.0.9(expo@54.0.37)(supports-color@8.1.1)(typescript@5.9.3) + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) transitivePeerDependencies: - supports-color - typescript - expo-status-bar@3.0.9(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): + expo-status-bar@3.0.9(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) - react-native-is-edge-to-edge: 1.3.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) + react-native-is-edge-to-edge: 1.3.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) - expo-symbols@1.0.8(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1)): + expo-symbols@1.0.8(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1)): dependencies: - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) sf-symbols-typescript: 2.2.0 - expo-system-ui@6.0.9(expo@54.0.34)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1): + expo-system-ui@6.0.9(expo@54.0.37)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1): dependencies: '@react-native/normalize-colors': 0.81.5 debug: 4.4.3(supports-color@8.1.1) - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) optionalDependencies: react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - supports-color - expo-web-browser@15.0.11(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1)): + expo-web-browser@15.0.11(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1)): dependencies: - expo: 54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + expo: 54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) - expo@54.0.34(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3): + expo@54.0.37(@babel/core@7.29.7(supports-color@8.1.1))(@expo/metro-runtime@6.1.2)(expo-router@6.0.24)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3): dependencies: '@babel/runtime': 7.29.7 - '@expo/cli': 54.0.24(expo-router@6.0.23)(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) - '@expo/config': 12.0.13(supports-color@8.1.1) - '@expo/config-plugins': 54.0.4(supports-color@8.1.1) - '@expo/devtools': 0.1.8(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + '@expo/cli': 54.0.27(expo-router@6.0.24)(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.3) + '@expo/config': 12.0.14(supports-color@8.1.1) + '@expo/config-plugins': 54.0.5(supports-color@8.1.1) + '@expo/devtools': 0.1.8(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) '@expo/fingerprint': 0.15.5(supports-color@8.1.1) '@expo/metro': 54.2.0(supports-color@8.1.1) - '@expo/metro-config': 54.0.15(expo@54.0.34)(supports-color@8.1.1) - '@expo/vector-icons': 15.1.1(expo-font@14.0.11(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) - '@ungap/structured-clone': 1.3.1 - babel-preset-expo: 54.0.10(@babel/core@7.29.7(supports-color@8.1.1))(@babel/runtime@7.29.7)(expo@54.0.34)(react-refresh@0.14.2)(supports-color@8.1.1) - expo-asset: 12.0.13(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) - expo-constants: 18.0.13(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1) - expo-file-system: 19.0.22(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1)) - expo-font: 14.0.11(expo@54.0.34)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) - expo-keep-awake: 15.0.8(expo@54.0.34)(react@19.1.0) - expo-modules-autolinking: 3.0.25 - expo-modules-core: 3.0.30(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + '@expo/metro-config': 54.0.17(expo@54.0.37)(supports-color@8.1.1) + '@expo/vector-icons': 15.1.1(expo-font@14.0.12(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + '@ungap/structured-clone': 1.4.0 + babel-preset-expo: 54.0.12(@babel/core@7.29.7(supports-color@8.1.1))(@babel/runtime@7.29.7)(expo@54.0.37)(react-refresh@0.14.2)(supports-color@8.1.1) + expo-asset: 12.0.13(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1)(typescript@5.9.3) + expo-constants: 18.0.14(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(supports-color@8.1.1) + expo-file-system: 19.0.24(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1)) + expo-font: 14.0.12(expo@54.0.37)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + expo-keep-awake: 15.0.8(expo@54.0.37)(react@19.1.0) + expo-modules-autolinking: 3.0.27 + expo-modules-core: 3.0.30(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) pretty-format: 29.7.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) react-refresh: 0.14.2 whatwg-url-without-unicode: 8.0.0-3 optionalDependencies: - '@expo/metro-runtime': 6.1.2(expo@54.0.34)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + '@expo/metro-runtime': 6.1.2(expo@54.0.37)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) transitivePeerDependencies: - '@babel/core' - bufferutil @@ -24439,16 +25364,19 @@ snapshots: exponential-backoff@3.1.3: {} - express-rate-limit@8.5.2(express@5.2.1(supports-color@8.1.1)): + express-rate-limit@8.7.0(express@5.2.1(supports-color@8.1.1))(supports-color@8.1.1): dependencies: + debug: 4.4.3(supports-color@8.1.1) express: 5.2.1(supports-color@8.1.1) - ip-address: 10.2.0 + ip-address: 10.7.2 + transitivePeerDependencies: + - supports-color - express@4.22.2(supports-color@8.1.1): + express@4.22.3(supports-color@8.1.1): dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.5(supports-color@8.1.1) + body-parser: 1.20.8(supports-color@8.1.1) content-disposition: 0.5.4 content-type: 1.0.5 cookie: 0.7.2 @@ -24466,8 +25394,8 @@ snapshots: on-finished: 2.4.1 parseurl: 1.3.3 path-to-regexp: 0.1.13 - proxy-addr: 2.0.7 - qs: 6.15.2 + proxy-addr: 2.0.8 + qs: 6.16.0 range-parser: 1.2.1 safe-buffer: 5.2.1 send: 0.19.2(supports-color@8.1.1) @@ -24483,7 +25411,7 @@ snapshots: express@5.2.1(supports-color@8.1.1): dependencies: accepts: 2.0.0 - body-parser: 2.2.2(supports-color@8.1.1) + body-parser: 2.3.0(supports-color@8.1.1) content-disposition: 1.1.0 content-type: 1.0.5 cookie: 0.7.2 @@ -24501,9 +25429,9 @@ snapshots: on-finished: 2.4.1 once: 1.4.0 parseurl: 1.3.3 - proxy-addr: 2.0.7 - qs: 6.15.2 - range-parser: 1.2.1 + proxy-addr: 2.0.8 + qs: 6.16.0 + range-parser: 1.3.0 router: 2.2.0(supports-color@8.1.1) send: 1.2.1(supports-color@8.1.1) serve-static: 2.2.1(supports-color@8.1.1) @@ -24513,7 +25441,7 @@ snapshots: transitivePeerDependencies: - supports-color - exsolve@1.0.8: {} + exsolve@1.1.1: {} extend@3.0.2: {} @@ -24541,7 +25469,7 @@ snapshots: dependencies: fast-string-truncated-width: 3.0.3 - fast-uri@3.1.2: {} + fast-uri@3.1.8: {} fast-wrap-ansi@0.2.0: dependencies: @@ -24551,7 +25479,7 @@ snapshots: dependencies: fast-string-width: 3.0.2 - fastq@1.20.1: + fastq@1.20.3: dependencies: reusify: 1.1.0 @@ -24561,7 +25489,7 @@ snapshots: faye-websocket@0.11.4: dependencies: - websocket-driver: 0.7.4 + websocket-driver: 0.7.5 fb-watchman@2.0.2: dependencies: @@ -24665,12 +25593,12 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.4.2 + flatted: 3.4.4 keyv: 4.5.4 flat@5.0.2: {} - flatted@3.4.2: {} + flatted@3.4.4: {} flow-enums-runtime@0.0.6: {} @@ -24693,14 +25621,6 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - form-data@4.0.5: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.3 - mime-types: 2.1.35 - form-data@4.0.6: dependencies: asynckit: 0.4.0 @@ -24755,14 +25675,17 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.8: + function.prototype.name@1.2.0: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 - define-properties: 1.2.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 functions-have-names: 1.2.3 - hasown: 2.0.3 + has-property-descriptors: 1.0.2 + hasown: 2.0.4 is-callable: 1.2.7 + is-document.all: 1.0.0 functions-have-names@1.2.3: {} @@ -24776,19 +25699,19 @@ snapshots: get-caller-file@2.0.5: {} - get-east-asian-width@1.6.0: {} + get-east-asian-width@1.7.0: {} get-intrinsic@1.3.0: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.2 + es-object-atoms: 1.1.1 function-bind: 1.1.2 get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.3 + hasown: 2.0.4 math-intrinsics: 1.1.0 get-nonce@1.0.1: {} @@ -24800,7 +25723,7 @@ snapshots: get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 - es-object-atoms: 1.1.2 + es-object-atoms: 1.1.1 get-stream@6.0.1: {} @@ -24810,11 +25733,11 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.14.0: + get-tsconfig@4.14.3: dependencies: resolve-pkg-maps: 1.0.0 - get-tsconfig@4.14.3: + get-tsconfig@5.0.0-beta.6: dependencies: resolve-pkg-maps: 1.0.0 @@ -24828,7 +25751,7 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-to-regex.js@1.2.0(tslib@2.8.1): + glob-to-regex.js@1.3.1(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -24845,7 +25768,7 @@ snapshots: glob@13.0.6: dependencies: - minimatch: 10.2.5 + minimatch: 10.2.6 minipass: 7.1.3 path-scurry: 2.0.2 @@ -24858,6 +25781,12 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + global-prefix@4.0.0: + dependencies: + ini: 4.1.3 + kind-of: 6.0.3 + which: 4.0.0 + globals@14.0.0: {} globals@15.15.0: {} @@ -24891,7 +25820,7 @@ snapshots: h3@2.0.1-rc.20: dependencies: rou3: 0.8.1 - srvx: 0.11.16 + srvx: 0.11.22 handle-thing@2.0.1: {} @@ -24915,10 +25844,6 @@ snapshots: dependencies: has-symbols: 1.1.0 - hasown@2.0.3: - dependencies: - function-bind: 1.1.2 - hasown@2.0.4: dependencies: function-bind: 1.1.2 @@ -24975,9 +25900,9 @@ snapshots: dependencies: react-is: 16.13.1 - hono@4.12.23: {} + hono@4.13.8: {} - hookable@6.1.1: {} + hookable@6.1.2: {} hosted-git-info@6.1.3: dependencies: @@ -24989,7 +25914,7 @@ snapshots: hosted-git-info@9.0.3: dependencies: - lru-cache: 11.5.0 + lru-cache: 11.5.3 hpack.js@2.1.6: dependencies: @@ -24998,9 +25923,9 @@ snapshots: readable-stream: 2.3.8 wbuf: 1.7.3 - html-encoding-sniffer@6.0.0: + html-encoding-sniffer@6.0.0(@noble/hashes@2.4.0): dependencies: - '@exodus/bytes': 1.15.1 + '@exodus/bytes': 1.15.1(@noble/hashes@2.4.0) transitivePeerDependencies: - '@noble/hashes' @@ -25055,7 +25980,7 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-middleware@2.0.9(@types/express@4.17.25)(debug@4.4.3(supports-color@8.1.1)): + http-proxy-middleware@2.0.10(@types/express@4.17.25)(debug@4.4.3(supports-color@8.1.1)): dependencies: '@types/http-proxy': 1.17.17 http-proxy: 1.18.1(debug@4.4.3(supports-color@8.1.1)) @@ -25067,13 +25992,13 @@ snapshots: transitivePeerDependencies: - debug - http-proxy-middleware@3.0.5(supports-color@8.1.1): + http-proxy-middleware@3.0.7(supports-color@8.1.1): dependencies: '@types/http-proxy': 1.17.17 debug: 4.4.3(supports-color@8.1.1) http-proxy: 1.18.1(debug@4.4.3(supports-color@8.1.1)) is-glob: 4.0.3 - is-plain-object: 5.0.0 + is-plain-object: 5.1.0 micromatch: 4.0.8 transitivePeerDependencies: - supports-color @@ -25123,7 +26048,7 @@ snapshots: dependencies: safer-buffer: 2.1.2 - iconv-lite@0.7.2: + iconv-lite@0.7.3: dependencies: safer-buffer: 2.1.2 @@ -25135,20 +26060,19 @@ snapshots: ignore-walk@8.0.0: dependencies: - minimatch: 10.2.5 + minimatch: 10.2.6 ignore@5.3.2: {} ignore@7.0.5: {} - image-size@0.5.5: - optional: true + ignore@7.0.9: {} image-size@1.2.1: dependencies: queue: 6.0.2 - immutable@5.1.5: {} + immutable@5.1.9: {} import-fresh@3.3.1: dependencies: @@ -25174,6 +26098,8 @@ snapshots: ini@1.3.8: {} + ini@4.1.3: {} + ini@6.0.0: {} injection-js@2.6.1: @@ -25189,18 +26115,18 @@ snapshots: internal-slot@1.1.0: dependencies: es-errors: 1.3.0 - hasown: 2.0.3 - side-channel: 1.1.0 + hasown: 2.0.4 + side-channel: 1.1.1 invariant@2.2.4: dependencies: loose-envify: 1.4.0 - ip-address@10.2.0: {} + ip-address@10.7.2: {} ipaddr.js@1.9.1: {} - ipaddr.js@2.4.0: {} + ipaddr.js@2.5.0: {} is-alphabetical@2.0.1: {} @@ -25249,13 +26175,13 @@ snapshots: is-bun-module@2.0.0: dependencies: - semver: 7.8.1 + semver: 7.8.5 is-callable@1.2.7: {} - is-core-module@2.16.2: + is-core-module@2.17.0: dependencies: - hasown: 2.0.3 + hasown: 2.0.4 is-data-view@1.0.2: dependencies: @@ -25276,6 +26202,10 @@ snapshots: is-docker@3.0.0: {} + is-document.all@1.0.0: + dependencies: + call-bound: 1.0.4 + is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: @@ -25286,7 +26216,7 @@ snapshots: is-fullwidth-code-point@5.1.0: dependencies: - get-east-asian-width: 1.6.0 + get-east-asian-width: 1.7.0 is-generator-function@1.1.2: dependencies: @@ -25304,9 +26234,9 @@ snapshots: is-hexadecimal@2.0.1: {} - is-immutable-type@5.0.2(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3): + is-immutable-type@5.0.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3): dependencies: - '@typescript-eslint/type-utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) ts-api-utils: 2.5.0(typescript@5.9.3) ts-declaration-location: 1.0.7(typescript@5.9.3) @@ -25345,7 +26275,7 @@ snapshots: dependencies: isobject: 3.0.1 - is-plain-object@5.0.0: {} + is-plain-object@5.1.0: {} is-potential-custom-element-name@1.0.1: {} @@ -25360,7 +26290,7 @@ snapshots: call-bound: 1.0.4 gopd: 1.2.0 has-tostringtag: 1.0.2 - hasown: 2.0.3 + hasown: 2.0.4 is-set@2.0.3: {} @@ -25383,7 +26313,7 @@ snapshots: is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.20 + which-typed-array: 1.1.24 is-unicode-supported@0.1.0: {} @@ -25400,8 +26330,6 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 - is-what@3.14.1: {} - is-what@4.1.16: {} is-wsl@2.2.0: @@ -25420,10 +26348,12 @@ snapshots: isarray@2.0.5: {} - isbot@5.1.40: {} + isbot@5.2.2: {} isexe@2.0.0: {} + isexe@3.1.5: {} + isexe@4.0.0: {} isobject@3.0.1: {} @@ -25433,7 +26363,7 @@ snapshots: istanbul-lib-instrument@5.2.1(supports-color@8.1.1): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.9 '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -25443,20 +26373,20 @@ snapshots: istanbul-lib-instrument@6.0.3(supports-color@7.2.0): dependencies: '@babel/core': 7.29.7(supports-color@7.2.0) - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.9 '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 - semver: 7.8.1 + semver: 7.8.5 transitivePeerDependencies: - supports-color istanbul-lib-instrument@6.0.3(supports-color@8.1.1): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.9 '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 - semver: 7.8.1 + semver: 7.8.5 transitivePeerDependencies: - supports-color @@ -25501,7 +26431,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 24.12.4 + '@types/node': 24.13.6 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -25511,7 +26441,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 24.12.4 + '@types/node': 24.13.6 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -25538,7 +26468,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 24.12.4 + '@types/node': 24.13.6 jest-util: 29.7.0 jest-regex-util@29.6.3: {} @@ -25546,7 +26476,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 24.12.4 + '@types/node': 24.13.6 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -25563,13 +26493,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -25580,54 +26510,54 @@ snapshots: jju@1.4.0: {} - jose@6.2.3: {} + jose@6.2.12: {} - js-beautify@1.15.4: + js-beautify@2.0.3: dependencies: config-chain: 1.1.13 - editorconfig: 1.0.7 - glob: 10.5.0 - js-cookie: 3.0.7 - nopt: 7.2.1 + editorconfig: 3.0.2 + glob: 13.0.6 + js-cookie: 3.0.8 + nopt: 10.0.1 - js-cookie@3.0.7: {} + js-cookie@3.0.8: {} js-tokens@4.0.0: {} js-tokens@9.0.1: {} - js-yaml@3.14.2: + js-yaml@3.15.2: dependencies: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.1: + js-yaml@4.3.2: dependencies: argparse: 2.0.1 jsc-safe-url@0.2.4: {} - jsdom@27.4.0(supports-color@7.2.0): + jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@7.2.0): dependencies: '@acemir/cssom': 0.9.31 '@asamuzakjp/dom-selector': 6.8.1 - '@exodus/bytes': 1.15.1 + '@exodus/bytes': 1.15.1(@noble/hashes@2.4.0) cssstyle: 5.3.7 data-urls: 6.0.1 decimal.js: 10.6.0 - html-encoding-sniffer: 6.0.0 + html-encoding-sniffer: 6.0.0(@noble/hashes@2.4.0) http-proxy-agent: 7.0.2(supports-color@7.2.0) https-proxy-agent: 7.0.6(supports-color@7.2.0) is-potential-custom-element-name: 1.0.1 parse5: 8.0.1 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 6.0.1 + tough-cookie: 6.0.2 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 whatwg-mimetype: 4.0.0 whatwg-url: 15.1.0 - ws: 8.21.0 + ws: 8.21.3 xml-name-validator: 5.0.0 transitivePeerDependencies: - '@noble/hashes' @@ -25635,27 +26565,27 @@ snapshots: - supports-color - utf-8-validate - jsdom@27.4.0(supports-color@8.1.1): + jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@8.1.1): dependencies: '@acemir/cssom': 0.9.31 '@asamuzakjp/dom-selector': 6.8.1 - '@exodus/bytes': 1.15.1 + '@exodus/bytes': 1.15.1(@noble/hashes@2.4.0) cssstyle: 5.3.7 data-urls: 6.0.1 decimal.js: 10.6.0 - html-encoding-sniffer: 6.0.0 + html-encoding-sniffer: 6.0.0(@noble/hashes@2.4.0) http-proxy-agent: 7.0.2(supports-color@8.1.1) https-proxy-agent: 7.0.6(supports-color@8.1.1) is-potential-custom-element-name: 1.0.1 parse5: 8.0.1 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 6.0.1 + tough-cookie: 6.0.2 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 whatwg-mimetype: 4.0.0 whatwg-url: 15.1.0 - ws: 8.21.0 + ws: 8.21.3 xml-name-validator: 5.0.0 transitivePeerDependencies: - '@noble/hashes' @@ -25706,7 +26636,7 @@ snapshots: jsx-ast-utils@3.3.5: dependencies: - array-includes: 3.1.9 + array-includes: 3.2.0 array.prototype.flat: 1.3.3 object.assign: 4.1.7 object.values: 1.2.1 @@ -25739,54 +26669,68 @@ snapshots: tinyglobby: 0.2.17 unbash: 4.0.11 yaml: 2.9.1 - zod: 4.4.3 + zod: 4.6.5 kolorist@1.8.0: {} lan-network@0.2.1: {} - launch-editor@2.13.2: + launch-editor@2.14.1: dependencies: picocolors: 1.1.1 - shell-quote: 1.8.4 + shell-quote: 1.10.0 - launch-editor@2.14.1: + less-loader@12.3.1(less@4.9.0(supports-color@8.1.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)): dependencies: - picocolors: 1.1.1 - shell-quote: 1.8.4 + less: 4.9.0(supports-color@8.1.1) + optionalDependencies: + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) - less-loader@12.3.1(less@4.4.2)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)): + less@4.9.0(supports-color@8.1.1): dependencies: - less: 4.4.2 + copy-anything: 3.0.5 + parse-node-version: 1.0.1 optionalDependencies: - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) + errno: 0.1.8 + graceful-fs: 4.2.11 + make-dir: 5.1.0 + mime: 1.6.0 + needle: 3.5.0 + probe-image-size: 7.4.0(supports-color@8.1.1) + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color - less@4.4.2: + less@4.9.1(supports-color@7.2.0): dependencies: - copy-anything: 2.0.6 + copy-anything: 3.0.5 parse-node-version: 1.0.1 - tslib: 2.8.1 optionalDependencies: errno: 0.1.8 graceful-fs: 4.2.11 - image-size: 0.5.5 - make-dir: 2.1.0 + make-dir: 5.1.0 mime: 1.6.0 needle: 3.5.0 + probe-image-size: 7.4.0(supports-color@7.2.0) source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + optional: true - less@4.6.4: + less@4.9.1(supports-color@8.1.1): dependencies: copy-anything: 3.0.5 parse-node-version: 1.0.1 optionalDependencies: errno: 0.1.8 graceful-fs: 4.2.11 - image-size: 0.5.5 - make-dir: 2.1.0 + make-dir: 5.1.0 mime: 1.6.0 needle: 3.5.0 + probe-image-size: 7.4.0(supports-color@8.1.1) source-map: 0.6.1 + transitivePeerDependencies: + - supports-color leven@3.1.0: {} @@ -25795,11 +26739,11 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - license-webpack-plugin@4.0.2(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)): + license-webpack-plugin@4.0.2(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)): dependencies: - webpack-sources: 3.5.0 + webpack-sources: 3.5.1 optionalDependencies: - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) lighthouse-logger@1.4.2(supports-color@8.1.1): dependencies: @@ -25808,54 +26752,54 @@ snapshots: transitivePeerDependencies: - supports-color - lightningcss-android-arm64@1.32.0: + lightningcss-android-arm64@1.33.0: optional: true - lightningcss-darwin-arm64@1.32.0: + lightningcss-darwin-arm64@1.33.0: optional: true - lightningcss-darwin-x64@1.32.0: + lightningcss-darwin-x64@1.33.0: optional: true - lightningcss-freebsd-x64@1.32.0: + lightningcss-freebsd-x64@1.33.0: optional: true - lightningcss-linux-arm-gnueabihf@1.32.0: + lightningcss-linux-arm-gnueabihf@1.33.0: optional: true - lightningcss-linux-arm64-gnu@1.32.0: + lightningcss-linux-arm64-gnu@1.33.0: optional: true - lightningcss-linux-arm64-musl@1.32.0: + lightningcss-linux-arm64-musl@1.33.0: optional: true - lightningcss-linux-x64-gnu@1.32.0: + lightningcss-linux-x64-gnu@1.33.0: optional: true - lightningcss-linux-x64-musl@1.32.0: + lightningcss-linux-x64-musl@1.33.0: optional: true - lightningcss-win32-arm64-msvc@1.32.0: + lightningcss-win32-arm64-msvc@1.33.0: optional: true - lightningcss-win32-x64-msvc@1.32.0: + lightningcss-win32-x64-msvc@1.33.0: optional: true - lightningcss@1.32.0: + lightningcss@1.33.0: dependencies: detect-libc: 2.1.2 optionalDependencies: - lightningcss-android-arm64: 1.32.0 - lightningcss-darwin-arm64: 1.32.0 - lightningcss-darwin-x64: 1.32.0 - lightningcss-freebsd-x64: 1.32.0 - lightningcss-linux-arm-gnueabihf: 1.32.0 - lightningcss-linux-arm64-gnu: 1.32.0 - lightningcss-linux-arm64-musl: 1.32.0 - lightningcss-linux-x64-gnu: 1.32.0 - lightningcss-linux-x64-musl: 1.32.0 - lightningcss-win32-arm64-msvc: 1.32.0 - lightningcss-win32-x64-msvc: 1.32.0 + lightningcss-android-arm64: 1.33.0 + lightningcss-darwin-arm64: 1.33.0 + lightningcss-darwin-x64: 1.33.0 + lightningcss-freebsd-x64: 1.33.0 + lightningcss-linux-arm-gnueabihf: 1.33.0 + lightningcss-linux-arm64-gnu: 1.33.0 + lightningcss-linux-arm64-musl: 1.33.0 + lightningcss-linux-x64-gnu: 1.33.0 + lightningcss-linux-x64-musl: 1.33.0 + lightningcss-win32-arm64-msvc: 1.33.0 + lightningcss-win32-x64-msvc: 1.33.0 lilconfig@3.1.3: {} @@ -25863,7 +26807,7 @@ snapshots: lines-and-columns@2.0.3: {} - linkify-it@5.0.1: + linkify-it@5.0.2: dependencies: uc.micro: 2.1.0 @@ -25895,7 +26839,7 @@ snapshots: lmdb@3.5.1: dependencies: '@harperfast/extended-iterable': 1.0.3 - msgpackr: 1.11.12 + msgpackr: 1.12.1 node-addon-api: 6.1.0 node-gyp-build-optional-packages: 5.2.2 ordered-binary: 1.6.1 @@ -25928,7 +26872,7 @@ snapshots: local-pkg@1.2.1: dependencies: mlly: 1.8.2 - pkg-types: 2.3.1 + pkg-types: 2.3.3 quansync: 0.2.11 locate-character@3.0.0: {} @@ -25965,7 +26909,7 @@ snapshots: log-symbols@7.0.1: dependencies: is-unicode-supported: 2.1.0 - yoctocolors: 2.1.2 + yoctocolors: 2.2.0 log-update@6.1.0: dependencies: @@ -25985,7 +26929,7 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.5.0: {} + lru-cache@11.5.3: {} lru-cache@5.1.1: dependencies: @@ -26003,28 +26947,27 @@ snapshots: magic-string@0.30.21: dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 magicast@0.3.5: dependencies: - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 7.29.9 + '@babel/types': 7.29.8 source-map-js: 1.2.1 - make-dir@2.1.0: + make-dir@4.0.0: dependencies: - pify: 4.0.1 - semver: 5.7.2 + semver: 7.8.5 + + make-dir@5.1.0: optional: true - make-dir@4.0.0: - dependencies: - semver: 7.8.1 + make-error@1.3.6: {} - make-fetch-happen@15.0.5(supports-color@8.1.1): + make-fetch-happen@15.0.6(supports-color@8.1.1): dependencies: '@gar/promise-retry': 1.0.3 - '@npmcli/agent': 4.0.0(supports-color@8.1.1) + '@npmcli/agent': 4.0.2(supports-color@8.1.1) '@npmcli/redact': 4.0.0 cacache: 20.0.4 http-cache-semantics: 4.2.0 @@ -26032,7 +26975,7 @@ snapshots: minipass-fetch: 5.0.2 minipass-flush: 1.0.7 minipass-pipeline: 1.2.4 - negotiator: 1.0.0 + negotiator: 1.1.0 proc-log: 6.1.0 ssri: 13.0.1 transitivePeerDependencies: @@ -26044,21 +26987,21 @@ snapshots: markdown-extensions@1.1.1: {} - markdown-it@14.2.0: + markdown-it@14.3.2: dependencies: argparse: 2.0.1 entities: 4.5.0 - linkify-it: 5.0.1 - mdurl: 2.0.0 + linkify-it: 5.0.2 + mdurl: 2.1.0 punycode.js: 2.3.1 uc.micro: 2.1.0 - markdown-link-extractor@4.0.3: + markdown-link-extractor@4.0.4: dependencies: html-link-extractor: 1.0.5 - marked: 17.0.6 + marked: 18.0.13 - marked@17.0.6: {} + marked@18.0.13: {} marky@1.3.0: {} @@ -26173,7 +27116,7 @@ snapshots: mdn-data@2.27.1: {} - mdurl@2.0.0: {} + mdurl@2.1.0: {} media-query-parser@2.0.2: dependencies: @@ -26181,22 +27124,22 @@ snapshots: media-typer@0.3.0: {} - media-typer@1.1.0: {} + media-typer@1.1.1: {} - memfs@4.57.2(tslib@2.8.1): + memfs@4.78.1: dependencies: - '@jsonjoy.com/fs-core': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-fsa': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-to-fsa': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-print': 4.57.2(tslib@2.8.1) - '@jsonjoy.com/fs-snapshot': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-core': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-fsa': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-node': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-node-to-fsa': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-print': 4.78.1(tslib@2.8.1) + '@jsonjoy.com/fs-snapshot': 4.78.1(tslib@2.8.1) '@jsonjoy.com/json-pack': 1.21.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) - glob-to-regex.js: 1.2.0(tslib@2.8.1) - thingies: 2.6.0(tslib@2.8.1) + glob-to-regex.js: 1.3.1(tslib@2.8.1) + thingies: 2.6.1(tslib@2.8.1) tree-dump: 1.1.0(tslib@2.8.1) tslib: 2.8.1 @@ -26227,12 +27170,12 @@ snapshots: transitivePeerDependencies: - supports-color - metro-babel-transformer@0.83.7(supports-color@8.1.1): + metro-babel-transformer@0.83.8(supports-color@8.1.1): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) flow-enums-runtime: 0.0.6 hermes-parser: 0.35.0 - metro-cache-key: 0.83.7 + metro-cache-key: 0.83.8 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color @@ -26241,7 +27184,7 @@ snapshots: dependencies: flow-enums-runtime: 0.0.6 - metro-cache-key@0.83.7: + metro-cache-key@0.83.8: dependencies: flow-enums-runtime: 0.0.6 @@ -26254,12 +27197,12 @@ snapshots: transitivePeerDependencies: - supports-color - metro-cache@0.83.7(supports-color@8.1.1): + metro-cache@0.83.8(supports-color@8.1.1): dependencies: exponential-backoff: 3.1.3 flow-enums-runtime: 0.0.6 https-proxy-agent: 7.0.6(supports-color@8.1.1) - metro-core: 0.83.7 + metro-core: 0.83.8 transitivePeerDependencies: - supports-color @@ -26272,22 +27215,22 @@ snapshots: metro-cache: 0.83.3(supports-color@8.1.1) metro-core: 0.83.3 metro-runtime: 0.83.3 - yaml: 2.9.0 + yaml: 2.9.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - metro-config@0.83.7(supports-color@8.1.1): + metro-config@0.83.8(supports-color@8.1.1): dependencies: connect: 3.7.0(supports-color@8.1.1) flow-enums-runtime: 0.0.6 jest-validate: 29.7.0 - metro: 0.83.7(supports-color@8.1.1) - metro-cache: 0.83.7(supports-color@8.1.1) - metro-core: 0.83.7 - metro-runtime: 0.83.7 - yaml: 2.9.0 + metro: 0.83.8(supports-color@8.1.1) + metro-cache: 0.83.8(supports-color@8.1.1) + metro-core: 0.83.8 + metro-runtime: 0.83.8 + yaml: 2.9.1 transitivePeerDependencies: - bufferutil - supports-color @@ -26299,11 +27242,11 @@ snapshots: lodash.throttle: 4.1.1 metro-resolver: 0.83.3 - metro-core@0.83.7: + metro-core@0.83.8: dependencies: flow-enums-runtime: 0.0.6 lodash.throttle: 4.1.1 - metro-resolver: 0.83.7 + metro-resolver: 0.83.8 metro-file-map@0.83.3(supports-color@8.1.1): dependencies: @@ -26319,7 +27262,7 @@ snapshots: transitivePeerDependencies: - supports-color - metro-file-map@0.83.7(supports-color@8.1.1): + metro-file-map@0.83.8(supports-color@8.1.1): dependencies: debug: 4.4.3(supports-color@8.1.1) fb-watchman: 2.0.2 @@ -26336,18 +27279,18 @@ snapshots: metro-minify-terser@0.83.3: dependencies: flow-enums-runtime: 0.0.6 - terser: 5.48.0 + terser: 5.51.2 - metro-minify-terser@0.83.7: + metro-minify-terser@0.83.8: dependencies: flow-enums-runtime: 0.0.6 - terser: 5.48.0 + terser: 5.51.2 metro-resolver@0.83.3: dependencies: flow-enums-runtime: 0.0.6 - metro-resolver@0.83.7: + metro-resolver@0.83.8: dependencies: flow-enums-runtime: 0.0.6 @@ -26356,16 +27299,16 @@ snapshots: '@babel/runtime': 7.29.7 flow-enums-runtime: 0.0.6 - metro-runtime@0.83.7: + metro-runtime@0.83.8: dependencies: '@babel/runtime': 7.29.7 flow-enums-runtime: 0.0.6 metro-source-map@0.83.3(supports-color@8.1.1): dependencies: - '@babel/traverse': 7.29.7(supports-color@8.1.1) - '@babel/traverse--for-generate-function-map': '@babel/traverse@7.29.7(supports-color@8.1.1)' - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@8.1.1) + '@babel/traverse--for-generate-function-map': '@babel/traverse@7.29.8(supports-color@8.1.1)' + '@babel/types': 7.29.8 flow-enums-runtime: 0.0.6 invariant: 2.2.4 metro-symbolicate: 0.83.3 @@ -26376,15 +27319,15 @@ snapshots: transitivePeerDependencies: - supports-color - metro-source-map@0.83.7(supports-color@8.1.1): + metro-source-map@0.83.8(supports-color@8.1.1): dependencies: - '@babel/traverse': 7.29.7(supports-color@8.1.1) - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@8.1.1) + '@babel/types': 7.29.8 flow-enums-runtime: 0.0.6 invariant: 2.2.4 - metro-symbolicate: 0.83.7 + metro-symbolicate: 0.83.8 nullthrows: 1.1.1 - ob1: 0.83.7 + ob1: 0.83.8 source-map: 0.5.7 vlq: 1.0.1 transitivePeerDependencies: @@ -26399,11 +27342,11 @@ snapshots: source-map: 0.5.7 vlq: 1.0.1 - metro-symbolicate@0.83.7: + metro-symbolicate@0.83.8: dependencies: flow-enums-runtime: 0.0.6 invariant: 2.2.4 - metro-source-map: 0.83.7(supports-color@8.1.1) + metro-source-map: 0.83.8(supports-color@8.1.1) nullthrows: 1.1.1 source-map: 0.5.7 vlq: 1.0.1 @@ -26411,20 +27354,20 @@ snapshots: metro-transform-plugins@0.83.3(supports-color@8.1.1): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/generator': 7.29.7 + '@babel/generator': 7.29.8 '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) flow-enums-runtime: 0.0.6 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color - metro-transform-plugins@0.83.7(supports-color@8.1.1): + metro-transform-plugins@0.83.8(supports-color@8.1.1): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/generator': 7.29.7 + '@babel/generator': 7.29.8 '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/traverse': 7.29.8(supports-color@8.1.1) flow-enums-runtime: 0.0.6 nullthrows: 1.1.1 transitivePeerDependencies: @@ -26433,9 +27376,9 @@ snapshots: metro-transform-worker@0.83.3(supports-color@8.1.1): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/generator': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/parser': 7.29.9 + '@babel/types': 7.29.8 flow-enums-runtime: 0.0.6 metro: 0.83.3(supports-color@8.1.1) metro-babel-transformer: 0.83.3(supports-color@8.1.1) @@ -26450,20 +27393,20 @@ snapshots: - supports-color - utf-8-validate - metro-transform-worker@0.83.7(supports-color@8.1.1): + metro-transform-worker@0.83.8(supports-color@8.1.1): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/generator': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/parser': 7.29.9 + '@babel/types': 7.29.8 flow-enums-runtime: 0.0.6 - metro: 0.83.7(supports-color@8.1.1) - metro-babel-transformer: 0.83.7(supports-color@8.1.1) - metro-cache: 0.83.7(supports-color@8.1.1) - metro-cache-key: 0.83.7 - metro-minify-terser: 0.83.7 - metro-source-map: 0.83.7(supports-color@8.1.1) - metro-transform-plugins: 0.83.7(supports-color@8.1.1) + metro: 0.83.8(supports-color@8.1.1) + metro-babel-transformer: 0.83.8(supports-color@8.1.1) + metro-cache: 0.83.8(supports-color@8.1.1) + metro-cache-key: 0.83.8 + metro-minify-terser: 0.83.8 + metro-source-map: 0.83.8(supports-color@8.1.1) + metro-transform-plugins: 0.83.8(supports-color@8.1.1) nullthrows: 1.1.1 transitivePeerDependencies: - bufferutil @@ -26474,11 +27417,11 @@ snapshots: dependencies: '@babel/code-frame': 7.29.7 '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/generator': 7.29.7 - '@babel/parser': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/parser': 7.29.9 '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@8.1.1) + '@babel/types': 7.29.8 accepts: 1.3.8 chalk: 4.1.2 ci-info: 2.0.0 @@ -26510,22 +27453,22 @@ snapshots: serialize-error: 2.1.0 source-map: 0.5.7 throat: 5.0.0 - ws: 7.5.11 - yargs: 17.7.2 + ws: 7.5.13 + yargs: 17.7.3 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - metro@0.83.7(supports-color@8.1.1): + metro@0.83.8(supports-color@8.1.1): dependencies: '@babel/code-frame': 7.29.7 '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/generator': 7.29.7 - '@babel/parser': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/parser': 7.29.9 '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7(supports-color@8.1.1) - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@8.1.1) + '@babel/types': 7.29.8 accepts: 2.0.0 ci-info: 2.0.0 connect: 3.7.0(supports-color@8.1.1) @@ -26534,30 +27477,29 @@ snapshots: flow-enums-runtime: 0.0.6 graceful-fs: 4.2.11 hermes-parser: 0.35.0 - image-size: 1.2.1 invariant: 2.2.4 jest-worker: 29.7.0 jsc-safe-url: 0.2.4 lodash.throttle: 4.1.1 - metro-babel-transformer: 0.83.7(supports-color@8.1.1) - metro-cache: 0.83.7(supports-color@8.1.1) - metro-cache-key: 0.83.7 - metro-config: 0.83.7(supports-color@8.1.1) - metro-core: 0.83.7 - metro-file-map: 0.83.7(supports-color@8.1.1) - metro-resolver: 0.83.7 - metro-runtime: 0.83.7 - metro-source-map: 0.83.7(supports-color@8.1.1) - metro-symbolicate: 0.83.7 - metro-transform-plugins: 0.83.7(supports-color@8.1.1) - metro-transform-worker: 0.83.7(supports-color@8.1.1) + metro-babel-transformer: 0.83.8(supports-color@8.1.1) + metro-cache: 0.83.8(supports-color@8.1.1) + metro-cache-key: 0.83.8 + metro-config: 0.83.8(supports-color@8.1.1) + metro-core: 0.83.8 + metro-file-map: 0.83.8(supports-color@8.1.1) + metro-resolver: 0.83.8 + metro-runtime: 0.83.8 + metro-source-map: 0.83.8(supports-color@8.1.1) + metro-symbolicate: 0.83.8 + metro-transform-plugins: 0.83.8(supports-color@8.1.1) + metro-transform-worker: 0.83.8(supports-color@8.1.1) mime-types: 3.0.2 nullthrows: 1.1.1 serialize-error: 2.1.0 source-map: 0.5.7 throat: 5.0.0 - ws: 7.5.11 - yargs: 17.7.2 + ws: 7.5.13 + yargs: 17.7.3 transitivePeerDependencies: - bufferutil - supports-color @@ -26631,8 +27573,8 @@ snapshots: micromark-extension-mdxjs@1.0.1: dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) + acorn: 8.18.0 + acorn-jsx: 5.3.2(acorn@8.18.0) micromark-extension-mdx-expression: 1.0.8 micromark-extension-mdx-jsx: 1.0.5 micromark-extension-mdx-md: 1.0.1 @@ -26803,29 +27745,33 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.10.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)): + mini-css-extract-plugin@2.10.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)): dependencies: - schema-utils: 4.3.3 + schema-utils: 4.5.0 tapable: 2.3.3 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) minimalistic-assert@1.0.1: {} minimatch@10.2.5: dependencies: - brace-expansion: 5.0.6 + brace-expansion: 5.0.9 + + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.12 minimatch@3.0.8: dependencies: - brace-expansion: 1.1.14 + brace-expansion: 1.1.21 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.14 + brace-expansion: 1.1.21 minimatch@9.0.9: dependencies: - brace-expansion: 2.1.1 + brace-expansion: 2.1.7 minimist@1.2.8: {} @@ -26843,7 +27789,7 @@ snapshots: minipass-sized: 2.0.0 minizlib: 3.1.0 optionalDependencies: - iconv-lite: 0.7.2 + iconv-lite: 0.7.3 minipass-flush@1.0.7: dependencies: @@ -26878,23 +27824,21 @@ snapshots: mkdirp@1.0.4: {} - mkdirp@3.0.1: {} - mlly@1.8.2: dependencies: - acorn: 8.16.0 + acorn: 8.18.0 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.6.4 modern-ahocorasick@1.1.0: {} - morgan@1.10.1(supports-color@8.1.1): + morgan@1.12.1(supports-color@8.1.1): dependencies: basic-auth: 2.0.1 debug: 2.6.9(supports-color@8.1.1) depd: 2.0.0 - on-finished: 2.3.0 + on-finished: 2.4.1 on-headers: 1.1.0 transitivePeerDependencies: - supports-color @@ -26921,7 +27865,7 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.4 optional: true - msgpackr@1.11.12: + msgpackr@1.12.1: optionalDependencies: msgpackr-extract: 3.0.4 optional: true @@ -26941,34 +27885,80 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nanoid@3.3.12: {} + nanoid@3.3.19: {} napi-postinstall@0.3.4: {} natural-compare@1.4.0: {} + needle@2.9.1(supports-color@7.2.0): + dependencies: + debug: 3.2.7(supports-color@7.2.0) + iconv-lite: 0.4.24 + sax: 1.6.1 + transitivePeerDependencies: + - supports-color + optional: true + + needle@2.9.1(supports-color@8.1.1): + dependencies: + debug: 3.2.7(supports-color@8.1.1) + iconv-lite: 0.4.24 + sax: 1.6.1 + transitivePeerDependencies: + - supports-color + optional: true + needle@3.5.0: dependencies: iconv-lite: 0.6.3 - sax: 1.6.0 + sax: 1.6.1 optional: true negotiator@0.6.3: {} negotiator@0.6.4: {} - negotiator@1.0.0: {} + negotiator@1.1.0: + dependencies: + content-type: 2.1.0 neo-async@2.6.2: {} nested-error-stacks@2.0.1: {} - next@16.2.6(@babel/core@7.29.7(supports-color@8.1.1))(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.100.0): + next@16.2.6(@babel/core@7.29.7(supports-color@7.2.0))(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.104.1): + dependencies: + '@next/env': 16.2.6 + '@swc/helpers': 0.5.15 + baseline-browser-mapping: 2.11.25 + caniuse-lite: 1.0.30001810 + postcss: 8.4.31 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + styled-jsx: 5.1.6(@babel/core@7.29.7(supports-color@7.2.0))(react@19.1.0) + optionalDependencies: + '@next/swc-darwin-arm64': 16.2.6 + '@next/swc-darwin-x64': 16.2.6 + '@next/swc-linux-arm64-gnu': 16.2.6 + '@next/swc-linux-arm64-musl': 16.2.6 + '@next/swc-linux-x64-gnu': 16.2.6 + '@next/swc-linux-x64-musl': 16.2.6 + '@next/swc-win32-arm64-msvc': 16.2.6 + '@next/swc-win32-x64-msvc': 16.2.6 + babel-plugin-react-compiler: 1.0.0 + sass: 1.104.1 + sharp: 0.34.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + next@16.2.6(@babel/core@7.29.7(supports-color@8.1.1))(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.104.1): dependencies: '@next/env': 16.2.6 '@swc/helpers': 0.5.15 - baseline-browser-mapping: 2.10.32 - caniuse-lite: 1.0.30001793 + baseline-browser-mapping: 2.11.25 + caniuse-lite: 1.0.30001810 postcss: 8.4.31 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) @@ -26983,40 +27973,42 @@ snapshots: '@next/swc-win32-arm64-msvc': 16.2.6 '@next/swc-win32-x64-msvc': 16.2.6 babel-plugin-react-compiler: 1.0.0 - sass: 1.100.0 + sass: 1.104.1 sharp: 0.34.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - ng-packagr@21.2.3(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3): + ng-packagr@21.2.7(@angular/compiler-cli@21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3))(supports-color@8.1.1)(tslib@2.8.1)(typescript@5.9.3): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 21.2.14(@angular/compiler@21.2.14)(supports-color@8.1.1)(typescript@5.9.3) - '@rollup/plugin-json': 6.1.0(rollup@4.60.4) - '@rollup/wasm-node': 4.60.4 + '@angular/compiler-cli': 21.2.23(@angular/compiler@21.2.23)(supports-color@8.1.1)(typescript@5.9.3) + '@rollup/plugin-json': 6.1.0(rollup@4.63.4) + '@rollup/wasm-node': 4.63.4 ajv: 8.20.0 ansi-colors: 4.1.3 - browserslist: 4.28.2 + browserslist: 4.29.0 chokidar: 5.0.0 commander: 14.0.3 dependency-graph: 1.0.0 - esbuild: 0.27.7 + esbuild: 0.28.2 find-cache-directory: 6.0.0 injection-js: 2.6.1 jsonc-parser: 3.3.1 - less: 4.6.4 - ora: 9.4.0 - piscina: 5.1.4 + less: 4.9.1(supports-color@8.1.1) + ora: 9.4.1 + piscina: 5.3.2 postcss: 8.5.6 - rollup-plugin-dts: 6.4.1(rollup@4.60.4)(typescript@5.9.3) + rollup-plugin-dts: 6.4.1(rollup@4.63.4)(typescript@5.9.3) rxjs: 7.8.2 - sass: 1.100.0 - tinyglobby: 0.2.16 + sass: 1.104.1 + tinyglobby: 0.2.17 tslib: 2.8.1 typescript: 5.9.3 optionalDependencies: - rollup: 4.60.4 + rollup: 4.63.4 + transitivePeerDependencies: + - supports-color node-addon-api@6.1.0: optional: true @@ -27024,7 +28016,7 @@ snapshots: node-addon-api@7.1.1: optional: true - node-exports-info@1.6.0: + node-exports-info@1.6.2: dependencies: array.prototype.flatmap: 1.3.3 es-errors: 1.3.0 @@ -27042,17 +28034,17 @@ snapshots: detect-libc: 2.1.2 optional: true - node-gyp@12.3.0: + node-gyp@12.4.0: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.3 graceful-fs: 4.2.11 nopt: 9.0.0 proc-log: 6.1.0 - semver: 7.8.1 - tar: 7.5.15 - tinyglobby: 0.2.16 - undici: 6.26.0 + semver: 7.7.4 + tar: 7.5.22 + tinyglobby: 0.2.17 + undici: 6.28.1 which: 6.0.1 node-html-parser@6.1.13: @@ -27062,11 +28054,11 @@ snapshots: node-int64@0.4.0: {} - node-releases@2.0.46: {} + node-releases@2.0.56: {} - nopt@7.2.1: + nopt@10.0.1: dependencies: - abbrev: 2.0.0 + abbrev: 5.0.0 nopt@9.0.0: dependencies: @@ -27075,8 +28067,8 @@ snapshots: normalize-package-data@5.0.0: dependencies: hosted-git-info: 6.1.3 - is-core-module: 2.16.2 - semver: 7.8.1 + is-core-module: 2.17.0 + semver: 7.8.5 validate-npm-package-license: 3.0.4 normalize-path@3.0.0: {} @@ -27087,11 +28079,11 @@ snapshots: npm-install-checks@6.3.0: dependencies: - semver: 7.8.1 + semver: 7.8.5 npm-install-checks@8.0.0: dependencies: - semver: 7.8.1 + semver: 7.7.4 npm-normalize-package-bin@3.0.1: {} @@ -27101,14 +28093,14 @@ snapshots: dependencies: hosted-git-info: 6.1.3 proc-log: 3.0.0 - semver: 7.8.1 + semver: 7.8.5 validate-npm-package-name: 5.0.1 npm-package-arg@11.0.3: dependencies: hosted-git-info: 7.0.2 proc-log: 4.2.0 - semver: 7.8.1 + semver: 7.8.5 validate-npm-package-name: 5.0.1 npm-package-arg@13.0.2: @@ -27128,20 +28120,20 @@ snapshots: npm-install-checks: 8.0.0 npm-normalize-package-bin: 5.0.0 npm-package-arg: 13.0.2 - semver: 7.8.1 + semver: 7.7.4 npm-pick-manifest@8.0.2: dependencies: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 10.1.0 - semver: 7.8.1 + semver: 7.8.5 npm-registry-fetch@19.1.1(supports-color@8.1.1): dependencies: '@npmcli/redact': 4.0.0 jsonparse: 1.3.1 - make-fetch-happen: 15.0.5(supports-color@8.1.1) + make-fetch-happen: 15.0.6(supports-color@8.1.1) minipass: 7.1.3 minipass-fetch: 5.0.2 minizlib: 3.1.0 @@ -27160,7 +28152,7 @@ snapshots: nullthrows@1.1.1: {} - nx@23.2.1(@swc/core@1.15.40): + nx@23.2.1(@swc/core@1.16.2): dependencies: '@clack/core': 1.4.3 '@clack/prompts': 1.7.0 @@ -27297,13 +28289,13 @@ snapshots: '@nx/nx-linux-x64-musl': 23.2.1 '@nx/nx-win32-arm64-msvc': 23.2.1 '@nx/nx-win32-x64-msvc': 23.2.1 - '@swc/core': 1.15.40 + '@swc/core': 1.16.2 ob1@0.83.3: dependencies: flow-enums-runtime: 0.0.6 - ob1@0.83.7: + ob1@0.83.8: dependencies: flow-enums-runtime: 0.0.6 @@ -27356,7 +28348,53 @@ snapshots: obuf@1.1.2: {} - obug@2.1.1: {} + obug@2.2.1: {} + + octane@0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)): + dependencies: + '@tsrx/core': 0.2.4(@typescript-eslint/types@8.70.0) + '@tsrx/oxc': 0.13.0(svelte@5.57.1(@typescript-eslint/types@8.70.0)) + '@types/react': 19.2.18 + '@volar/language-core': 2.4.28 + '@volar/typescript': 2.4.28(typescript@5.9.3) + alien-signals: 3.2.0 + csstype: 3.2.3 + devalue: 5.9.4 + entities: 7.0.1 + es-module-lexer: 1.7.0 + esrap: 2.3.7(@typescript-eslint/types@8.70.0) + optionalDependencies: + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + typescript: 5.9.3 + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + transitivePeerDependencies: + - '@typescript-eslint/types' + - svelte + - vite-plus + + octane@0.2.16(@typescript-eslint/types@8.70.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)): + dependencies: + '@tsrx/core': 0.2.4(@typescript-eslint/types@8.70.0) + '@tsrx/oxc': 0.13.0(svelte@5.57.1(@typescript-eslint/types@8.70.0)) + '@types/react': 19.2.18 + '@volar/language-core': 2.4.28 + '@volar/typescript': 2.4.28(typescript@5.9.3) + alien-signals: 3.2.0 + csstype: 3.2.3 + devalue: 5.9.4 + entities: 7.0.1 + es-module-lexer: 1.7.0 + esrap: 2.3.7(@typescript-eslint/types@8.70.0) + optionalDependencies: + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + typescript: 5.9.3 + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + transitivePeerDependencies: + - '@typescript-eslint/types' + - svelte + - vite-plus on-finished@2.3.0: dependencies: @@ -27386,21 +28424,21 @@ snapshots: open@10.1.0: dependencies: - default-browser: 5.5.0 + default-browser: 5.2.1 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 - is-wsl: 3.1.1 + is-wsl: 3.1.0 open@10.2.0: dependencies: - default-browser: 5.5.0 + default-browser: 5.5.1 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 wsl-utils: 0.1.0 open@11.0.0: dependencies: - default-browser: 5.5.0 + default-browser: 5.5.1 define-lazy-prop: 3.0.0 is-in-ssh: 1.0.0 is-inside-container: 1.0.0 @@ -27441,7 +28479,7 @@ snapshots: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.9.2 + cli-spinners: 2.6.1 is-interactive: 1.0.0 is-unicode-supported: 0.1.0 log-symbols: 4.1.0 @@ -27457,9 +28495,9 @@ snapshots: is-unicode-supported: 2.1.0 log-symbols: 7.0.1 stdin-discarder: 0.3.2 - string-width: 8.2.1 + string-width: 8.2.2 - ora@9.4.0: + ora@9.4.1: dependencies: chalk: 5.6.2 cli-cursor: 5.0.0 @@ -27468,20 +28506,21 @@ snapshots: is-unicode-supported: 2.1.0 log-symbols: 7.0.1 stdin-discarder: 0.3.2 - string-width: 8.2.1 + string-width: 8.2.2 ordered-binary@1.6.1: optional: true outdent@0.8.0: {} - own-keys@1.0.1: + own-keys@1.0.2: dependencies: + call-bound: 1.0.4 get-intrinsic: 1.3.0 object-keys: 1.1.1 safe-push-apply: 1.0.0 - oxc-parser@0.121.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2): + oxc-parser@0.121.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3): dependencies: '@oxc-project/types': 0.121.0 optionalDependencies: @@ -27501,7 +28540,7 @@ snapshots: '@oxc-parser/binding-linux-x64-gnu': 0.121.0 '@oxc-parser/binding-linux-x64-musl': 0.121.0 '@oxc-parser/binding-openharmony-arm64': 0.121.0 - '@oxc-parser/binding-wasm32-wasi': 0.121.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + '@oxc-parser/binding-wasm32-wasi': 0.121.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3) '@oxc-parser/binding-win32-arm64-msvc': 0.121.0 '@oxc-parser/binding-win32-ia32-msvc': 0.121.0 '@oxc-parser/binding-win32-x64-msvc': 0.121.0 @@ -27533,33 +28572,6 @@ snapshots: '@oxc-parser/binding-win32-ia32-msvc': 0.150.0 '@oxc-parser/binding-win32-x64-msvc': 0.150.0 - oxc-resolver@11.19.1(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2): - optionalDependencies: - '@oxc-resolver/binding-android-arm-eabi': 11.19.1 - '@oxc-resolver/binding-android-arm64': 11.19.1 - '@oxc-resolver/binding-darwin-arm64': 11.19.1 - '@oxc-resolver/binding-darwin-x64': 11.19.1 - '@oxc-resolver/binding-freebsd-x64': 11.19.1 - '@oxc-resolver/binding-linux-arm-gnueabihf': 11.19.1 - '@oxc-resolver/binding-linux-arm-musleabihf': 11.19.1 - '@oxc-resolver/binding-linux-arm64-gnu': 11.19.1 - '@oxc-resolver/binding-linux-arm64-musl': 11.19.1 - '@oxc-resolver/binding-linux-ppc64-gnu': 11.19.1 - '@oxc-resolver/binding-linux-riscv64-gnu': 11.19.1 - '@oxc-resolver/binding-linux-riscv64-musl': 11.19.1 - '@oxc-resolver/binding-linux-s390x-gnu': 11.19.1 - '@oxc-resolver/binding-linux-x64-gnu': 11.19.1 - '@oxc-resolver/binding-linux-x64-musl': 11.19.1 - '@oxc-resolver/binding-openharmony-arm64': 11.19.1 - '@oxc-resolver/binding-wasm32-wasi': 11.19.1(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) - '@oxc-resolver/binding-win32-arm64-msvc': 11.19.1 - '@oxc-resolver/binding-win32-ia32-msvc': 11.19.1 - '@oxc-resolver/binding-win32-x64-msvc': 11.19.1 - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - optional: true - oxc-resolver@11.24.2: optionalDependencies: '@oxc-resolver/binding-android-arm-eabi': 11.24.2 @@ -27582,6 +28594,63 @@ snapshots: '@oxc-resolver/binding-win32-arm64-msvc': 11.24.2 '@oxc-resolver/binding-win32-x64-msvc': 11.24.2 + oxfmt@0.59.0(svelte@5.57.1(@typescript-eslint/types@8.70.0)): + dependencies: + tinypool: 2.1.0 + optionalDependencies: + '@oxfmt/binding-android-arm-eabi': 0.59.0 + '@oxfmt/binding-android-arm64': 0.59.0 + '@oxfmt/binding-darwin-arm64': 0.59.0 + '@oxfmt/binding-darwin-x64': 0.59.0 + '@oxfmt/binding-freebsd-x64': 0.59.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.59.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.59.0 + '@oxfmt/binding-linux-arm64-gnu': 0.59.0 + '@oxfmt/binding-linux-arm64-musl': 0.59.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.59.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.59.0 + '@oxfmt/binding-linux-riscv64-musl': 0.59.0 + '@oxfmt/binding-linux-s390x-gnu': 0.59.0 + '@oxfmt/binding-linux-x64-gnu': 0.59.0 + '@oxfmt/binding-linux-x64-musl': 0.59.0 + '@oxfmt/binding-openharmony-arm64': 0.59.0 + '@oxfmt/binding-win32-arm64-msvc': 0.59.0 + '@oxfmt/binding-win32-ia32-msvc': 0.59.0 + '@oxfmt/binding-win32-x64-msvc': 0.59.0 + svelte: 5.57.1(@typescript-eslint/types@8.70.0) + + oxlint-tsgolint@0.24.0: + optionalDependencies: + '@oxlint-tsgolint/darwin-arm64': 0.24.0 + '@oxlint-tsgolint/darwin-x64': 0.24.0 + '@oxlint-tsgolint/linux-arm64': 0.24.0 + '@oxlint-tsgolint/linux-x64': 0.24.0 + '@oxlint-tsgolint/win32-arm64': 0.24.0 + '@oxlint-tsgolint/win32-x64': 0.24.0 + + oxlint@1.74.0(oxlint-tsgolint@0.24.0): + optionalDependencies: + '@oxlint/binding-android-arm-eabi': 1.74.0 + '@oxlint/binding-android-arm64': 1.74.0 + '@oxlint/binding-darwin-arm64': 1.74.0 + '@oxlint/binding-darwin-x64': 1.74.0 + '@oxlint/binding-freebsd-x64': 1.74.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.74.0 + '@oxlint/binding-linux-arm-musleabihf': 1.74.0 + '@oxlint/binding-linux-arm64-gnu': 1.74.0 + '@oxlint/binding-linux-arm64-musl': 1.74.0 + '@oxlint/binding-linux-ppc64-gnu': 1.74.0 + '@oxlint/binding-linux-riscv64-gnu': 1.74.0 + '@oxlint/binding-linux-riscv64-musl': 1.74.0 + '@oxlint/binding-linux-s390x-gnu': 1.74.0 + '@oxlint/binding-linux-x64-gnu': 1.74.0 + '@oxlint/binding-linux-x64-musl': 1.74.0 + '@oxlint/binding-openharmony-arm64': 1.74.0 + '@oxlint/binding-win32-arm64-msvc': 1.74.0 + '@oxlint/binding-win32-ia32-msvc': 1.74.0 + '@oxlint/binding-win32-x64-msvc': 1.74.0 + oxlint-tsgolint: 0.24.0 + p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -27602,7 +28671,7 @@ snapshots: dependencies: aggregate-error: 3.1.0 - p-map@7.0.4: {} + p-map@7.0.8: {} p-retry@6.2.1: dependencies: @@ -27614,12 +28683,11 @@ snapshots: package-json-from-dist@1.0.1: {} - package-manager-detector@1.6.0: {} - package-manager-detector@1.8.0: {} - pacote@21.3.1(supports-color@8.1.1): + pacote@21.5.1(supports-color@8.1.1): dependencies: + '@gar/promise-retry': 1.0.3 '@npmcli/git': 7.0.2 '@npmcli/installed-package-contents': 4.0.0 '@npmcli/package-json': 7.0.5 @@ -27633,10 +28701,9 @@ snapshots: npm-pick-manifest: 11.0.3 npm-registry-fetch: 19.1.1(supports-color@8.1.1) proc-log: 6.1.0 - promise-retry: 2.0.1 sigstore: 4.1.1(supports-color@8.1.1) ssri: 13.0.1 - tar: 7.5.15 + tar: 7.5.22 transitivePeerDependencies: - supports-color @@ -27696,7 +28763,7 @@ snapshots: parse5@8.0.1: dependencies: - entities: 8.0.0 + entities: 8.1.0 parseurl@1.3.3: {} @@ -27717,7 +28784,7 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.5.0 + lru-cache: 11.5.3 minipass: 7.1.3 path-to-regexp@0.1.13: {} @@ -27752,14 +28819,15 @@ snapshots: picomatch@4.0.7: {} - pidtree@0.6.0: {} - - pify@4.0.1: - optional: true + pidtree@0.6.1: {} pirates@4.0.7: {} - piscina@5.1.4: + piscina@5.2.0: + optionalDependencies: + '@napi-rs/nice': 1.1.1 + + piscina@5.3.2: optionalDependencies: '@napi-rs/nice': 1.1.1 @@ -27775,24 +28843,24 @@ snapshots: mlly: 1.8.2 pathe: 2.0.3 - pkg-types@2.3.1: + pkg-types@2.3.3: dependencies: - confbox: 0.2.4 - exsolve: 1.0.8 + confbox: 0.3.1 + exsolve: 1.1.1 pathe: 2.0.3 - pkijs@3.4.0: + pkijs@3.4.1: dependencies: - '@noble/hashes': 1.4.0 + '@noble/hashes': 1.8.0 asn1js: 3.0.10 bytestreamjs: 2.0.1 pvtsutils: 1.3.6 - pvutils: 1.1.5 + pvutils: 1.2.0 tslib: 2.8.1 plist@3.1.1: dependencies: - '@xmldom/xmldom': 0.9.10 + '@xmldom/xmldom': 0.9.12 base64-js: 1.5.1 xmlbuilder: 15.1.1 @@ -27809,21 +28877,22 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.6 - postcss-load-config@4.0.2(postcss@8.5.6): + postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.16.2)(@types/node@24.13.6)(typescript@5.9.3)): dependencies: lilconfig: 3.1.3 - yaml: 2.9.0 + yaml: 2.9.1 optionalDependencies: postcss: 8.5.6 + ts-node: 10.9.2(@swc/core@1.16.2)(@types/node@24.13.6)(typescript@5.9.3) - postcss-loader@8.2.0(postcss@8.5.12)(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)): + postcss-loader@8.2.0(postcss@8.5.23)(typescript@5.9.3)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)): dependencies: - cosmiconfig: 9.0.1(typescript@5.9.3) + cosmiconfig: 9.0.2(typescript@5.9.3) jiti: 2.7.0 - postcss: 8.5.12 + postcss: 8.5.23 semver: 7.7.4 optionalDependencies: - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) transitivePeerDependencies: - typescript @@ -27835,7 +28904,7 @@ snapshots: postcss-js: 4.1.0(postcss@8.5.6) postcss-simple-vars: 7.0.1(postcss@8.5.6) sugarss: 5.0.1(postcss@8.5.6) - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 postcss-mixins@9.0.4(postcss@8.5.6): dependencies: @@ -27853,13 +28922,13 @@ snapshots: dependencies: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.6 postcss-value-parser: 4.2.0 postcss-modules-scope@3.2.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.6 postcss-modules-values@4.0.0(postcss@8.5.6): dependencies: @@ -27881,7 +28950,7 @@ snapshots: postcss-nested@7.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.6 postcss-preset-mantine@1.18.0(postcss@8.5.6): dependencies: @@ -27889,11 +28958,11 @@ snapshots: postcss-mixins: 12.1.2(postcss@8.5.6) postcss-nested: 7.0.2(postcss@8.5.6) - postcss-safe-parser@7.0.1(postcss@8.5.6): + postcss-safe-parser@7.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser@7.1.1: + postcss-selector-parser@7.1.6: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -27906,37 +28975,37 @@ snapshots: postcss@8.4.31: dependencies: - nanoid: 3.3.12 + nanoid: 3.3.19 picocolors: 1.1.1 source-map-js: 1.2.1 postcss@8.4.49: dependencies: - nanoid: 3.3.12 + nanoid: 3.3.19 picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.12: + postcss@8.5.23: dependencies: - nanoid: 3.3.12 + nanoid: 3.3.19 picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.15: + postcss@8.5.28: dependencies: - nanoid: 3.3.12 + nanoid: 3.3.19 picocolors: 1.1.1 source-map-js: 1.2.1 postcss@8.5.6: dependencies: - nanoid: 3.3.12 + nanoid: 3.3.19 picocolors: 1.1.1 source-map-js: 1.2.1 powershell-utils@0.1.0: {} - preact@10.29.2: {} + preact@10.29.8: {} prelude-ls@1.2.1: {} @@ -27944,7 +29013,7 @@ snapshots: prettier@2.8.8: {} - prettier@3.8.3: {} + prettier@3.9.8: {} pretty-bytes@5.6.0: {} @@ -27964,6 +29033,24 @@ snapshots: dependencies: parse-ms: 2.1.0 + probe-image-size@7.4.0(supports-color@7.2.0): + dependencies: + lodash.merge: 4.6.2 + needle: 2.9.1(supports-color@7.2.0) + stream-parser: 0.3.1(supports-color@7.2.0) + transitivePeerDependencies: + - supports-color + optional: true + + probe-image-size@7.4.0(supports-color@8.1.1): + dependencies: + lodash.merge: 4.6.2 + needle: 2.9.1(supports-color@8.1.1) + stream-parser: 0.3.1(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + optional: true + proc-log@3.0.0: {} proc-log@4.2.0: {} @@ -28004,7 +29091,7 @@ snapshots: proto-list@1.2.4: {} - proxy-addr@2.0.7: + proxy-addr@2.0.8: dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 @@ -28014,10 +29101,10 @@ snapshots: prr@1.0.1: optional: true - publint@0.3.21: + publint@0.3.24: dependencies: - '@publint/pack': 0.1.4 - package-manager-detector: 1.6.0 + '@publint/pack': 0.1.7 + package-manager-detector: 1.8.0 picocolors: 1.1.1 sade: 1.8.1 @@ -28047,13 +29134,14 @@ snapshots: dependencies: tslib: 2.8.1 - pvutils@1.1.5: {} + pvutils@1.2.0: {} qrcode-terminal@0.11.0: {} - qs@6.15.2: + qs@6.16.0: dependencies: - side-channel: 1.1.0 + es-define-property: 1.0.1 + side-channel: 1.1.1 quansync@0.2.11: {} @@ -28074,6 +29162,8 @@ snapshots: range-parser@1.2.1: {} + range-parser@1.3.0: {} + raw-body@2.5.3: dependencies: bytes: 3.1.2 @@ -28085,7 +29175,7 @@ snapshots: dependencies: bytes: 3.1.2 http-errors: 2.0.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.3 unpipe: 1.0.0 rc@1.2.8: @@ -28097,8 +29187,8 @@ snapshots: react-devtools-core@6.1.5: dependencies: - shell-quote: 1.8.4 - ws: 7.5.11 + shell-quote: 1.10.0 + ws: 7.5.13 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -28120,40 +29210,40 @@ snapshots: react-is@18.3.1: {} - react-is@19.2.6: {} + react-is@19.3.0: {} - react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): + react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): dependencies: '@egjs/hammerjs': 2.0.17 hoist-non-react-statics: 3.3.2 invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) - react-native-is-edge-to-edge@1.3.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): + react-native-is-edge-to-edge@1.3.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) - react-native-reanimated@4.1.7(react-native-worklets@0.5.1(@babel/core@7.29.7(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): + react-native-reanimated@4.1.7(react-native-worklets@0.5.1(@babel/core@7.29.7(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) - react-native-is-edge-to-edge: 1.3.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) - react-native-worklets: 0.5.1(@babel/core@7.29.7(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1) - semver: 7.8.1 + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) + react-native-is-edge-to-edge: 1.3.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + react-native-worklets: 0.5.1(@babel/core@7.29.7(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1) + semver: 7.8.5 - react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): + react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) - react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): + react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0): dependencies: react: 19.1.0 react-freeze: 1.0.4(react@19.1.0) - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) - react-native-is-edge-to-edge: 1.3.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) + react-native-is-edge-to-edge: 1.3.1(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) warn-once: 0.1.1 react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): @@ -28171,7 +29261,7 @@ snapshots: transitivePeerDependencies: - encoding - react-native-worklets@0.5.1(@babel/core@7.29.7(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1): + react-native-worklets@0.5.1(@babel/core@7.29.7(supports-color@8.1.1))(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0)(supports-color@8.1.1): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/plugin-transform-arrow-functions': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) @@ -28185,12 +29275,12 @@ snapshots: '@babel/preset-typescript': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) convert-source-map: 2.0.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1) + react-native: 0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1) semver: 7.7.2 transitivePeerDependencies: - supports-color - react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1): + react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native/assets-registry': 0.81.5 @@ -28199,7 +29289,7 @@ snapshots: '@react-native/gradle-plugin': 0.81.5 '@react-native/js-polyfills': 0.81.5 '@react-native/normalize-colors': 0.81.5 - '@react-native/virtualized-lists': 0.81.5(@types/react@19.2.17)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.17)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) + '@react-native/virtualized-lists': 0.81.5(@types/react@19.2.18)(react-native@0.81.5(@babel/core@7.29.7(supports-color@8.1.1))(@types/react@19.2.18)(react@19.1.0)(supports-color@8.1.1))(react@19.1.0) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -28212,8 +29302,8 @@ snapshots: invariant: 2.2.4 jest-environment-node: 29.7.0 memoize-one: 5.2.1 - metro-runtime: 0.83.7 - metro-source-map: 0.83.7(supports-color@8.1.1) + metro-runtime: 0.83.8 + metro-source-map: 0.83.8(supports-color@8.1.1) nullthrows: 1.1.1 pretty-format: 29.7.0 promise: 8.3.0 @@ -28222,13 +29312,13 @@ snapshots: react-refresh: 0.14.2 regenerator-runtime: 0.13.11 scheduler: 0.26.0 - semver: 7.8.1 + semver: 7.8.5 stacktrace-parser: 0.1.11 whatwg-fetch: 3.6.20 - ws: 6.2.4 - yargs: 17.7.2 + ws: 6.2.6 + yargs: 17.7.3 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 transitivePeerDependencies: - '@babel/core' - '@react-native-community/cli' @@ -28246,51 +29336,51 @@ snapshots: react-refresh@0.18.0: {} - react-remove-scroll-bar@2.3.8(@types/react@19.2.17)(react@19.1.0): + react-remove-scroll-bar@2.3.8(@types/react@19.2.18)(react@19.1.0): dependencies: react: 19.1.0 - react-style-singleton: 2.2.3(@types/react@19.2.17)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.2.18)(react@19.1.0) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - react-remove-scroll@2.7.2(@types/react@19.2.17)(react@19.1.0): + react-remove-scroll@2.7.2(@types/react@19.2.18)(react@19.1.0): dependencies: react: 19.1.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.2.17)(react@19.1.0) - react-style-singleton: 2.2.3(@types/react@19.2.17)(react@19.1.0) + react-remove-scroll-bar: 2.3.8(@types/react@19.2.18)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.2.18)(react@19.1.0) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.2.17)(react@19.1.0) - use-sidecar: 1.1.3(@types/react@19.2.17)(react@19.1.0) + use-callback-ref: 1.3.3(@types/react@19.2.18)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.2.18)(react@19.1.0) optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - react-router-dom@6.30.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-router-dom@6.30.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@remix-run/router': 1.23.2 + '@remix-run/router': 1.23.3 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-router: 6.30.3(react@19.1.0) + react-router: 6.30.4(react@19.1.0) - react-router@6.30.3(react@19.1.0): + react-router@6.30.4(react@19.1.0): dependencies: - '@remix-run/router': 1.23.2 + '@remix-run/router': 1.23.3 react: 19.1.0 - react-style-singleton@2.2.3(@types/react@19.2.17)(react@19.1.0): + react-style-singleton@2.2.3(@types/react@19.2.18)(react@19.1.0): dependencies: get-nonce: 1.0.1 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - react-textarea-autosize@8.5.9(@types/react@19.2.17)(react@19.1.0): + react-textarea-autosize@8.5.9(@types/react@19.2.18)(react@19.1.0): dependencies: '@babel/runtime': 7.29.7 react: 19.1.0 - use-composed-ref: 1.4.0(@types/react@19.2.17)(react@19.1.0) - use-latest: 1.3.0(@types/react@19.2.17)(react@19.1.0) + use-composed-ref: 1.4.0(@types/react@19.2.18)(react@19.1.0) + use-latest: 1.3.0(@types/react@19.2.18)(react@19.1.0) transitivePeerDependencies: - '@types/react' @@ -28327,7 +29417,7 @@ snapshots: readdirp@4.1.2: {} - readdirp@5.0.0: {} + readdirp@5.1.1: {} redent@3.0.0: dependencies: @@ -28371,13 +29461,13 @@ snapshots: regenerate: 1.4.2 regenerate-unicode-properties: 10.2.2 regjsgen: 0.8.0 - regjsparser: 0.13.1 + regjsparser: 0.13.3 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.1 regjsgen@0.8.0: {} - regjsparser@0.13.1: + regjsparser@0.13.3: dependencies: jsesc: 3.1.0 @@ -28392,7 +29482,7 @@ snapshots: dependencies: estree-util-is-identifier-name: 1.1.0 estree-util-value-to-estree: 1.3.0 - js-yaml: 4.1.1 + js-yaml: 4.3.2 toml: 3.0.0 remark-mdx@2.3.0(supports-color@8.1.1): @@ -28452,7 +29542,7 @@ snapshots: resolve@1.22.12: dependencies: es-errors: 1.3.0 - is-core-module: 2.16.2 + is-core-module: 2.17.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -28463,8 +29553,8 @@ snapshots: resolve@2.0.0-next.7: dependencies: es-errors: 1.3.0 - is-core-module: 2.16.2 - node-exports-info: 1.6.0 + is-core-module: 2.17.0 + node-exports-info: 1.6.2 object-keys: 1.1.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -28496,31 +29586,31 @@ snapshots: dependencies: glob: 7.2.3 - rolldown-plugin-dts@0.23.2(oxc-resolver@11.19.1(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2))(rolldown@1.0.0-rc.17)(typescript@5.9.3): + rolldown-plugin-dts@0.23.2(oxc-resolver@11.24.2)(rolldown@1.0.0-rc.17)(typescript@5.9.3): dependencies: '@babel/generator': 8.0.0-rc.3 '@babel/helper-validator-identifier': 8.0.0-rc.3 '@babel/parser': 8.0.0-rc.3 '@babel/types': 8.0.0-rc.3 - ast-kit: 3.0.0-beta.1 - birpc: 4.0.0 - dts-resolver: 2.1.3(oxc-resolver@11.19.1(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)) - get-tsconfig: 4.14.0 - obug: 2.1.1 - picomatch: 4.0.4 + ast-kit: 3.0.0 + birpc: 4.2.0 + dts-resolver: 2.1.3(oxc-resolver@11.24.2) + get-tsconfig: 4.14.3 + obug: 2.2.1 + picomatch: 4.0.7 rolldown: 1.0.0-rc.17 optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - oxc-resolver - rolldown-plugin-solid@0.2.1(rolldown@1.0.0-rc.17)(solid-js@1.9.13)(supports-color@8.1.1): + rolldown-plugin-solid@0.2.1(rolldown@1.0.0-rc.17)(solid-js@1.9.15)(supports-color@8.1.1): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/preset-typescript': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@8.1.1) - babel-preset-solid: 1.9.12(@babel/core@7.29.7(supports-color@7.2.0))(solid-js@1.9.13) + babel-preset-solid: 1.9.15(@babel/core@7.29.7(supports-color@7.2.0))(solid-js@1.9.15) rolldown: 1.0.0-rc.17 - solid-js: 1.9.13 + solid-js: 1.9.15 transitivePeerDependencies: - supports-color @@ -28545,7 +29635,7 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.17 '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.17 - rolldown@1.0.0-rc.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2): + rolldown@1.0.0-rc.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3): dependencies: '@oxc-project/types': 0.113.0 '@rolldown/pluginutils': 1.0.0-rc.4 @@ -28560,59 +29650,60 @@ snapshots: '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.4 '@rolldown/binding-linux-x64-musl': 1.0.0-rc.4 '@rolldown/binding-openharmony-arm64': 1.0.0-rc.4 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3) '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.4 '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.4 transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' - rollup-plugin-dts@6.4.1(rollup@4.60.4)(typescript@5.9.3): + rollup-plugin-dts@6.4.1(rollup@4.63.4)(typescript@5.9.3): dependencies: '@jridgewell/remapping': 2.3.5 - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 convert-source-map: 2.0.0 magic-string: 0.30.21 - rollup: 4.60.4 + rollup: 4.63.4 typescript: 5.9.3 optionalDependencies: '@babel/code-frame': 7.29.7 - rollup-plugin-preserve-directives@0.4.0(rollup@4.60.4): + rollup-plugin-preserve-directives@0.4.0(rollup@4.63.4): dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) + '@rollup/pluginutils': 5.4.0(rollup@4.63.4) magic-string: 0.30.21 - rollup: 4.60.4 + rollup: 4.63.4 - rollup@4.60.4: + rollup@4.63.4: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.60.4 - '@rollup/rollup-android-arm64': 4.60.4 - '@rollup/rollup-darwin-arm64': 4.60.4 - '@rollup/rollup-darwin-x64': 4.60.4 - '@rollup/rollup-freebsd-arm64': 4.60.4 - '@rollup/rollup-freebsd-x64': 4.60.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.60.4 - '@rollup/rollup-linux-arm-musleabihf': 4.60.4 - '@rollup/rollup-linux-arm64-gnu': 4.60.4 - '@rollup/rollup-linux-arm64-musl': 4.60.4 - '@rollup/rollup-linux-loong64-gnu': 4.60.4 - '@rollup/rollup-linux-loong64-musl': 4.60.4 - '@rollup/rollup-linux-ppc64-gnu': 4.60.4 - '@rollup/rollup-linux-ppc64-musl': 4.60.4 - '@rollup/rollup-linux-riscv64-gnu': 4.60.4 - '@rollup/rollup-linux-riscv64-musl': 4.60.4 - '@rollup/rollup-linux-s390x-gnu': 4.60.4 - '@rollup/rollup-linux-x64-gnu': 4.60.4 - '@rollup/rollup-linux-x64-musl': 4.60.4 - '@rollup/rollup-openbsd-x64': 4.60.4 - '@rollup/rollup-openharmony-arm64': 4.60.4 - '@rollup/rollup-win32-arm64-msvc': 4.60.4 - '@rollup/rollup-win32-ia32-msvc': 4.60.4 - '@rollup/rollup-win32-x64-gnu': 4.60.4 - '@rollup/rollup-win32-x64-msvc': 4.60.4 + '@napi-rs/lzma-linux-x64-gnu': 1.5.1 + '@rollup/rollup-android-arm-eabi': 4.63.4 + '@rollup/rollup-android-arm64': 4.63.4 + '@rollup/rollup-darwin-arm64': 4.63.4 + '@rollup/rollup-darwin-x64': 4.63.4 + '@rollup/rollup-freebsd-arm64': 4.63.4 + '@rollup/rollup-freebsd-x64': 4.63.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.63.4 + '@rollup/rollup-linux-arm-musleabihf': 4.63.4 + '@rollup/rollup-linux-arm64-gnu': 4.63.4 + '@rollup/rollup-linux-arm64-musl': 4.63.4 + '@rollup/rollup-linux-loong64-gnu': 4.63.4 + '@rollup/rollup-linux-loong64-musl': 4.63.4 + '@rollup/rollup-linux-ppc64-gnu': 4.63.4 + '@rollup/rollup-linux-ppc64-musl': 4.63.4 + '@rollup/rollup-linux-riscv64-gnu': 4.63.4 + '@rollup/rollup-linux-riscv64-musl': 4.63.4 + '@rollup/rollup-linux-s390x-gnu': 4.63.4 + '@rollup/rollup-linux-x64-gnu': 4.63.4 + '@rollup/rollup-linux-x64-musl': 4.63.4 + '@rollup/rollup-openbsd-x64': 4.63.4 + '@rollup/rollup-openharmony-arm64': 4.63.4 + '@rollup/rollup-win32-arm64-msvc': 4.63.4 + '@rollup/rollup-win32-ia32-msvc': 4.63.4 + '@rollup/rollup-win32-x64-gnu': 4.63.4 + '@rollup/rollup-win32-x64-msvc': 4.63.4 fsevents: 2.3.3 rou3@0.8.1: {} @@ -28629,8 +29720,6 @@ snapshots: run-applescript@7.0.0: {} - run-applescript@7.1.0: {} - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -28668,30 +29757,30 @@ snapshots: safer-buffer@2.1.2: {} - sass-loader@16.0.7(sass@1.97.3)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)): + sass-loader@16.0.7(sass@1.97.3)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)): dependencies: neo-async: 2.6.2 optionalDependencies: sass: 1.97.3 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) - sass@1.100.0: + sass@1.104.1: dependencies: chokidar: 5.0.0 - immutable: 5.1.5 + immutable: 5.1.9 source-map-js: 1.2.1 optionalDependencies: - '@parcel/watcher': 2.5.6 + '@parcel/watcher': 2.6.0 sass@1.97.3: dependencies: chokidar: 4.0.3 - immutable: 5.1.5 + immutable: 5.1.9 source-map-js: 1.2.1 optionalDependencies: - '@parcel/watcher': 2.5.6 + '@parcel/watcher': 2.6.0 - sax@1.6.0: {} + sax@1.6.1: {} saxes@6.0.0: dependencies: @@ -28699,11 +29788,11 @@ snapshots: scheduler@0.26.0: {} - schema-utils@4.3.3: + schema-utils@4.5.0: dependencies: '@types/json-schema': 7.0.15 ajv: 8.20.0 - ajv-formats: 2.1.1(ajv@8.20.0) + ajv-formats: 3.0.1(ajv@8.20.0) ajv-keywords: 5.1.0(ajv@8.20.0) scule@1.3.0: {} @@ -28713,10 +29802,7 @@ snapshots: selfsigned@5.5.0: dependencies: '@peculiar/x509': 1.14.3 - pkijs: 3.4.0 - - semver@5.7.2: - optional: true + pkijs: 3.4.1 semver@6.3.1: {} @@ -28730,10 +29816,10 @@ snapshots: semver@7.7.4: {} - semver@7.8.1: {} - semver@7.8.4: {} + semver@7.8.5: {} + send@0.19.2(supports-color@8.1.1): dependencies: debug: 2.6.9(supports-color@8.1.1) @@ -28763,20 +29849,26 @@ snapshots: mime-types: 3.0.2 ms: 2.1.3 on-finished: 2.4.1 - range-parser: 1.2.1 + range-parser: 1.3.0 statuses: 2.0.2 transitivePeerDependencies: - supports-color serialize-error@2.1.0: {} - serialize-javascript@7.0.5: {} + serialize-javascript@7.1.1: {} + + seroval-plugins@1.5.6(seroval@1.5.6): + dependencies: + seroval: 1.5.6 - seroval-plugins@1.5.4(seroval@1.5.4): + seroval-plugins@1.6.7(seroval@1.6.7): dependencies: - seroval: 1.5.4 + seroval: 1.6.7 + + seroval@1.5.6: {} - seroval@1.5.4: {} + seroval@1.6.7: {} serve-index@1.9.2(supports-color@8.1.1): dependencies: @@ -28850,7 +29942,7 @@ snapshots: dependencies: '@img/colour': 1.1.0 detect-libc: 2.1.2 - semver: 7.8.1 + semver: 7.8.5 optionalDependencies: '@img/sharp-darwin-arm64': 0.34.5 '@img/sharp-darwin-x64': 0.34.5 @@ -28884,42 +29976,42 @@ snapshots: shebang-regex@3.0.0: {} - shell-quote@1.8.4: {} + shell-quote@1.10.0: {} - sherif-darwin-arm64@1.11.1: + sherif-darwin-arm64@1.13.0: optional: true - sherif-darwin-x64@1.11.1: + sherif-darwin-x64@1.13.0: optional: true - sherif-linux-arm64-musl@1.11.1: + sherif-linux-arm64-musl@1.13.0: optional: true - sherif-linux-arm64@1.11.1: + sherif-linux-arm64@1.13.0: optional: true - sherif-linux-x64-musl@1.11.1: + sherif-linux-x64-musl@1.13.0: optional: true - sherif-linux-x64@1.11.1: + sherif-linux-x64@1.13.0: optional: true - sherif-windows-arm64@1.11.1: + sherif-windows-arm64@1.13.0: optional: true - sherif-windows-x64@1.11.1: + sherif-windows-x64@1.13.0: optional: true - sherif@1.11.1: + sherif@1.13.0: optionalDependencies: - sherif-darwin-arm64: 1.11.1 - sherif-darwin-x64: 1.11.1 - sherif-linux-arm64: 1.11.1 - sherif-linux-arm64-musl: 1.11.1 - sherif-linux-x64: 1.11.1 - sherif-linux-x64-musl: 1.11.1 - sherif-windows-arm64: 1.11.1 - sherif-windows-x64: 1.11.1 + sherif-darwin-arm64: 1.13.0 + sherif-darwin-x64: 1.13.0 + sherif-linux-arm64: 1.13.0 + sherif-linux-arm64-musl: 1.13.0 + sherif-linux-x64: 1.13.0 + sherif-linux-x64-musl: 1.13.0 + sherif-windows-arm64: 1.13.0 + sherif-windows-x64: 1.13.0 side-channel-list@1.0.1: dependencies: @@ -28941,7 +30033,7 @@ snapshots: object-inspect: 1.13.4 side-channel-map: 1.0.1 - side-channel@1.1.0: + side-channel@1.1.1: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 @@ -28959,7 +30051,7 @@ snapshots: dependencies: '@sigstore/bundle': 4.0.0 '@sigstore/core': 3.2.1 - '@sigstore/protobuf-specs': 0.5.1 + '@sigstore/protobuf-specs': 0.5.2 '@sigstore/sign': 4.1.1(supports-color@8.1.1) '@sigstore/tuf': 4.0.2(supports-color@8.1.1) '@sigstore/verify': 3.1.1 @@ -29006,43 +30098,43 @@ snapshots: dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 - websocket-driver: 0.7.4 + websocket-driver: 0.7.5 socks-proxy-agent@8.0.5(supports-color@8.1.1): dependencies: agent-base: 7.1.4 debug: 4.4.3(supports-color@8.1.1) - socks: 2.8.9 + socks: 2.8.10 transitivePeerDependencies: - supports-color - socks@2.8.9: + socks@2.8.10: dependencies: - ip-address: 10.2.0 + ip-address: 10.7.2 smart-buffer: 4.2.0 - solid-js@1.9.13: + solid-js@1.9.15: dependencies: csstype: 3.2.3 - seroval: 1.5.4 - seroval-plugins: 1.5.4(seroval@1.5.4) + seroval: 1.5.6 + seroval-plugins: 1.5.6(seroval@1.5.6) - solid-refresh@0.6.3(solid-js@1.9.13)(supports-color@8.1.1): + solid-refresh@0.6.3(solid-js@1.9.15)(supports-color@8.1.1): dependencies: - '@babel/generator': 7.29.7 + '@babel/generator': 7.29.8 '@babel/helper-module-imports': 7.29.7(supports-color@8.1.1) - '@babel/types': 7.29.7 - solid-js: 1.9.13 + '@babel/types': 7.29.8 + solid-js: 1.9.15 transitivePeerDependencies: - supports-color source-map-js@1.2.1: {} - source-map-loader@5.0.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)): + source-map-loader@5.0.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) source-map-support@0.5.21: dependencies: @@ -29060,21 +30152,21 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.23 + spdx-license-ids: 3.0.24 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.23 + spdx-license-ids: 3.0.24 spdx-expression-parse@4.0.0: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.23 + spdx-license-ids: 3.0.24 - spdx-license-ids@3.0.23: {} + spdx-license-ids@3.0.24: {} spdy-transport@3.0.0(supports-color@8.1.1): dependencies: @@ -29101,7 +30193,7 @@ snapshots: sprintf-js@1.0.3: {} - srvx@0.11.16: {} + srvx@0.11.22: {} ssri@10.0.6: dependencies: @@ -29129,6 +30221,10 @@ snapshots: dependencies: type-fest: 0.7.1 + standard-navigation@0.0.8(react@19.1.0): + dependencies: + react: 19.1.0 + statuses@1.5.0: {} statuses@2.0.2: {} @@ -29144,6 +30240,20 @@ snapshots: stream-buffers@2.2.0: {} + stream-parser@0.3.1(supports-color@7.2.0): + dependencies: + debug: 2.6.9(supports-color@7.2.0) + transitivePeerDependencies: + - supports-color + optional: true + + stream-parser@0.3.1(supports-color@8.1.1): + dependencies: + debug: 2.6.9(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + optional: true + stream-shift@1.0.3: {} stream-slice@0.1.2: {} @@ -29171,15 +30281,15 @@ snapshots: string-width@7.2.0: dependencies: emoji-regex: 10.6.0 - get-east-asian-width: 1.6.0 + get-east-asian-width: 1.7.0 strip-ansi: 7.2.0 - string-width@8.2.1: + string-width@8.2.2: dependencies: - get-east-asian-width: 1.6.0 + get-east-asian-width: 1.7.0 strip-ansi: 7.2.0 - string.prototype.matchall@4.0.12: + string.prototype.matchall@4.1.0: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 @@ -29193,14 +30303,14 @@ snapshots: internal-slot: 1.1.0 regexp.prototype.flags: 1.5.4 set-function-name: 2.0.2 - side-channel: 1.1.0 + side-channel: 1.1.1 string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 es-abstract: 1.24.2 - string.prototype.trim@1.2.10: + string.prototype.trim@1.2.11: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 @@ -29209,8 +30319,9 @@ snapshots: es-abstract: 1.24.2 es-object-atoms: 1.1.2 has-property-descriptors: 1.0.2 + safe-regex-test: 1.1.0 - string.prototype.trimend@1.0.9: + string.prototype.trimend@1.0.10: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 @@ -29246,7 +30357,7 @@ snapshots: strip-ansi@7.2.0: dependencies: - ansi-regex: 6.2.2 + ansi-regex: 6.3.0 strip-bom@3.0.0: {} @@ -29272,6 +30383,13 @@ snapshots: dependencies: inline-style-parser: 0.1.1 + styled-jsx@5.1.6(@babel/core@7.29.7(supports-color@7.2.0))(react@19.1.0): + dependencies: + client-only: 0.0.1 + react: 19.1.0 + optionalDependencies: + '@babel/core': 7.29.7(supports-color@7.2.0) + styled-jsx@5.1.6(@babel/core@7.29.7(supports-color@8.1.1))(babel-plugin-macros@3.1.0)(react@19.1.0): dependencies: client-only: 0.0.1 @@ -29291,21 +30409,21 @@ snapshots: lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.7 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 ts-interface-checker: 0.1.13 sugarss@4.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - sugarss@5.0.1(postcss@8.5.12): + sugarss@5.0.1(postcss@8.5.23): dependencies: - postcss: 8.5.12 + postcss: 8.5.23 optional: true - sugarss@5.0.1(postcss@8.5.15): + sugarss@5.0.1(postcss@8.5.28): dependencies: - postcss: 8.5.15 + postcss: 8.5.28 optional: true sugarss@5.0.1(postcss@8.5.6): @@ -29331,53 +30449,53 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.4.8(picomatch@4.0.4)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@5.9.3): + svelte-check@4.7.6(picomatch@4.0.7)(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 + '@sveltejs/load-config': 0.2.3 chokidar: 4.0.3 - fdir: 6.5.0(picomatch@4.0.4) + fdir: 6.5.0(picomatch@4.0.7) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.57.1(@typescript-eslint/types@8.70.0) typescript: 5.9.3 transitivePeerDependencies: - picomatch - svelte2tsx@0.7.55(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@5.9.3): + svelte2tsx@0.7.61(svelte@5.57.1(@typescript-eslint/types@8.70.0))(typescript@5.9.3): dependencies: dedent-js: 1.0.1 scule: 1.3.0 - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.57.1(@typescript-eslint/types@8.70.0) typescript: 5.9.3 - svelte@5.55.9(@typescript-eslint/types@8.59.4): + svelte@5.57.1(@typescript-eslint/types@8.70.0): dependencies: '@jridgewell/remapping': 2.3.5 - '@jridgewell/sourcemap-codec': 1.5.5 - '@sveltejs/acorn-typescript': 1.0.10(acorn@8.16.0) + '@jridgewell/sourcemap-codec': 1.6.0 + '@sveltejs/acorn-typescript': 1.0.13(acorn@8.18.0) '@types/estree': 1.0.9 - '@types/trusted-types': 2.0.7 - acorn: 8.16.0 + acorn: 8.18.0 aria-query: 5.3.1 axobject-query: 4.1.0 clsx: 2.1.1 - devalue: 5.8.1 + devalue: 5.9.4 esm-env: 1.2.2 - esrap: 2.2.9(@typescript-eslint/types@8.59.4) + esrap: 2.3.7(@typescript-eslint/types@8.70.0) is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.21 - zimmerframe: 1.1.4 + zimmerframe: 1.1.5 transitivePeerDependencies: - '@typescript-eslint/types' symbol-tree@3.2.4: {} - tabbable@6.4.0: {} + tabbable@6.5.0: {} tapable@2.3.3: {} - tar-fs@2.1.4: + tar-fs@2.1.5: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 @@ -29401,7 +30519,7 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - tar@7.5.15: + tar@7.5.22: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 @@ -29414,44 +30532,44 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@5.6.0(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)): + terser-webpack-plugin@5.6.1(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 - schema-utils: 4.3.3 - terser: 5.48.0 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) + schema-utils: 4.5.0 + terser: 5.46.0 + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) optionalDependencies: - '@swc/core': 1.15.40 - esbuild: 0.27.3 - lightningcss: 1.32.0 - postcss: 8.5.12 + '@swc/core': 1.16.2 + esbuild: 0.28.1 + lightningcss: 1.33.0 + postcss: 8.5.23 - terser-webpack-plugin@5.6.0(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15)): + terser-webpack-plugin@5.6.1(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 - schema-utils: 4.3.3 - terser: 5.48.0 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15) + schema-utils: 4.5.0 + terser: 5.46.0 + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28) optionalDependencies: - '@swc/core': 1.15.40 - esbuild: 0.27.7 - lightningcss: 1.32.0 - postcss: 8.5.15 + '@swc/core': 1.16.2 + esbuild: 0.28.2 + lightningcss: 1.33.0 + postcss: 8.5.28 optional: true terser@5.46.0: dependencies: '@jridgewell/source-map': 0.3.11 - acorn: 8.16.0 + acorn: 8.18.0 commander: 2.20.3 source-map-support: 0.5.21 - terser@5.48.0: + terser@5.51.2: dependencies: '@jridgewell/source-map': 0.3.11 - acorn: 8.16.0 + acorn: 8.18.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -29465,7 +30583,7 @@ snapshots: dependencies: '@istanbuljs/schema': 0.1.6 glob: 10.5.0 - minimatch: 10.2.5 + minimatch: 10.2.6 thenify-all@1.6.0: dependencies: @@ -29475,7 +30593,7 @@ snapshots: dependencies: any-promise: 1.3.0 - thingies@2.6.0(tslib@2.8.1): + thingies@2.6.1(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -29497,11 +30615,6 @@ snapshots: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - tinyglobby@0.2.16: - dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 - tinyglobby@0.2.17: dependencies: fdir: 6.5.0(picomatch@4.0.7) @@ -29509,15 +30622,17 @@ snapshots: tinypool@1.1.1: {} + tinypool@2.1.0: {} + tinyrainbow@2.0.0: {} - tinyspy@4.0.4: {} + tinyspy@4.0.6: {} - tldts-core@7.4.0: {} + tldts-core@7.4.13: {} - tldts@7.4.0: + tldts@7.4.13: dependencies: - tldts-core: 7.4.0 + tldts-core: 7.4.13 tmp@0.2.7: {} @@ -29531,9 +30646,9 @@ snapshots: toml@3.0.0: {} - tough-cookie@6.0.1: + tough-cookie@6.0.2: dependencies: - tldts: 7.4.0 + tldts: 7.4.13 tr46@0.0.3: {} @@ -29557,15 +30672,39 @@ snapshots: ts-declaration-location@1.0.7(typescript@5.9.3): dependencies: - picomatch: 4.0.4 + picomatch: 4.0.7 typescript: 5.9.3 ts-interface-checker@0.1.13: {} - ts-morph@21.0.1: + ts-node@10.9.2(@swc/core@1.16.2)(@types/node@24.13.6)(typescript@5.9.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.13 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 24.13.6 + acorn: 8.18.0 + acorn-walk: 8.3.5 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.4 + make-error: 1.3.6 + typescript: 5.9.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.16.2 + + ts-patch@3.3.0: dependencies: - '@ts-morph/common': 0.22.0 - code-block-writer: 12.0.0 + chalk: 4.1.2 + global-prefix: 4.0.0 + minimist: 1.2.8 + resolve: 1.22.12 + semver: 7.8.5 + strip-ansi: 6.0.1 ts-pattern@5.9.0: {} @@ -29586,26 +30725,26 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tsdown@0.21.10(oxc-resolver@11.19.1(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2))(publint@0.3.21)(typescript@5.9.3): + tsdown@0.21.10(oxc-resolver@11.24.2)(publint@0.3.24)(typescript@5.9.3): dependencies: - ansis: 4.3.0 + ansis: 4.4.0 cac: 7.0.0 defu: 6.1.7 - empathic: 2.0.1 - hookable: 6.1.1 + empathic: 2.1.0 + hookable: 6.1.2 import-without-cache: 0.3.3 - obug: 2.1.1 - picomatch: 4.0.4 + obug: 2.2.1 + picomatch: 4.0.7 rolldown: 1.0.0-rc.17 - rolldown-plugin-dts: 0.23.2(oxc-resolver@11.19.1(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2))(rolldown@1.0.0-rc.17)(typescript@5.9.3) - semver: 7.8.1 + rolldown-plugin-dts: 0.23.2(oxc-resolver@11.24.2)(rolldown@1.0.0-rc.17)(typescript@5.9.3) + semver: 7.8.5 tinyexec: 1.1.2 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 tree-kill: 1.2.2 unconfig-core: 7.5.0 unrun: 0.2.39 optionalDependencies: - publint: 0.3.21 + publint: 0.3.24 typescript: 5.9.3 transitivePeerDependencies: - '@ts-macro/tsc' @@ -29626,7 +30765,7 @@ snapshots: dependencies: '@tufjs/models': 4.1.0 debug: 4.4.3(supports-color@8.1.1) - make-fetch-happen: 15.0.5(supports-color@8.1.1) + make-fetch-happen: 15.0.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -29651,8 +30790,8 @@ snapshots: type-is@2.1.0: dependencies: - content-type: 2.0.0 - media-typer: 1.1.0 + content-type: 2.1.0 + media-typer: 1.1.1 mime-types: 3.0.2 typed-array-buffer@1.0.3: @@ -29669,17 +30808,16 @@ snapshots: has-proto: 1.2.0 is-typed-array: 1.1.15 - typed-array-byte-offset@1.0.4: + typed-array-byte-offset@1.0.5: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 - has-proto: 1.2.0 is-typed-array: 1.1.15 reflect.getprototypeof: 1.0.10 - typed-array-length@1.0.7: + typed-array-length@1.0.8: dependencies: call-bind: 1.0.9 for-each: 0.3.5 @@ -29693,7 +30831,7 @@ snapshots: typedoc-plugin-frontmatter@1.3.0(typedoc-plugin-markdown@4.9.0(typedoc@0.28.14(typescript@5.9.3))): dependencies: typedoc-plugin-markdown: 4.9.0(typedoc@0.28.14(typescript@5.9.3)) - yaml: 2.9.0 + yaml: 2.9.1 typedoc-plugin-markdown@4.9.0(typedoc@0.28.14(typescript@5.9.3)): dependencies: @@ -29703,17 +30841,17 @@ snapshots: dependencies: '@gerrit0/mini-shiki': 3.23.0 lunr: 2.3.9 - markdown-it: 14.2.0 + markdown-it: 14.3.2 minimatch: 9.0.9 typescript: 5.9.3 - yaml: 2.9.0 + yaml: 2.9.1 - typescript-eslint@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3): + typescript-eslint@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.59.4(@typescript-eslint/parser@8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/parser': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.59.4(supports-color@7.2.0)(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.4(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.70.0(@typescript-eslint/parser@8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/parser': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.70.0(supports-color@7.2.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.70.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) typescript: 5.9.3 transitivePeerDependencies: @@ -29750,16 +30888,14 @@ snapshots: unconfig-core@7.5.0: dependencies: - '@quansync/fs': 1.0.0 + '@quansync/fs': 1.1.0 quansync: 1.0.0 - undici-types@7.16.0: {} + undici-types@7.18.2: {} - undici@6.26.0: {} + undici@6.28.1: {} - undici@7.24.4: {} - - undici@7.26.0: {} + undici@7.29.1: {} unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -29830,11 +30966,16 @@ snapshots: unpipe@1.0.0: {} - unplugin@3.0.0: + unplugin@3.4.0(esbuild@0.28.2)(rollup@4.63.4)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1))(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)): dependencies: '@jridgewell/remapping': 2.3.5 - picomatch: 4.0.4 + picomatch: 4.0.7 webpack-virtual-modules: 0.6.2 + optionalDependencies: + esbuild: 0.28.2 + rollup: 4.63.4 + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28) unrs-resolver@1.12.2: dependencies: @@ -29867,9 +31008,9 @@ snapshots: dependencies: rolldown: 1.0.0-rc.17 - update-browserslist-db@1.2.3(browserslist@4.28.2): + update-browserslist-db@1.3.3(browserslist@4.29.0): dependencies: - browserslist: 4.28.2 + browserslist: 4.29.0 escalade: 3.2.0 picocolors: 1.1.1 @@ -29877,45 +31018,45 @@ snapshots: dependencies: punycode: 2.3.1 - use-callback-ref@1.3.3(@types/react@19.2.17)(react@19.1.0): + use-callback-ref@1.3.3(@types/react@19.2.18)(react@19.1.0): dependencies: react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - use-composed-ref@1.4.0(@types/react@19.2.17)(react@19.1.0): + use-composed-ref@1.4.0(@types/react@19.2.18)(react@19.1.0): dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - use-isomorphic-layout-effect@1.2.1(@types/react@19.2.17)(react@19.1.0): + use-isomorphic-layout-effect@1.2.1(@types/react@19.2.18)(react@19.1.0): dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 use-latest-callback@0.2.6(react@19.1.0): dependencies: react: 19.1.0 - use-latest@1.3.0(@types/react@19.2.17)(react@19.1.0): + use-latest@1.3.0(@types/react@19.2.18)(react@19.1.0): dependencies: react: 19.1.0 - use-isomorphic-layout-effect: 1.2.1(@types/react@19.2.17)(react@19.1.0) + use-isomorphic-layout-effect: 1.2.1(@types/react@19.2.18)(react@19.1.0) optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - use-sidecar@1.1.3(@types/react@19.2.17)(react@19.1.0): + use-sidecar@1.1.3(@types/react@19.2.18)(react@19.1.0): dependencies: detect-node-es: 1.1.0 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - use-sync-external-store@1.6.0(react@19.1.0): + use-sync-external-store@1.7.0(react@19.1.0): dependencies: react: 19.1.0 @@ -29927,7 +31068,7 @@ snapshots: is-arguments: 1.2.0 is-generator-function: 1.1.2 is-typed-array: 1.1.15 - which-typed-array: 1.1.20 + which-typed-array: 1.1.24 utils-merge@1.0.1: {} @@ -29942,7 +31083,9 @@ snapshots: kleur: 4.1.5 sade: 1.8.1 - valibot@1.4.1(typescript@5.9.3): + v8-compile-cache-lib@3.0.1: {} + + valibot@1.5.0(typescript@5.9.3): optionalDependencies: typescript: 5.9.3 @@ -29957,9 +31100,9 @@ snapshots: vary@1.1.2: {} - vaul@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + vaul@1.1.2(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-dialog': 1.1.23(@types/react-dom@19.3.0(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: @@ -29978,13 +31121,13 @@ snapshots: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 - vite-node@1.6.1(@types/node@24.12.4)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.48.0): + vite-node@1.6.1(@types/node@24.13.6)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.51.2): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@8.1.1) pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.21(@types/node@24.12.4)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0) + vite: 5.4.21(@types/node@24.13.6)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2) transitivePeerDependencies: - '@types/node' - less @@ -29996,13 +31139,13 @@ snapshots: - supports-color - terser - vite-node@3.2.4(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@7.2.0)(terser@5.48.0)(yaml@2.9.0): + vite-node@3.2.4(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@7.2.0)(terser@5.51.2)(yaml@2.9.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@7.2.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - '@types/node' - jiti @@ -30017,13 +31160,13 @@ snapshots: - tsx - yaml - vite-node@3.2.4(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@8.1.1)(terser@5.48.0)(yaml@2.9.0): + vite-node@3.2.4(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@8.1.1) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - '@types/node' - jiti @@ -30038,13 +31181,13 @@ snapshots: - tsx - yaml - vite-node@3.2.4(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.48.0)(yaml@2.9.0): + vite-node@3.2.4(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@8.1.1) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - '@types/node' - jiti @@ -30059,11 +31202,11 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.2.3(@types/node@24.12.4)(rollup@4.60.4)(supports-color@7.2.0)(typescript@5.9.3)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)): + vite-plugin-dts@4.2.3(@types/node@24.13.6)(rollup@4.63.4)(supports-color@7.2.0)(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)): dependencies: - '@microsoft/api-extractor': 7.47.7(@types/node@24.12.4) - '@rollup/pluginutils': 5.3.0(rollup@4.60.4) - '@volar/typescript': 2.4.28 + '@microsoft/api-extractor': 7.47.7(@types/node@24.13.6) + '@rollup/pluginutils': 5.4.0(rollup@4.63.4) + '@volar/typescript': 2.4.28(typescript@5.9.3) '@vue/language-core': 2.1.6(typescript@5.9.3) compare-versions: 6.1.1 debug: 4.4.3(supports-color@7.2.0) @@ -30072,32 +31215,32 @@ snapshots: magic-string: 0.30.21 typescript: 5.9.3 optionalDependencies: - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-externalize-deps@0.10.0(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)): + vite-plugin-externalize-deps@0.10.0(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)): dependencies: - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) - vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.13)(supports-color@8.1.1)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)): + vite-plugin-solid@2.11.14(@testing-library/jest-dom@6.10.0(@testing-library/dom@10.4.2))(solid-js@1.9.15)(supports-color@8.1.1)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@types/babel__core': 7.20.5 - babel-preset-solid: 1.9.12(@babel/core@7.29.7(supports-color@7.2.0))(solid-js@1.9.13) + babel-preset-solid: 1.9.15(@babel/core@7.29.7(supports-color@7.2.0))(solid-js@1.9.15) merge-anything: 5.1.7 - solid-js: 1.9.13 - solid-refresh: 0.6.3(solid-js@1.9.13)(supports-color@8.1.1) - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) - vitefu: 1.1.3(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) + solid-js: 1.9.15 + solid-refresh: 0.6.3(solid-js@1.9.15)(supports-color@8.1.1) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + vitefu: 1.1.3(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) optionalDependencies: - '@testing-library/jest-dom': 6.9.1 + '@testing-library/jest-dom': 6.10.0(@testing-library/dom@10.4.2) transitivePeerDependencies: - supports-color - vite-prerender-plugin@0.5.13(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)): + vite-prerender-plugin@0.5.13(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)): dependencies: kolorist: 1.8.0 magic-string: 0.30.21 @@ -30105,203 +31248,207 @@ snapshots: simple-code-frame: 1.3.0 source-map: 0.7.6 stack-trace: 1.0.0 - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) - vite-tsconfig-paths@5.1.4(supports-color@7.2.0)(typescript@5.9.3)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)): + vite-tsconfig-paths@5.1.4(supports-color@7.2.0)(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)): dependencies: debug: 4.4.3(supports-color@7.2.0) globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@5.1.4(supports-color@8.1.1)(typescript@5.9.3)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)): + vite-tsconfig-paths@5.1.4(supports-color@8.1.1)(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)): dependencies: debug: 4.4.3(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@5.1.4(supports-color@8.1.1)(typescript@5.9.3)(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0)): + vite-tsconfig-paths@5.1.4(supports-color@8.1.1)(typescript@5.9.3)(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1)): dependencies: debug: 4.4.3(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: - supports-color - typescript - vite@5.4.21(@types/node@24.12.4)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0): + vite@5.4.21(@types/node@24.13.6)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2): dependencies: esbuild: 0.21.5 postcss: 8.5.6 - rollup: 4.60.4 + rollup: 4.63.4 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 fsevents: 2.3.3 - less: 4.6.4 - lightningcss: 1.32.0 - sass: 1.100.0 + less: 4.9.1(supports-color@8.1.1) + lightningcss: 1.33.0 + sass: 1.104.1 sugarss: 5.0.1(postcss@8.5.6) - terser: 5.48.0 + terser: 5.51.2 - vite@7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.12))(terser@5.46.0)(yaml@2.9.1): + vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.0(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.23))(terser@5.46.0)(yaml@2.9.1): dependencies: - esbuild: 0.27.7 + esbuild: 0.28.2 fdir: 6.5.0(picomatch@4.0.7) picomatch: 4.0.7 postcss: 8.5.6 - rollup: 4.60.4 - tinyglobby: 0.2.16 + rollup: 4.63.4 + tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.4.2 - lightningcss: 1.32.0 + less: 4.9.0(supports-color@8.1.1) + lightningcss: 1.33.0 sass: 1.97.3 - sugarss: 5.0.1(postcss@8.5.12) + sugarss: 5.0.1(postcss@8.5.23) terser: 5.46.0 yaml: 2.9.1 - vite@7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.15))(terser@5.46.0)(yaml@2.9.0): + vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.0(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.28))(terser@5.46.0)(yaml@2.9.1): dependencies: - esbuild: 0.27.7 + esbuild: 0.28.2 fdir: 6.5.0(picomatch@4.0.7) picomatch: 4.0.7 postcss: 8.5.6 - rollup: 4.60.4 - tinyglobby: 0.2.16 + rollup: 4.63.4 + tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.4.2 - lightningcss: 1.32.0 + less: 4.9.0(supports-color@8.1.1) + lightningcss: 1.33.0 sass: 1.97.3 - sugarss: 5.0.1(postcss@8.5.15) + sugarss: 5.0.1(postcss@8.5.28) terser: 5.46.0 - yaml: 2.9.0 + yaml: 2.9.1 - vite@7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.15))(terser@5.46.0)(yaml@2.9.1): + vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1): dependencies: - esbuild: 0.27.7 + esbuild: 0.28.2 fdir: 6.5.0(picomatch@4.0.7) picomatch: 4.0.7 postcss: 8.5.6 - rollup: 4.60.4 - tinyglobby: 0.2.16 + rollup: 4.63.4 + tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.4.2 - lightningcss: 1.32.0 - sass: 1.97.3 - sugarss: 5.0.1(postcss@8.5.15) - terser: 5.46.0 + less: 4.9.1(supports-color@7.2.0) + lightningcss: 1.33.0 + sass: 1.104.1 + sugarss: 5.0.1(postcss@8.5.28) + terser: 5.51.2 yaml: 2.9.1 - vite@7.3.2(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0): + vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1): dependencies: - esbuild: 0.27.7 + esbuild: 0.28.2 fdir: 6.5.0(picomatch@4.0.7) picomatch: 4.0.7 postcss: 8.5.6 - rollup: 4.60.4 - tinyglobby: 0.2.16 + rollup: 4.63.4 + tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.6.4 - lightningcss: 1.32.0 - sass: 1.97.3 - sugarss: 5.0.1(postcss@8.5.15) - terser: 5.48.0 - yaml: 2.9.0 - optional: true + less: 4.9.1(supports-color@8.1.1) + lightningcss: 1.33.0 + sass: 1.104.1 + sugarss: 5.0.1(postcss@8.5.28) + terser: 5.51.2 + yaml: 2.9.1 - vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0): + vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.6))(terser@5.51.2)(yaml@2.9.1): dependencies: - esbuild: 0.27.7 - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 + esbuild: 0.28.2 + fdir: 6.5.0(picomatch@4.0.7) + picomatch: 4.0.7 postcss: 8.5.6 - rollup: 4.60.4 - tinyglobby: 0.2.16 + rollup: 4.63.4 + tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.6.4 - lightningcss: 1.32.0 - sass: 1.100.0 - sugarss: 5.0.1(postcss@8.5.15) - terser: 5.48.0 - yaml: 2.9.0 + less: 4.9.1(supports-color@8.1.1) + lightningcss: 1.33.0 + sass: 1.104.1 + sugarss: 5.0.1(postcss@8.5.6) + terser: 5.51.2 + yaml: 2.9.1 - vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.48.0)(yaml@2.9.0): + vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1): dependencies: - esbuild: 0.27.7 - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 + esbuild: 0.28.2 + fdir: 6.5.0(picomatch@4.0.7) + picomatch: 4.0.7 postcss: 8.5.6 - rollup: 4.60.4 - tinyglobby: 0.2.16 + rollup: 4.63.4 + tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 24.13.6 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.6.4 - lightningcss: 1.32.0 - sass: 1.100.0 - sugarss: 5.0.1(postcss@8.5.6) - terser: 5.48.0 - yaml: 2.9.0 + less: 4.9.1(supports-color@8.1.1) + lightningcss: 1.33.0 + sass: 1.97.3 + sugarss: 5.0.1(postcss@8.5.28) + terser: 5.51.2 + yaml: 2.9.1 + optional: true + + vitefu@1.1.3(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)): + optionalDependencies: + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) - vitefu@1.1.3(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)): + vitefu@1.1.3(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)): optionalDependencies: - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) - vitest@3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@7.2.0))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@7.2.0)(terser@5.48.0)(yaml@2.9.0): + vitest@3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@7.2.0))(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@7.2.0)(terser@5.51.2)(yaml@2.9.1): dependencies: '@types/chai': 5.2.3 - '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) - '@vitest/pretty-format': 3.2.4 - '@vitest/runner': 3.2.4 - '@vitest/snapshot': 3.2.4 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 + '@vitest/expect': 3.2.7 + '@vitest/mocker': 3.2.7(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + '@vitest/pretty-format': 3.2.7 + '@vitest/runner': 3.2.7 + '@vitest/snapshot': 3.2.7 + '@vitest/spy': 3.2.7 + '@vitest/utils': 3.2.7 chai: 5.3.3 debug: 4.4.3(supports-color@7.2.0) - expect-type: 1.3.0 + expect-type: 1.4.0 magic-string: 0.30.21 pathe: 2.0.3 - picomatch: 4.0.4 + picomatch: 4.0.7 std-env: 3.10.0 tinybench: 2.9.0 tinyexec: 1.1.2 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) - vite-node: 3.2.4(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@7.2.0)(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + vite-node: 3.2.4(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@7.2.0))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@7.2.0)(terser@5.51.2)(yaml@2.9.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.13 - '@types/node': 24.12.4 - jsdom: 27.4.0(supports-color@7.2.0) + '@types/node': 24.13.6 + jsdom: 27.4.0(@noble/hashes@2.4.0)(supports-color@7.2.0) transitivePeerDependencies: - jiti - less @@ -30316,35 +31463,35 @@ snapshots: - tsx - yaml - vitest@3.2.4(@types/debug@4.1.13)(@types/node@24.12.4)(jiti@2.7.0)(jsdom@27.4.0(supports-color@8.1.1))(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@8.1.1)(terser@5.48.0)(yaml@2.9.0): + vitest@3.2.7(@types/debug@4.1.13)(@types/node@24.13.6)(jiti@2.7.0)(jsdom@27.4.0(@noble/hashes@2.4.0)(supports-color@8.1.1))(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1): dependencies: '@types/chai': 5.2.3 - '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0)) - '@vitest/pretty-format': 3.2.4 - '@vitest/runner': 3.2.4 - '@vitest/snapshot': 3.2.4 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 + '@vitest/expect': 3.2.7 + '@vitest/mocker': 3.2.7(vite@7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1)) + '@vitest/pretty-format': 3.2.7 + '@vitest/runner': 3.2.7 + '@vitest/snapshot': 3.2.7 + '@vitest/spy': 3.2.7 + '@vitest/utils': 3.2.7 chai: 5.3.3 debug: 4.4.3(supports-color@8.1.1) - expect-type: 1.3.0 + expect-type: 1.4.0 magic-string: 0.30.21 pathe: 2.0.3 - picomatch: 4.0.4 + picomatch: 4.0.7 std-env: 3.10.0 tinybench: 2.9.0 tinyexec: 1.1.2 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.3.3(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.9.0) - vite-node: 3.2.4(@types/node@24.12.4)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass@1.100.0)(sugarss@5.0.1(postcss@8.5.15))(supports-color@8.1.1)(terser@5.48.0)(yaml@2.9.0) + vite: 7.3.6(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(terser@5.51.2)(yaml@2.9.1) + vite-node: 3.2.4(@types/node@24.13.6)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(lightningcss@1.33.0)(sass@1.104.1)(sugarss@5.0.1(postcss@8.5.28))(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.13 - '@types/node': 24.12.4 - jsdom: 27.4.0(supports-color@8.1.1) + '@types/node': 24.13.6 + jsdom: 27.4.0(@noble/hashes@2.4.0)(supports-color@8.1.1) transitivePeerDependencies: - jiti - less @@ -30361,15 +31508,15 @@ snapshots: vlq@1.0.1: {} - vscode-uri@3.1.0: {} + vscode-uri@3.2.0: {} - vue-component-type-helpers@3.3.2: {} + vue-component-type-helpers@3.3.11: {} - vue-demi@0.14.10(vue@3.5.34(typescript@5.9.3)): + vue-demi@0.14.10(vue@3.5.43(typescript@5.9.3)): dependencies: - vue: 3.5.34(typescript@5.9.3) + vue: 3.5.43(typescript@5.9.3) - vue-eslint-parser@10.4.0(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0): + vue-eslint-parser@10.4.1(eslint@9.36.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0): dependencies: debug: 4.4.3(supports-color@7.2.0) eslint: 9.36.0(jiti@2.7.0)(supports-color@7.2.0) @@ -30377,23 +31524,23 @@ snapshots: eslint-visitor-keys: 5.0.1 espree: 11.2.0 esquery: 1.7.0 - semver: 7.8.1 + semver: 7.8.5 transitivePeerDependencies: - supports-color vue-tsc@2.2.12(typescript@5.9.3): dependencies: - '@volar/typescript': 2.4.15 + '@volar/typescript': 2.4.15(typescript@5.9.3) '@vue/language-core': 2.2.12(typescript@5.9.3) typescript: 5.9.3 - vue@3.5.34(typescript@5.9.3): + vue@3.5.43(typescript@5.9.3): dependencies: - '@vue/compiler-dom': 3.5.34 - '@vue/compiler-sfc': 3.5.34 - '@vue/runtime-dom': 3.5.34 - '@vue/server-renderer': 3.5.34(vue@3.5.34(typescript@5.9.3)) - '@vue/shared': 3.5.34 + '@vue/compiler-dom': 3.5.43 + '@vue/compiler-sfc': 3.5.43 + '@vue/runtime-dom': 3.5.43 + '@vue/server-renderer': 3.5.43 + '@vue/shared': 3.5.43 optionalDependencies: typescript: 5.9.3 @@ -30414,6 +31561,10 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 + watchpack@2.5.2: + dependencies: + graceful-fs: 4.2.11 + wbuf@1.7.3: dependencies: minimalistic-assert: 1.0.1 @@ -30439,56 +31590,53 @@ snapshots: webidl-conversions@8.0.1: {} - webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)): + webpack-dev-middleware@7.4.5(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)): dependencies: colorette: 2.0.20 - memfs: 4.57.2(tslib@2.8.1) + memfs: 4.78.1 mime-types: 3.0.2 on-finished: 2.4.1 - range-parser: 1.2.1 - schema-utils: 4.3.3 + range-parser: 1.3.0 + schema-utils: 4.5.0 optionalDependencies: - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) - transitivePeerDependencies: - - tslib + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) - webpack-dev-server@5.2.3(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)): + webpack-dev-server@5.2.6(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 '@types/express': 4.17.25 - '@types/express-serve-static-core': 4.19.8 + '@types/express-serve-static-core': 4.19.9 '@types/serve-index': 1.9.4 '@types/serve-static': 1.15.10 '@types/sockjs': 0.3.36 '@types/ws': 8.18.1 ansi-html-community: 0.0.8 - bonjour-service: 1.4.0 + bonjour-service: 1.4.4 chokidar: 3.6.0 colorette: 2.0.20 - compression: 1.8.1(supports-color@8.1.1) + compression: 1.8.2(supports-color@8.1.1) connect-history-api-fallback: 2.0.0 - express: 4.22.2(supports-color@8.1.1) + express: 4.22.3(supports-color@8.1.1) graceful-fs: 4.2.11 - http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3(supports-color@8.1.1)) - ipaddr.js: 2.4.0 - launch-editor: 2.13.2 + http-proxy-middleware: 2.0.10(@types/express@4.17.25)(debug@4.4.3(supports-color@8.1.1)) + ipaddr.js: 2.5.0 + launch-editor: 2.14.1 open: 10.2.0 p-retry: 6.2.1 - schema-utils: 4.3.3 + schema-utils: 4.5.0 selfsigned: 5.5.0 serve-index: 1.9.2(supports-color@8.1.1) sockjs: 0.3.24 spdy: 4.0.2(supports-color@8.1.1) - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - ws: 8.21.0 + webpack-dev-middleware: 7.4.5(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + ws: 8.21.3 optionalDependencies: - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) transitivePeerDependencies: - bufferutil - debug - supports-color - - tslib - utf-8-validate webpack-merge@6.0.1: @@ -30497,16 +31645,16 @@ snapshots: flat: 5.0.2 wildcard: 2.0.1 - webpack-sources@3.5.0: {} + webpack-sources@3.5.1: {} - webpack-subresource-integrity@5.1.0(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)): + webpack-subresource-integrity@5.1.0(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)): dependencies: typed-assert: 1.0.9 - webpack: 5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12) + webpack: 5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23) webpack-virtual-modules@0.6.2: {} - webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12): + webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.9 @@ -30514,12 +31662,12 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) - browserslist: 4.28.2 + acorn: 8.18.0 + acorn-import-phases: 1.0.4(acorn@8.18.0) + browserslist: 4.29.0 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.22.0 - es-module-lexer: 2.1.0 + enhanced-resolve: 5.25.1 + es-module-lexer: 2.3.2 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -30528,11 +31676,11 @@ snapshots: loader-runner: 4.3.2 mime-types: 2.1.35 neo-async: 2.6.2 - schema-utils: 4.3.3 + schema-utils: 4.5.0 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.3)(lightningcss@1.32.0)(postcss@8.5.12)) - watchpack: 2.5.1 - webpack-sources: 3.5.0 + terser-webpack-plugin: 5.6.1(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.23)) + watchpack: 2.5.2 + webpack-sources: 3.5.1 transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -30547,7 +31695,7 @@ snapshots: - postcss - uglify-js - webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15): + webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.9 @@ -30555,12 +31703,12 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) - browserslist: 4.28.2 + acorn: 8.18.0 + acorn-import-phases: 1.0.4(acorn@8.18.0) + browserslist: 4.29.0 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.22.0 - es-module-lexer: 2.1.0 + enhanced-resolve: 5.25.1 + es-module-lexer: 2.3.2 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -30569,11 +31717,11 @@ snapshots: loader-runner: 4.3.2 mime-types: 2.1.35 neo-async: 2.6.2 - schema-utils: 4.3.3 + schema-utils: 4.5.0 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15)(webpack@5.105.2(@swc/core@1.15.40)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.15)) - watchpack: 2.5.1 - webpack-sources: 3.5.0 + terser-webpack-plugin: 5.6.1(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)(webpack@5.105.2(@swc/core@1.16.2)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)) + watchpack: 2.5.2 + webpack-sources: 3.5.1 transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -30589,7 +31737,7 @@ snapshots: - uglify-js optional: true - websocket-driver@0.7.4: + websocket-driver@0.7.5: dependencies: http-parser-js: 0.5.10 safe-buffer: 5.2.1 @@ -30634,7 +31782,7 @@ snapshots: which-builtin-type@1.2.1: dependencies: call-bound: 1.0.4 - function.prototype.name: 1.1.8 + function.prototype.name: 1.2.0 has-tostringtag: 1.0.2 is-async-function: 2.1.1 is-date-object: 1.1.0 @@ -30645,7 +31793,7 @@ snapshots: isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.20 + which-typed-array: 1.1.24 which-collection@1.0.2: dependencies: @@ -30654,7 +31802,7 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.4 - which-typed-array@1.1.20: + which-typed-array@1.1.24: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.9 @@ -30672,6 +31820,10 @@ snapshots: dependencies: isexe: 2.0.0 + which@4.0.0: + dependencies: + isexe: 3.1.5 + which@6.0.1: dependencies: isexe: 4.0.0 @@ -30718,13 +31870,13 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 3.0.7 - ws@6.2.4: + ws@6.2.6: dependencies: async-limiter: 1.0.1 - ws@7.5.11: {} + ws@7.5.13: {} - ws@8.21.0: {} + ws@8.21.3: {} wsl-utils@0.1.0: dependencies: @@ -30744,7 +31896,7 @@ snapshots: xml2js@0.6.0: dependencies: - sax: 1.6.0 + sax: 1.6.1 xmlbuilder: 11.0.1 xmlbuilder2@4.0.3: @@ -30752,7 +31904,7 @@ snapshots: '@oozcitak/dom': 2.0.2 '@oozcitak/infra': 2.0.2 '@oozcitak/util': 10.0.0 - js-yaml: 4.1.1 + js-yaml: 4.3.2 xmlbuilder@11.0.1: {} @@ -30790,6 +31942,16 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 + yargs@17.7.3: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + yargs@18.0.0: dependencies: cliui: 9.0.1 @@ -30799,13 +31961,24 @@ snapshots: y18n: 5.0.8 yargs-parser: 22.0.0 + yargs@18.2.0: + dependencies: + cliui: 9.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + string-width: 8.2.2 + y18n: 5.0.8 + yargs-parser: 22.0.0 + + yn@3.1.1: {} + yocto-queue@0.1.0: {} yoctocolors-cjs@2.1.3: {} - yoctocolors@2.1.2: {} + yoctocolors@2.2.0: {} - zimmerframe@1.1.4: {} + zimmerframe@1.1.5: {} zod-to-json-schema@3.25.2(zod@4.3.6): dependencies: @@ -30819,7 +31992,7 @@ snapshots: zod@4.3.6: {} - zod@4.4.3: {} + zod@4.6.5: {} zone.js@0.15.1: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index a0338c68a9..056c44131c 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -12,6 +12,8 @@ trustPolicyExclude: - 'vite@5.4.21' # Remix Run Dev - 'react-native-worklets@0.5.1' # Expo 56 fixes this but is too new; upgrade in a few days - 'eslint-import-resolver-typescript@3.10.1' # Same as above + - '@tsrx/prettier-plugin@0.4.7' # Required for TSRX fixes I needed to make upstream + - 'knip@6.37.0' # Required for TSRX usage # Too young to use currently, upgrade in a few days overrides: { 'tinyexec': '1.1.2' } @@ -21,6 +23,7 @@ packages: - examples/angular/** - examples/react/** - examples/preact/** + - examples/octane/** - examples/solid/** - examples/vue/** - examples/lit/** diff --git a/prettier.config.js b/prettier.config.js index 2c53b10e3b..b393c9d80b 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -5,6 +5,7 @@ const config = { semi: false, singleQuote: true, trailingComma: 'all', + plugins: ['@tsrx/prettier-plugin'], } export default config diff --git a/scripts/generate-docs.ts b/scripts/generate-docs.ts index 73d9f44668..380cf0a36e 100644 --- a/scripts/generate-docs.ts +++ b/scripts/generate-docs.ts @@ -11,6 +11,7 @@ await generateReferenceDocs({ entryPoints: [resolve(__dirname, '../packages/form-core/src/index.ts')], tsconfig: resolve(__dirname, '../packages/form-core/tsconfig.docs.json'), outputDir: resolve(__dirname, '../docs/reference'), + exclude: [], }, { name: 'angular-form', @@ -62,6 +63,16 @@ await generateReferenceDocs({ outputDir: resolve(__dirname, '../docs/framework/vue/reference'), exclude: ['packages/form-core/**/*'], }, + { + name: 'octane-form', + entryPoints: [resolve(__dirname, '../packages/octane-form/src/index.ts')], + tsconfig: resolve( + __dirname, + '../packages/octane-form/tsconfig.docs.json', + ), + outputDir: resolve(__dirname, '../docs/framework/octane/reference'), + exclude: ['packages/form-core/**/*'], + }, ], })