From 1a88b6f263d13191175784c94cf67a78f7d666ba Mon Sep 17 00:00:00 2001 From: Corbin Crutchley Date: Fri, 29 Nov 2024 01:00:46 -0800 Subject: [PATCH] fix!: Field re-renders properly when using React Compiler * chore: add compiler demo # Conflicts: # pnpm-lock.yaml * chore: add React compiler ESLint rules to React package * chore!: remove useField and useStore APIs returned from useForm * fix: Field rerenders properly when using React Compiler * chore: fix issues with deprecated APIs in tests * chore: fix build and type issues * docs: remove reference to form.useField and form.useStore * ci: apply automated fixes and generate docs * chore: fix ci --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- docs/framework/react/guides/basic-concepts.md | 6 +- docs/framework/react/guides/ssr.md | 10 +- docs/framework/react/guides/validation.md | 2 +- .../react/reference/functions/useform.md | 2 +- docs/reference/classes/formapi.md | 2 +- examples/lit/simple/package.json | 2 +- examples/lit/ui-libraries/package.json | 2 +- examples/react/array/package.json | 2 +- examples/react/compiler/.eslintrc.cjs | 16 + examples/react/compiler/.gitignore | 27 ++ examples/react/compiler/README.md | 6 + examples/react/compiler/index.html | 16 + examples/react/compiler/package.json | 40 ++ .../react/compiler/public/emblem-light.svg | 13 + examples/react/compiler/src/index.tsx | 118 ++++++ examples/react/compiler/tsconfig.json | 23 ++ examples/react/compiler/vite.config.ts | 16 + .../package.json | 2 +- .../react/next-server-actions/package.json | 1 + .../src/app/client-component.tsx | 3 +- examples/react/query-integration/package.json | 2 +- .../react/remix/app/routes/_index/route.tsx | 3 +- examples/react/remix/package.json | 3 +- examples/react/simple/package.json | 2 +- .../react/tanstack-start/app/routes/index.tsx | 3 +- examples/react/tanstack-start/package.json | 3 +- examples/react/ui-libraries/package.json | 2 +- examples/react/valibot/package.json | 2 +- examples/react/yup/package.json | 2 +- examples/react/zod/package.json | 2 +- examples/solid/array/package.json | 2 +- examples/solid/simple/package.json | 2 +- examples/solid/valibot/package.json | 2 +- examples/solid/yup/package.json | 2 +- examples/solid/zod/package.json | 2 +- examples/vue/array/package.json | 2 +- examples/vue/simple/package.json | 2 +- examples/vue/valibot/package.json | 2 +- examples/vue/yup/package.json | 2 +- examples/vue/zod/package.json | 2 +- package.json | 2 +- packages/form-core/src/FormApi.ts | 2 +- packages/react-form/eslint.config.js | 4 + packages/react-form/package.json | 3 +- packages/react-form/src/useField.tsx | 14 +- packages/react-form/src/useForm.tsx | 37 +- packages/react-form/tests/useField.test.tsx | 5 +- packages/react-form/tests/useForm.test.tsx | 21 +- packages/solid-form/package.json | 2 +- packages/vue-form/package.json | 2 +- pnpm-lock.yaml | 389 ++++++++++-------- 51 files changed, 594 insertions(+), 240 deletions(-) create mode 100644 examples/react/compiler/.eslintrc.cjs create mode 100644 examples/react/compiler/.gitignore create mode 100644 examples/react/compiler/README.md create mode 100644 examples/react/compiler/index.html create mode 100644 examples/react/compiler/package.json create mode 100644 examples/react/compiler/public/emblem-light.svg create mode 100644 examples/react/compiler/src/index.tsx create mode 100644 examples/react/compiler/tsconfig.json create mode 100644 examples/react/compiler/vite.config.ts diff --git a/docs/framework/react/guides/basic-concepts.md b/docs/framework/react/guides/basic-concepts.md index 30da761a8..a9560ebdb 100644 --- a/docs/framework/react/guides/basic-concepts.md +++ b/docs/framework/react/guides/basic-concepts.md @@ -176,12 +176,12 @@ import { z } from 'zod' ## Reactivity -`@tanstack/react-form` offers various ways to subscribe to form and field state changes, most notably the `form.useStore` hook and the `form.Subscribe` component. These methods allow you to optimize your form's rendering performance by only updating components when necessary. +`@tanstack/react-form` offers various ways to subscribe to form and field state changes, most notably the `useStore(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: ```tsx -const firstName = form.useStore((state) => state.values.firstName) +const firstName = useStore(form.store, (state) => state.values.firstName) //... [state.canSubmit, state.isSubmitting]} @@ -193,7 +193,7 @@ const firstName = form.useStore((state) => state.values.firstName) /> ``` -Note: The usage of the `form.useField` hook to achieve reactivity is discouraged since it is designed to be used thoughtfully within the `form.Field` component. You might want to use `form.useStore` instead. +Note: The usage of the `useField` hook to achieve reactivity is discouraged since it is designed to be used thoughtfully within the `form.Field` component. You might want to use `useStore(form.store)` instead. ## Listeners diff --git a/docs/framework/react/guides/ssr.md b/docs/framework/react/guides/ssr.md index 159797675..a6a63b6ad 100644 --- a/docs/framework/react/guides/ssr.md +++ b/docs/framework/react/guides/ssr.md @@ -114,7 +114,7 @@ function Home() { transform: useTransform((baseForm) => mergeForm(baseForm, state), [state]), }) - const formErrors = form.useStore((formState) => formState.errors) + const formErrors = useStore(form.store, (formState) => formState.errors) return (
@@ -249,7 +249,7 @@ export const ClientComp = () => { transform: useTransform((baseForm) => mergeForm(baseForm, state!), [state]), }) - const formErrors = form.useStore((formState) => formState.errors) + const formErrors = useStore(form.store, (formState) => formState.errors) return ( form.handleSubmit()}> @@ -410,8 +410,8 @@ export default function Index() { [actionData], ), }) - - const formErrors = form.useStore((formState) => formState.errors) + + const formErrors = useStore(form.store, (formState) => formState.errors) return ( form.handleSubmit()}> @@ -456,4 +456,4 @@ export default function Index() { } ``` -Here, we're using [Remix's `useActionData` hook](https://remix.run/docs/en/main/hooks/use-action-data) and TanStack Form's `useTransform` hook to merge state returned from the server action with the form state. \ No newline at end of file +Here, we're using [Remix's `useActionData` hook](https://remix.run/docs/en/main/hooks/use-action-data) and TanStack Form's `useTransform` hook to merge state returned from the server action with the form state. diff --git a/docs/framework/react/guides/validation.md b/docs/framework/react/guides/validation.md index 21a6d4424..2f2a0a274 100644 --- a/docs/framework/react/guides/validation.md +++ b/docs/framework/react/guides/validation.md @@ -178,7 +178,7 @@ export default function App() { // Subscribe to the form's error map so that updates to it will render // alternately, you can use `form.Subscribe` - const formErrorMap = form.useStore((state) => state.errorMap) + const formErrorMap = useStore(form.store, (state) => state.errorMap) return (
diff --git a/docs/framework/react/reference/functions/useform.md b/docs/framework/react/reference/functions/useform.md index f3aa414c5..dd5083e49 100644 --- a/docs/framework/react/reference/functions/useform.md +++ b/docs/framework/react/reference/functions/useform.md @@ -29,4 +29,4 @@ This API encapsulates all the necessary functionalities related to the form. It ## Defined in -[useForm.tsx:54](https://github.com/TanStack/form/blob/main/packages/react-form/src/useForm.tsx#L54) +[useForm.tsx:67](https://github.com/TanStack/form/blob/main/packages/react-form/src/useForm.tsx#L67) diff --git a/docs/reference/classes/formapi.md b/docs/reference/classes/formapi.md index 3a6739ce4..859d86b11 100644 --- a/docs/reference/classes/formapi.md +++ b/docs/reference/classes/formapi.md @@ -79,7 +79,7 @@ The current state of the form. **Note:** Do not use `state` directly, as it is not reactive. -Please use form.useStore() utility to subscribe to state +Please use useStore(form.store) utility to subscribe to state #### Defined in diff --git a/examples/lit/simple/package.json b/examples/lit/simple/package.json index 8650a8ae1..1cba20f4a 100644 --- a/examples/lit/simple/package.json +++ b/examples/lit/simple/package.json @@ -13,7 +13,7 @@ "lit": "^3.2.1" }, "devDependencies": { - "vite": "^5.4.10" + "vite": "^5.4.11" }, "browserslist": { "production": [ diff --git a/examples/lit/ui-libraries/package.json b/examples/lit/ui-libraries/package.json index 4b0994782..1048cdd93 100644 --- a/examples/lit/ui-libraries/package.json +++ b/examples/lit/ui-libraries/package.json @@ -14,7 +14,7 @@ "lit": "^3.2.1" }, "devDependencies": { - "vite": "^5.4.10" + "vite": "^5.4.11" }, "browserslist": { "production": [ diff --git a/examples/react/array/package.json b/examples/react/array/package.json index 995473a8b..0d7ec8c0b 100644 --- a/examples/react/array/package.json +++ b/examples/react/array/package.json @@ -17,7 +17,7 @@ "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.3", - "vite": "^5.4.10" + "vite": "^5.4.11" }, "browserslist": { "production": [ diff --git a/examples/react/compiler/.eslintrc.cjs b/examples/react/compiler/.eslintrc.cjs new file mode 100644 index 000000000..52b3c0f7a --- /dev/null +++ b/examples/react/compiler/.eslintrc.cjs @@ -0,0 +1,16 @@ +// @ts-check +const reactCompiler = require('eslint-plugin-react-compiler') + +/** @type {import('eslint').Linter.Config} */ +const config = { + plugins: { + 'react-compiler': reactCompiler, + }, + extends: ['plugin:react/recommended', 'plugin:react-hooks/recommended'], + rules: { + 'react/no-children-prop': 'off', + 'react-compiler/react-compiler': 'error', + }, +} + +module.exports = config diff --git a/examples/react/compiler/.gitignore b/examples/react/compiler/.gitignore new file mode 100644 index 000000000..4673b022e --- /dev/null +++ b/examples/react/compiler/.gitignore @@ -0,0 +1,27 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +pnpm-lock.yaml +yarn.lock +package-lock.json + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/examples/react/compiler/README.md b/examples/react/compiler/README.md new file mode 100644 index 000000000..1cf889265 --- /dev/null +++ b/examples/react/compiler/README.md @@ -0,0 +1,6 @@ +# Example + +To run this example: + +- `npm install` +- `npm run dev` diff --git a/examples/react/compiler/index.html b/examples/react/compiler/index.html new file mode 100644 index 000000000..5d0e76cd4 --- /dev/null +++ b/examples/react/compiler/index.html @@ -0,0 +1,16 @@ + + + + + + + + + TanStack Form React Simple Example App + + + +
+ + + diff --git a/examples/react/compiler/package.json b/examples/react/compiler/package.json new file mode 100644 index 000000000..b0758091b --- /dev/null +++ b/examples/react/compiler/package.json @@ -0,0 +1,40 @@ +{ + "name": "@tanstack/form-example-react-compiler", + "private": true, + "type": "module", + "scripts": { + "dev": "vite --port=3001", + "build": "vite build", + "preview": "vite preview", + "_test:types": "tsc" + }, + "dependencies": { + "@tanstack/react-form": "^0.38.0", + "react": "^19.0.0-rc.1", + "react-dom": "^19.0.0-rc.1" + }, + "devDependencies": { + "@types/react": "npm:types-react@rc", + "@types/react-dom": "npm:types-react-dom@rc", + "@vitejs/plugin-react": "^4.3.3", + "babel-plugin-react-compiler": "^19.0.0-beta-0dec889-20241115", + "eslint-plugin-react-compiler": "^19.0.0-beta-0dec889-20241115", + "vite": "^5.4.11" + }, + "overrides": { + "@types/react": "npm:types-react@rc", + "@types/react-dom": "npm:types-react-dom@rc" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/examples/react/compiler/public/emblem-light.svg b/examples/react/compiler/public/emblem-light.svg new file mode 100644 index 000000000..a58e69ad5 --- /dev/null +++ b/examples/react/compiler/public/emblem-light.svg @@ -0,0 +1,13 @@ + + + + emblem-light + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/examples/react/compiler/src/index.tsx b/examples/react/compiler/src/index.tsx new file mode 100644 index 000000000..67cfca1d3 --- /dev/null +++ b/examples/react/compiler/src/index.tsx @@ -0,0 +1,118 @@ +import { useForm } from '@tanstack/react-form' +import * as React from 'react' +import { createRoot } from 'react-dom/client' +import type { FieldApi } from '@tanstack/react-form' + +function FieldInfo({ field }: { field: FieldApi }) { + return ( + <> + {field.state.meta.isTouched && field.state.meta.errors.length ? ( + {field.state.meta.errors.join(',')} + ) : null} + {field.state.meta.isValidating ? 'Validating...' : null} + + ) +} + +export default function App() { + const form = useForm({ + defaultValues: { + firstName: '', + lastName: '', + }, + onSubmit: async ({ value }) => { + // Do something with form data + console.log(value) + }, + }) + + return ( +
+

Simple Form Example

+ { + e.preventDefault() + e.stopPropagation() + form.handleSubmit() + }} + > +
+ {/* A type-safe field component*/} + + !value + ? 'A first name is required' + : value.length < 3 + ? 'First name must be at least 3 characters' + : undefined, + onChangeAsyncDebounceMs: 500, + onChangeAsync: async ({ value }) => { + await new Promise((resolve) => setTimeout(resolve, 1000)) + return ( + value.includes('error') && 'No "error" allowed in first name' + ) + }, + }} + children={(field) => { + // Avoid hasty abstractions. Render props are great! + return ( + <> + + field.handleChange(e.target.value)} + /> + + + ) + }} + /> +
+
+ ( + <> + + field.handleChange(e.target.value)} + /> + + + )} + /> +
+ [state.canSubmit, state.isSubmitting]} + children={([canSubmit, isSubmitting]) => ( + <> + + + + )} + /> + +
+ ) +} + +const rootElement = document.getElementById('root')! + +createRoot(rootElement).render( + + + , +) diff --git a/examples/react/compiler/tsconfig.json b/examples/react/compiler/tsconfig.json new file mode 100644 index 000000000..22b43163b --- /dev/null +++ b/examples/react/compiler/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ESNext", + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "Bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/examples/react/compiler/vite.config.ts b/examples/react/compiler/vite.config.ts new file mode 100644 index 000000000..a152a8424 --- /dev/null +++ b/examples/react/compiler/vite.config.ts @@ -0,0 +1,16 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +const ReactCompilerConfig = {} + +export default defineConfig(() => { + return { + plugins: [ + react({ + babel: { + plugins: [['babel-plugin-react-compiler', ReactCompilerConfig]], + }, + }), + ], + } +}) diff --git a/examples/react/field-errors-from-form-validators/package.json b/examples/react/field-errors-from-form-validators/package.json index 3a132af49..2fc8ba153 100644 --- a/examples/react/field-errors-from-form-validators/package.json +++ b/examples/react/field-errors-from-form-validators/package.json @@ -17,7 +17,7 @@ "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.3", - "vite": "^5.4.10" + "vite": "^5.4.11" }, "browserslist": { "production": [ diff --git a/examples/react/next-server-actions/package.json b/examples/react/next-server-actions/package.json index d884fa8d0..7811db920 100644 --- a/examples/react/next-server-actions/package.json +++ b/examples/react/next-server-actions/package.json @@ -9,6 +9,7 @@ }, "dependencies": { "@tanstack/react-form": "^0.38.0", + "@tanstack/react-store": "^0.5.6", "next": "15.0.3", "react": "19.0.0-rc-5dcb0097-20240918", "react-dom": "19.0.0-rc-5dcb0097-20240918" diff --git a/examples/react/next-server-actions/src/app/client-component.tsx b/examples/react/next-server-actions/src/app/client-component.tsx index 2f754b49a..8942b7477 100644 --- a/examples/react/next-server-actions/src/app/client-component.tsx +++ b/examples/react/next-server-actions/src/app/client-component.tsx @@ -3,6 +3,7 @@ import { useActionState } from 'react' import { mergeForm, useForm, useTransform } from '@tanstack/react-form' import { initialFormState } from '@tanstack/react-form/nextjs' +import { useStore } from '@tanstack/react-store' import someAction from './action' import { formOpts } from './shared-code' @@ -17,7 +18,7 @@ export const ClientComp = () => { ), }) - const formErrors = form.useStore((formState) => formState.errors) + const formErrors = useStore(form.store, (formState) => formState.errors) return (
form.handleSubmit()}> diff --git a/examples/react/query-integration/package.json b/examples/react/query-integration/package.json index 5f990cc5a..78d2b082c 100644 --- a/examples/react/query-integration/package.json +++ b/examples/react/query-integration/package.json @@ -18,7 +18,7 @@ "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.3", - "vite": "^5.4.10" + "vite": "^5.4.11" }, "browserslist": { "production": [ diff --git a/examples/react/remix/app/routes/_index/route.tsx b/examples/react/remix/app/routes/_index/route.tsx index eae3573c6..e8f25e194 100644 --- a/examples/react/remix/app/routes/_index/route.tsx +++ b/examples/react/remix/app/routes/_index/route.tsx @@ -7,6 +7,7 @@ import { formOptions, initialFormState, } from '@tanstack/react-form/remix' +import { useStore } from '@tanstack/react-store' import type { ActionFunctionArgs } from '@remix-run/node' @@ -53,7 +54,7 @@ export default function Index() { [actionData], ), }) - const formErrors = form.useStore((formState) => formState.errors) + const formErrors = useStore(form.store, (formState) => formState.errors) return ( form.handleSubmit()}> diff --git a/examples/react/remix/package.json b/examples/react/remix/package.json index 4945a6ce8..cab15d11c 100644 --- a/examples/react/remix/package.json +++ b/examples/react/remix/package.json @@ -12,6 +12,7 @@ "@remix-run/react": "^2.14.0", "@remix-run/serve": "^2.14.0", "@tanstack/react-form": "^0.38.0", + "@tanstack/react-store": "^0.5.6", "isbot": "^5.1.17", "react": "^18.2.0", "react-dom": "^18.2.0" @@ -21,7 +22,7 @@ "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "typescript": "5.6.3", - "vite": "^5.4.10", + "vite": "^5.4.11", "vite-tsconfig-paths": "^5.1.2" }, "engines": { diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index f697fd268..3f67dfc8b 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -17,7 +17,7 @@ "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.3", - "vite": "^5.4.10" + "vite": "^5.4.11" }, "browserslist": { "production": [ diff --git a/examples/react/tanstack-start/app/routes/index.tsx b/examples/react/tanstack-start/app/routes/index.tsx index 9cd4329cf..0b8e8bb87 100644 --- a/examples/react/tanstack-start/app/routes/index.tsx +++ b/examples/react/tanstack-start/app/routes/index.tsx @@ -1,5 +1,6 @@ import { createFileRoute } from '@tanstack/react-router' import { mergeForm, useForm, useTransform } from '@tanstack/react-form' +import { useStore } from '@tanstack/react-store' import { formOpts, getFormDataFromServer, handleForm } from '~/utils/form' export const Route = createFileRoute('/')({ @@ -16,7 +17,7 @@ function Home() { transform: useTransform((baseForm) => mergeForm(baseForm, state), [state]), }) - const formErrors = form.useStore((formState) => formState.errors) + const formErrors = useStore(form.store, (formState) => formState.errors) return ( diff --git a/examples/react/tanstack-start/package.json b/examples/react/tanstack-start/package.json index d42b13c0c..1ba356095 100644 --- a/examples/react/tanstack-start/package.json +++ b/examples/react/tanstack-start/package.json @@ -12,6 +12,7 @@ "@tanstack/form-core": "^0.38.0", "@tanstack/react-form": "^0.38.0", "@tanstack/react-router": "^1.81.1", + "@tanstack/react-store": "^0.5.6", "@tanstack/start": "^1.81.1", "react": "^18.3.1", "react-dom": "^18.3.1", @@ -23,7 +24,7 @@ "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.3", "typescript": "5.6.3", - "vite": "^5.4.10", + "vite": "^5.4.11", "vite-tsconfig-paths": "^5.1.2" } } diff --git a/examples/react/ui-libraries/package.json b/examples/react/ui-libraries/package.json index d1d27af67..1e28f566c 100644 --- a/examples/react/ui-libraries/package.json +++ b/examples/react/ui-libraries/package.json @@ -28,7 +28,7 @@ "@vitejs/plugin-react": "^4.3.3", "@vitejs/plugin-react-swc": "^3.7.1", "typescript": "5.6.3", - "vite": "^5.4.10" + "vite": "^5.4.11" }, "browserslist": { "production": [ diff --git a/examples/react/valibot/package.json b/examples/react/valibot/package.json index b473dd80d..1a7d0ad63 100644 --- a/examples/react/valibot/package.json +++ b/examples/react/valibot/package.json @@ -19,7 +19,7 @@ "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.3", - "vite": "^5.4.10" + "vite": "^5.4.11" }, "browserslist": { "production": [ diff --git a/examples/react/yup/package.json b/examples/react/yup/package.json index e97d5c21f..fa27497d5 100644 --- a/examples/react/yup/package.json +++ b/examples/react/yup/package.json @@ -19,7 +19,7 @@ "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.3", - "vite": "^5.4.10" + "vite": "^5.4.11" }, "browserslist": { "production": [ diff --git a/examples/react/zod/package.json b/examples/react/zod/package.json index c3bae7240..50c4f5e35 100644 --- a/examples/react/zod/package.json +++ b/examples/react/zod/package.json @@ -19,7 +19,7 @@ "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.3", - "vite": "^5.4.10" + "vite": "^5.4.11" }, "browserslist": { "production": [ diff --git a/examples/solid/array/package.json b/examples/solid/array/package.json index 324ecca8c..704cf721f 100644 --- a/examples/solid/array/package.json +++ b/examples/solid/array/package.json @@ -14,7 +14,7 @@ }, "devDependencies": { "typescript": "5.6.3", - "vite": "^5.4.10", + "vite": "^5.4.11", "vite-plugin-solid": "^2.10.2" } } diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index c03931e40..5531c03ca 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -14,7 +14,7 @@ }, "devDependencies": { "typescript": "5.6.3", - "vite": "^5.4.10", + "vite": "^5.4.11", "vite-plugin-solid": "^2.10.2" } } diff --git a/examples/solid/valibot/package.json b/examples/solid/valibot/package.json index 8a776b40b..1e41aa99b 100644 --- a/examples/solid/valibot/package.json +++ b/examples/solid/valibot/package.json @@ -16,7 +16,7 @@ }, "devDependencies": { "typescript": "5.6.3", - "vite": "^5.4.10", + "vite": "^5.4.11", "vite-plugin-solid": "^2.10.2" } } diff --git a/examples/solid/yup/package.json b/examples/solid/yup/package.json index 1c0520540..07491c041 100644 --- a/examples/solid/yup/package.json +++ b/examples/solid/yup/package.json @@ -16,7 +16,7 @@ }, "devDependencies": { "typescript": "5.6.3", - "vite": "^5.4.10", + "vite": "^5.4.11", "vite-plugin-solid": "^2.10.2" } } diff --git a/examples/solid/zod/package.json b/examples/solid/zod/package.json index 685dbe296..42f080e88 100644 --- a/examples/solid/zod/package.json +++ b/examples/solid/zod/package.json @@ -16,7 +16,7 @@ }, "devDependencies": { "typescript": "5.6.3", - "vite": "^5.4.10", + "vite": "^5.4.11", "vite-plugin-solid": "^2.10.2" } } diff --git a/examples/vue/array/package.json b/examples/vue/array/package.json index dafb6b1c7..96f71cd66 100644 --- a/examples/vue/array/package.json +++ b/examples/vue/array/package.json @@ -16,7 +16,7 @@ "devDependencies": { "@vitejs/plugin-vue": "^5.1.5", "typescript": "5.6.3", - "vite": "^5.4.10", + "vite": "^5.4.11", "vue-tsc": "^2.0.26" } } diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 4b81e786f..96e82a441 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -16,7 +16,7 @@ "devDependencies": { "@vitejs/plugin-vue": "^5.1.5", "typescript": "5.6.3", - "vite": "^5.4.10", + "vite": "^5.4.11", "vue-tsc": "^2.0.26" } } diff --git a/examples/vue/valibot/package.json b/examples/vue/valibot/package.json index 9c63a0847..97262c8da 100644 --- a/examples/vue/valibot/package.json +++ b/examples/vue/valibot/package.json @@ -18,7 +18,7 @@ "devDependencies": { "@vitejs/plugin-vue": "^5.1.5", "typescript": "5.6.3", - "vite": "^5.4.10", + "vite": "^5.4.11", "vue-tsc": "^2.0.26" } } diff --git a/examples/vue/yup/package.json b/examples/vue/yup/package.json index e418b3b21..a5bb81ce1 100644 --- a/examples/vue/yup/package.json +++ b/examples/vue/yup/package.json @@ -18,7 +18,7 @@ "devDependencies": { "@vitejs/plugin-vue": "^5.1.5", "typescript": "5.6.3", - "vite": "^5.4.10", + "vite": "^5.4.11", "vue-tsc": "^2.0.26" } } diff --git a/examples/vue/zod/package.json b/examples/vue/zod/package.json index 7b6949680..9700b9452 100644 --- a/examples/vue/zod/package.json +++ b/examples/vue/zod/package.json @@ -18,7 +18,7 @@ "devDependencies": { "@vitejs/plugin-vue": "^5.1.5", "typescript": "5.6.3", - "vite": "^5.4.10", + "vite": "^5.4.11", "vue-tsc": "^2.0.26" } } diff --git a/package.json b/package.json index 2c8b9ad36..cd675ac5a 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "typescript53": "npm:typescript@5.3", "typescript54": "npm:typescript@5.4", "typescript55": "npm:typescript@5.5", - "vite": "^5.4.10", + "vite": "^5.4.11", "vitest": "^2.1.4", "vue": "^3.3.4" } diff --git a/packages/form-core/src/FormApi.ts b/packages/form-core/src/FormApi.ts index 5acac6e5f..49470fbd8 100644 --- a/packages/form-core/src/FormApi.ts +++ b/packages/form-core/src/FormApi.ts @@ -366,7 +366,7 @@ export class FormApi< * * **Note:** * Do not use `state` directly, as it is not reactive. - * Please use form.useStore() utility to subscribe to state + * Please use useStore(form.store) utility to subscribe to state */ state!: FormState /** diff --git a/packages/react-form/eslint.config.js b/packages/react-form/eslint.config.js index 95cf4ac46..25280e3e6 100644 --- a/packages/react-form/eslint.config.js +++ b/packages/react-form/eslint.config.js @@ -2,6 +2,8 @@ import pluginReact from '@eslint-react/eslint-plugin' // @ts-expect-error +import reactCompiler from 'eslint-plugin-react-compiler' +// @ts-expect-error import pluginReactHooks from 'eslint-plugin-react-hooks' import rootConfig from '../../eslint.config.js' @@ -14,10 +16,12 @@ export default [ { plugins: { 'react-hooks': pluginReactHooks, + 'react-compiler': reactCompiler, }, rules: { 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', + 'react-compiler/react-compiler': 'error', }, }, ] diff --git a/packages/react-form/package.json b/packages/react-form/package.json index f8edcabe8..2ed40d7aa 100644 --- a/packages/react-form/package.json +++ b/packages/react-form/package.json @@ -92,9 +92,10 @@ "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.3", + "eslint-plugin-react-compiler": "^19.0.0-beta-0dec889-20241115", "react": "^18.3.1", "react-dom": "^18.3.1", - "vite": "^5.4.10" + "vite": "^5.4.11" }, "peerDependencies": { "@tanstack/start": "^1.43.13", diff --git a/packages/react-form/src/useField.tsx b/packages/react-form/src/useField.tsx index 01dcd6666..681351dc6 100644 --- a/packages/react-form/src/useField.tsx +++ b/packages/react-form/src/useField.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react' +import React, { useMemo, useState } from 'react' import { useStore } from '@tanstack/react-store' import { FieldApi, functionalUpdate } from '@tanstack/form-core' import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect' @@ -183,5 +183,15 @@ export const Field = (< >): ReactNode => { const fieldApi = useField(fieldOptions as any) - return (<>{functionalUpdate(children, fieldApi as any)}) as never + const jsxToDisplay = useMemo( + () => functionalUpdate(children, fieldApi as any), + /** + * The reason this exists is to fix an issue with the React Compiler. + * Namely, functionalUpdate is memoized where it checks for `fieldApi`, which is a static type. + * This means that when `state.value` changes, it does not trigger a re-render. The useMemo explicitly fixes this problem + */ + // eslint-disable-next-line react-hooks/exhaustive-deps + [children, fieldApi, fieldApi.state.value, fieldApi.state.meta], + ) + return (<>{jsxToDisplay}) as never }) satisfies FunctionComponent> diff --git a/packages/react-form/src/useForm.tsx b/packages/react-form/src/useForm.tsx index 63738f43b..d4a705012 100644 --- a/packages/react-form/src/useForm.tsx +++ b/packages/react-form/src/useForm.tsx @@ -1,9 +1,9 @@ import { FormApi, functionalUpdate } from '@tanstack/form-core' import { useStore } from '@tanstack/react-store' import React, { useState } from 'react' -import { Field, useField } from './useField' +import { Field } from './useField' import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect' -import type { ReactNode } from 'react' +import type { PropsWithChildren, ReactNode } from 'react' import type { FieldComponent, UseField } from './useField' import type { NoInfer } from '@tanstack/react-store' import type { FormOptions, FormState, Validator } from '@tanstack/form-core' @@ -46,6 +46,19 @@ export type ReactFormExtendedApi< TFormValidator extends Validator | undefined = undefined, > = FormApi & ReactFormApi +function LocalSubscribe({ + form, + selector, + children, +}: PropsWithChildren<{ + form: FormApi + selector: (state: FormState) => FormState +}>) { + const data = useStore(form.store, selector) + + return functionalUpdate(children, data) +} + /** * A custom React Hook that returns an extended instance of the `FormApi` class. * @@ -63,17 +76,13 @@ export function useForm< extendedApi.Field = function APIField(props) { return } - // eslint-disable-next-line react-hooks/rules-of-hooks - extendedApi.useField = (props) => useField({ ...props, form: api }) - extendedApi.useStore = (selector) => { - // eslint-disable-next-line react-hooks/rules-of-hooks - return useStore(api.store, selector) - } - extendedApi.Subscribe = (props) => { - return functionalUpdate( - props.children, - // eslint-disable-next-line react-hooks/rules-of-hooks - useStore(api.store, props.selector), + extendedApi.Subscribe = (props: any) => { + return ( + ) } @@ -82,7 +91,7 @@ export function useForm< useIsomorphicLayoutEffect(formApi.mount, []) - formApi.useStore((state) => state.isSubmitting) + useStore(formApi.store, (state) => state.isSubmitting) /** * formApi.update should not have any side effects. Think of it like a `useRef` diff --git a/packages/react-form/tests/useField.test.tsx b/packages/react-form/tests/useField.test.tsx index 932fdbeac..651537346 100644 --- a/packages/react-form/tests/useField.test.tsx +++ b/packages/react-form/tests/useField.test.tsx @@ -3,9 +3,10 @@ import { describe, expect, it, vi } from 'vitest' import { render, waitFor } from '@testing-library/react' import { userEvent } from '@testing-library/user-event' import { StrictMode } from 'react' +import { useStore } from '@tanstack/react-store' import { useForm } from '../src/index' import { sleep } from './utils' -import type { FieldApi, FormApi } from '../src/index' +import type { FieldApi } from '../src/index' const user = userEvent.setup() @@ -827,7 +828,7 @@ describe('useField', () => { }, }, }) - const errors = form.useStore((s) => s.errors) + const errors = useStore(form.store, (s) => s.errors) return ( <> diff --git a/packages/react-form/tests/useForm.test.tsx b/packages/react-form/tests/useForm.test.tsx index 6a7eeb655..7dfb3c456 100644 --- a/packages/react-form/tests/useForm.test.tsx +++ b/packages/react-form/tests/useForm.test.tsx @@ -2,6 +2,7 @@ import * as React from 'react' import { describe, expect, it, vi } from 'vitest' import { render, waitFor } from '@testing-library/react' import { userEvent } from '@testing-library/user-event' +import { useStore } from '@tanstack/react-store' import { useForm } from '../src/index' import { sleep } from './utils' @@ -175,7 +176,7 @@ describe('useForm', () => { }, }, }) - const onChangeError = form.useStore((s) => s.errorMap.onChange) + const onChangeError = useStore(form.store, (s) => s.errorMap.onChange) return ( <> { }, }) - const errors = form.useStore((s) => s.errors) + const errors = useStore(form.store, (s) => s.errors) return ( <> { value.firstName === 'other' ? error : undefined, }, }) - const errors = form.useStore((s) => s.errorMap) + const errors = useStore(form.store, (s) => s.errorMap) return ( <> { }, }) - const errors = form.useStore((s) => s.errorMap) + const errors = useStore(form.store, (s) => s.errorMap) return ( <> { }, }) - const errors = form.useStore((s) => s.errorMap) + const errors = useStore(form.store, (s) => s.errorMap) return ( <> { }, }, }) - const errors = form.useStore((s) => s.errorMap) + const errors = useStore(form.store, (s) => s.errorMap) return ( <> { }, }) - const errors = form.useStore((s) => s.errorMap) + const errors = useStore(form.store, (s) => s.errorMap) return ( <> @@ -572,7 +573,7 @@ describe('useForm', () => { }, }, }) - const errors = form.useStore((s) => s.errorMap) + const errors = useStore(form.store, (s) => s.errorMap) return ( <> @@ -633,7 +634,7 @@ describe('useForm', () => { }, }, }) - const errors = form.useStore((s) => s.errors) + const errors = useStore(form.store, (s) => s.errors) return ( <> @@ -686,7 +687,7 @@ describe('useForm', () => { }, }) - const onChangeError = form.useStore((s) => s.errorMap.onChange) + const onChangeError = useStore(form.store, (s) => s.errorMap.onChange) return ( <> diff --git a/packages/solid-form/package.json b/packages/solid-form/package.json index 2e642fe93..b745ec003 100644 --- a/packages/solid-form/package.json +++ b/packages/solid-form/package.json @@ -61,7 +61,7 @@ }, "devDependencies": { "solid-js": "^1.9.3", - "vite": "^5.4.10", + "vite": "^5.4.11", "vite-plugin-solid": "^2.10.2" }, "peerDependencies": { diff --git a/packages/vue-form/package.json b/packages/vue-form/package.json index 477fede9a..5cf70d6f1 100644 --- a/packages/vue-form/package.json +++ b/packages/vue-form/package.json @@ -58,7 +58,7 @@ }, "devDependencies": { "@vitejs/plugin-vue": "^5.1.5", - "vite": "^5.4.10", + "vite": "^5.4.11", "vue": "^3.3.4" }, "peerDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5d44a54bc..652b56b28 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: version: 0.8.10(solid-js@1.9.3) '@tanstack/config': specifier: ^0.14.0 - version: 0.14.0(@types/node@20.17.5)(esbuild@0.24.0)(eslint@9.14.0(jiti@2.4.0))(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 0.14.0(@types/node@20.17.5)(esbuild@0.24.0)(eslint@9.14.0(jiti@2.4.0))(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) '@testing-library/jest-dom': specifier: ^6.6.3 version: 6.6.3 @@ -96,8 +96,8 @@ importers: specifier: npm:typescript@5.5 version: typescript@5.5.4 vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vitest: specifier: ^2.1.4 version: 2.1.4(@types/node@20.17.5)(jsdom@25.0.1)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) @@ -393,8 +393,8 @@ importers: version: 3.2.1 devDependencies: vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) examples/lit/ui-libraries: dependencies: @@ -409,8 +409,8 @@ importers: version: 3.2.1 devDependencies: vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) examples/react/array: dependencies: @@ -432,10 +432,41 @@ importers: version: 18.3.1 '@vitejs/plugin-react': specifier: ^4.3.3 - version: 4.3.3(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + + examples/react/compiler: + dependencies: + '@tanstack/react-form': + specifier: ^0.38.0 + version: link:../../../packages/react-form + react: + specifier: ^19.0.0-rc.1 + version: 19.0.0-rc-5dcb0097-20240918 + react-dom: + specifier: ^19.0.0-rc.1 + version: 19.0.0-rc-5dcb0097-20240918(react@19.0.0-rc-5dcb0097-20240918) + devDependencies: + '@types/react': + specifier: npm:types-react@rc + version: types-react@19.0.0-rc.1 + '@types/react-dom': + specifier: npm:types-react-dom@rc + version: types-react-dom@19.0.0-rc.1 + '@vitejs/plugin-react': + specifier: ^4.3.3 + version: 4.3.3(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + babel-plugin-react-compiler: + specifier: ^19.0.0-beta-0dec889-20241115 + version: 19.0.0-beta-df7b47d-20241124 + eslint-plugin-react-compiler: + specifier: ^19.0.0-beta-0dec889-20241115 + version: 19.0.0-beta-df7b47d-20241124(eslint@9.14.0(jiti@2.4.0)) + vite: + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) examples/react/field-errors-from-form-validators: dependencies: @@ -457,16 +488,19 @@ importers: version: 18.3.1 '@vitejs/plugin-react': specifier: ^4.3.3 - version: 4.3.3(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) examples/react/next-server-actions: dependencies: '@tanstack/react-form': specifier: ^0.38.0 version: link:../../../packages/react-form + '@tanstack/react-store': + specifier: ^0.5.6 + version: 0.5.6(react-dom@19.0.0-rc-5dcb0097-20240918(react@19.0.0-rc-5dcb0097-20240918))(react@19.0.0-rc-5dcb0097-20240918) next: specifier: 15.0.3 version: 15.0.3(react-dom@19.0.0-rc-5dcb0097-20240918(react@19.0.0-rc-5dcb0097-20240918))(react@19.0.0-rc-5dcb0097-20240918)(sass@1.80.7) @@ -513,10 +547,10 @@ importers: version: 18.3.1 '@vitejs/plugin-react': specifier: ^4.3.3 - version: 4.3.3(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) examples/react/remix: dependencies: @@ -532,6 +566,9 @@ importers: '@tanstack/react-form': specifier: ^0.38.0 version: link:../../../packages/react-form + '@tanstack/react-store': + specifier: ^0.5.6 + version: 0.5.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) isbot: specifier: ^5.1.17 version: 5.1.17 @@ -544,7 +581,7 @@ importers: devDependencies: '@remix-run/dev': specifier: ^2.11.2 - version: 2.14.0(@remix-run/react@2.14.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@remix-run/serve@2.14.0(typescript@5.6.3))(@types/node@20.17.5)(babel-plugin-macros@3.1.0)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0)(typescript@5.6.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0)) + version: 2.14.0(@remix-run/react@2.14.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@remix-run/serve@2.14.0(typescript@5.6.3))(@types/node@20.17.5)(babel-plugin-macros@3.1.0)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0)(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0)) '@types/react': specifier: ^18.3.3 version: 18.3.12 @@ -555,11 +592,11 @@ importers: specifier: 5.6.3 version: 5.6.3 vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) vite-tsconfig-paths: specifier: ^5.1.2 - version: 5.1.2(typescript@5.6.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0)) + version: 5.1.2(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0)) examples/react/simple: dependencies: @@ -581,10 +618,10 @@ importers: version: 18.3.1 '@vitejs/plugin-react': specifier: ^4.3.3 - version: 4.3.3(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) examples/react/tanstack-start: dependencies: @@ -597,9 +634,12 @@ importers: '@tanstack/react-router': specifier: ^1.81.1 version: 1.81.1(@tanstack/router-generator@1.79.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-store': + specifier: ^0.5.6 + version: 0.5.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/start': specifier: ^1.81.1 - version: 1.81.1(@types/node@20.17.5)(encoding@0.1.13)(ioredis@5.4.1)(less@4.2.0)(magicast@0.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(webpack-sources@3.2.3)(webpack@5.96.1(@swc/core@1.7.42(@swc/helpers@0.5.13))(esbuild@0.24.0)) + version: 1.81.1(@types/node@20.17.5)(encoding@0.1.13)(ioredis@5.4.1)(less@4.2.0)(magicast@0.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(webpack-sources@3.2.3)(webpack@5.96.1(@swc/core@1.7.42(@swc/helpers@0.5.13))(esbuild@0.24.0)) react: specifier: ^18.3.1 version: 18.3.1 @@ -621,16 +661,16 @@ importers: version: 18.3.1 '@vitejs/plugin-react': specifier: ^4.3.3 - version: 4.3.3(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vite-tsconfig-paths: specifier: ^5.1.2 - version: 5.1.2(typescript@5.6.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 5.1.2(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) examples/react/ui-libraries: dependencies: @@ -679,16 +719,16 @@ importers: version: 18.3.1 '@vitejs/plugin-react': specifier: ^4.3.3 - version: 4.3.3(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0)) '@vitejs/plugin-react-swc': specifier: ^3.7.1 - version: 3.7.1(@swc/helpers@0.5.13)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0)) + version: 3.7.1(@swc/helpers@0.5.13)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) examples/react/valibot: dependencies: @@ -716,10 +756,10 @@ importers: version: 18.3.1 '@vitejs/plugin-react': specifier: ^4.3.3 - version: 4.3.3(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) examples/react/yup: dependencies: @@ -747,10 +787,10 @@ importers: version: 18.3.1 '@vitejs/plugin-react': specifier: ^4.3.3 - version: 4.3.3(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) examples/react/zod: dependencies: @@ -778,10 +818,10 @@ importers: version: 18.3.1 '@vitejs/plugin-react': specifier: ^4.3.3 - version: 4.3.3(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) examples/solid/array: dependencies: @@ -796,11 +836,11 @@ importers: specifier: 5.6.3 version: 5.6.3 vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) examples/solid/simple: dependencies: @@ -815,11 +855,11 @@ importers: specifier: 5.6.3 version: 5.6.3 vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) examples/solid/valibot: dependencies: @@ -840,11 +880,11 @@ importers: specifier: 5.6.3 version: 5.6.3 vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) examples/solid/yup: dependencies: @@ -865,11 +905,11 @@ importers: specifier: 5.6.3 version: 5.6.3 vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) examples/solid/zod: dependencies: @@ -890,11 +930,11 @@ importers: specifier: 5.6.3 version: 5.6.3 vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) examples/vue/array: dependencies: @@ -907,13 +947,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.1.5 - version: 5.1.5(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 5.1.5(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vue-tsc: specifier: ^2.0.26 version: 2.1.10(typescript@5.6.3) @@ -929,13 +969,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.1.5 - version: 5.1.5(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 5.1.5(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vue-tsc: specifier: ^2.0.26 version: 2.1.10(typescript@5.6.3) @@ -957,13 +997,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.1.5 - version: 5.1.5(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 5.1.5(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vue-tsc: specifier: ^2.0.26 version: 2.1.10(typescript@5.6.3) @@ -985,13 +1025,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.1.5 - version: 5.1.5(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 5.1.5(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vue-tsc: specifier: ^2.0.26 version: 2.1.10(typescript@5.6.3) @@ -1013,13 +1053,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.1.5 - version: 5.1.5(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 5.1.5(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vue-tsc: specifier: ^2.0.26 version: 2.1.10(typescript@5.6.3) @@ -1103,7 +1143,7 @@ importers: devDependencies: '@tanstack/start': specifier: ^1.81.1 - version: 1.81.1(@types/node@20.17.5)(encoding@0.1.13)(ioredis@5.4.1)(less@4.2.0)(magicast@0.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(webpack-sources@3.2.3)(webpack@5.96.1(@swc/core@1.7.42(@swc/helpers@0.5.13))(esbuild@0.24.0)) + version: 1.81.1(@types/node@20.17.5)(encoding@0.1.13)(ioredis@5.4.1)(less@4.2.0)(magicast@0.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(webpack-sources@3.2.3)(webpack@5.96.1(@swc/core@1.7.42(@swc/helpers@0.5.13))(esbuild@0.24.0)) '@types/react': specifier: ^18.3.3 version: 18.3.12 @@ -1112,7 +1152,10 @@ importers: version: 18.3.1 '@vitejs/plugin-react': specifier: ^4.3.3 - version: 4.3.3(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + eslint-plugin-react-compiler: + specifier: ^19.0.0-beta-0dec889-20241115 + version: 19.0.0-beta-df7b47d-20241124(eslint@9.14.0(jiti@2.4.0)) react: specifier: ^18.3.1 version: 18.3.1 @@ -1120,8 +1163,8 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) packages/solid-form: dependencies: @@ -1136,11 +1179,11 @@ importers: specifier: ^1.9.3 version: 1.9.3 vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + version: 2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) packages/valibot-form-adapter: dependencies: @@ -1166,10 +1209,10 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.1.5 - version: 5.1.5(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.7.2)) + version: 5.1.5(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.7.2)) vite: - specifier: ^5.4.10 - version: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vue: specifier: ^3.3.4 version: 3.5.12(typescript@5.7.2) @@ -5274,6 +5317,9 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124: + resolution: {integrity: sha512-93iSASR20HNsotcOTQ+KPL0zpgfRFVWL86AtXpmHp995HuMVnC9femd8Winr3GxkPEh8lEOyaw3nqY4q2HUm5w==} + babel-preset-solid@1.9.3: resolution: {integrity: sha512-jvlx5wDp8s+bEF9sGFw/84SInXOA51ttkUEroQziKMbxplXThVKt83qB6bDTa1HuLNatdU9FHpFOiQWs1tLQIg==} peerDependencies: @@ -6181,6 +6227,12 @@ packages: peerDependencies: eslint: '>=8.23.0' + eslint-plugin-react-compiler@19.0.0-beta-df7b47d-20241124: + resolution: {integrity: sha512-82PfnllC8jP/68KdLAbpWuYTcfmtGLzkqy2IW85WopKMTr+4rdQpp+lfliQ/QE79wWrv/dRoADrk3Pdhq25nTw==} + engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} + peerDependencies: + eslint: '>=7' + eslint-plugin-react-debug@1.16.1: resolution: {integrity: sha512-AijumibZ+3hBYCGBEeD3GQse5TPnq9z6bX0qfsFwCwWjkW+siL2EEGvaxT7UZp2mcFMvoRJT3E4Jsemn6g0AGw==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} @@ -6748,6 +6800,12 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true + hermes-estree@0.25.1: + resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} + + hermes-parser@0.25.1: + resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} + hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} @@ -10261,37 +10319,6 @@ packages: vite: optional: true - vite@5.4.10: - resolution: {integrity: sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - vite@5.4.11: resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} engines: {node: ^18.0.0 || >=20.0.0} @@ -13222,7 +13249,7 @@ snapshots: '@popperjs/core@2.11.8': {} - '@remix-run/dev@2.14.0(@remix-run/react@2.14.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@remix-run/serve@2.14.0(typescript@5.6.3))(@types/node@20.17.5)(babel-plugin-macros@3.1.0)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0)(typescript@5.6.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0))': + '@remix-run/dev@2.14.0(@remix-run/react@2.14.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@remix-run/serve@2.14.0(typescript@5.6.3))(@types/node@20.17.5)(babel-plugin-macros@3.1.0)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0)(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0))': dependencies: '@babel/core': 7.26.0 '@babel/generator': 7.26.2 @@ -13283,7 +13310,7 @@ snapshots: optionalDependencies: '@remix-run/serve': 2.14.0(typescript@5.6.3) typescript: 5.6.3 - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -13786,7 +13813,7 @@ snapshots: '@tanstack/store': 0.5.5 tslib: 2.8.1 - '@tanstack/config@0.14.0(@types/node@20.17.5)(esbuild@0.24.0)(eslint@9.14.0(jiti@2.4.0))(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))': + '@tanstack/config@0.14.0(@types/node@20.17.5)(esbuild@0.24.0)(eslint@9.14.0(jiti@2.4.0))(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))': dependencies: '@commitlint/parse': 19.5.0 '@eslint/js': 9.14.0 @@ -13809,9 +13836,9 @@ snapshots: typedoc-plugin-markdown: 4.2.10(typedoc@0.26.11(typescript@5.6.3)) typescript-eslint: 8.12.2(eslint@9.14.0(jiti@2.4.0))(typescript@5.6.3) v8flags: 4.0.1 - vite-plugin-dts: 4.0.3(@types/node@20.17.5)(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) - vite-plugin-externalize-deps: 0.8.0(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) - vite-tsconfig-paths: 5.1.2(typescript@5.6.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + vite-plugin-dts: 4.0.3(@types/node@20.17.5)(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + vite-plugin-externalize-deps: 0.8.0(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + vite-tsconfig-paths: 5.1.2(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) transitivePeerDependencies: - '@types/node' - esbuild @@ -13853,6 +13880,13 @@ snapshots: react-dom: 18.3.1(react@18.3.1) use-sync-external-store: 1.2.2(react@18.3.1) + '@tanstack/react-store@0.5.6(react-dom@19.0.0-rc-5dcb0097-20240918(react@19.0.0-rc-5dcb0097-20240918))(react@19.0.0-rc-5dcb0097-20240918)': + dependencies: + '@tanstack/store': 0.5.5 + react: 19.0.0-rc-5dcb0097-20240918 + react-dom: 19.0.0-rc-5dcb0097-20240918(react@19.0.0-rc-5dcb0097-20240918) + use-sync-external-store: 1.2.2(react@19.0.0-rc-5dcb0097-20240918) + '@tanstack/router-generator@1.79.0': dependencies: '@tanstack/virtual-file-routes': 1.64.0 @@ -13860,7 +13894,7 @@ snapshots: tsx: 4.19.2 zod: 3.23.8 - '@tanstack/router-plugin@1.79.0(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(webpack-sources@3.2.3)(webpack@5.96.1(@swc/core@1.7.42(@swc/helpers@0.5.13))(esbuild@0.24.0))': + '@tanstack/router-plugin@1.79.0(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(webpack-sources@3.2.3)(webpack@5.96.1(@swc/core@1.7.42(@swc/helpers@0.5.13))(esbuild@0.24.0))': dependencies: '@babel/core': 7.26.0 '@babel/generator': 7.26.2 @@ -13881,7 +13915,7 @@ snapshots: unplugin: 1.15.0(webpack-sources@3.2.3) zod: 3.23.8 optionalDependencies: - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) webpack: 5.96.1(@swc/core@1.7.42(@swc/helpers@0.5.13))(esbuild@0.24.0) transitivePeerDependencies: - supports-color @@ -13910,15 +13944,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/start@1.81.1(@types/node@20.17.5)(encoding@0.1.13)(ioredis@5.4.1)(less@4.2.0)(magicast@0.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(webpack-sources@3.2.3)(webpack@5.96.1(@swc/core@1.7.42(@swc/helpers@0.5.13))(esbuild@0.24.0))': + '@tanstack/start@1.81.1(@types/node@20.17.5)(encoding@0.1.13)(ioredis@5.4.1)(less@4.2.0)(magicast@0.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(webpack-sources@3.2.3)(webpack@5.96.1(@swc/core@1.7.42(@swc/helpers@0.5.13))(esbuild@0.24.0))': dependencies: '@tanstack/react-cross-context': 1.74.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-router': 1.81.1(@tanstack/router-generator@1.79.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/router-generator': 1.79.0 - '@tanstack/router-plugin': 1.79.0(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(webpack-sources@3.2.3)(webpack@5.96.1(@swc/core@1.7.42(@swc/helpers@0.5.13))(esbuild@0.24.0)) + '@tanstack/router-plugin': 1.79.0(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(webpack-sources@3.2.3)(webpack@5.96.1(@swc/core@1.7.42(@swc/helpers@0.5.13))(esbuild@0.24.0)) '@tanstack/start-vite-plugin': 1.79.0 '@vinxi/react': 0.2.5 - '@vinxi/react-server-dom': 0.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + '@vinxi/react-server-dom': 0.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) '@vinxi/server-components': 0.4.3(vinxi@0.4.3(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)(webpack-sources@3.2.3)) '@vinxi/server-functions': 0.4.3(vinxi@0.4.3(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)(webpack-sources@3.2.3)) import-meta-resolve: 4.1.0 @@ -14418,7 +14452,7 @@ snapshots: lodash: 4.17.21 mlly: 1.7.2 outdent: 0.8.0 - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) vite-node: 1.6.0(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) transitivePeerDependencies: - '@types/node' @@ -14487,12 +14521,12 @@ snapshots: tslib: 2.8.1 vinxi: 0.4.3(@types/node@20.17.5)(encoding@0.1.13)(ioredis@5.4.1)(less@4.2.0)(magicast@0.3.5)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)(webpack-sources@3.2.3) - '@vinxi/react-server-dom@0.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))': + '@vinxi/react-server-dom@0.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))': dependencies: acorn-loose: 8.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) '@vinxi/react@0.2.5': {} @@ -14522,43 +14556,43 @@ snapshots: dependencies: vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) - '@vitejs/plugin-react-swc@3.7.1(@swc/helpers@0.5.13)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0))': + '@vitejs/plugin-react-swc@3.7.1(@swc/helpers@0.5.13)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0))': dependencies: '@swc/core': 1.7.42(@swc/helpers@0.5.13) - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) transitivePeerDependencies: - '@swc/helpers' - '@vitejs/plugin-react@4.3.3(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0))': + '@vitejs/plugin-react@4.3.3(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.3(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))': + '@vitejs/plugin-react@4.3.3(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.1.5(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': + '@vitejs/plugin-vue@5.1.5(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': dependencies: - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vue: 3.5.12(typescript@5.6.3) - '@vitejs/plugin-vue@5.1.5(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.7.2))': + '@vitejs/plugin-vue@5.1.5(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))(vue@3.5.12(typescript@5.7.2))': dependencies: - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vue: 3.5.12(typescript@5.7.2) '@vitest/coverage-istanbul@2.1.4(vitest@2.1.4(@types/node@20.17.5)(jsdom@25.0.1)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))': @@ -14584,13 +14618,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.4(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))': + '@vitest/mocker@2.1.4(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0))': dependencies: '@vitest/spy': 2.1.4 estree-walker: 3.0.3 magic-string: 0.30.12 optionalDependencies: - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) '@vitest/pretty-format@2.1.4': dependencies: @@ -15126,6 +15160,10 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124: + dependencies: + '@babel/types': 7.26.0 + babel-preset-solid@1.9.3(@babel/core@7.26.0): dependencies: '@babel/core': 7.26.0 @@ -16177,6 +16215,18 @@ snapshots: minimatch: 9.0.5 semver: 7.6.3 + eslint-plugin-react-compiler@19.0.0-beta-df7b47d-20241124(eslint@9.14.0(jiti@2.4.0)): + dependencies: + '@babel/core': 7.26.0 + '@babel/parser': 7.26.2 + '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) + eslint: 9.14.0(jiti@2.4.0) + hermes-parser: 0.25.1 + zod: 3.23.8 + zod-validation-error: 3.4.0(zod@3.23.8) + transitivePeerDependencies: + - supports-color + eslint-plugin-react-debug@1.16.1(eslint@9.14.0(jiti@2.4.0))(typescript@5.6.3): dependencies: '@eslint-react/ast': 1.16.1(eslint@9.14.0(jiti@2.4.0))(typescript@5.6.3) @@ -16951,6 +17001,12 @@ snapshots: he@1.2.0: {} + hermes-estree@0.25.1: {} + + hermes-parser@0.25.1: + dependencies: + hermes-estree: 0.25.1 + hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 @@ -20792,6 +20848,10 @@ snapshots: dependencies: react: 18.3.1 + use-sync-external-store@1.2.2(react@19.0.0-rc-5dcb0097-20240918): + dependencies: + react: 19.0.0-rc-5dcb0097-20240918 + util-deprecate@1.0.2: {} util@0.12.5: @@ -20896,7 +20956,7 @@ snapshots: unctx: 2.3.1(webpack-sources@3.2.3) unenv: 1.10.0 unstorage: 1.13.0(ioredis@5.4.1) - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) zod: 3.23.8 transitivePeerDependencies: - '@azure/app-configuration' @@ -20937,7 +20997,7 @@ snapshots: debug: 4.3.7 pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) transitivePeerDependencies: - '@types/node' - less @@ -20954,7 +21014,7 @@ snapshots: cac: 6.7.14 debug: 4.3.7 pathe: 1.1.2 - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) transitivePeerDependencies: - '@types/node' - less @@ -20966,7 +21026,7 @@ snapshots: - supports-color - terser - vite-plugin-dts@4.0.3(@types/node@20.17.5)(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)): + vite-plugin-dts@4.0.3(@types/node@20.17.5)(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)): dependencies: '@microsoft/api-extractor': 7.47.4(@types/node@20.17.5) '@rollup/pluginutils': 5.1.3(rollup@4.26.0) @@ -20980,17 +21040,17 @@ snapshots: typescript: 5.6.3 vue-tsc: 2.0.29(typescript@5.6.3) optionalDependencies: - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-externalize-deps@0.8.0(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)): + vite-plugin-externalize-deps@0.8.0(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)): dependencies: - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) - vite-plugin-solid@2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)): + vite-plugin-solid@2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)): dependencies: '@babel/core': 7.26.0 '@types/babel__core': 7.20.5 @@ -20998,40 +21058,40 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.3 solid-refresh: 0.6.3(solid-js@1.9.3) - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) - vitefu: 0.2.5(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vitefu: 0.2.5(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) optionalDependencies: '@testing-library/jest-dom': 6.6.3 transitivePeerDependencies: - supports-color - vite-tsconfig-paths@5.1.2(typescript@5.6.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0)): + vite-tsconfig-paths@5.1.2(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0)): dependencies: debug: 4.3.7 globrex: 0.1.2 tsconfck: 3.1.4(typescript@5.6.3) optionalDependencies: - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@5.1.2(typescript@5.6.3)(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)): + vite-tsconfig-paths@5.1.2(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)): dependencies: debug: 4.3.7 globrex: 0.1.2 tsconfck: 3.1.4(typescript@5.6.3) optionalDependencies: - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0): + vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.48))(terser@5.36.0): dependencies: esbuild: 0.21.5 postcss: 8.4.48 - rollup: 4.24.3 + rollup: 4.26.0 optionalDependencies: '@types/node': 20.17.5 fsevents: 2.3.3 @@ -21040,19 +21100,6 @@ snapshots: sugarss: 4.0.1(postcss@8.4.48) terser: 5.36.0 - vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.48 - rollup: 4.24.3 - optionalDependencies: - '@types/node': 20.17.5 - fsevents: 2.3.3 - less: 4.2.0 - sass: 1.80.7 - sugarss: 4.0.1(postcss@8.4.49) - terser: 5.36.0 - vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0): dependencies: esbuild: 0.21.5 @@ -21066,14 +21113,14 @@ snapshots: sugarss: 4.0.1(postcss@8.4.49) terser: 5.36.0 - vitefu@0.2.5(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)): + vitefu@0.2.5(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)): optionalDependencies: - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vitest@2.1.4(@types/node@20.17.5)(jsdom@25.0.1)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0): dependencies: '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) + '@vitest/mocker': 2.1.4(vite@5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) '@vitest/pretty-format': 2.1.4 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -21089,7 +21136,7 @@ snapshots: tinyexec: 0.3.1 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.10(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite: 5.4.11(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vite-node: 2.1.4(@types/node@20.17.5)(less@4.2.0)(sass@1.80.7)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) why-is-node-running: 2.3.0 optionalDependencies: