diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 5ef0f1569..000000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,100 +0,0 @@ -// @ts-check - -/** @type {import('eslint').Linter.Config} */ -const config = { - root: true, - reportUnusedDisableDirectives: true, - ignorePatterns: ['**/build', '**/coverage', '**/dist'], - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint', 'import'], - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:@typescript-eslint/stylistic', - 'plugin:import/recommended', - 'plugin:import/typescript', - 'prettier', - ], - env: { - browser: true, - es2020: true, - }, - parserOptions: { - tsconfigRootDir: __dirname, - project: true, - sourceType: 'module', - ecmaVersion: 2020, - }, - settings: { - 'import/parsers': { - '@typescript-eslint/parser': ['.ts', '.tsx'], - }, - 'import/resolver': { - typescript: true, - }, - react: { - version: 'detect', - }, - }, - rules: { - '@typescript-eslint/array-type': 'off', - '@typescript-eslint/ban-types': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - '@typescript-eslint/consistent-type-definitions': 'off', - '@typescript-eslint/consistent-type-imports': [ - 'error', - { prefer: 'type-imports' }, - ], - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/method-signature-style': 'off', // ENABLE - '@typescript-eslint/no-empty-interface': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/no-unnecessary-condition': 'error', - '@typescript-eslint/no-unused-vars': 'off', - '@typescript-eslint/no-inferrable-types': [ - 'error', - { ignoreParameters: true }, - ], - 'import/default': 'off', - 'import/export': 'off', - 'import/namespace': 'off', - 'import/newline-after-import': 'error', - 'import/no-cycle': 'error', - 'import/no-duplicates': 'off', - 'import/no-named-as-default-member': 'off', - 'import/no-unresolved': ['error', { ignore: ['^@tanstack/'] }], - 'import/no-unused-modules': ['off', { unusedExports: true }], - 'import/order': [ - 'error', - { - groups: [ - 'builtin', - 'external', - 'internal', - 'parent', - 'sibling', - 'index', - 'object', - 'type', - ], - }, - ], - 'no-async-promise-executor': 'off', - 'no-empty': 'off', - 'no-redeclare': 'off', - 'no-shadow': 'error', - 'no-undef': 'off', - 'sort-imports': ['error', { ignoreDeclarationSort: true }], - }, - overrides: [ - { - files: ['**/*.test.{ts,tsx}'], - rules: { - '@typescript-eslint/no-unnecessary-condition': 'off', - }, - }, - ], -} - -module.exports = config diff --git a/.nvmrc b/.nvmrc index eb800ed45..5f09eed8d 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v18.19.0 +v18.20.3 diff --git a/docs/config.json b/docs/config.json index 059eb8fae..2ef5f3c2b 100644 --- a/docs/config.json +++ b/docs/config.json @@ -160,85 +160,78 @@ { "label": "API Reference", "children": [ - { - "label": "FormApi", - "to": "reference/formApi" - }, - { - "label": "FieldApi", - "to": "reference/fieldApi" - }, - { - "label": "Types", - "to": "reference/types" - } + {"label": "JavaScript Reference", "to": "reference/index"}, + {"label": "Classes / FieldApi", "to": "reference/fieldapi"}, + {"label": "Classes / FormApi", "to": "reference/formapi"}, + {"label": "Functions / formOptions", "to": "reference/formoptions"}, + {"label": "Functions / mergeForm", "to": "reference/mergeform"}, + {"label": "Interfaces / FieldApiOptions", "to": "reference/fieldapioptions"}, + {"label": "Interfaces / FieldOptions", "to": "reference/fieldoptions"}, + {"label": "Interfaces / FieldValidators", "to": "reference/fieldvalidators"}, + {"label": "Interfaces / FormOptions", "to": "reference/formoptions"}, + {"label": "Interfaces / FormValidators", "to": "reference/formvalidators"}, + {"label": "Types / DeepKeys", "to": "reference/deepkeys"}, + {"label": "Types / DeepValue", "to": "reference/deepvalue"}, + {"label": "Types / FieldInfo", "to": "reference/fieldinfo"}, + {"label": "Types / FieldMeta", "to": "reference/fieldmeta"}, + {"label": "Types / FieldState", "to": "reference/fieldstate"}, + {"label": "Types / FormState", "to": "reference/formstate"}, + {"label": "Types / Updater", "to": "reference/updater"}, + {"label": "Types / UpdaterFn", "to": "reference/updaterfn"}, + {"label": "Types / ValidationError", "to": "reference/validationerror"}, + {"label": "Types / ValidationMeta", "to": "reference/validationmeta"} ], "frameworks": [ { "label": "react", "children": [ - { - "label": "useForm", - "to": "framework/react/reference/useForm" - }, - { - "label": "useField", - "to": "framework/react/reference/useField" - }, - { - "label": "Field", - "to": "framework/react/reference/Field" - }, - { - "label": "FormApi", - "to": "framework/react/reference/formApi" - }, - { - "label": "FieldApi", - "to": "framework/react/reference/fieldApi" - } + {"label": "React Reference", "to": "framework/react/reference/index"}, + {"label": "Functions / createServerValidate", "to": "framework/react/reference/createservervalidate"}, + {"label": "Functions / Field", "to": "framework/react/reference/field"}, + {"label": "Functions / useField", "to": "framework/react/reference/usefield"}, + {"label": "Functions / useForm", "to": "framework/react/reference/useform"}, + {"label": "Functions / useTransform", "to": "framework/react/reference/usetransform"}, + {"label": "Types / FieldComponent", "to": "framework/react/reference/fieldcomponent"}, + {"label": "Types / UseField", "to": "framework/react/reference/usefield"}, + {"label": "Variables / initialFormState", "to": "framework/react/reference/initialformstate"} ] }, { "label": "vue", "children": [ - { - "label": "useForm", - "to": "framework/vue/reference/useForm" - }, - { - "label": "useField", - "to": "framework/vue/reference/useField" - }, - { - "label": "Field", - "to": "framework/vue/reference/Field" - }, - { - "label": "FormApi", - "to": "framework/vue/reference/formApi" - } + {"label": "Vue Reference", "to": "framework/vue/reference/index"}, + {"label": "Functions / Field", "to": "framework/vue/reference/field"}, + {"label": "Functions / useField", "to": "framework/vue/reference/usefield"}, + {"label": "Functions / useForm", "to": "framework/vue/reference/useform"}, + {"label": "Types / FieldComponent", "to": "framework/vue/reference/fieldcomponent"}, + {"label": "Types / UseField", "to": "framework/vue/reference/usefield"} ] }, { "label": "solid", "children": [ - { - "label": "useForm", - "to": "framework/solid/reference/createForm" - }, - { - "label": "useField", - "to": "framework/solid/reference/createField" - }, - { - "label": "Field", - "to": "framework/solid/reference/Field" - }, - { - "label": "FormApi", - "to": "framework/solid/reference/formApi" - } + {"label": "Solid Reference", "to": "framework/solid/reference/index"}, + {"label": "Functions / createField", "to": "framework/solid/reference/createfield"}, + {"label": "Functions / createForm", "to": "framework/solid/reference/createform"}, + {"label": "Functions / Field", "to": "framework/solid/reference/field"}, + {"label": "Types / CreateField", "to": "framework/solid/reference/createfield"}, + {"label": "Types / FieldComponent", "to": "framework/solid/reference/fieldcomponent"} + ] + }, + { + "label": "lit", + "children": [ + {"label": "Lit Reference", "to": "framework/lit/reference/index"}, + {"label": "Classes / TanStackFormController", "to": "framework/lit/reference/tanstackformcontroller"} + ] + }, + { + "label": "angular", + "children": [ + {"label": "Angular Reference", "to": "framework/angular/reference/index"}, + {"label": "Classes / TanStackField", "to": "framework/angular/reference/tanstackfield"}, + {"label": "Functions / injectForm", "to": "framework/angular/reference/injectform"}, + {"label": "Functions / injectStore", "to": "framework/angular/reference/injectstore"} ] } ] @@ -274,6 +267,10 @@ "label": "Valibot", "to": "framework/react/examples/valibot" }, + { + "label": "Next Server Actions", + "to": "framework/react/examples/next-server-actions" + }, { "label": "UI Libraries", "to": "framework/react/examples/ui-libraries" diff --git a/docs/framework/angular/reference/index.md b/docs/framework/angular/reference/index.md new file mode 100644 index 000000000..32586195f --- /dev/null +++ b/docs/framework/angular/reference/index.md @@ -0,0 +1,10 @@ +# @tanstack/angular-form + +## Classes + +- [TanStackField](tanstackfield.md) + +## Functions + +- [injectForm](injectform.md) +- [injectStore](injectstore.md) diff --git a/docs/framework/angular/reference/injectform.md b/docs/framework/angular/reference/injectform.md new file mode 100644 index 000000000..ba090bd02 --- /dev/null +++ b/docs/framework/angular/reference/injectform.md @@ -0,0 +1,23 @@ +# Function: injectForm() + +```ts +function injectForm(opts?): FormApi +``` + +## Type parameters + +• **TFormData** + +• **TFormValidator** *extends* `undefined` \| `Validator`\<`TFormData`, `unknown`\> = `undefined` + +## Parameters + +• **opts?**: `FormOptions`\<`TFormData`, `TFormValidator`\> + +## Returns + +`FormApi`\<`TFormData`, `TFormValidator`\> + +## Source + +[inject-form.ts:4](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/inject-form.ts#L4) diff --git a/docs/framework/angular/reference/injectstore.md b/docs/framework/angular/reference/injectstore.md new file mode 100644 index 000000000..551ed2500 --- /dev/null +++ b/docs/framework/angular/reference/injectstore.md @@ -0,0 +1,27 @@ +# Function: injectStore() + +```ts +function injectStore(form, selector?): Signal +``` + +## Type parameters + +• **TFormData** + +• **TFormValidator** *extends* `undefined` \| `Validator`\<`TFormData`, `unknown`\> = `undefined` + +• **TSelected** = `NoInfer`\<`FormState`\<`TFormData`\>\> + +## Parameters + +• **form**: `FormApi`\<`TFormData`, `TFormValidator`\> + +• **selector?** + +## Returns + +`Signal`\<`TSelected`\> + +## Source + +[inject-store.ts:4](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/inject-store.ts#L4) diff --git a/docs/framework/angular/reference/tanstackfield.md b/docs/framework/angular/reference/tanstackfield.md new file mode 100644 index 000000000..4b7f5e8dc --- /dev/null +++ b/docs/framework/angular/reference/tanstackfield.md @@ -0,0 +1,260 @@ +# Class: TanStackField\ + +## Type parameters + +• **TParentData** + +• **TName** *extends* `DeepKeys`\<`TParentData`\> + +• **TFieldValidator** *extends* `Validator`\<`DeepValue`\<`TParentData`, `TName`\>, `unknown`\> \| `undefined` = `undefined` + +• **TFormValidator** *extends* `Validator`\<`TParentData`, `unknown`\> \| `undefined` = `undefined` + +• **TData** *extends* `DeepValue`\<`TParentData`, `TName`\> = `DeepValue`\<`TParentData`, `TName`\> + +## Implements + +- `OnInit` +- `OnChanges` +- `OnDestroy` +- `FieldOptions`\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\> + +## Constructors + +### new TanStackField() + +```ts +new TanStackField(): TanStackField +``` + +#### Returns + +[`TanStackField`](tanstackfield.md)\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\> + +## Properties + +### api + +```ts +api: FieldApi; +``` + +#### Source + +[tanstack-field.directive.ts:62](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/tanstack-field.directive.ts#L62) + +*** + +### asyncAlways? + +```ts +optional asyncAlways: boolean; +``` + +#### Implementation of + +`FieldOptions.asyncAlways` + +#### Source + +[tanstack-field.directive.ts:50](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/tanstack-field.directive.ts#L50) + +*** + +### asyncDebounceMs? + +```ts +optional asyncDebounceMs: number; +``` + +#### Implementation of + +`FieldOptions.asyncDebounceMs` + +#### Source + +[tanstack-field.directive.ts:49](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/tanstack-field.directive.ts#L49) + +*** + +### defaultMeta? + +```ts +optional defaultMeta: Partial; +``` + +#### Implementation of + +`FieldOptions.defaultMeta` + +#### Source + +[tanstack-field.directive.ts:60](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/tanstack-field.directive.ts#L60) + +*** + +### defaultValue? + +```ts +optional defaultValue: NoInfer; +``` + +#### Implementation of + +`FieldOptions.defaultValue` + +#### Source + +[tanstack-field.directive.ts:48](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/tanstack-field.directive.ts#L48) + +*** + +### name + +```ts +name: TName; +``` + +#### Implementation of + +`FieldOptions.name` + +#### Source + +[tanstack-field.directive.ts:44](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/tanstack-field.directive.ts#L44) + +*** + +### preserveValue? + +```ts +optional preserveValue: boolean; +``` + +#### Implementation of + +`FieldOptions.preserveValue` + +#### Source + +[tanstack-field.directive.ts:51](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/tanstack-field.directive.ts#L51) + +*** + +### tanstackField + +```ts +tanstackField: FormApi; +``` + +#### Source + +[tanstack-field.directive.ts:53](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/tanstack-field.directive.ts#L53) + +*** + +### unmount()? + +```ts +optional unmount: () => void; +``` + +#### Returns + +`void` + +#### Source + +[tanstack-field.directive.ts:78](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/tanstack-field.directive.ts#L78) + +*** + +### validatorAdapter? + +```ts +optional validatorAdapter: TFieldValidator; +``` + +#### Implementation of + +`FieldOptions.validatorAdapter` + +#### Source + +[tanstack-field.directive.ts:52](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/tanstack-field.directive.ts#L52) + +*** + +### validators? + +```ts +optional validators: NoInfer>; +``` + +#### Implementation of + +`FieldOptions.validators` + +#### Source + +[tanstack-field.directive.ts:57](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/tanstack-field.directive.ts#L57) + +## Methods + +### ngOnChanges() + +```ts +ngOnChanges(): void +``` + +#### Returns + +`void` + +#### Implementation of + +`OnChanges.ngOnChanges` + +#### Source + +[tanstack-field.directive.ts:90](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/tanstack-field.directive.ts#L90) + +*** + +### ngOnDestroy() + +```ts +ngOnDestroy(): void +``` + +#### Returns + +`void` + +#### Implementation of + +`OnDestroy.ngOnDestroy` + +#### Source + +[tanstack-field.directive.ts:86](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/tanstack-field.directive.ts#L86) + +*** + +### ngOnInit() + +```ts +ngOnInit(): void +``` + +#### Returns + +`void` + +#### Implementation of + +`OnInit.ngOnInit` + +#### Source + +[tanstack-field.directive.ts:80](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/angular-form/src/tanstack-field.directive.ts#L80) diff --git a/docs/framework/lit/reference/index.md b/docs/framework/lit/reference/index.md new file mode 100644 index 000000000..fd32972cc --- /dev/null +++ b/docs/framework/lit/reference/index.md @@ -0,0 +1,5 @@ +# @tanstack/lit-form + +## Classes + +- [TanStackFormController](tanstackformcontroller.md) diff --git a/docs/framework/lit/reference/tanstackformcontroller.md b/docs/framework/lit/reference/tanstackformcontroller.md new file mode 100644 index 000000000..ce0b3a0aa --- /dev/null +++ b/docs/framework/lit/reference/tanstackformcontroller.md @@ -0,0 +1,139 @@ +# Class: TanStackFormController\ + +## Type parameters + +• **TParentData** + +• **TFormValidator** *extends* `Validator`\<`TParentData`, `unknown`\> \| `undefined` = `undefined` + +## Implements + +- `ReactiveController` + +## Constructors + +### new TanStackFormController() + +```ts +new TanStackFormController(host, config?): TanStackFormController +``` + +#### Parameters + +• **host**: `ReactiveControllerHost` + +• **config?**: `FormOptions`\<`TParentData`, `TFormValidator`\> + +#### Returns + +[`TanStackFormController`](tanstackformcontroller.md)\<`TParentData`, `TFormValidator`\> + +#### Source + +[tanstack-form-controller.ts:93](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/lit-form/src/tanstack-form-controller.ts#L93) + +## Properties + +### api + +```ts +api: FormApi; +``` + +#### Source + +[tanstack-form-controller.ts:91](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/lit-form/src/tanstack-form-controller.ts#L91) + +## Methods + +### field() + +```ts +field(fieldConfig, render): object +``` + +#### Type parameters + +• **TName** *extends* `string` \| `number` + +• **TFieldValidator** *extends* `undefined` \| `Validator`\<`DeepValue`\<`TParentData`, `TName`, `IsNullable`\<`TParentData`\>\>, `unknown`\> = `undefined` + +• **TData** = `DeepValue`\<`TParentData`, `TName`, `IsNullable`\<`TParentData`\>\> + +#### Parameters + +• **fieldConfig**: `FieldOptions`\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\> + +• **render**: `renderCallback`\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\> + +#### Returns + +`object` + +##### values + +```ts +values: object; +``` + +##### values.form + +```ts +form: FormApi; +``` + +##### values.options + +```ts +options: FieldOptions; +``` + +##### values.render + +```ts +render: renderCallback; +``` + +#### Source + +[tanstack-form-controller.ts:112](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/lit-form/src/tanstack-form-controller.ts#L112) + +*** + +### hostConnected() + +```ts +hostConnected(): void +``` + +#### Returns + +`void` + +#### Implementation of + +`ReactiveController.hostConnected` + +#### Source + +[tanstack-form-controller.ts:102](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/lit-form/src/tanstack-form-controller.ts#L102) + +*** + +### hostDisconnected() + +```ts +hostDisconnected(): void +``` + +#### Returns + +`void` + +#### Implementation of + +`ReactiveController.hostDisconnected` + +#### Source + +[tanstack-form-controller.ts:108](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/lit-form/src/tanstack-form-controller.ts#L108) diff --git a/docs/framework/react/guides/basic-concepts.md b/docs/framework/react/guides/basic-concepts.md index dd31b0599..dc5f641e8 100644 --- a/docs/framework/react/guides/basic-concepts.md +++ b/docs/framework/react/guides/basic-concepts.md @@ -5,14 +5,14 @@ title: Basic Concepts and Terminology This page introduces the basic concepts and terminology used in the `@tanstack/react-form` library. Familiarizing yourself with these concepts will help you better understand and work with the library. -## Form Factory +## Form Options -The Form Factory is responsible for creating form instances with a shared configuration. It is created using the `createFormFactory` function, which accepts a configuration object with default values for the form fields. This shared configuration allows you to create multiple form instances with consistent behavior. +You can create options for your form so that it can be shared between multiple forms by using the `formOptions` function. Example: ```tsx -const formFactory = createFormFactory({ +const formOpts = formOptions({ defaultValues: { firstName: '', lastName: '', @@ -23,10 +23,11 @@ const formFactory = createFormFactory({ ## 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 provided by the form factory. The hook accepts an object with an `onSubmit` function, which is called when the form is submitted. +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 provided by the form options. The hook accepts an object with an `onSubmit` function, which is called when the form is submitted. ```tsx -const form = formFactory.useForm({ +const form = useForm({ + ...formOpts, onSubmit: async ({ value }) => { // Do something with form data console.log(value) @@ -34,7 +35,7 @@ const form = formFactory.useForm({ }) ``` -You may also create a form instance without going through the `formFactory` by using the standalone `useForm` API: +You may also create a form instance without using `formOptions` by using the standalone `useForm` API: ```tsx const form = useForm({ diff --git a/docs/framework/react/guides/ssr.md b/docs/framework/react/guides/ssr.md index 93cab93ba..09f093bb2 100644 --- a/docs/framework/react/guides/ssr.md +++ b/docs/framework/react/guides/ssr.md @@ -3,186 +3,144 @@ id: ssr title: Next.js Usage --- -> ⚠ This feature is highly experimental and is subject to change. Currently, this example [leaks backend code the frontend through `onServerValidate`](https://github.com/TanStack/form/issues/710). We are working on changes to the API, and will update this guide and provide migration steps when a solution is available. ⚠ - Before reading this guide, it's suggested you understand how React Server Components and React Server Actions work. [Check out this blog series for more information](https://unicorn-utterances.com/collections/react-beyond-the-render) # Using TanStack Form in a Next.js App Router -TanStack Form is compatible with React out of the box, supporting `SSR` and being framework-agnostic. However, specific configurations are necessary according to your chosen framework. - +TanStack Form is compatible with React out of the box, supporting `SSR` and being framework-agnostic. However, specific configurations are necessary, according to your chosen framework. This guide focuses on integrating TanStack Form with `Next.js`, particularly using the `App Router` and `Server Actions`. - -_Remix Support Coming soon_ +_We need help adding Remix support! [Come help us research and implement it here.](https://github.com/TanStack/form/issues/759)_ ## Prerequisites - Start a new `Next.js` project, following the steps in the [Next.js Documentation](https://nextjs.org/docs/getting-started/installation). Ensure you select `yes` for `Would you like to use App Router?` during the setup to access all new features provided by Next.js. -- Install `@tanstack/react-form` and any validator of your choice. - - - +- Install `@tanstack/react-form` +- Install any [form validator](/form/latest/docs/framework/react/guides/validation#adapter-based-validation-zod-yup-valibot) of your choice. [Optional] # App Router integration -- To use TanStack Form, the component containing the form should be a client component. This requires adding the `"use client"` directive. Wrap this client component within a server component like so: - -```tsx -export default function Home() { - return ( - <> - - - ) -} -``` -- The form and its logic reside inside `ClientComp` - - -- in order to keep our code separated lets create a file called `shared-code` which would create an instances of the form we are later going to use +Let's start by creating a `formOption` that we'll use to share the form's shape across the client and server. -```tsx -import { createFormFactory } from '@tanstack/react-form' +```typescript +// shared-code.ts +// Notice the import path is different from the client +import { formOptions } from '@tanstack/react-form/nextjs' -export const formFactory = createFormFactory({ +// You can pass other form options here, like `validatorAdapter` +export const formOpts = formOptions({ defaultValues: { firstName: '', age: 0, }, - onServerValidate({ value }) { - if (value.age < 12) { - return 'Server validation: You must be at least 12 to sign up' - } - }, }) ``` -- As you might already know, there are different approaches to using `form` in your application. One popular method is the `useForm` hook provided by `@tanstack/react-form`. Alternatively, `createFormFactory` is also available, offering a more structured way and reusable. - -- Much like the `useForm` hook, `createFormFactory` allows you to pass `defaultValues` and other configuration options. A key feature here is the ability to include a property called `onServerValidate`. This special validation, in contrast to client-side validations, is executed exclusively on the server when a `server action` is triggered. +Next, we can create [a React Server Action](https://unicorn-utterances.com/posts/what-are-react-server-components) that will handle the form submission on the server. -- For instance, a validation rule we might implement is: "You must be at least 12 years old to sign up." This rule is enforced on the server-side and the corresponding message is sent back to the client. We'll explore more on this shortly. +```typescript +// action.ts +'use server' -- Before we delve into using our `formFactory`, let's set up a file named `server-action.ts`. In this file, we'll encapsulate the logic necessary for leveraging Next.js server actions. +// Notice the import path is different from the client +import { createServerValidate } from '@tanstack/react-form/nextjs' +import { formOpts } from './shared-code' - -```tsx -"use server"; -import { formFactory } from "./shared-code"; +// Create the server action that will infer the types of the form from `formOpts` +const serverValidate = createServerValidate({ + ...formOpts, + onServerValidate: ({ value }) => { + if (value.age < 12) { + return 'Server validation: You must be at least 12 to sign up' + } + }, +}) export default async function someAction(prev: unknown, formData: FormData) { - return await formFactory.validateFormData(formData); + return await serverValidate(formData) } ``` -- The action we've discussed is straightforward yet essential. It activates exclusively on the server side when we submit our form. In the example given, the action employs `formFactory.validateFormData(formData)`. This function takes care of validating the data received from the client during form submission. It's an efficient way to ensure data compliance with our predefined server rules. -- Now, let's shift our focus to the client component: - - For those who might be exploring this for the first time, `useFormState` is a relatively new hook in React. You can find more details in React's documentation on [useFormState](https://react.dev/reference/react-dom/hooks/useFormState). This hook represents a significant advancement as it allows us to dynamically update the state based on the outcomes of a form action. It's an effective way to manage form states, especially in response to server-side interactions. +Finally, we'll use `someAction` in our client-side form component. ```tsx +// client-component.tsx +'use client' + +import { useActionState } from 'react' +// Notice the import is from `react-form`, not `react-form/nextjs` import { - FormApi, + initialFormState, mergeForm, + useForm, useTransform, -} from "@tanstack/react-form"; - -import { formFactory } from "./shared-code"; -import someAction from "./server-action"; - - -const ClientComp = () => { - const [state, action] = useFormState( - someAction, - formFactory.initialFormState - ); - - const { useStore, Subscribe, handleSubmit, Field } = - formFactory.useForm({ - transform: useTransform( - (baseForm: FormApi) => mergeForm(baseForm, state), - [state] - ), - }); - - const formErrors = useStore((formState) => formState.errors); +} from '@tanstack/react-form' +import someAction from './action' +import { formOpts } from './shared-code' - return ( - ..... - ) -} - -``` -- Understanding `useFormState` Hook: This hook is pivotal in managing the state and actions of our form. Here, we provide it with an action `someAction` and an initial state derived from `formFactory.initialFormState`. This setup enables the component to handle form submissions and state changes. - -- Lets understand what is happening here, we need to use the `useFormState` hooks which give us the current state and the action. The way the hooks work is we have to give it an `action` in our case would be `someAction` and a initialState which for use would be `formFactory.initialFormState` - -- Benefits of `formFactory`: Much like the useForm hook, formFactory streamlines the process of form management. It provides us with necessary functionalities such as: - - `useStore`: Observes and reflects the current state of the form on the client side. - - `Subscribe`: Enables the component to listen to form-specific events, like `canSubmit` and `isSubmitting`. - - `handleSubmit`: Orchestrates the submission logic of the form. - - `Field`: Manages individual form fields, adopting the `renderProps` pattern for greater flexibility. - -- The `formFactory.useForm` takes a few properties that we can pass to it as an object the one we are using here is transform and we are using another hook that `@tanstack/react-form` provides which is the `useTransform` and you can see we are passing a callback and we call `mergeForm` which is a function that comes from `@tanstack/react-form` and to this we need to pass the dependecies array in our case would be the `[state]` +export const ClientComp = () => { + const [state, action] = useActionState(someAction, initialFormState) -- Accessing Form Errors: Through `useStore`, we can access and display formErrors, enhancing user feedback and experience. + const form = useForm({ + ...formOpts, + transform: useTransform((baseForm) => mergeForm(baseForm, state), [state]), + }) -- Finishing up the `UI` - -```tsx -const ClientComp = () => { - ... + const formErrors = form.useStore((formState) => formState.errors) return ( -
handleSubmit()}> - {formErrors.map((error) => ( -

{error}

- ))} - - - value < 8 - ? "Client validation: You must be at least 8" - : undefined, - }} - > - {(field) => { - return ( -
- field.handleChange(e.target.valueAsNumber)} - /> - {field.state.meta.errors.map((error) => ( -

{error}

- ))} -
- ); - }} -
- [ - formState.canSubmit, - formState.isSubmitting, - ]} - > - {([canSubmit, isSubmitting]) => ( - - )} - -
- ); -}; +
form.handleSubmit()}> + {formErrors.map((error) => ( +

{error}

+ ))} + + + value < 8 ? 'Client validation: You must be at least 8' : undefined, + }} + > + {(field) => { + return ( +
+ field.handleChange(e.target.valueAsNumber)} + /> + {field.state.meta.errors.map((error) => ( +

{error}

+ ))} +
+ ) + }} +
+ [formState.canSubmit, formState.isSubmitting]} + > + {([canSubmit, isSubmitting]) => ( + + )} + +
+ ) +} ``` -- In our UI, implementing the form is straightforward. A notable aspect here is the integration of our server action within the `form`. For the form's `action`, we utilize the `action` obtained from `useFormState`. This setup triggers the server action upon form submission. If everything processes successfully, the action will complete without issues. Otherwise, we'll encounter an error like "Server validation: You must be at least 12 to sign up." - -- You might now be wondering about client-side validation. How do we implement it? 🤔 The answer lies in the `handleSubmit` function. By assigning `handleSubmit` to the form's `onSubmit` event, we can handle client-side validation in the normal client side manner. +Here, we're using [React's `useActionState` hook](https://unicorn-utterances.com/posts/what-is-use-action-state-and-form-status) and TanStack Form's `useTransform` hook to merge state returned from the server action with the form state. + +> If you get the following error in your Next.js application: +> +> ```typescript +> x You're importing a component that needs `useState`. This React hook only works in a client component. To fix, mark the file (or its parent) with the `"use client"` directive. +> ``` +> +> This is because you're not importing server-side code from `@tanstack/react-form/nextjs`. Ensure you're importing the correct module based on the environment. +> +> +> [This is a limitation of Next.js](https://github.com/phryneas/rehackt). Other meta-frameworks will likely not have this same problem. diff --git a/docs/framework/react/reference/Field.md b/docs/framework/react/reference/Field.md deleted file mode 100644 index 980064b55..000000000 --- a/docs/framework/react/reference/Field.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -id: field -title: Field ---- - -### `FieldComponent` - -A type alias representing a field component for a specific form data type. - -```tsx -export type FieldComponent< - TParentData, - TFormValidator extends - | Validator - | undefined = undefined, -> = < - TName extends DeepKeys, - TFieldValidator extends - | Validator, unknown> - | undefined = undefined, - TData extends DeepValue = DeepValue, ->({ - children, - ...fieldOptions -}: FieldComponentProps< - TParentData, - TName, - TFieldValidator, - TFormValidator, - TData ->) => any -``` - -A function component that takes field options and a render function as children and returns a React component. - -### `Field` - -```tsx -export function Field< - TParentData, - TName extends DeepKeys, - TFieldValidator extends - | Validator, unknown> - | undefined = undefined, - TFormValidator extends - | Validator - | undefined = undefined, ->({ - children, - ...fieldOptions -}: { - children: ( - fieldApi: FieldApi, - ) => any -} & UseFieldOptions): JSX.Element -``` - -A functional React component that renders a form field. - -- ```tsx - children: (fieldApi: FieldApi) => any - ``` - - A render function that takes a field API instance and returns a React element. -- ```tsx - fieldOptions: UseFieldOptions - ``` - - The field options. - -The `Field` component uses the `useField` hook internally to manage the field instance. - diff --git a/docs/framework/react/reference/createFormFactory.md b/docs/framework/react/reference/createFormFactory.md deleted file mode 100644 index bb38da8e3..000000000 --- a/docs/framework/react/reference/createFormFactory.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: createFormFactory -title: createFormFactory ---- - -### `createFormFactory` - -```tsx -export function createFormFactory( - opts?: FormOptions, -): FormFactory -``` - -A function that creates a new `FormFactory` instance. - -- `opts` - - Optional form options. - -### `FormFactory` - -A type representing a form factory. Form factories provide a type-safe way to interact with the form API as opposed to using the globally exported form utilities. - -```tsx -export type FormFactory = { - useForm: (opts?: FormOptions) => FormApi - useField: UseField - Field: FieldComponent -} -``` - -- `useForm` - - A custom hook that creates and returns a new instance of the `FormApi` class. -- `useField` - - A custom hook that returns an instance of the `FieldApi` class. -- `Field` - - A form field component. diff --git a/docs/framework/react/reference/createservervalidate.md b/docs/framework/react/reference/createservervalidate.md new file mode 100644 index 000000000..282fbf0e8 --- /dev/null +++ b/docs/framework/react/reference/createservervalidate.md @@ -0,0 +1,23 @@ +# Function: createServerValidate() + +```ts +function createServerValidate(defaultOpts?): ValidateFormData +``` + +## Type parameters + +• **TFormData** + +• **TFormValidator** *extends* `undefined` \| `Validator`\<`TFormData`, `unknown`\> = `undefined` + +## Parameters + +• **defaultOpts?**: `FormOptions`\<`TFormData`, `TFormValidator`\> + +## Returns + +`ValidateFormData`\<`TFormData`, `TFormValidator`\> + +## Source + +[createServerValidate.ts:40](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/react-form/src/createServerValidate.ts#L40) diff --git a/docs/framework/react/reference/field.md b/docs/framework/react/reference/field.md new file mode 100644 index 000000000..0404c6efb --- /dev/null +++ b/docs/framework/react/reference/field.md @@ -0,0 +1,33 @@ +# Function: Field() + +```ts +function Field(__namedParameters): ReactNode +``` + +A function component that takes field options and a render function as children and returns a React component. + +The `Field` component uses the `useField` hook internally to manage the field instance. + +## Type parameters + +• **TParentData** + +• **TName** *extends* `string` \| `number` + +• **TFieldValidator** *extends* `undefined` \| `Validator`\<`DeepValue`\<`TParentData`, `TName`\>, `unknown`\> = `undefined` + +• **TFormValidator** *extends* `undefined` \| `Validator`\<`TParentData`, `unknown`\> = `undefined` + +• **TData** = `DeepValue`\<`TParentData`, `TName`\> + +## Parameters + +• **\_\_namedParameters**: `FieldComponentProps`\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\> + +## Returns + +`ReactNode` + +## Source + +[useField.tsx:171](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/react-form/src/useField.tsx#L171) diff --git a/docs/framework/react/reference/fieldApi.md b/docs/framework/react/reference/fieldApi.md deleted file mode 100644 index 85738882b..000000000 --- a/docs/framework/react/reference/fieldApi.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -id: fieldApi -title: Field API ---- - -### `FieldApi` - -When using `@tanstack/react-form`, the [core field API](../../../../reference/fieldApi) is extended at type level with additional methods for React-specific functionality: - -- ```tsx - Field: FieldComponent - ``` - - A pre-bound and type-safe sub-field component using this field as a root. diff --git a/docs/framework/react/reference/fieldcomponent.md b/docs/framework/react/reference/fieldcomponent.md new file mode 100644 index 000000000..957401e7d --- /dev/null +++ b/docs/framework/react/reference/fieldcomponent.md @@ -0,0 +1,39 @@ +# Type alias: FieldComponent()\ + +```ts +type FieldComponent: ({ + children, + ...fieldOptions +}) => NodeType; +``` + +A type alias representing a field component for a specific form data type. + +## Type parameters + +• **TParentData** + +• **TFormValidator** *extends* `Validator`\<`TParentData`, `unknown`\> \| `undefined` = `undefined` + +## Type parameters + +• **TName** *extends* `DeepKeys`\<`TParentData`\> + +• **TFieldValidator** *extends* `Validator`\<`DeepValue`\<`TParentData`, `TName`\>, `unknown`\> \| `undefined` = `undefined` + +• **TData** *extends* `DeepValue`\<`TParentData`, `TName`\> = `DeepValue`\<`TParentData`, `TName`\> + +## Parameters + +• **\{ + children, + ...fieldOptions +\}**: `Omit`\<`FieldComponentProps`\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\>, `"form"`\> + +## Returns + +`NodeType` + +## Source + +[useField.tsx:141](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/react-form/src/useField.tsx#L141) diff --git a/docs/framework/react/reference/formApi.md b/docs/framework/react/reference/formApi.md deleted file mode 100644 index 7850deb3e..000000000 --- a/docs/framework/react/reference/formApi.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -id: formApi -title: Form API ---- - -### `FormApi` - -When using `@tanstack/react-form`, the [core form API](../../../../reference/formApi) is extended at type level with additional methods for React-specific functionality: - -- ```tsx - Field: FieldComponent - ``` - - A React component to render form fields. With this, you can render and manage individual form fields. -- ```tsx - useField: UseField - ``` - - A custom React hook that provides functionalities related to individual form fields. It gives you access to field values, errors, and allows you to set or update field values. -- ```tsx - useStore: >>( - selector?: (state: NoInfer>) => TSelected, - ) => TSelected - ``` - - A `useStore` hook that connects to the internal store of the form. It can be used to access the form's current state or any other related state information. You can optionally pass in a selector function to cherry-pick specific parts of the state -- ```tsx - Subscribe: >>(props: { - selector?: (state: NoInfer>) => TSelected - children: ((state: NoInfer) => ReactNode) | ReactNode - }) => JSX.Element - ``` - - 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. - > Note that TypeScript `5.0.4` and older versions will incorrectly complain if the `selector` method doesn't return the form's full state (`state`). This is caused by a [bug in TypeScript](https://github.com/TanStack/form/pull/606#discussion_r1506715714), and you can safely ignore it with `//@ts-expect-error` directive. diff --git a/docs/framework/react/reference/index.md b/docs/framework/react/reference/index.md new file mode 100644 index 000000000..7a03653b5 --- /dev/null +++ b/docs/framework/react/reference/index.md @@ -0,0 +1,18 @@ +# @tanstack/react-form + +## Type Aliases + +- [FieldComponent](fieldcomponent.md) +- [UseField](usefield.md) + +## Variables + +- [initialFormState](initialformstate.md) + +## Functions + +- [Field](field.md) +- [createServerValidate](createservervalidate.md) +- [useField](usefield.md) +- [useForm](useform.md) +- [useTransform](usetransform.md) diff --git a/docs/framework/react/reference/initialformstate.md b/docs/framework/react/reference/initialformstate.md new file mode 100644 index 000000000..fafc1f01c --- /dev/null +++ b/docs/framework/react/reference/initialformstate.md @@ -0,0 +1,29 @@ +# Variable: initialFormState + +```ts +const initialFormState: object; +``` + +## Type declaration + +### errorMap + +```ts +errorMap: object; +``` + +### errorMap.onServer + +```ts +onServer: undefined = undefined; +``` + +### errors + +```ts +errors: never[] = []; +``` + +## Source + +[createServerValidate.ts:72](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/react-form/src/createServerValidate.ts#L72) diff --git a/docs/framework/react/reference/useField.md b/docs/framework/react/reference/useField.md deleted file mode 100644 index e11ccebe1..000000000 --- a/docs/framework/react/reference/useField.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: useField -title: useField ---- - -### `UseField` - -A type representing a hook for using a field in a form with the given form data type. - -```tsx -export type UseField = < - TName extends DeepKeys, - TFieldValidator extends - | Validator, unknown> - | undefined = undefined, - TFormValidator extends - | Validator - | undefined = undefined, ->( - opts?: { name: Narrow } & UseFieldOptions< - TParentData, - TName, - TFieldValidator, - TFormValidator - >, -) => FieldApi< - TParentData, - TName, - TFieldValidator, - TFormValidator, - DeepValue -> -``` - -- A function that takes an optional object with a `name` property and field options, and returns a `FieldApi` instance for the specified field. - -### `useField` - -```tsx -export function useField< - TParentData, - TName extends DeepKeys, - TFieldValidator extends - | Validator, unknown> - | undefined = undefined, - TFormValidator extends - | Validator - | undefined = undefined, ->( - opts: UseFieldOptions, -): FieldApi -``` - -A hook for managing a field in a form. - -- ```tsx - opts: UseFieldOptions - ``` - - An object with field options. - -#### Returns - -- ```tsx - FieldApi - ``` - - The `FieldApi` instance for the specified field. diff --git a/docs/framework/react/reference/useForm.md b/docs/framework/react/reference/useForm.md deleted file mode 100644 index 4edce8709..000000000 --- a/docs/framework/react/reference/useForm.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -id: useForm -title: useForm ---- - -### `useForm` - -```tsx -export function useForm< - TFormData, - TFormValidator extends Validator | undefined = undefined, ->( - opts?: FormOptions, -): FormApi -``` -A custom React Hook that returns an 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 - diff --git a/docs/framework/react/reference/usefield.md b/docs/framework/react/reference/usefield.md new file mode 100644 index 000000000..69731e43b --- /dev/null +++ b/docs/framework/react/reference/usefield.md @@ -0,0 +1,35 @@ +# Function: useField() + +```ts +function useField(opts): FieldApi +``` + +A hook for managing a field in a form. + +## Type parameters + +• **TParentData** + +• **TName** *extends* `string` \| `number` + +• **TFieldValidator** *extends* `undefined` \| `Validator`\<`DeepValue`\<`TParentData`, `TName`\>, `unknown`\> = `undefined` + +• **TFormValidator** *extends* `undefined` \| `Validator`\<`TParentData`, `unknown`\> = `undefined` + +• **TData** = `DeepValue`\<`TParentData`, `TName`\> + +## Parameters + +• **opts**: `UseFieldOptions`\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\> + +An object with field options. + +## Returns + +`FieldApi`\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\> + +The `FieldApi` instance for the specified field. + +## Source + +[useField.tsx:60](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/react-form/src/useField.tsx#L60) diff --git a/docs/framework/react/reference/useform.md b/docs/framework/react/reference/useform.md new file mode 100644 index 000000000..7ca1193fe --- /dev/null +++ b/docs/framework/react/reference/useform.md @@ -0,0 +1,27 @@ +# Function: useForm() + +```ts +function useForm(opts?): FormApi +``` + +A custom React Hook that returns an 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** + +• **TFormValidator** *extends* `undefined` \| `Validator`\<`TFormData`, `unknown`\> = `undefined` + +## Parameters + +• **opts?**: `FormOptions`\<`TFormData`, `TFormValidator`\> + +## Returns + +`FormApi`\<`TFormData`, `TFormValidator`\> + +## Source + +[useForm.tsx:56](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/react-form/src/useForm.tsx#L56) diff --git a/docs/framework/react/reference/usetransform.md b/docs/framework/react/reference/usetransform.md new file mode 100644 index 000000000..c54352ec3 --- /dev/null +++ b/docs/framework/react/reference/usetransform.md @@ -0,0 +1,45 @@ +# Function: useTransform() + +```ts +function useTransform(fn, deps): object +``` + +## Type parameters + +• **TFormData** + +• **TFormValidator** *extends* `undefined` \| `Validator`\<`TFormData`, `unknown`\> = `undefined` + +## Parameters + +• **fn** + +• **deps**: `unknown`[] + +## Returns + +`object` + +### deps + +```ts +deps: unknown[]; +``` + +### fn() + +```ts +fn: (formBase) => FormApi; +``` + +#### Parameters + +• **formBase**: `FormApi`\<`any`, `any`\> + +#### Returns + +`FormApi`\<`TFormData`, `TFormValidator`\> + +## Source + +[useTransform.ts:3](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/react-form/src/useTransform.ts#L3) diff --git a/docs/framework/solid/reference/Field.md b/docs/framework/solid/reference/Field.md index f6993cbcb..71521954f 100644 --- a/docs/framework/solid/reference/Field.md +++ b/docs/framework/solid/reference/Field.md @@ -1,6 +1,29 @@ ---- -id: field -title: Field ---- +# Function: Field() -Please see [/packages/solid-form/src/createField.tsx](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx) +```ts +function Field(props): Element +``` + +## Type parameters + +• **TParentData** + +• **TName** *extends* `string` \| `number` + +• **TFieldValidator** *extends* `undefined` \| `Validator`\<`DeepValue`\<`TParentData`, `TName`\>, `unknown`\> = `undefined` + +• **TFormValidator** *extends* `undefined` \| `Validator`\<`TParentData`, `unknown`\> = `undefined` + +• **TData** = `DeepValue`\<`TParentData`, `TName`\> + +## Parameters + +• **props**: `object` & `FieldApiOptions`\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\> & `object` + +## Returns + +`Element` + +## Source + +[createField.tsx:166](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/solid-form/src/createField.tsx#L166) diff --git a/docs/framework/solid/reference/createField.md b/docs/framework/solid/reference/createField.md index 7f7963f04..5fd23c5a0 100644 --- a/docs/framework/solid/reference/createField.md +++ b/docs/framework/solid/reference/createField.md @@ -1,6 +1,33 @@ ---- -id: createField -title: createField ---- +# Function: createField() -Please see [/packages/solid-form/src/createField.tsx](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx) +```ts +function createField(opts): () => FieldApi +``` + +## Type parameters + +• **TParentData** + +• **TName** *extends* `string` \| `number` + +• **TFieldValidator** *extends* `undefined` \| `Validator`\<`DeepValue`\<`TParentData`, `TName`\>, `unknown`\> = `undefined` + +• **TFormValidator** *extends* `undefined` \| `Validator`\<`TParentData`, `unknown`\> = `undefined` + +• **TData** = `DeepValue`\<`TParentData`, `TName`\> + +## Parameters + +• **opts** + +## Returns + +`Function` + +### Returns + +`FieldApi`\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\> + +## Source + +[createField.tsx:72](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/solid-form/src/createField.tsx#L72) diff --git a/docs/framework/solid/reference/createForm.md b/docs/framework/solid/reference/createForm.md index 79b9ceb8e..b515950f9 100644 --- a/docs/framework/solid/reference/createForm.md +++ b/docs/framework/solid/reference/createForm.md @@ -1,6 +1,23 @@ ---- -id: createForm -title: createForm ---- +# Function: createForm() -Please see [/packages/solid-form/src/createForm.tsx](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createForm.tsx) +```ts +function createForm(opts?): FormApi +``` + +## Type parameters + +• **TParentData** + +• **TFormValidator** *extends* `undefined` \| `Validator`\<`TParentData`, `unknown`\> = `undefined` + +## Parameters + +• **opts?** + +## Returns + +`FormApi`\<`TParentData`, `TFormValidator`\> + +## Source + +[createForm.tsx:29](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/solid-form/src/createForm.tsx#L29) diff --git a/docs/framework/solid/reference/createFormFactory.md b/docs/framework/solid/reference/createFormFactory.md deleted file mode 100644 index 48a2a2ec6..000000000 --- a/docs/framework/solid/reference/createFormFactory.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -id: createFormFactory -title: createFormFactory ---- - -Please see [/packages/solid-form/src/createFormFactory.ts](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createFormFactory.ts) diff --git a/docs/framework/solid/reference/fieldApi.md b/docs/framework/solid/reference/fieldApi.md deleted file mode 100644 index 1f7e0a647..000000000 --- a/docs/framework/solid/reference/fieldApi.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -id: fieldApi -title: Field API ---- - -Please see [/packages/solid-form/src/createField.tsx](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx) diff --git a/docs/framework/solid/reference/fieldcomponent.md b/docs/framework/solid/reference/fieldcomponent.md new file mode 100644 index 000000000..a8d08a209 --- /dev/null +++ b/docs/framework/solid/reference/fieldcomponent.md @@ -0,0 +1,37 @@ +# Type alias: FieldComponent()\ + +```ts +type FieldComponent: ({ + children, + ...fieldOptions +}) => JSXElement; +``` + +## Type parameters + +• **TParentData** + +• **TFormValidator** *extends* `Validator`\<`TParentData`, `unknown`\> \| `undefined` = `undefined` + +## Type parameters + +• **TName** *extends* `DeepKeys`\<`TParentData`\> + +• **TFieldValidator** *extends* `Validator`\<`DeepValue`\<`TParentData`, `TName`\>, `unknown`\> \| `undefined` = `undefined` + +• **TData** *extends* `DeepValue`\<`TParentData`, `TName`\> = `DeepValue`\<`TParentData`, `TName`\> + +## Parameters + +• **\{ + children, + ...fieldOptions +\}**: `Omit`\<`FieldComponentProps`\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\>, `"form"`\> + +## Returns + +`JSXElement` + +## Source + +[createField.tsx:141](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/solid-form/src/createField.tsx#L141) diff --git a/docs/framework/solid/reference/formApi.md b/docs/framework/solid/reference/formApi.md deleted file mode 100644 index caf2085ec..000000000 --- a/docs/framework/solid/reference/formApi.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -id: formApi -title: Form API ---- - -Please see [/packages/solid-form/src/createForm.tsx](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createForm.tsx) diff --git a/docs/framework/solid/reference/index.md b/docs/framework/solid/reference/index.md new file mode 100644 index 000000000..442764376 --- /dev/null +++ b/docs/framework/solid/reference/index.md @@ -0,0 +1,12 @@ +# @tanstack/solid-form + +## Type Aliases + +- [CreateField](createfield.md) +- [FieldComponent](fieldcomponent.md) + +## Functions + +- [Field](field.md) +- [createField](createfield.md) +- [createForm](createform.md) diff --git a/docs/framework/vue/reference/Field.md b/docs/framework/vue/reference/Field.md index 854b3e048..35cb6a738 100644 --- a/docs/framework/vue/reference/Field.md +++ b/docs/framework/vue/reference/Field.md @@ -1,6 +1,29 @@ ---- -id: field -title: Field ---- +# Function: Field() -Please see [/packages/vue-form/src/useField.tsx](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx) +```ts +function Field(props): any +``` + +## Type parameters + +• **TParentData** + +• **TName** *extends* `string` \| `number` + +• **TFieldValidator** *extends* `undefined` \| `Validator`\<`DeepValue`\<`TParentData`, `TName`\>, `unknown`\> = `undefined` + +• **TFormValidator** *extends* `undefined` \| `Validator`\<`TParentData`, `unknown`\> = `undefined` + +• **TData** = `DeepValue`\<`TParentData`, `TName`\> + +## Parameters + +• **props**: `FieldApiOptions`\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\> & `object` & `object` \| `object` + +## Returns + +`any` + +## Source + +[packages/vue-form/src/useField.tsx:184](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/vue-form/src/useField.tsx#L184) diff --git a/docs/framework/vue/reference/createFormFactory.md b/docs/framework/vue/reference/createFormFactory.md deleted file mode 100644 index 8c86be3ba..000000000 --- a/docs/framework/vue/reference/createFormFactory.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: createFormFactory -title: createFormFactory ---- - -### `createFormFactory` - -```tsx -export function createFormFactory( - opts?: FormOptions, -): FormFactory -``` - -A function that creates a new `FormFactory` instance. - -- `opts` - - Optional form options and a `listen` function to be called with the form state. - -### `FormFactory` - -A type representing a form factory. Form factories provide a type-safe way to interact with the form API as opposed to using the globally exported form utilities. - -```tsx -export type FormFactory = { - useForm: (opts?: FormOptions) => FormApi - useField: UseField - Field: FieldComponent -} -``` - -- `useForm` - - A custom composition that creates and returns a new instance of the `FormApi` class. -- `useField` - - A custom composition that returns an instance of the `FieldApi` class. -- `Field` - - A form field component. diff --git a/docs/framework/vue/reference/fieldApi.md b/docs/framework/vue/reference/fieldApi.md deleted file mode 100644 index 4e67651aa..000000000 --- a/docs/framework/vue/reference/fieldApi.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -id: fieldApi -title: Field API ---- - -Please see [/packages/vue-form/src/useField.tsx](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx) diff --git a/docs/framework/vue/reference/fieldcomponent.md b/docs/framework/vue/reference/fieldcomponent.md new file mode 100644 index 000000000..2e23dd8aa --- /dev/null +++ b/docs/framework/vue/reference/fieldcomponent.md @@ -0,0 +1,33 @@ +# Type alias: FieldComponent()\ + +```ts +type FieldComponent: (fieldOptions, context) => any; +``` + +## Type parameters + +• **TParentData** + +• **TFormValidator** *extends* `Validator`\<`TParentData`, `unknown`\> \| `undefined` = `undefined` + +## Type parameters + +• **TName** *extends* `DeepKeys`\<`TParentData`\> + +• **TFieldValidator** *extends* `Validator`\<`DeepValue`\<`TParentData`, `TName`\>, `unknown`\> \| `undefined` = `undefined` + +• **TData** *extends* `DeepValue`\<`TParentData`, `TName`\> = `DeepValue`\<`TParentData`, `TName`\> + +## Parameters + +• **fieldOptions**: `Omit`\<`FieldComponentProps`\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\>, `"form"`\> + +• **context**: `SetupContext`\<`object`, `SlotsType`\<`object`\>\> + +## Returns + +`any` + +## Source + +[packages/vue-form/src/useField.tsx:139](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/vue-form/src/useField.tsx#L139) diff --git a/docs/framework/vue/reference/formApi.md b/docs/framework/vue/reference/formApi.md deleted file mode 100644 index e4ccb3cf8..000000000 --- a/docs/framework/vue/reference/formApi.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -id: formApi -title: Form API ---- - -Please see [/packages/vue-form/src/useForm.tsx](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useForm.tsx) diff --git a/docs/framework/vue/reference/index.md b/docs/framework/vue/reference/index.md new file mode 100644 index 000000000..e64f686de --- /dev/null +++ b/docs/framework/vue/reference/index.md @@ -0,0 +1,12 @@ +# @tanstack/vue-form + +## Type Aliases + +- [FieldComponent](fieldcomponent.md) +- [UseField](usefield.md) + +## Functions + +- [Field](field.md) +- [useField](usefield.md) +- [useForm](useform.md) diff --git a/docs/framework/vue/reference/useField.md b/docs/framework/vue/reference/useField.md index c792a98ef..1c43d7c6e 100644 --- a/docs/framework/vue/reference/useField.md +++ b/docs/framework/vue/reference/useField.md @@ -1,6 +1,41 @@ ---- -id: useField -title: useField ---- +# Function: useField() -Please see [/packages/vue-form/src/useField.tsx](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx) +```ts +function useField(opts): object +``` + +## Type parameters + +• **TParentData** + +• **TName** *extends* `string` \| `number` + +• **TFieldValidator** *extends* `undefined` \| `Validator`\<`DeepValue`\<`TParentData`, `TName`\>, `unknown`\> = `undefined` + +• **TFormValidator** *extends* `undefined` \| `Validator`\<`TParentData`, `unknown`\> = `undefined` + +• **TData** = `DeepValue`\<`TParentData`, `TName`\> + +## Parameters + +• **opts**: `UseFieldOptions`\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\> + +## Returns + +`object` + +### api + +```ts +api: FieldApi; +``` + +### state + +```ts +state: Readonly["state"]>>; +``` + +## Source + +[packages/vue-form/src/useField.tsx:61](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/vue-form/src/useField.tsx#L61) diff --git a/docs/framework/vue/reference/useForm.md b/docs/framework/vue/reference/useForm.md index ed702816c..4bf6ad66c 100644 --- a/docs/framework/vue/reference/useForm.md +++ b/docs/framework/vue/reference/useForm.md @@ -1,6 +1,23 @@ ---- -id: useForm -title: useForm ---- +# Function: useForm() -Please see [/packages/vue-form/src/useForm.tsx](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useForm.tsx) +```ts +function useForm(opts?): FormApi +``` + +## Type parameters + +• **TFormData** + +• **TFormValidator** *extends* `undefined` \| `Validator`\<`TFormData`, `unknown`\> = `undefined` + +## Parameters + +• **opts?**: `FormOptions`\<`TFormData`, `TFormValidator`\> + +## Returns + +`FormApi`\<`TFormData`, `TFormValidator`\> + +## Source + +[packages/vue-form/src/useForm.tsx:30](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/vue-form/src/useForm.tsx#L30) diff --git a/docs/reference/deepkeys.md b/docs/reference/deepkeys.md new file mode 100644 index 000000000..824b998f2 --- /dev/null +++ b/docs/reference/deepkeys.md @@ -0,0 +1,17 @@ +# Type alias: DeepKeys\ + +```ts +type DeepKeys: TDepth["length"] extends 5 ? never : unknown extends T ? PrefixFromDepth : T extends readonly any[] & IsTuple ? PrefixTupleAccessor, TDepth> : T extends any[] ? PrefixArrayAccessor : T extends Date ? never : T extends object ? PrefixObjectAccessor : T extends string | number | boolean | bigint ? "" : never; +``` + +The keys of an object or array, deeply nested. + +## Type parameters + +• **T** + +• **TDepth** *extends* `any`[] = [] + +## Source + +[packages/form-core/src/util-types.ts:85](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/util-types.ts#L85) diff --git a/docs/reference/deepvalue.md b/docs/reference/deepvalue.md new file mode 100644 index 000000000..4ed88e798 --- /dev/null +++ b/docs/reference/deepvalue.md @@ -0,0 +1,19 @@ +# Type alias: DeepValue\ + +```ts +type DeepValue: unknown extends TValue ? TValue : TValue extends ReadonlyArray ? TAccessor extends `[${infer TBrackets}].${infer TAfter}` ? DeepValue, TAfter> : TAccessor extends `[${infer TBrackets}]` ? DeepValue : TAccessor extends keyof TValue ? TValue[TAccessor] : TValue[TAccessor & number] : TValue extends Record ? TAccessor extends `${infer TBefore}[${infer TEverythingElse}` ? DeepValue, `[${TEverythingElse}`> : TAccessor extends `[${infer TBrackets}]` ? DeepValue : TAccessor extends `${infer TBefore}.${infer TAfter}` ? DeepValue, TAfter> : TAccessor extends string ? TNullable extends true ? Nullable : TValue[TAccessor] : never : never; +``` + +Infer the type of a deeply nested property within an object or an array. + +## Type parameters + +• **TValue** + +• **TAccessor** + +• **TNullable** *extends* `boolean` = `IsNullable`\<`TValue`\> + +## Source + +[packages/form-core/src/util-types.ts:109](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/util-types.ts#L109) diff --git a/docs/reference/fieldApi.md b/docs/reference/fieldApi.md deleted file mode 100644 index 1c39e7509..000000000 --- a/docs/reference/fieldApi.md +++ /dev/null @@ -1,320 +0,0 @@ ---- -id: fieldApi -title: Field API ---- - -### Creating a new FieldApi Instance - -Normally, you will not need to create a new `FieldApi` instance directly. Instead, you will use a framework hook/function like `useField` or `createField` to create a new instance for you that utilizes your frameworks reactivity model. However, if you need to create a new instance manually, you can do so by calling the `new FieldApi` constructor. - -```tsx -const fieldApi: FieldApi = new FieldApi(formOptions: FieldOptions) -``` - -### `FieldOptions` - -An object type representing the options for a field in a form. - -- ```tsx - name: TName - ``` - - - The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. - -- ```tsx - defaultValue?: TData - ``` - - - An optional default value for the field. - -- ```tsx - defaultMeta?: Partial - ``` - - - An optional object with default metadata for the field. - -- ```tsx - asyncDebounceMs?: number - ``` - - - The default time to debounce async validation if there is not a more specific debounce time passed. - -- ```tsx - asyncAlways?: boolean - ``` - - - If `true`, always run async validation, even if there are errors emitted during synchronous validation. - -- ```typescript - validatorAdapter?: ValidatorType - ``` - - - A validator provided by an extension, like `yupValidator` from `@tanstack/yup-form-adapter` - -- ```tsx - validators?: FieldValidators< - TParentData, - TName, - TFieldValidator, - TFormValidator, - TData - > - ``` - - A list of validators to pass to the field - -### `FieldValidators` - -- ```tsx - onMount?: (formApi: FieldApi) => void - ``` - - - An optional function that takes a param of `formApi` which is a generic type of `TData` and `TParentData` - -- ```tsx - onChange?: ValidateFn - ``` - - - An optional property that takes a `ValidateFn` which is a generic of `TData` and `TParentData`. If `validator` is passed, this may also accept a property from the respective validator (IE: `z.string().min(1)` if `zodAdapter` is passed) - -- ```tsx - onChangeAsync?: ValidateAsyncFn - ``` - - - An optional property similar to `onChange` but async validation. If `validator` is passed, this may also accept a property from the respective validator (IE: `z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' })` if `zodAdapter` is passed) - -- ```tsx - onChangeAsyncDebounceMs?: number - ``` - - - An optional number to represent how long the `onChangeAsync` should wait before running - - If set to a number larger than 0, will debounce the async validation event by this length of time in milliseconds - -- ```tsx - onChangeListenTo?: DeepKeys[] - ``` - - - An optional list of field names that should trigger **this** field's `onChange` and `onChangeAsync` events when **its** value changes - -- ```tsx - onBlur?: ValidateFn - ``` - - - An optional function, when that run when subscribing to blur event of input. If `validator` is passed, this may also accept a property from the respective validator (IE: `z.string().min(1)` if `zodAdapter` is passed) - -- ```tsx - onBlurAsync?: ValidateAsyncFn - ``` - - - An optional function that takes a `ValidateFn` which is a generic of `TData` and `TParentData` happens async. If `validator` is passed, this may also accept a property from the respective validator (IE: `z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' })` if `zodAdapter` is passed) - - ```tsx - onBlurAsyncDebounceMs?: number - ``` - - - An optional number to represent how long the `onBlurAsyncDebounceMs` should wait before running - - If set to a number larger than 0, will debounce the async validation event by this length of time in milliseconds - -- ```tsx - onBlurListenTo?: DeepKeys[] - ``` - - - An optional list of field names that should trigger **this** field's `onBlur` and `onBlurAsync` events when **its** field blurs - -- ```tsx - onSubmit?: ValidateFn - ``` - - - An optional function, when that run when subscribing to submit event of input. If `validator` is passed, this may also accept a property from the respective validator (IE: `z.string().min(1)` if `zodAdapter` is passed) - -- ```tsx - onSubmitAsync?: ValidateAsyncFn - ``` - - - An optional function that takes a `ValidateFn` which is a generic of `TData` and `TParentData` happens async. If `validator` is passed, this may also accept a property from the respective validator (IE: `z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' })` if `zodAdapter` is passed) - - ```tsx - onSubmitAsyncDebounceMs?: number - ``` - - - An optional number to represent how long the `onSubmitAsyncDebounceMs` should wait before running - - If set to a number larger than 0, will debounce the async validation event by this length of time in milliseconds - -### `FieldMeta` - -An object type representing the metadata of a field in a form. - -- ```tsx - isPristine: boolean - ``` - - A flag that is `true` if the field's value have not been modified by the user. Opposite of `isDirty`. -- ```tsx - isDirty: boolean - ``` - - A flag that is `true` if the field's value have been modified by the user. Opposite of `isPristine`. -- ```tsx - isTouched: boolean - ``` - - A flag indicating whether the field has been touched. -- ```tsx - touchedErrors: ValidationError[] - ``` - - An array of errors related to the touched state of the field. -- ```tsx - errors: ValidationError[] - ``` - - An array of errors related related to the field value. -- ```tsx - errorMap: ValidationErrorMap - ``` - - A map of errors related related to the field value. -- ```tsx - isValidating: boolean - ``` - - A flag indicating whether the field is currently being validated. - -### `FieldApiOptions` - -An object type representing the required options for the `FieldApi` class. - -- Inherits from `FieldOptions` with the `form` property set as required. - -### `FieldApi` - -A class representing the API for managing a form field. - -#### Properties - -- ```tsx - form: FormApi - ``` - - A reference to the form API instance. -- ```tsx - name: DeepKeys - ``` - - The field name. -- ```tsx - store: Store> - ``` - - The field state store. -- ```tsx - state: FieldState - ``` - - The current field state. -- ```tsx - options: RequiredByKey, 'validateOn'> - ``` - - The field options with the `validateOn` property set as required. - -#### Methods - -- ```tsx - constructor(opts: FieldApiOptions) - ``` - - - Initializes a new `FieldApi` instance. - -- ```tsx - mount(): () => void - ``` - - - Mounts the field instance to the form. - -- ```tsx - update(opts: FieldApiOptions): void - ``` - - - Updates the field instance with new options. - -- ```tsx - getValue(): TData - ``` - - - Gets the current field value. - -- ```tsx - setValue(updater: Updater, options?: { touch?: boolean; notify?: boolean }): void - ``` - - - Sets the field value and run the `change` validator. - -- ```tsx - getMeta(): FieldMeta - ``` - - - Gets the current field metadata. - -- ```tsx - setMeta(updater: Updater): void - ``` - - - Sets the field metadata. - -- ```tsx - getInfo(): any - ``` - - - Gets the field information object. - -- ```tsx - pushValue(value: TData, opts?: { touch?: boolean }): void - ``` - - - Pushes a new value to the field. - -- ```tsx - insertValue(index: number, value: TData, opts?: { touch?: boolean }): void - ``` - - - Inserts a value at the specified index, shifting the subsequent values to the right. - -- ```tsx - replaceValue(index: number, value: TData): void - ``` - - Replaces a value at the specified index. - -- ```tsx - removeValue(index: number, opts?: { touch?: boolean }): Promise - ``` - - - Removes a value at the specified index. - -- ```tsx - swapValues(aIndex: number, bIndex: number, opts?: { touch?: boolean }): void - ``` - - - Swaps the values at the specified indices. -- ```tsx - moveValue(aIndex: number, bIndex: number, opts?: { touch?: boolean }) - ``` - - - Moves the value at the first specified index to the second specified index. - -- ```tsx - validate(): Promise - ``` - - - Validates the field value. - -- ```tsx - handleBlur(): void; - ``` - - - Handles the blur event. - -- ```tsx - handleChange(value: TData): void - ``` - - Handles the change event. - -### `FieldState` - -An object type representing the state of a field. - -- ```tsx - value: TData - ``` - - The current value of the field. -- ```tsx - meta: FieldMeta - ``` - - The current metadata of the field. diff --git a/docs/reference/fieldapi.md b/docs/reference/fieldapi.md new file mode 100644 index 000000000..b402af058 --- /dev/null +++ b/docs/reference/fieldapi.md @@ -0,0 +1,499 @@ +# Class: FieldApi\ + +A class representing the API for managing a form field. + +Normally, you will not need to create a new `FieldApi` instance directly. +Instead, you will use a framework hook/function like `useField` or `createField` +to create a new instance for you that uses your framework's reactivity model. +However, if you need to create a new instance manually, you can do so by calling +the `new FieldApi` constructor. + +## Type parameters + +• **TParentData** + +• **TName** *extends* [`DeepKeys`](deepkeys.md)\<`TParentData`\> + +• **TFieldValidator** *extends* `Validator`\<[`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\>, `unknown`\> \| `undefined` = `undefined` + +• **TFormValidator** *extends* `Validator`\<`TParentData`, `unknown`\> \| `undefined` = `undefined` + +• **TData** *extends* [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> = [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> + +## Constructors + +### new FieldApi() + +```ts +new FieldApi(opts): FieldApi +``` + +Initializes a new `FieldApi` instance. + +#### Parameters + +• **opts**: [`FieldApiOptions`](fieldapioptions.md)\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\> + +#### Returns + +[`FieldApi`](fieldapi.md)\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\> + +#### Source + +[packages/form-core/src/FieldApi.ts:436](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L436) + +## Properties + +### form + +```ts +form: FormApi; +``` + +A reference to the form API instance. + +#### Source + +[packages/form-core/src/FieldApi.ts:399](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L399) + +*** + +### name + +```ts +name: unknown extends TParentData ? string : TParentData extends readonly any[] & IsTuple ? PrefixTupleAccessor, AllowedIndexes, never>, []> : TParentData extends any[] ? PrefixArrayAccessor, [any]> : TParentData extends Date ? never : TParentData extends object ? PrefixObjectAccessor, []> : TParentData extends string | number | bigint | boolean ? "" : never; +``` + +The field name. + +#### Source + +[packages/form-core/src/FieldApi.ts:409](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L409) + +*** + +### options + +```ts +options: FieldApiOptions; +``` + +The field options. + +#### Source + +[packages/form-core/src/FieldApi.ts:413](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L413) + +*** + +### state + +```ts +state: FieldState; +``` + +The current field state. + +#### Source + +[packages/form-core/src/FieldApi.ts:427](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L427) + +*** + +### store + +```ts +store: Store, (cb) => FieldState>; +``` + +The field state store. + +#### Source + +[packages/form-core/src/FieldApi.ts:423](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L423) + +## Methods + +### getInfo() + +```ts +getInfo(): FieldInfo +``` + +Gets the field information object. + +#### Returns + +[`FieldInfo`](fieldinfo.md)\<`TParentData`, `TFormValidator`\> + +#### Source + +[packages/form-core/src/FieldApi.ts:652](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L652) + +*** + +### getMeta() + +```ts +getMeta(): FieldMeta +``` + +Gets the current field metadata. + +#### Returns + +[`FieldMeta`](fieldmeta.md) + +#### Source + +[packages/form-core/src/FieldApi.ts:630](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L630) + +*** + +### getValue() + +```ts +getValue(): TData +``` + +Gets the current field value. + +#### Returns + +`TData` + +#### Source + +[packages/form-core/src/FieldApi.ts:607](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L607) + +*** + +### handleBlur() + +```ts +handleBlur(): void +``` + +Handles the blur event. + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FieldApi.ts:962](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L962) + +*** + +### handleChange() + +```ts +handleChange(updater): void +``` + +Handles the change event. + +#### Parameters + +• **updater**: [`Updater`](updater.md)\<`TData`\> + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FieldApi.ts:955](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L955) + +*** + +### insertValue() + +```ts +insertValue( + index, + value, +opts?): Promise +``` + +Inserts a value at the specified index, shifting the subsequent values to the right. + +#### Parameters + +• **index**: `number` + +• **value**: `TData` *extends* `any`[] ? `TData`\<`TData`\>\[`number`\] : `never` + +• **opts?** + +• **opts.touch?**: `boolean` + +#### Returns + +`Promise`\<`void`\> + +#### Source + +[packages/form-core/src/FieldApi.ts:665](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L665) + +*** + +### mount() + +```ts +mount(): () => void +``` + +Mounts the field instance to the form. + +#### Returns + +`Function` + +##### Returns + +`void` + +#### Source + +[packages/form-core/src/FieldApi.ts:524](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L524) + +*** + +### moveValue() + +```ts +moveValue( + aIndex, + bIndex, + opts?): void +``` + +Moves the value at the first specified index to the second specified index. + +#### Parameters + +• **aIndex**: `number` + +• **bIndex**: `number` + +• **opts?** + +• **opts.touch?**: `boolean` + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FieldApi.ts:695](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L695) + +*** + +### pushValue() + +```ts +pushValue(value, opts?): void +``` + +Pushes a new value to the field. + +#### Parameters + +• **value**: `TData` *extends* `any`[] ? `TData`\<`TData`\>\[`number`\] : `never` + +• **opts?** + +• **opts.touch?**: `boolean` + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FieldApi.ts:657](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L657) + +*** + +### removeValue() + +```ts +removeValue(index, opts?): Promise +``` + +Removes a value at the specified index. + +#### Parameters + +• **index**: `number` + +• **opts?** + +• **opts.touch?**: `boolean` + +#### Returns + +`Promise`\<`void`\> + +#### Source + +[packages/form-core/src/FieldApi.ts:683](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L683) + +*** + +### replaceValue() + +```ts +replaceValue( + index, + value, +opts?): Promise +``` + +Replaces a value at the specified index. + +#### Parameters + +• **index**: `number` + +• **value**: `TData` *extends* `any`[] ? `TData`\<`TData`\>\[`number`\] : `never` + +• **opts?** + +• **opts.touch?**: `boolean` + +#### Returns + +`Promise`\<`void`\> + +#### Source + +[packages/form-core/src/FieldApi.ts:674](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L674) + +*** + +### setMeta() + +```ts +setMeta(updater): void +``` + +Sets the field metadata. + +#### Parameters + +• **updater**: [`Updater`](updater.md)\<[`FieldMeta`](fieldmeta.md)\> + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FieldApi.ts:646](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L646) + +*** + +### setValue() + +```ts +setValue(updater, options?): void +``` + +Sets the field value and run the `change` validator. + +#### Parameters + +• **updater**: [`Updater`](updater.md)\<`TData`\> + +• **options?** + +• **options.notify?**: `boolean` + +• **options.touch?**: `boolean` + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FieldApi.ts:614](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L614) + +*** + +### swapValues() + +```ts +swapValues( + aIndex, + bIndex, + opts?): void +``` + +Swaps the values at the specified indices. + +#### Parameters + +• **aIndex**: `number` + +• **bIndex**: `number` + +• **opts?** + +• **opts.touch?**: `boolean` + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FieldApi.ts:689](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L689) + +*** + +### update() + +```ts +update(opts): void +``` + +Updates the field instance with new options. + +#### Parameters + +• **opts**: [`FieldApiOptions`](fieldapioptions.md)\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\> + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FieldApi.ts:575](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L575) + +*** + +### validate() + +```ts +validate(cause): ValidationError[] | Promise +``` + +Validates the field value. + +#### Parameters + +• **cause**: `ValidationCause` + +#### Returns + +[`ValidationError`](validationerror.md)[] \| `Promise`\<[`ValidationError`](validationerror.md)[]\> + +#### Source + +[packages/form-core/src/FieldApi.ts:932](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L932) diff --git a/docs/reference/fieldapioptions.md b/docs/reference/fieldapioptions.md new file mode 100644 index 000000000..23efd0f6b --- /dev/null +++ b/docs/reference/fieldapioptions.md @@ -0,0 +1,173 @@ +# Interface: FieldApiOptions\ + +An object type representing the required options for the FieldApi class. + +## Extends + +- [`FieldOptions`](fieldoptions.md)\<`TParentData`, `TName`, `TFieldValidator`, `TFormValidator`, `TData`\> + +## Type parameters + +• **TParentData** + +• **TName** *extends* [`DeepKeys`](deepkeys.md)\<`TParentData`\> + +• **TFieldValidator** *extends* `Validator`\<[`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\>, `unknown`\> \| `undefined` = `undefined` + +• **TFormValidator** *extends* `Validator`\<`TParentData`, `unknown`\> \| `undefined` = `undefined` + +• **TData** *extends* [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> = [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> + +## Properties + +### asyncAlways? + +```ts +optional asyncAlways: boolean; +``` + +If `true`, always run async validation, even if there are errors emitted during synchronous validation. + +#### Inherited from + +[`FieldOptions`](fieldoptions.md).[`asyncAlways`](Interface.FieldOptions.md#asyncalways) + +#### Source + +[packages/form-core/src/FieldApi.ts:283](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L283) + +*** + +### asyncDebounceMs? + +```ts +optional asyncDebounceMs: number; +``` + +The default time to debounce async validation if there is not a more specific debounce time passed. + +#### Inherited from + +[`FieldOptions`](fieldoptions.md).[`asyncDebounceMs`](Interface.FieldOptions.md#asyncdebouncems) + +#### Source + +[packages/form-core/src/FieldApi.ts:279](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L279) + +*** + +### defaultMeta? + +```ts +optional defaultMeta: Partial; +``` + +An optional object with default metadata for the field. + +#### Inherited from + +[`FieldOptions`](fieldoptions.md).[`defaultMeta`](Interface.FieldOptions.md#defaultmeta) + +#### Source + +[packages/form-core/src/FieldApi.ts:302](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L302) + +*** + +### defaultValue? + +```ts +optional defaultValue: NoInfer; +``` + +An optional default value for the field. + +#### Inherited from + +[`FieldOptions`](fieldoptions.md).[`defaultValue`](Interface.FieldOptions.md#defaultvalue) + +#### Source + +[packages/form-core/src/FieldApi.ts:275](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L275) + +*** + +### form + +```ts +form: FormApi; +``` + +#### Source + +[packages/form-core/src/FieldApi.ts:325](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L325) + +*** + +### name + +```ts +name: TName; +``` + +The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. + +#### Inherited from + +[`FieldOptions`](fieldoptions.md).[`name`](Interface.FieldOptions.md#name) + +#### Source + +[packages/form-core/src/FieldApi.ts:271](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L271) + +*** + +### preserveValue? + +```ts +optional preserveValue: boolean; +``` + +#### Inherited from + +[`FieldOptions`](fieldoptions.md).[`preserveValue`](Interface.FieldOptions.md#preservevalue) + +#### Source + +[packages/form-core/src/FieldApi.ts:284](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L284) + +*** + +### validatorAdapter? + +```ts +optional validatorAdapter: TFieldValidator; +``` + +A validator provided by an extension, like `yupValidator` from `@tanstack/yup-form-adapter` + +#### Inherited from + +[`FieldOptions`](fieldoptions.md).[`validatorAdapter`](Interface.FieldOptions.md#validatoradapter) + +#### Source + +[packages/form-core/src/FieldApi.ts:288](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L288) + +*** + +### validators? + +```ts +optional validators: FieldValidators; +``` + +A list of validators to pass to the field + +#### Inherited from + +[`FieldOptions`](fieldoptions.md).[`validators`](Interface.FieldOptions.md#validators) + +#### Source + +[packages/form-core/src/FieldApi.ts:292](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L292) diff --git a/docs/reference/fieldinfo.md b/docs/reference/fieldinfo.md new file mode 100644 index 000000000..40facef3b --- /dev/null +++ b/docs/reference/fieldinfo.md @@ -0,0 +1,35 @@ +# Type alias: FieldInfo\ + +```ts +type FieldInfo: object; +``` + +An object representing the field information for a specific field within the form. + +## Type parameters + +• **TFormData** + +• **TFormValidator** *extends* `Validator`\<`TFormData`, `unknown`\> \| `undefined` = `undefined` + +## Type declaration + +### instance + +```ts +instance: FieldApi | undefined, TFormValidator> | null; +``` + +An instance of the FieldAPI. + +### validationMetaMap + +```ts +validationMetaMap: Record; +``` + +A record of field validation internal handling. + +## Source + +[packages/form-core/src/FormApi.ts:175](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L175) diff --git a/docs/reference/fieldmeta.md b/docs/reference/fieldmeta.md new file mode 100644 index 000000000..0bc5414cf --- /dev/null +++ b/docs/reference/fieldmeta.md @@ -0,0 +1,69 @@ +# Type alias: FieldMeta + +```ts +type FieldMeta: object; +``` + +An object type representing the metadata of a field in a form. + +## Type declaration + +### errorMap + +```ts +errorMap: ValidationErrorMap; +``` + +A map of errors related to the field value. + +### errors + +```ts +errors: ValidationError[]; +``` + +An array of errors related to the field value. + +### isDirty + +```ts +isDirty: boolean; +``` + +A flag that is `true` if the field's value has been modified by the user. Opposite of `isPristine`. + +### isPristine + +```ts +isPristine: boolean; +``` + +A flag that is `true` if the field's value has not been modified by the user. Opposite of `isDirty`. + +### isTouched + +```ts +isTouched: boolean; +``` + +A flag indicating whether the field has been touched. + +### isValidating + +```ts +isValidating: boolean; +``` + +A flag indicating whether the field is currently being validated. + +### touchedErrors + +```ts +touchedErrors: ValidationError[]; +``` + +An array of errors related to the touched state of the field. + +## Source + +[packages/form-core/src/FieldApi.ts:331](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L331) diff --git a/docs/reference/fieldoptions.md b/docs/reference/fieldoptions.md new file mode 100644 index 000000000..cbb54f05a --- /dev/null +++ b/docs/reference/fieldoptions.md @@ -0,0 +1,129 @@ +# Interface: FieldOptions\ + +An object type representing the options for a field in a form. + +## Extended by + +- [`FieldApiOptions`](fieldapioptions.md) + +## Type parameters + +• **TParentData** + +• **TName** *extends* [`DeepKeys`](deepkeys.md)\<`TParentData`\> + +• **TFieldValidator** *extends* `Validator`\<[`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\>, `unknown`\> \| `undefined` = `undefined` + +• **TFormValidator** *extends* `Validator`\<`TParentData`, `unknown`\> \| `undefined` = `undefined` + +• **TData** *extends* [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> = [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> + +## Properties + +### asyncAlways? + +```ts +optional asyncAlways: boolean; +``` + +If `true`, always run async validation, even if there are errors emitted during synchronous validation. + +#### Source + +[packages/form-core/src/FieldApi.ts:283](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L283) + +*** + +### asyncDebounceMs? + +```ts +optional asyncDebounceMs: number; +``` + +The default time to debounce async validation if there is not a more specific debounce time passed. + +#### Source + +[packages/form-core/src/FieldApi.ts:279](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L279) + +*** + +### defaultMeta? + +```ts +optional defaultMeta: Partial; +``` + +An optional object with default metadata for the field. + +#### Source + +[packages/form-core/src/FieldApi.ts:302](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L302) + +*** + +### defaultValue? + +```ts +optional defaultValue: NoInfer; +``` + +An optional default value for the field. + +#### Source + +[packages/form-core/src/FieldApi.ts:275](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L275) + +*** + +### name + +```ts +name: TName; +``` + +The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. + +#### Source + +[packages/form-core/src/FieldApi.ts:271](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L271) + +*** + +### preserveValue? + +```ts +optional preserveValue: boolean; +``` + +#### Source + +[packages/form-core/src/FieldApi.ts:284](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L284) + +*** + +### validatorAdapter? + +```ts +optional validatorAdapter: TFieldValidator; +``` + +A validator provided by an extension, like `yupValidator` from `@tanstack/yup-form-adapter` + +#### Source + +[packages/form-core/src/FieldApi.ts:288](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L288) + +*** + +### validators? + +```ts +optional validators: FieldValidators; +``` + +A list of validators to pass to the field + +#### Source + +[packages/form-core/src/FieldApi.ts:292](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L292) diff --git a/docs/reference/fieldstate.md b/docs/reference/fieldstate.md new file mode 100644 index 000000000..acf3bc9c9 --- /dev/null +++ b/docs/reference/fieldstate.md @@ -0,0 +1,33 @@ +# Type alias: FieldState\ + +```ts +type FieldState: object; +``` + +An object type representing the state of a field. + +## Type parameters + +• **TData** + +## Type declaration + +### meta + +```ts +meta: FieldMeta; +``` + +The current metadata of the field. + +### value + +```ts +value: TData; +``` + +The current value of the field. + +## Source + +[packages/form-core/src/FieldApi.ts:365](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L365) diff --git a/docs/reference/fieldvalidators.md b/docs/reference/fieldvalidators.md new file mode 100644 index 000000000..45bc671e8 --- /dev/null +++ b/docs/reference/fieldvalidators.md @@ -0,0 +1,213 @@ +# Interface: FieldValidators\ + +## Type parameters + +• **TParentData** + +• **TName** *extends* [`DeepKeys`](deepkeys.md)\<`TParentData`\> + +• **TFieldValidator** *extends* `Validator`\<[`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\>, `unknown`\> \| `undefined` = `undefined` + +• **TFormValidator** *extends* `Validator`\<`TParentData`, `unknown`\> \| `undefined` = `undefined` + +• **TData** *extends* [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> = [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> + +## Properties + +### onBlur? + +```ts +optional onBlur: FieldValidateOrFn; +``` + +An optional function, that when run when subscribing to blur event of input. +If `validatorAdapter` is passed, this may also accept a property from the respective adapter + +#### Example + +```ts +`z.string().min(1)` if `zodAdapter` is passed +``` + +#### Source + +[packages/form-core/src/FieldApi.ts:195](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L195) + +*** + +### onBlurAsync? + +```ts +optional onBlurAsync: FieldAsyncValidateOrFn; +``` + +An optional property similar to `onBlur` but async validation. If `validatorAdapter` +is passed, this may also accept a property from the respective adapter + +#### Example + +```ts +`z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' })` if `zodAdapter` is passed +``` + +#### Source + +[packages/form-core/src/FieldApi.ts:208](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L208) + +*** + +### onBlurAsyncDebounceMs? + +```ts +optional onBlurAsyncDebounceMs: number; +``` + +An optional number to represent how long the `onBlurAsync` should wait before running + +If set to a number larger than 0, will debounce the async validation event by this length of time in milliseconds + +#### Source + +[packages/form-core/src/FieldApi.ts:221](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L221) + +*** + +### onBlurListenTo? + +```ts +optional onBlurListenTo: unknown extends TParentData ? string : TParentData extends readonly any[] & IsTuple ? PrefixTupleAccessor, AllowedIndexes, never>, []> : TParentData extends any[] ? PrefixArrayAccessor, [any]> : TParentData extends Date ? never : TParentData extends object ? PrefixObjectAccessor, []> : TParentData extends string | number | bigint | boolean ? "" : never[]; +``` + +An optional list of field names that should trigger this field's `onBlur` and `onBlurAsync` events when its value changes + +#### Source + +[packages/form-core/src/FieldApi.ts:225](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L225) + +*** + +### onChange? + +```ts +optional onChange: FieldValidateOrFn; +``` + +An optional property that takes a `ValidateFn` which is a generic of `TData` and `TParentData`. +If `validatorAdapter` is passed, this may also accept a property from the respective adapter + +#### Example + +```ts +`z.string().min(1)` if `zodAdapter` is passed +``` + +#### Source + +[packages/form-core/src/FieldApi.ts:159](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L159) + +*** + +### onChangeAsync? + +```ts +optional onChangeAsync: FieldAsyncValidateOrFn; +``` + +An optional property similar to `onChange` but async validation. If `validatorAdapter` +is passed, this may also accept a property from the respective adapter + +#### Example + +```ts +`z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' })` if `zodAdapter` is passed +``` + +#### Source + +[packages/form-core/src/FieldApi.ts:172](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L172) + +*** + +### onChangeAsyncDebounceMs? + +```ts +optional onChangeAsyncDebounceMs: number; +``` + +An optional number to represent how long the `onChangeAsync` should wait before running + +If set to a number larger than 0, will debounce the async validation event by this length of time in milliseconds + +#### Source + +[packages/form-core/src/FieldApi.ts:184](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L184) + +*** + +### onChangeListenTo? + +```ts +optional onChangeListenTo: unknown extends TParentData ? string : TParentData extends readonly any[] & IsTuple ? PrefixTupleAccessor, AllowedIndexes, never>, []> : TParentData extends any[] ? PrefixArrayAccessor, [any]> : TParentData extends Date ? never : TParentData extends object ? PrefixObjectAccessor, []> : TParentData extends string | number | bigint | boolean ? "" : never[]; +``` + +An optional list of field names that should trigger this field's `onChange` and `onChangeAsync` events when its value changes + +#### Source + +[packages/form-core/src/FieldApi.ts:188](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L188) + +*** + +### onMount? + +```ts +optional onMount: FieldValidateOrFn; +``` + +An optional function that takes a param of `formApi` which is a generic type of `TData` and `TParentData` + +#### Source + +[packages/form-core/src/FieldApi.ts:146](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L146) + +*** + +### onSubmit? + +```ts +optional onSubmit: FieldValidateOrFn; +``` + +An optional function, that when run when subscribing to submit event of input. +If `validatorAdapter` is passed, this may also accept a property from the respective adapter + +#### Example + +```ts +`z.string().min(1)` if `zodAdapter` is passed +``` + +#### Source + +[packages/form-core/src/FieldApi.ts:232](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L232) + +*** + +### onSubmitAsync? + +```ts +optional onSubmitAsync: FieldAsyncValidateOrFn; +``` + +An optional property similar to `onSubmit` but async validation. If `validatorAdapter` +is passed, this may also accept a property from the respective adapter + +#### Example + +```ts +`z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' })` if `zodAdapter` is passed +``` + +#### Source + +[packages/form-core/src/FieldApi.ts:245](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FieldApi.ts#L245) diff --git a/docs/reference/formApi.md b/docs/reference/formApi.md deleted file mode 100644 index fa5e3b18a..000000000 --- a/docs/reference/formApi.md +++ /dev/null @@ -1,319 +0,0 @@ ---- -id: formApi -title: Form API ---- - -### Creating a new FormApi Instance - -Normally, you will not need to create a new `FormApi` instance directly. Instead, you will use a framework hook/function like `useForm` or `createForm` to create a new instance for you that utilizes your frameworks reactivity model. However, if you need to create a new instance manually, you can do so by calling the `new FormApi` constructor. - -```tsx -const formApi: FormApi = new FormApi(formOptions: FormOptions) -``` - -### `FormOptions` - -An object representing the options for a form. - -- ```tsx - asyncDebounceMs?: number - ``` - - Optional time in milliseconds if you want to introduce a delay before firing off an async action. - -- ```tsx - asyncAlways?: boolean - ``` - - If true, always run async validation, even when sync validation has produced an error. Defaults to `undefined`. - -- ```tsx - defaultValues?: TData - ``` - - Set initial values for your form. - -- ```tsx - defaultState?: Partial> - ``` - - The default state for the form. - -- ```tsx - onSubmit?: (values: TData, formApi: FormApi) => any | Promise - ``` - - 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` - -- ```tsx - onSubmitInvalid?: (values: TData, formApi: FormApi) => void - ``` - - Specify an action for scenarios where the user tries to submit an invalid form. - -- ```tsx - validatorAdapter?: TFormValidator - ``` - - A validator adapter to support usage of extra validation types (IE: Zod, Yup, or Valibot usage) - -- ```tsx - validators?: FormValidators - ``` - - A list of validators to pass to the form - -### `FormValidators` - -- ```tsx - onMount?: (values: TData, formApi: FormApi) => ValidationError - ``` - - Optional function that fires as soon as the component mounts. - -- ```tsx - onChange?: (values: TData, formApi: FormApi) => ValidationError - ``` - - Optional function that checks the validity of your data whenever a value changes - -- ```tsx - onChangeAsync?: (values: TData, formApi: FormApi) => ValidationError | Promise - ``` - - Optional onChange asynchronous counterpart to onChange. Useful for more complex validation logic that might involve server requests. - -- ```tsx - onChangeAsyncDebounceMs?: number - ``` - - 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. - -- ```tsx - onBlur?: (values: TData, formApi: FormApi) => ValidationError - ``` - - Optional function that validates the form data when a field loses focus, returns a `ValidationError` - -- ```tsx - onBlurAsync?: (values: TData,formApi: FormApi) => ValidationError | Promise - ``` - - Optional onBlur asynchronous validation method for when a field loses focus return a `ValidationError` or a promise of `Promise` - -- ```tsx - onBlurAsyncDebounceMs?: number - ``` - - 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. - -### `FormApi` - -A class representing the Form API. It handles the logic and interactions with the form state. - -#### Properties - -- ```tsx - options: FormOptions = {} - ``` - - The options for the form. - -- ```tsx - store: Store> - ``` - - A [TanStack Store instance](https://tanstack.com/store/latest/docs/reference/Store) that keeps track of the form's state. - -- ```tsx - state: FormState - ``` - - The current state of the form. - -- ```tsx - fieldInfo: Record, FieldInfo> = - {} as any - ``` - - A record of field information for each field in the form. - -#### Methods - -- ```tsx - constructor(opts?: FormOptions) - ``` - - Constructs a new `FormApi` instance with the given form options. -- ```tsx - update(options: FormOptions) - ``` - - Updates the form options and form state. -- ```tsx - reset() - ``` - - Resets the form state to the default values. -- ```tsx - validateAllFields(cause: ValidationCause): Promise - ``` - - Validates all fields in the form using the correct handlers for a given validation type. -- ```tsx - validateArrayFieldsStartingFrom>(field: TField, index: number, cause: ValidationCause): ValidationError[] | Promise - ``` - - 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. -- ```tsx - validateField>(field: TField, cause: ValidationCause): ValidationError[] | Promise - ``` - - Validates a specified field in the form using the correct handlers for a given validation type. - -- ```tsx - handleSubmit() - ``` - - Handles the form submission, performs validation, and calls the appropriate `onSubmit` or `onInvalidSubmit` callbacks. -- ```tsx - getFieldValue>(field: TField) - ``` - - Gets the value of the specified field. -- ```tsx - getFieldMeta>(field: TField) - ``` - - Gets the metadata of the specified field. -- ```tsx - getFieldInfo>(field: TField) - ``` - - Gets the field info of the specified field. -- ```tsx - setFieldMeta>(field: TField, updater: Updater) - ``` - - Updates the metadata of the specified field. -- ```tsx - setFieldValue>(field: TField, updater: Updater>, opts?: { touch?: boolean }) - ``` - - Sets the value of the specified field and optionally updates the touched state. -- ```tsx - pushFieldValue>(field: TField, value: DeepValue, opts?: { touch?: boolean }) - ``` - - Pushes a value into an array field. -- ```tsx - insertFieldValue>(field: TField, index: number, value: DeepValue, opts?: { touch?: boolean }) - ``` - - Inserts a value into an array field at the specified index, shifting the subsequent values to the right. -- ```tsx - replaceFieldValue>(field: TField, index: number, value: DeepValue, opts?: { touch?: boolean }) - ``` - - Replaces a value into an array field at the specified index. -- ```tsx - removeFieldValue>(field: TField, index: number, opts?: { touch?: boolean }) - ``` - - Removes a value from an array field at the specified index. -- ```tsx - swapFieldValues>(field: TField, index1: number, index2: number, opts?: { touch?: boolean }) - ``` - - Swaps the values at the specified indices within an array field. -- ```tsx - moveFieldValues>(field: TField, index1: number, index2: number, opts?: { touch?: boolean }) - ``` - - Moves the value at the first specified index to the second specified index within an array field. - -### `FormState` - -An object representing the current state of the form. - -- ```tsx - values: TData - ``` - - The current values of the form fields. - -- ```tsx - errors: ValidationError[] - ``` - - The error array for the form itself. - -- ```tsx - errorMap: ValidationErrorMap - ``` - - The error map for the form itself. - -- ```tsx - isFormValidating: boolean - ``` - - A boolean indicating if the form is currently validating. - -- ```tsx - isFormValid: boolean - ``` - - A boolean indicating if the form is valid. - -- ```tsx - fieldMeta: Record, FieldMeta> - ``` - - A record of field metadata for each field in the form. - -- ```tsx - isFieldsValidating: boolean - ``` - - A boolean indicating if any of the form fields are currently validating. - -- ```tsx - isFieldsValid: boolean - ``` - - A boolean indicating if all the form fields are valid. - -- ```tsx - isSubmitting: boolean - ``` - - A boolean indicating if the form is currently submitting. - -- ```tsx - isTouched: boolean - ``` - - A boolean indicating if any of the form fields have been touched. - -- ```tsx - isPristine: boolean - ``` - - A boolean indicating if none of the form's fields' values have been modified by the user. `True` if the user have not modified any of the fields. Opposite of `isDirty`. - -- ```tsx - isDirty: boolean - ``` - - A boolean indicating if any of the form's fields' values have been modified by the user. `True` if the user have modified at least one of the fields. Opposite of `isPristine`. - -- ```tsx - isSubmitted: boolean - ``` - - A boolean indicating if the form has been submitted. - -- ```tsx - isValidating: boolean - ``` - - A boolean indicating if the form or any of its fields are currently validating. - -- ```tsx - isValid: boolean - ``` - - A boolean indicating if the form and all its fields are valid. - -- ```tsx - canSubmit: boolean - ``` - - A boolean indicating if the form can be submitted based on its current state. - -- ```tsx - submissionAttempts: number - ``` - - A counter for tracking the number of submission attempts. - -- ```tsx - validationMetaMap: Record - ``` - - An internal mechanism used for keeping track of validation logic in a form. - -### `FieldInfo` - -An object representing the field information for a specific field within the form. - -- ```tsx - instance: FieldApi< - TFormData, - any, - Validator | undefined, - TFormValidator - > | null - ``` - - An instance of the `FieldAPI`. - -- ```tsx - validationMetaMap: Record - ``` - - A record of field validation internal handling. - - Check below for `ValidationMeta` - -### `ValidationMeta` - -An object representing the validation metadata for a field. Not intended for public usage. - -- ```tsx - lastAbortController: AbortController - ``` - - An abort controller stored in memory to cancel previous async validation attempts. diff --git a/docs/reference/formapi.md b/docs/reference/formapi.md new file mode 100644 index 000000000..b343fc86b --- /dev/null +++ b/docs/reference/formapi.md @@ -0,0 +1,663 @@ +# Class: FormApi\ + +A class representing the Form API. It handles the logic and interactions with the form state. + +Normally, you will not need to create a new `FormApi` instance directly. Instead, you will use a framework +hook/function like `useForm` or `createForm` to create a new instance for you that uses your framework's reactivity model. +However, if you need to create a new instance manually, you can do so by calling the `new FormApi` constructor. + +## Type parameters + +• **TFormData** + +• **TFormValidator** *extends* `Validator`\<`TFormData`, `unknown`\> \| `undefined` = `undefined` + +## Constructors + +### new FormApi() + +```ts +new FormApi(opts?): FormApi +``` + +Constructs a new `FormApi` instance with the given form options. + +#### Parameters + +• **opts?**: [`FormOptions`](formoptions.md)\<`TFormData`, `TFormValidator`\> + +#### Returns + +[`FormApi`](formapi.md)\<`TFormData`, `TFormValidator`\> + +#### Source + +[packages/form-core/src/FormApi.ts:344](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L344) + +## Properties + +### fieldInfo + +```ts +fieldInfo: Record ? PrefixTupleAccessor, AllowedIndexes, never>, []> : TFormData extends any[] ? PrefixArrayAccessor, [any]> : TFormData extends Date ? never : TFormData extends object ? PrefixObjectAccessor, []> : TFormData extends string | number | bigint | boolean ? "" : never, FieldInfo>; +``` + +A record of field information for each field in the form. + +#### Source + +[packages/form-core/src/FormApi.ts:333](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L333) + +*** + +### options + +```ts +options: FormOptions = {}; +``` + +The options for the form. + +#### Source + +[packages/form-core/src/FormApi.ts:317](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L317) + +*** + +### state + +```ts +state: FormState; +``` + +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 + +#### Source + +[packages/form-core/src/FormApi.ts:329](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L329) + +*** + +### store + +```ts +store: Store, (cb) => FormState>; +``` + +A [TanStack Store instance](https://tanstack.com/store/latest/docs/reference/Store) that keeps track of the form's state. + +#### Source + +[packages/form-core/src/FormApi.ts:321](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L321) + +## Methods + +### deleteField() + +```ts +deleteField(field): void +``` + +#### Type parameters + +• **TField** *extends* `string` \| `number` + +#### Parameters + +• **field**: `TField` + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FormApi.ts:925](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L925) + +*** + +### getFieldInfo() + +```ts +getFieldInfo(field): FieldInfo +``` + +Gets the field info of the specified field. + +#### Type parameters + +• **TField** *extends* `string` \| `number` + +#### Parameters + +• **field**: `TField` + +#### Returns + +[`FieldInfo`](fieldinfo.md)\<`TFormData`, `TFormValidator`\> + +#### Source + +[packages/form-core/src/FormApi.ts:842](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L842) + +*** + +### getFieldMeta() + +```ts +getFieldMeta(field): undefined | FieldMeta +``` + +Gets the metadata of the specified field. + +#### Type parameters + +• **TField** *extends* `string` \| `number` + +#### Parameters + +• **field**: `TField` + +#### Returns + +`undefined` \| [`FieldMeta`](fieldmeta.md) + +#### Source + +[packages/form-core/src/FormApi.ts:833](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L833) + +*** + +### getFieldValue() + +```ts +getFieldValue(field): DeepValue> +``` + +Gets the value of the specified field. + +#### Type parameters + +• **TField** *extends* `string` \| `number` + +#### Parameters + +• **field**: `TField` + +#### Returns + +[`DeepValue`](deepvalue.md)\<`TFormData`, `TField`, `IsNullable`\<`TFormData`\>\> + +#### Source + +[packages/form-core/src/FormApi.ts:826](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L826) + +*** + +### handleSubmit() + +```ts +handleSubmit(): Promise +``` + +Handles the form submission, performs validation, and calls the appropriate onSubmit or onInvalidSubmit callbacks. + +#### Returns + +`Promise`\<`void`\> + +#### Source + +[packages/form-core/src/FormApi.ts:766](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L766) + +*** + +### insertFieldValue() + +```ts +insertFieldValue( + field, + index, + value, +opts?): Promise +``` + +Inserts a value into an array field at the specified index, shifting the subsequent values to the right. + +#### Type parameters + +• **TField** *extends* `string` \| `number` + +#### Parameters + +• **field**: `TField` + +• **index**: `number` + +• **value**: [`DeepValue`](deepvalue.md)\<`TFormData`, `TField`, `IsNullable`\<`TFormData`\>\> *extends* `any`[] ? `any`[] & [`DeepValue`](deepvalue.md)\<`TFormData`, `TField`, `IsNullable`\<`TFormData`\>\>\[`number`\] : `never` + +• **opts?** + +• **opts.touch?**: `boolean` + +#### Returns + +`Promise`\<`void`\> + +#### Source + +[packages/form-core/src/FormApi.ts:957](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L957) + +*** + +### mount() + +```ts +mount(): void +``` + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FormApi.ts:442](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L442) + +*** + +### moveFieldValues() + +```ts +moveFieldValues( + field, + index1, + index2, + opts?): void +``` + +Moves the value at the first specified index to the second specified index within an array field. + +#### Type parameters + +• **TField** *extends* `string` \| `number` + +#### Parameters + +• **field**: `TField` + +• **index1**: `number` + +• **index2**: `number` + +• **opts?** + +• **opts.touch?**: `boolean` + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FormApi.ts:1075](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L1075) + +*** + +### pushFieldValue() + +```ts +pushFieldValue( + field, + value, + opts?): void +``` + +Pushes a value into an array field. + +#### Type parameters + +• **TField** *extends* `string` \| `number` + +#### Parameters + +• **field**: `TField` + +• **value**: [`DeepValue`](deepvalue.md)\<`TFormData`, `TField`, `IsNullable`\<`TFormData`\>\> *extends* `any`[] ? `any`[] & [`DeepValue`](deepvalue.md)\<`TFormData`, `TField`, `IsNullable`\<`TFormData`\>\>\[`number`\] : `never` + +• **opts?** + +• **opts.touch?**: `boolean` + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FormApi.ts:939](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L939) + +*** + +### removeFieldValue() + +```ts +removeFieldValue( + field, + index, +opts?): Promise +``` + +Removes a value from an array field at the specified index. + +#### Type parameters + +• **TField** *extends* `string` \| `number` + +#### Parameters + +• **field**: `TField` + +• **index**: `number` + +• **opts?** + +• **opts.touch?**: `boolean` + +#### Returns + +`Promise`\<`void`\> + +#### Source + +[packages/form-core/src/FormApi.ts:1010](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L1010) + +*** + +### replaceFieldValue() + +```ts +replaceFieldValue( + field, + index, + value, +opts?): Promise +``` + +Replaces a value into an array field at the specified index. + +#### Type parameters + +• **TField** *extends* `string` \| `number` + +#### Parameters + +• **field**: `TField` + +• **index**: `number` + +• **value**: [`DeepValue`](deepvalue.md)\<`TFormData`, `TField`, `IsNullable`\<`TFormData`\>\> *extends* `any`[] ? `any`[] & [`DeepValue`](deepvalue.md)\<`TFormData`, `TField`, `IsNullable`\<`TFormData`\>\>\[`number`\] : `never` + +• **opts?** + +• **opts.touch?**: `boolean` + +#### Returns + +`Promise`\<`void`\> + +#### Source + +[packages/form-core/src/FormApi.ts:984](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L984) + +*** + +### reset() + +```ts +reset(): void +``` + +Resets the form state to the default values. + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FormApi.ts:504](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L504) + +*** + +### resetFieldMeta() + +```ts +resetFieldMeta(fieldMeta): Record +``` + +#### Type parameters + +• **TField** *extends* `string` \| `number` + +#### Parameters + +• **fieldMeta**: `Record`\<`TField`, [`FieldMeta`](fieldmeta.md)\> + +#### Returns + +`Record`\<`TField`, [`FieldMeta`](fieldmeta.md)\> + +#### Source + +[packages/form-core/src/FormApi.ts:876](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L876) + +*** + +### setFieldMeta() + +```ts +setFieldMeta(field, updater): void +``` + +Updates the metadata of the specified field. + +#### Type parameters + +• **TField** *extends* `string` \| `number` + +#### Parameters + +• **field**: `TField` + +• **updater**: [`Updater`](updater.md)\<[`FieldMeta`](fieldmeta.md)\> + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FormApi.ts:861](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L861) + +*** + +### setFieldValue() + +```ts +setFieldValue( + field, + updater, + opts?): void +``` + +Sets the value of the specified field and optionally updates the touched state. + +#### Type parameters + +• **TField** *extends* `string` \| `number` + +#### Parameters + +• **field**: `TField` + +• **updater**: [`Updater`](updater.md)\<[`DeepValue`](deepvalue.md)\<`TFormData`, `TField`, `IsNullable`\<`TFormData`\>\>\> + +• **opts?** + +• **opts.touch?**: `boolean` + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FormApi.ts:900](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L900) + +*** + +### swapFieldValues() + +```ts +swapFieldValues( + field, + index1, + index2, + opts?): void +``` + +Swaps the values at the specified indices within an array field. + +#### Type parameters + +• **TField** *extends* `string` \| `number` + +#### Parameters + +• **field**: `TField` + +• **index1**: `number` + +• **index2**: `number` + +• **opts?** + +• **opts.touch?**: `boolean` + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FormApi.ts:1049](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L1049) + +*** + +### update() + +```ts +update(options?): void +``` + +Updates the form options and form state. + +#### Parameters + +• **options?**: [`FormOptions`](formoptions.md)\<`TFormData`, `TFormValidator`\> + +#### Returns + +`void` + +#### Source + +[packages/form-core/src/FormApi.ts:464](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L464) + +*** + +### validateAllFields() + +```ts +validateAllFields(cause): Promise +``` + +Validates all fields in the form using the correct handlers for a given validation type. + +#### Parameters + +• **cause**: `ValidationCause` + +#### Returns + +`Promise`\<[`ValidationError`](validationerror.md)[]\> + +#### Source + +[packages/form-core/src/FormApi.ts:519](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L519) + +*** + +### validateArrayFieldsStartingFrom() + +```ts +validateArrayFieldsStartingFrom( + field, + index, +cause): Promise +``` + +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. + +#### Type parameters + +• **TField** *extends* `string` \| `number` + +#### Parameters + +• **field**: `TField` + +• **index**: `number` + +• **cause**: `ValidationCause` + +#### Returns + +`Promise`\<[`ValidationError`](validationerror.md)[]\> + +#### Source + +[packages/form-core/src/FormApi.ts:546](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L546) + +*** + +### validateField() + +```ts +validateField(field, cause): ValidationError[] | Promise +``` + +Validates a specified field in the form using the correct handlers for a given validation type. + +#### Type parameters + +• **TField** *extends* `string` \| `number` + +#### Parameters + +• **field**: `TField` + +• **cause**: `ValidationCause` + +#### Returns + +[`ValidationError`](validationerror.md)[] \| `Promise`\<[`ValidationError`](validationerror.md)[]\> + +#### Source + +[packages/form-core/src/FormApi.ts:585](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L585) diff --git a/docs/reference/formoptions.md b/docs/reference/formoptions.md new file mode 100644 index 000000000..5ed5e908f --- /dev/null +++ b/docs/reference/formoptions.md @@ -0,0 +1,23 @@ +# Function: formOptions() + +```ts +function formOptions(defaultOpts?): undefined | FormOptions +``` + +## Type parameters + +• **TFormData** + +• **TFormValidator** *extends* `undefined` \| `Validator`\<`TFormData`, `unknown`\> = `undefined` + +## Parameters + +• **defaultOpts?**: [`FormOptions`](formoptions.md)\<`TFormData`, `TFormValidator`\> + +## Returns + +`undefined` \| [`FormOptions`](formoptions.md)\<`TFormData`, `TFormValidator`\> + +## Source + +[packages/form-core/src/formOptions.ts:4](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/formOptions.ts#L4) diff --git a/docs/reference/formstate.md b/docs/reference/formstate.md new file mode 100644 index 000000000..bb559d53d --- /dev/null +++ b/docs/reference/formstate.md @@ -0,0 +1,161 @@ +# Type alias: FormState\ + +```ts +type FormState: object; +``` + +An object representing the current state of the form. + +## Type parameters + +• **TFormData** + +## Type declaration + +### canSubmit + +```ts +canSubmit: boolean; +``` + +A boolean indicating if the form can be submitted based on its current state. + +### errorMap + +```ts +errorMap: ValidationErrorMap; +``` + +The error map for the form itself. + +### errors + +```ts +errors: ValidationError[]; +``` + +The error array for the form itself. + +### fieldMeta + +```ts +fieldMeta: Record, FieldMeta>; +``` + +A record of field metadata for each field in the form. + +### isDirty + +```ts +isDirty: boolean; +``` + +A boolean indicating if any of the form's fields' values have been modified by the user. `True` if the user have modified at least one of the fields. Opposite of `isPristine`. + +### isFieldsValid + +```ts +isFieldsValid: boolean; +``` + +A boolean indicating if all the form fields are valid. + +### isFieldsValidating + +```ts +isFieldsValidating: boolean; +``` + +A boolean indicating if any of the form fields are currently validating. + +### isFormValid + +```ts +isFormValid: boolean; +``` + +A boolean indicating if the form is valid. + +### isFormValidating + +```ts +isFormValidating: boolean; +``` + +A boolean indicating if the form is currently validating. + +### isPristine + +```ts +isPristine: boolean; +``` + +A boolean indicating if none of the form's fields' values have been modified by the user. `True` if the user have not modified any of the fields. Opposite of `isDirty`. + +### isSubmitted + +```ts +isSubmitted: boolean; +``` + +A boolean indicating if the form has been submitted. + +### isSubmitting + +```ts +isSubmitting: boolean; +``` + +A boolean indicating if the form is currently submitting. + +### isTouched + +```ts +isTouched: boolean; +``` + +A boolean indicating if any of the form fields have been touched. + +### isValid + +```ts +isValid: boolean; +``` + +A boolean indicating if the form and all its fields are valid. + +### isValidating + +```ts +isValidating: boolean; +``` + +A boolean indicating if the form or any of its fields are currently validating. + +### submissionAttempts + +```ts +submissionAttempts: number; +``` + +A counter for tracking the number of submission attempts. + +### validationMetaMap + +```ts +validationMetaMap: Record; +``` + +An internal mechanism used for keeping track of validation logic in a form. + +### values + +```ts +values: TFormData; +``` + +The current values of the form fields. + +## Source + +[packages/form-core/src/FormApi.ts:197](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L197) diff --git a/docs/reference/formvalidators.md b/docs/reference/formvalidators.md new file mode 100644 index 000000000..243509b1c --- /dev/null +++ b/docs/reference/formvalidators.md @@ -0,0 +1,129 @@ +# Interface: FormValidators\ + +## Type parameters + +• **TFormData** + +• **TFormValidator** *extends* `Validator`\<`TFormData`, `unknown`\> \| `undefined` = `undefined` + +## Properties + +### onBlur? + +```ts +optional onBlur: FormValidateOrFn; +``` + +Optional function that validates the form data when a field loses focus, returns a ValidationError + +#### Source + +[packages/form-core/src/FormApi.ts:88](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L88) + +*** + +### onBlurAsync? + +```ts +optional onBlurAsync: FormAsyncValidateOrFn; +``` + +Optional onBlur asynchronous validation method for when a field loses focus return a `ValidationError` or a promise of `Promise` + +#### Source + +[packages/form-core/src/FormApi.ts:92](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L92) + +*** + +### onBlurAsyncDebounceMs? + +```ts +optional onBlurAsyncDebounceMs: number; +``` + +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. + +#### Source + +[packages/form-core/src/FormApi.ts:96](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L96) + +*** + +### onChange? + +```ts +optional onChange: FormValidateOrFn; +``` + +Optional function that checks the validity of your data whenever a value changes + +#### Source + +[packages/form-core/src/FormApi.ts:76](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L76) + +*** + +### onChangeAsync? + +```ts +optional onChangeAsync: FormAsyncValidateOrFn; +``` + +Optional onChange asynchronous counterpart to onChange. Useful for more complex validation logic that might involve server requests. + +#### Source + +[packages/form-core/src/FormApi.ts:80](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L80) + +*** + +### onChangeAsyncDebounceMs? + +```ts +optional onChangeAsyncDebounceMs: number; +``` + +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. + +#### Source + +[packages/form-core/src/FormApi.ts:84](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L84) + +*** + +### onMount? + +```ts +optional onMount: FormValidateOrFn; +``` + +Optional function that fires as soon as the component mounts. + +#### Source + +[packages/form-core/src/FormApi.ts:72](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L72) + +*** + +### onSubmit? + +```ts +optional onSubmit: FormValidateOrFn; +``` + +#### Source + +[packages/form-core/src/FormApi.ts:97](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L97) + +*** + +### onSubmitAsync? + +```ts +optional onSubmitAsync: FormAsyncValidateOrFn; +``` + +#### Source + +[packages/form-core/src/FormApi.ts:98](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L98) diff --git a/docs/reference/index.md b/docs/reference/index.md new file mode 100644 index 000000000..30c3aeb86 --- /dev/null +++ b/docs/reference/index.md @@ -0,0 +1,32 @@ +# @tanstack/form-core + +## Classes + +- [FieldApi](fieldapi.md) +- [FormApi](formapi.md) + +## Interfaces + +- [FieldApiOptions](fieldapioptions.md) +- [FieldOptions](fieldoptions.md) +- [FieldValidators](fieldvalidators.md) +- [FormOptions](formoptions.md) +- [FormValidators](formvalidators.md) + +## Type Aliases + +- [DeepKeys](deepkeys.md) +- [DeepValue](deepvalue.md) +- [FieldInfo](fieldinfo.md) +- [FieldMeta](fieldmeta.md) +- [FieldState](fieldstate.md) +- [FormState](formstate.md) +- [Updater](updater.md) +- [UpdaterFn](updaterfn.md) +- [ValidationError](validationerror.md) +- [ValidationMeta](validationmeta.md) + +## Functions + +- [formOptions](formoptions.md) +- [mergeForm](mergeform.md) diff --git a/docs/reference/mergeform.md b/docs/reference/mergeform.md new file mode 100644 index 000000000..7b55b1d0c --- /dev/null +++ b/docs/reference/mergeform.md @@ -0,0 +1,25 @@ +# Function: mergeForm() + +```ts +function mergeForm(baseForm, state): FormApi, NoInfer> +``` + +## Type parameters + +• **TFormData** + +• **TFormValidator** *extends* `undefined` \| `Validator`\<`TFormData`, `unknown`\> = `undefined` + +## Parameters + +• **baseForm**: [`FormApi`](formapi.md)\<`NoInfer`\<`TFormData`\>, `NoInfer`\<`TFormValidator`\>\> + +• **state**: `Partial`\<[`FormState`](formstate.md)\<`TFormData`\>\> + +## Returns + +[`FormApi`](formapi.md)\<`NoInfer`\<`TFormData`\>, `NoInfer`\<`TFormValidator`\>\> + +## Source + +[packages/form-core/src/mergeForm.ts:37](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/mergeForm.ts#L37) diff --git a/docs/reference/types.md b/docs/reference/types.md deleted file mode 100644 index a32bab7fa..000000000 --- a/docs/reference/types.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -id: types -title: Types - ---- - -### Using TanStack Form Types - -Normally, you will not need use these types directly. However, if you're debugging hard-to-reach issues or are a maintainer of one of our packages, these types can help you distinguish what's going on. - -### `ValidationError` - -A type representing a validation error. Possible values are `undefined`, `false`, `null`, or a `string` with an error message. - -### `ValidationErrorMapKeys` -A type representing the keys used to map to `ValidationError` in `ValidationErrorMap`. It is defined with `on${Capitalize}` - -### `ValidationErrorMap` - -A type that represents a map with the keys as `ValidationErrorMapKeys` and the values as `ValidationError` \ No newline at end of file diff --git a/docs/reference/updater.md b/docs/reference/updater.md new file mode 100644 index 000000000..8c297407f --- /dev/null +++ b/docs/reference/updater.md @@ -0,0 +1,15 @@ +# Type alias: Updater\ + +```ts +type Updater: TOutput | UpdaterFn; +``` + +## Type parameters + +• **TInput** + +• **TOutput** = `TInput` + +## Source + +[packages/form-core/src/utils.ts:7](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/utils.ts#L7) diff --git a/docs/reference/updaterfn.md b/docs/reference/updaterfn.md new file mode 100644 index 000000000..477a0a0d5 --- /dev/null +++ b/docs/reference/updaterfn.md @@ -0,0 +1,23 @@ +# Type alias: UpdaterFn()\ + +```ts +type UpdaterFn: (input) => TOutput; +``` + +## Type parameters + +• **TInput** + +• **TOutput** = `TInput` + +## Parameters + +• **input**: `TInput` + +## Returns + +`TOutput` + +## Source + +[packages/form-core/src/utils.ts:5](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/utils.ts#L5) diff --git a/docs/reference/validationerror.md b/docs/reference/validationerror.md new file mode 100644 index 000000000..be945d647 --- /dev/null +++ b/docs/reference/validationerror.md @@ -0,0 +1,9 @@ +# Type alias: ValidationError + +```ts +type ValidationError: undefined | false | null | string; +``` + +## Source + +[packages/form-core/src/types.ts:1](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/types.ts#L1) diff --git a/docs/reference/validationmeta.md b/docs/reference/validationmeta.md new file mode 100644 index 000000000..7f57998b3 --- /dev/null +++ b/docs/reference/validationmeta.md @@ -0,0 +1,21 @@ +# Type alias: ValidationMeta + +```ts +type ValidationMeta: object; +``` + +An object representing the validation metadata for a field. Not intended for public usage. + +## Type declaration + +### lastAbortController + +```ts +lastAbortController: AbortController; +``` + +An abort controller stored in memory to cancel previous async validation attempts. + +## Source + +[packages/form-core/src/FormApi.ts:165](https://github.com/TanStack/form/blob/5c94fa159313e0b0411d49fbdc3b117336185e63/packages/form-core/src/FormApi.ts#L165) diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 000000000..dc9d211f8 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,21 @@ +// @ts-check + +// @ts-expect-error +import { rootConfig } from '@tanstack/config/eslint' + +export default [ + ...rootConfig, + { + name: 'tanstack/temp', + rules: { + '@typescript-eslint/array-type': 'off', + '@typescript-eslint/method-signature-style': 'off', + '@typescript-eslint/naming-convention': 'off', + '@typescript-eslint/no-empty-object-type': 'off', + '@typescript-eslint/no-unnecessary-type-assertion': 'off', + '@typescript-eslint/no-unsafe-function-type': 'off', + '@typescript-eslint/no-unused-expressions': 'off', + '@typescript-eslint/prefer-for-of': 'off', + }, + }, +] diff --git a/examples/angular/array/package.json b/examples/angular/array/package.json index 02341fcd3..3b2cbc7b0 100644 --- a/examples/angular/array/package.json +++ b/examples/angular/array/package.json @@ -1,6 +1,7 @@ { "name": "@tanstack/form-example-angular-array", - "version": "0.0.0", + "private": true, + "type": "module", "scripts": { "ng": "ng", "start": "ng cache clean && ng serve", @@ -8,9 +9,8 @@ "watch": "ng build --watch --configuration development", "test": "ng test" }, - "private": true, "dependencies": { - "@tanstack/angular-form": "^0.22.0", + "@tanstack/angular-form": "^0.23.3", "@angular/animations": "^17.3.0", "@angular/common": "^17.3.0", "@angular/compiler": "^17.3.0", diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index d77095b69..e2510a19a 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -1,6 +1,7 @@ { "name": "@tanstack/form-example-angular-simple", - "version": "0.0.0", + "private": true, + "type": "module", "scripts": { "ng": "ng", "start": "ng cache clean && ng serve", @@ -8,9 +9,8 @@ "watch": "ng build --watch --configuration development", "test": "ng test" }, - "private": true, "dependencies": { - "@tanstack/angular-form": "^0.22.0", + "@tanstack/angular-form": "^0.23.3", "@angular/animations": "^17.3.0", "@angular/common": "^17.3.0", "@angular/compiler": "^17.3.0", diff --git a/examples/angular/valibot/package.json b/examples/angular/valibot/package.json index 2ee4e1e2d..07b6c96e3 100644 --- a/examples/angular/valibot/package.json +++ b/examples/angular/valibot/package.json @@ -1,6 +1,7 @@ { "name": "@tanstack/form-example-angular-valibot", - "version": "0.0.0", + "private": true, + "type": "module", "scripts": { "ng": "ng", "start": "ng cache clean && ng serve", @@ -8,10 +9,9 @@ "watch": "ng build --watch --configuration development", "test": "ng test" }, - "private": true, "dependencies": { - "@tanstack/angular-form": "^0.22.0", - "@tanstack/valibot-form-adapter": "^0.22.0", + "@tanstack/angular-form": "^0.23.3", + "@tanstack/valibot-form-adapter": "^0.23.3", "@angular/animations": "^17.3.0", "@angular/common": "^17.3.0", "@angular/compiler": "^17.3.0", @@ -22,7 +22,7 @@ "@angular/router": "^17.3.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", - "valibot": "^0.31.1", + "valibot": "^0.35.0", "zone.js": "~0.14.2" }, "devDependencies": { diff --git a/examples/angular/yup/package.json b/examples/angular/yup/package.json index 218f2738f..80e0d812a 100644 --- a/examples/angular/yup/package.json +++ b/examples/angular/yup/package.json @@ -1,6 +1,7 @@ { "name": "@tanstack/form-example-angular-yup", - "version": "0.0.0", + "private": true, + "type": "module", "scripts": { "ng": "ng", "start": "ng cache clean && ng serve", @@ -8,10 +9,9 @@ "watch": "ng build --watch --configuration development", "test": "ng test" }, - "private": true, "dependencies": { - "@tanstack/angular-form": "^0.22.0", - "@tanstack/yup-form-adapter": "^0.22.0", + "@tanstack/angular-form": "^0.23.3", + "@tanstack/yup-form-adapter": "^0.23.3", "@angular/animations": "^17.3.0", "@angular/common": "^17.3.0", "@angular/compiler": "^17.3.0", diff --git a/examples/angular/zod/package.json b/examples/angular/zod/package.json index 29dd04caa..a0ec1f74e 100644 --- a/examples/angular/zod/package.json +++ b/examples/angular/zod/package.json @@ -1,6 +1,7 @@ { "name": "@tanstack/form-example-angular-zod", - "version": "0.0.0", + "private": true, + "type": "module", "scripts": { "ng": "ng", "start": "ng cache clean && ng serve", @@ -8,10 +9,9 @@ "watch": "ng build --watch --configuration development", "test": "ng test" }, - "private": true, "dependencies": { - "@tanstack/angular-form": "^0.22.0", - "@tanstack/zod-form-adapter": "^0.22.0", + "@tanstack/angular-form": "^0.23.3", + "@tanstack/zod-form-adapter": "^0.23.3", "@angular/animations": "^17.3.0", "@angular/common": "^17.3.0", "@angular/compiler": "^17.3.0", diff --git a/examples/lit/simple/.eslintrc.cjs b/examples/lit/simple/.eslintrc.cjs index 75ee331c1..cca134ce1 100644 --- a/examples/lit/simple/.eslintrc.cjs +++ b/examples/lit/simple/.eslintrc.cjs @@ -1,15 +1,6 @@ // @ts-check /** @type {import('eslint').Linter.Config} */ -const config = { - extends: ['plugin:react/recommended', 'plugin:react-hooks/recommended'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json', - }, - rules: { - 'react/no-children-prop': 'off', - }, -} +const config = {} module.exports = config diff --git a/examples/lit/simple/package.json b/examples/lit/simple/package.json index 83a2c1436..16e1f1258 100644 --- a/examples/lit/simple/package.json +++ b/examples/lit/simple/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/form-example-lit-simple", - "version": "0.0.1", - "main": "src/index.jsx", + "private": true, + "type": "module", "scripts": { "dev": "vite --port=3001", "build": "vite build", @@ -9,7 +9,7 @@ "test:types": "tsc" }, "dependencies": { - "@tanstack/lit-form": "^0.22.0", + "@tanstack/lit-form": "^0.23.3", "lit": "^3.1.1" }, "devDependencies": { diff --git a/examples/lit/simple/tsconfig.json b/examples/lit/simple/tsconfig.json index 69e31ac92..79af5f233 100644 --- a/examples/lit/simple/tsconfig.json +++ b/examples/lit/simple/tsconfig.json @@ -8,7 +8,7 @@ "skipLibCheck": true, /* Bundler mode */ - "moduleResolution": "bundler", + "moduleResolution": "Bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, diff --git a/examples/lit/ui-libraries/.eslintrc.cjs b/examples/lit/ui-libraries/.eslintrc.cjs index 75ee331c1..cca134ce1 100644 --- a/examples/lit/ui-libraries/.eslintrc.cjs +++ b/examples/lit/ui-libraries/.eslintrc.cjs @@ -1,15 +1,6 @@ // @ts-check /** @type {import('eslint').Linter.Config} */ -const config = { - extends: ['plugin:react/recommended', 'plugin:react-hooks/recommended'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json', - }, - rules: { - 'react/no-children-prop': 'off', - }, -} +const config = {} module.exports = config diff --git a/examples/lit/ui-libraries/package.json b/examples/lit/ui-libraries/package.json index de19ada40..183758da8 100644 --- a/examples/lit/ui-libraries/package.json +++ b/examples/lit/ui-libraries/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/form-example-lit-ui-libraries", - "version": "0.0.1", - "main": "src/index.jsx", + "private": true, + "type": "module", "scripts": { "dev": "vite --port=3001", "build": "vite build", @@ -9,7 +9,7 @@ "test:types": "tsc" }, "dependencies": { - "@tanstack/lit-form": "^0.22.0", + "@tanstack/lit-form": "^0.23.3", "lit": "^3.1.1", "@material/web": "^1.0.0" }, diff --git a/examples/lit/ui-libraries/tsconfig.json b/examples/lit/ui-libraries/tsconfig.json index 69e31ac92..79af5f233 100644 --- a/examples/lit/ui-libraries/tsconfig.json +++ b/examples/lit/ui-libraries/tsconfig.json @@ -8,7 +8,7 @@ "skipLibCheck": true, /* Bundler mode */ - "moduleResolution": "bundler", + "moduleResolution": "Bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, diff --git a/examples/react/array/package.json b/examples/react/array/package.json index a33f7fa2b..3b4bf9213 100644 --- a/examples/react/array/package.json +++ b/examples/react/array/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/form-example-react-array", - "version": "0.0.1", - "main": "src/index.jsx", + "private": true, + "type": "module", "scripts": { "dev": "vite --port=3001", "build": "vite build", @@ -9,14 +9,14 @@ "test:types": "tsc" }, "dependencies": { - "@tanstack/react-form": "^0.22.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@tanstack/react-form": "^0.23.3", + "react": "^18.3.1", + "react-dom": "^18.3.1" }, "devDependencies": { - "@types/react": "^18.2.45", - "@types/react-dom": "^18.2.19", - "@vitejs/plugin-react": "^4.2.1", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.0", "vite": "^5.0.10" }, "browserslist": { diff --git a/examples/react/next-server-actions/.eslintrc.js b/examples/react/next-server-actions/.eslintrc.js deleted file mode 100644 index 140fa9d60..000000000 --- a/examples/react/next-server-actions/.eslintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - extends: 'next/core-web-vitals', -} diff --git a/examples/react/next-server-actions/next.config.js b/examples/react/next-server-actions/next.config.cjs similarity index 100% rename from examples/react/next-server-actions/next.config.js rename to examples/react/next-server-actions/next.config.cjs diff --git a/examples/react/next-server-actions/package.json b/examples/react/next-server-actions/package.json index e9520e8f6..a3610d6e8 100644 --- a/examples/react/next-server-actions/package.json +++ b/examples/react/next-server-actions/package.json @@ -1,25 +1,26 @@ { "name": "@tanstack/form-example-react-next-server-actions", - "version": "0.1.0", "private": true, + "type": "module", "scripts": { "dev": "next dev", "build": "next build", - "test:types": "tsc", - "test:eslint": "next lint" + "_test:types": "tsc" }, "dependencies": { - "react": "^18.2.0", - "react-dom": "^18.2.0", - "next": "14.0.4", - "@tanstack/react-form": "^0.22.0" + "@tanstack/react-form": "^0.23.3", + "next": "15.0.0-rc.0", + "react": "19.0.0-rc-6d3110b4d9-20240531", + "react-dom": "19.0.0-rc-6d3110b4d9-20240531" }, "devDependencies": { - "typescript": "5.4.2", "@types/node": "^20.9.0", - "@types/react": "^18.2.45", - "@types/react-dom": "^18.2.19", - "eslint": "^8.56.0", - "eslint-config-next": "14.0.4" + "@types/react": "npm:types-react@rc", + "@types/react-dom": "npm:types-react-dom@rc", + "typescript": "5.4.2" + }, + "overrides": { + "@types/react": "npm:types-react@rc", + "@types/react-dom": "npm:types-react-dom@rc" } } diff --git a/examples/react/next-server-actions/src/app/action.ts b/examples/react/next-server-actions/src/app/action.ts index a35032f05..30a09c711 100644 --- a/examples/react/next-server-actions/src/app/action.ts +++ b/examples/react/next-server-actions/src/app/action.ts @@ -1,7 +1,17 @@ 'use server' -import { formFactory } from './shared-code' +import { createServerValidate } from '@tanstack/react-form/nextjs' +import { formOpts } from './shared-code' + +const serverValidate = createServerValidate({ + ...formOpts, + onServerValidate: ({ value }) => { + if (value.age < 12) { + return 'Server validation: You must be at least 12 to sign up' + } + }, +}) export default async function someAction(prev: unknown, formData: FormData) { - return await formFactory.validateFormData(formData) + return await serverValidate(formData) } 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 b83afe0eb..8db956599 100644 --- a/examples/react/next-server-actions/src/app/client-component.tsx +++ b/examples/react/next-server-actions/src/app/client-component.tsx @@ -1,20 +1,21 @@ -/// 'use client' -import { useFormState } from 'react-dom' -import { mergeForm, useTransform } from '@tanstack/react-form' +import { useActionState } from 'react' +import { + initialFormState, + mergeForm, + useForm, + useTransform, +} from '@tanstack/react-form' import someAction from './action' -import { formFactory } from './shared-code' -import type { FormApi } from '@tanstack/react-form' +import { formOpts } from './shared-code' export const ClientComp = () => { - const [state, action] = useFormState(someAction, formFactory.initialFormState) + const [state, action] = useActionState(someAction, initialFormState) - const form = formFactory.useForm({ - transform: useTransform( - (baseForm: FormApi) => mergeForm(baseForm, state), - [state], - ), + const form = useForm({ + ...formOpts, + transform: useTransform((baseForm) => mergeForm(baseForm, state), [state]), }) const formErrors = form.useStore((formState) => formState.errors) diff --git a/examples/react/next-server-actions/src/app/shared-code.ts b/examples/react/next-server-actions/src/app/shared-code.ts index 2fe737c5a..31d9980f3 100644 --- a/examples/react/next-server-actions/src/app/shared-code.ts +++ b/examples/react/next-server-actions/src/app/shared-code.ts @@ -1,13 +1,8 @@ -import { createFormFactory } from '@tanstack/react-form' +import { formOptions } from '@tanstack/react-form/nextjs' -export const formFactory = createFormFactory({ +export const formOpts = formOptions({ defaultValues: { firstName: '', age: 0, }, - onServerValidate({ value }) { - if (value.age < 12) { - return 'Server validation: You must be at least 12 to sign up' - } - }, }) diff --git a/examples/react/next-server-actions/tsconfig.json b/examples/react/next-server-actions/tsconfig.json index f8a79128a..28a97cedc 100644 --- a/examples/react/next-server-actions/tsconfig.json +++ b/examples/react/next-server-actions/tsconfig.json @@ -1,14 +1,14 @@ { "compilerOptions": { "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], + "lib": ["DOM", "DOM.Iterable", "ESNext"], "allowJs": true, "skipLibCheck": true, "strict": true, "noEmit": true, "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "bundler", + "module": "ESNext", + "moduleResolution": "Bundler", "resolveJsonModule": true, "isolatedModules": true, "jsx": "preserve", diff --git a/examples/react/query-integration/package.json b/examples/react/query-integration/package.json index 8045d6ad9..42ffe2f4c 100644 --- a/examples/react/query-integration/package.json +++ b/examples/react/query-integration/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/form-example-react-query-integration", - "version": "0.0.1", - "main": "src/index.jsx", + "private": true, + "type": "module", "scripts": { "dev": "vite --port=3001", "build": "vite build", @@ -9,15 +9,15 @@ "test:types": "tsc" }, "dependencies": { - "@tanstack/react-query": "^5.45.1", - "@tanstack/react-form": "^0.22.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@tanstack/react-query": "^5.32.0", + "@tanstack/react-form": "^0.23.3", + "react": "^18.3.1", + "react-dom": "^18.3.1" }, "devDependencies": { - "@types/react": "^18.2.45", - "@types/react-dom": "^18.2.19", - "@vitejs/plugin-react": "^4.2.1", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.0", "vite": "^5.0.10" }, "browserslist": { diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index ffc4cb5a5..6d8b0df65 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/form-example-react-simple", - "version": "0.0.1", - "main": "src/index.jsx", + "private": true, + "type": "module", "scripts": { "dev": "vite --port=3001", "build": "vite build", @@ -9,14 +9,14 @@ "test:types": "tsc" }, "dependencies": { - "@tanstack/react-form": "^0.22.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@tanstack/react-form": "^0.23.3", + "react": "^18.3.1", + "react-dom": "^18.3.1" }, "devDependencies": { - "@types/react": "^18.2.45", - "@types/react-dom": "^18.2.19", - "@vitejs/plugin-react": "^4.2.1", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.0", "vite": "^5.0.10" }, "browserslist": { diff --git a/examples/react/ui-libraries/package.json b/examples/react/ui-libraries/package.json index 9017fb82d..c12c6c059 100644 --- a/examples/react/ui-libraries/package.json +++ b/examples/react/ui-libraries/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/form-example-react-ui-libraries", - "version": "0.0.1", - "main": "src/index.jsx", + "private": true, + "type": "module", "scripts": { "dev": "vite --port=3001", "build": "vite build", @@ -14,25 +14,24 @@ "@mantine/core": "7.3.2", "@mantine/hooks": "7.3.2", "@mui/material": "5.15.2", - "@tanstack/react-form": "^0.22.0", + "@tanstack/react-form": "^0.23.3", "@yme/lay-postcss": "0.1.0", "postcss": "8.4.32", "postcss-preset-mantine": "1.12.2", "postcss-simple-vars": "7.0.1", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "react": "^18.3.1", + "react-dom": "^18.3.1" }, "devDependencies": { - "@types/react": "^18.2.45", - "@types/react-dom": "^18.2.19", - "@typescript-eslint/eslint-plugin": "^6.15.0", - "@typescript-eslint/parser": "^6.15.0", - "@vitejs/plugin-react": "^4.2.1", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^7.13.1", + "@typescript-eslint/parser": "^7.13.1", + "@vitejs/plugin-react": "^4.3.0", "@vitejs/plugin-react-swc": "^3.6.0", - "eslint": "^8.56.0", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.5", + "eslint": "^8.57.0", + "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-react-refresh": "^0.4.7", "typescript": "5.4.2", "vite": "^5.0.10" }, diff --git a/examples/react/ui-libraries/tsconfig.json b/examples/react/ui-libraries/tsconfig.json index fff230e4f..6e9088d67 100644 --- a/examples/react/ui-libraries/tsconfig.json +++ b/examples/react/ui-libraries/tsconfig.json @@ -6,7 +6,7 @@ "skipLibCheck": true, /* Bundler mode */ - "moduleResolution": "bundler", + "moduleResolution": "Bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, diff --git a/examples/react/valibot/package.json b/examples/react/valibot/package.json index 67386c22c..ff942a122 100644 --- a/examples/react/valibot/package.json +++ b/examples/react/valibot/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/form-example-react-valibot", - "version": "0.0.1", - "main": "src/index.jsx", + "private": true, + "type": "module", "scripts": { "dev": "vite --port=3001", "build": "vite build", @@ -9,16 +9,16 @@ "test:types": "tsc" }, "dependencies": { - "@tanstack/react-form": "^0.22.0", - "@tanstack/valibot-form-adapter": "^0.22.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "valibot": "^0.31.1" + "@tanstack/react-form": "^0.23.3", + "@tanstack/valibot-form-adapter": "^0.23.3", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "valibot": "^0.35.0" }, "devDependencies": { - "@types/react": "^18.2.45", - "@types/react-dom": "^18.2.19", - "@vitejs/plugin-react": "^4.2.1", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.0", "vite": "^5.0.10" }, "browserslist": { diff --git a/examples/react/yup/package.json b/examples/react/yup/package.json index bf83aba97..6d4b37bf3 100644 --- a/examples/react/yup/package.json +++ b/examples/react/yup/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/form-example-react-yup", - "version": "0.0.1", - "main": "src/index.jsx", + "private": true, + "type": "module", "scripts": { "dev": "vite --port=3001", "build": "vite build", @@ -9,16 +9,16 @@ "test:types": "tsc" }, "dependencies": { - "@tanstack/react-form": "^0.22.0", - "@tanstack/yup-form-adapter": "^0.22.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "@tanstack/react-form": "^0.23.3", + "@tanstack/yup-form-adapter": "^0.23.3", + "react": "^18.3.1", + "react-dom": "^18.3.1", "yup": "^1.3.2" }, "devDependencies": { - "@types/react": "^18.2.45", - "@types/react-dom": "^18.2.19", - "@vitejs/plugin-react": "^4.2.1", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.0", "vite": "^5.0.10" }, "browserslist": { diff --git a/examples/react/zod/package.json b/examples/react/zod/package.json index 868e02233..0a1f2a8ab 100644 --- a/examples/react/zod/package.json +++ b/examples/react/zod/package.json @@ -1,7 +1,7 @@ { "name": "@tanstack/form-example-react-zod", - "version": "0.0.1", - "main": "src/index.jsx", + "private": true, + "type": "module", "scripts": { "dev": "vite --port=3001", "build": "vite build", @@ -9,16 +9,16 @@ "test:types": "tsc" }, "dependencies": { - "@tanstack/react-form": "^0.22.0", - "@tanstack/zod-form-adapter": "^0.22.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "@tanstack/react-form": "^0.23.3", + "@tanstack/zod-form-adapter": "^0.23.3", + "react": "^18.3.1", + "react-dom": "^18.3.1", "zod": "^3.22.4" }, "devDependencies": { - "@types/react": "^18.2.45", - "@types/react-dom": "^18.2.19", - "@vitejs/plugin-react": "^4.2.1", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.0", "vite": "^5.0.10" }, "browserslist": { diff --git a/examples/solid/array/package.json b/examples/solid/array/package.json index ff895dc74..16b21ac8e 100644 --- a/examples/solid/array/package.json +++ b/examples/solid/array/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-form": "^0.22.1", + "@tanstack/solid-form": "^0.23.3", "solid-js": "^1.7.8" }, "devDependencies": { diff --git a/examples/solid/array/tsconfig.json b/examples/solid/array/tsconfig.json index 63d881e7c..576a7f010 100644 --- a/examples/solid/array/tsconfig.json +++ b/examples/solid/array/tsconfig.json @@ -7,7 +7,7 @@ "skipLibCheck": true, /* Bundler mode */ - "moduleResolution": "bundler", + "moduleResolution": "Bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index e6628abff..5a4f9a51f 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-form": "^0.22.1", + "@tanstack/solid-form": "^0.23.3", "solid-js": "^1.7.8" }, "devDependencies": { diff --git a/examples/solid/simple/tsconfig.json b/examples/solid/simple/tsconfig.json index 63d881e7c..576a7f010 100644 --- a/examples/solid/simple/tsconfig.json +++ b/examples/solid/simple/tsconfig.json @@ -7,7 +7,7 @@ "skipLibCheck": true, /* Bundler mode */ - "moduleResolution": "bundler", + "moduleResolution": "Bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, diff --git a/examples/solid/valibot/package.json b/examples/solid/valibot/package.json index b384ee251..f6c093c41 100644 --- a/examples/solid/valibot/package.json +++ b/examples/solid/valibot/package.json @@ -9,10 +9,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-form": "^0.22.1", - "@tanstack/valibot-form-adapter": "^0.22.0", + "@tanstack/solid-form": "^0.23.3", + "@tanstack/valibot-form-adapter": "^0.23.3", "solid-js": "^1.7.8", - "valibot": "^0.31.1" + "valibot": "^0.35.0" }, "devDependencies": { "typescript": "5.4.2", diff --git a/examples/solid/valibot/tsconfig.json b/examples/solid/valibot/tsconfig.json index 63d881e7c..576a7f010 100644 --- a/examples/solid/valibot/tsconfig.json +++ b/examples/solid/valibot/tsconfig.json @@ -7,7 +7,7 @@ "skipLibCheck": true, /* Bundler mode */ - "moduleResolution": "bundler", + "moduleResolution": "Bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, diff --git a/examples/solid/yup/package.json b/examples/solid/yup/package.json index b940cb9a7..bf2e962a4 100644 --- a/examples/solid/yup/package.json +++ b/examples/solid/yup/package.json @@ -9,8 +9,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-form": "^0.22.1", - "@tanstack/yup-form-adapter": "^0.22.0", + "@tanstack/solid-form": "^0.23.3", + "@tanstack/yup-form-adapter": "^0.23.3", "solid-js": "^1.7.8", "yup": "^1.3.2" }, diff --git a/examples/solid/yup/tsconfig.json b/examples/solid/yup/tsconfig.json index 63d881e7c..576a7f010 100644 --- a/examples/solid/yup/tsconfig.json +++ b/examples/solid/yup/tsconfig.json @@ -7,7 +7,7 @@ "skipLibCheck": true, /* Bundler mode */ - "moduleResolution": "bundler", + "moduleResolution": "Bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, diff --git a/examples/solid/zod/package.json b/examples/solid/zod/package.json index 528db4406..defd37b19 100644 --- a/examples/solid/zod/package.json +++ b/examples/solid/zod/package.json @@ -9,8 +9,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-form": "^0.22.1", - "@tanstack/zod-form-adapter": "^0.22.0", + "@tanstack/solid-form": "^0.23.3", + "@tanstack/zod-form-adapter": "^0.23.3", "solid-js": "^1.7.8", "zod": "^3.22.4" }, diff --git a/examples/solid/zod/tsconfig.json b/examples/solid/zod/tsconfig.json index 63d881e7c..576a7f010 100644 --- a/examples/solid/zod/tsconfig.json +++ b/examples/solid/zod/tsconfig.json @@ -7,7 +7,7 @@ "skipLibCheck": true, /* Bundler mode */ - "moduleResolution": "bundler", + "moduleResolution": "Bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, diff --git a/examples/vue/array/package.json b/examples/vue/array/package.json index 395adfd6a..b627283f9 100644 --- a/examples/vue/array/package.json +++ b/examples/vue/array/package.json @@ -1,6 +1,7 @@ { "name": "@tanstack/form-example-vue-array", "private": true, + "type": "module", "scripts": { "dev": "vite", "build": "vite build", @@ -9,7 +10,7 @@ "serve": "vite preview" }, "dependencies": { - "@tanstack/vue-form": "^0.22.0", + "@tanstack/vue-form": "^0.23.3", "vue": "^3.3.4" }, "devDependencies": { diff --git a/examples/vue/array/tsconfig.json b/examples/vue/array/tsconfig.json index f4133a17b..62eb2b161 100644 --- a/examples/vue/array/tsconfig.json +++ b/examples/vue/array/tsconfig.json @@ -7,7 +7,7 @@ "skipLibCheck": true, /* Bundler mode */ - "moduleResolution": "bundler", + "moduleResolution": "Bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 918c5207f..77a5c93f8 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -1,6 +1,7 @@ { "name": "@tanstack/form-example-vue-simple", "private": true, + "type": "module", "scripts": { "dev": "vite", "build": "vite build", @@ -9,7 +10,7 @@ "serve": "vite preview" }, "dependencies": { - "@tanstack/vue-form": "^0.22.0", + "@tanstack/vue-form": "^0.23.3", "vue": "^3.3.4" }, "devDependencies": { diff --git a/examples/vue/simple/tsconfig.json b/examples/vue/simple/tsconfig.json index f4133a17b..62eb2b161 100644 --- a/examples/vue/simple/tsconfig.json +++ b/examples/vue/simple/tsconfig.json @@ -7,7 +7,7 @@ "skipLibCheck": true, /* Bundler mode */ - "moduleResolution": "bundler", + "moduleResolution": "Bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, diff --git a/examples/vue/valibot/package.json b/examples/vue/valibot/package.json index 0f5270192..e96987849 100644 --- a/examples/vue/valibot/package.json +++ b/examples/vue/valibot/package.json @@ -1,6 +1,7 @@ { "name": "@tanstack/form-example-vue-valibot", "private": true, + "type": "module", "scripts": { "dev": "vite", "build": "vite build", @@ -9,9 +10,9 @@ "serve": "vite preview" }, "dependencies": { - "@tanstack/valibot-form-adapter": "^0.22.0", - "@tanstack/vue-form": "^0.22.0", - "valibot": "^0.31.1", + "@tanstack/valibot-form-adapter": "^0.23.3", + "@tanstack/vue-form": "^0.23.3", + "valibot": "^0.35.0", "vue": "^3.3.4" }, "devDependencies": { diff --git a/examples/vue/valibot/tsconfig.json b/examples/vue/valibot/tsconfig.json index f4133a17b..62eb2b161 100644 --- a/examples/vue/valibot/tsconfig.json +++ b/examples/vue/valibot/tsconfig.json @@ -7,7 +7,7 @@ "skipLibCheck": true, /* Bundler mode */ - "moduleResolution": "bundler", + "moduleResolution": "Bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, diff --git a/examples/vue/yup/package.json b/examples/vue/yup/package.json index 172c33236..99c5e6822 100644 --- a/examples/vue/yup/package.json +++ b/examples/vue/yup/package.json @@ -1,6 +1,7 @@ { "name": "@tanstack/form-example-vue-yup", "private": true, + "type": "module", "scripts": { "dev": "vite", "build": "vite build", @@ -9,8 +10,8 @@ "serve": "vite preview" }, "dependencies": { - "@tanstack/vue-form": "^0.22.0", - "@tanstack/yup-form-adapter": "^0.22.0", + "@tanstack/vue-form": "^0.23.3", + "@tanstack/yup-form-adapter": "^0.23.3", "vue": "^3.3.4", "yup": "^1.3.2" }, diff --git a/examples/vue/yup/tsconfig.json b/examples/vue/yup/tsconfig.json index f4133a17b..62eb2b161 100644 --- a/examples/vue/yup/tsconfig.json +++ b/examples/vue/yup/tsconfig.json @@ -7,7 +7,7 @@ "skipLibCheck": true, /* Bundler mode */ - "moduleResolution": "bundler", + "moduleResolution": "Bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, diff --git a/examples/vue/zod/package.json b/examples/vue/zod/package.json index 7ae3b27b2..73dbc333f 100644 --- a/examples/vue/zod/package.json +++ b/examples/vue/zod/package.json @@ -1,6 +1,7 @@ { "name": "@tanstack/form-example-vue-zod", "private": true, + "type": "module", "scripts": { "dev": "vite", "build": "vite build", @@ -9,8 +10,8 @@ "serve": "vite preview" }, "dependencies": { - "@tanstack/vue-form": "^0.22.0", - "@tanstack/zod-form-adapter": "^0.22.0", + "@tanstack/vue-form": "^0.23.3", + "@tanstack/zod-form-adapter": "^0.23.3", "vue": "^3.3.4", "zod": "^3.22.4" }, diff --git a/examples/vue/zod/tsconfig.json b/examples/vue/zod/tsconfig.json index f4133a17b..62eb2b161 100644 --- a/examples/vue/zod/tsconfig.json +++ b/examples/vue/zod/tsconfig.json @@ -7,7 +7,7 @@ "skipLibCheck": true, /* Bundler mode */ - "moduleResolution": "bundler", + "moduleResolution": "Bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, diff --git a/nx.json b/nx.json index c922c643a..5b9da3aaa 100644 --- a/nx.json +++ b/nx.json @@ -6,8 +6,8 @@ "parallel": 5, "namedInputs": { "sharedGlobals": [ - "{workspaceRoot}/.eslintrc.cjs", "{workspaceRoot}/.nvmrc", + "{workspaceRoot}/eslint.config.js", "{workspaceRoot}/package.json", "{workspaceRoot}/tsconfig.json" ], @@ -20,7 +20,7 @@ "default", "{projectRoot}/build", "{projectRoot}/dist", - "!{projectRoot}/.eslintrc.cjs" + "!{projectRoot}/eslint.config.js" ] }, "targetDefaults": { diff --git a/package.json b/package.json index a22316885..3d1a12892 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,10 @@ { "name": "form", "private": true, - "repository": "https://github.com/tanstack/form.git", + "repository": { + "type": "git", + "url": "https://github.com/tanstack/form.git" + }, "packageManager": "pnpm@9.3.0", "type": "module", "scripts": { @@ -12,7 +15,7 @@ "test:ci": "nx run-many --targets=test:format,test:sherif,test:knip,test:eslint,test:lib,test:types,test:build,build", "test:eslint": "nx affected --target=test:eslint", "test:format": "pnpm run prettier --check", - "test:sherif": "sherif", + "test:sherif": "sherif -i react -i react-dom", "test:lib": "nx affected --target=test:lib --exclude=examples/**", "test:lib:dev": "pnpm run test:lib && nx watch --all -- pnpm run test:lib", "test:build": "nx affected --target=test:build --exclude=examples/**", @@ -24,6 +27,7 @@ "dev": "pnpm run watch", "prettier": "prettier --ignore-unknown .", "prettier:write": "pnpm run prettier --write", + "docs:reference": "node scripts/reference-docs.js", "cipublish": "node scripts/publish.js", "cipublishforce": "CI=true pnpm cipublish" }, @@ -36,35 +40,31 @@ }, "namespace": "@tanstack", "devDependencies": { + "@eslint-react/eslint-plugin": "^1.5.16", "@solidjs/testing-library": "^0.8.6", - "@tanstack/config": "^0.7.11", + "@tanstack/config": "^0.8.1", "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^14.2.1", "@testing-library/user-event": "^14.5.2", "@testing-library/vue": "^8.0.2", - "@types/eslint": "^8.56.0", "@types/node": "^20.9.0", - "@types/react": "^18.2.45", - "@types/react-dom": "^18.2.19", - "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.20.0", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", "@vitest/coverage-istanbul": "^1.3.1", - "eslint": "^8.56.0", - "eslint-config-prettier": "^9.1.0", - "eslint-import-resolver-typescript": "^3.6.1", - "eslint-plugin-import": "^2.29.1", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.6.0", + "eslint": "^8.57.0", + "eslint-plugin-react-hooks": "^4.6.2", "jsdom": "^24.0.0", - "knip": "^4.6.0", + "knip": "^5.22.0", "nx": "^19.3.0", "prettier": "^4.0.0-alpha.8", "publint": "^0.2.8", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", "rimraf": "^5.0.5", "sherif": "^0.8.4", "solid-js": "^1.7.8", + "typedoc": "^0.25.13", + "typedoc-plugin-markdown": "^4.0.3", "typescript": "5.4.2", "typescript49": "npm:typescript@4.9", "typescript50": "npm:typescript@5.0", diff --git a/packages/angular-form/.eslintrc.cjs b/packages/angular-form/.eslintrc.cjs deleted file mode 100644 index cca134ce1..000000000 --- a/packages/angular-form/.eslintrc.cjs +++ /dev/null @@ -1,6 +0,0 @@ -// @ts-check - -/** @type {import('eslint').Linter.Config} */ -const config = {} - -module.exports = config diff --git a/packages/angular-form/eslint.config.js b/packages/angular-form/eslint.config.js new file mode 100644 index 000000000..8ce6ad05f --- /dev/null +++ b/packages/angular-form/eslint.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import rootConfig from '../../eslint.config.js' + +export default [...rootConfig] diff --git a/packages/angular-form/ng-package.json b/packages/angular-form/ng-package.json index 7d3b9bd29..66c0b1bcf 100644 --- a/packages/angular-form/ng-package.json +++ b/packages/angular-form/ng-package.json @@ -7,6 +7,6 @@ "@tanstack/form-core", "@tanstack/angular-store" ], - "dest": "build", + "dest": "dist", "deleteDestPath": false } diff --git a/packages/angular-form/package.json b/packages/angular-form/package.json index fbdd0f309..9072e99ea 100644 --- a/packages/angular-form/package.json +++ b/packages/angular-form/package.json @@ -1,10 +1,14 @@ { "name": "@tanstack/angular-form", - "version": "0.22.0", + "version": "0.23.3", "description": "Powerful, type-safe forms for Angular.", "author": "tannerlinsley", "license": "MIT", - "repository": "tanstack/form", + "repository": { + "type": "git", + "url": "https://github.com/TanStack/form.git", + "directory": "packages/angular-form" + }, "homepage": "https://tanstack.com/form", "funding": { "type": "github", @@ -12,28 +16,38 @@ }, "sideEffects": false, "scripts": { - "build": "ng-packagr -p ng-package.json -c tsconfig.build.json && rimraf ./build/package.json", - "clean": "rimraf ./build && rimraf ./coverage", - "test:eslint": "eslint --ext .ts,.tsx ./src", - "test:types": "tsc --noEmit", + "clean": "rimraf ./dist && rimraf ./coverage", + "test:eslint": "eslint ./src", + "test:types": "pnpm run \"/^test:types:ts[0-9]{2}$/\"", + "test:types:ts54": "tsc", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", - "test:build": "publint --strict" + "test:build": "publint --strict", + "build": "ng-packagr -p ng-package.json -c tsconfig.build.json && rimraf ./dist/package.json" }, "files": [ - "build", + "dist", "src" ], "type": "module", - "nx": { - "targets": { - "test:build": { - "dependsOn": [ - "build" - ] - } + "types": "dist/index.d.ts", + "module": "dist/fesm2022/tanstack-angular-form.mjs", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "esm2022": "./dist/esm2022/tanstack-angular-form.mjs", + "esm": "./dist/esm2022/tanstack-angular-form.mjs", + "default": "./dist/fesm2022/tanstack-angular-form.mjs" + }, + "./package.json": { + "default": "./package.json" } }, + "dependencies": { + "@tanstack/angular-store": "^0.5.1", + "@tanstack/form-core": "workspace:*", + "tslib": "^2.3.0" + }, "devDependencies": { "@analogjs/vite-plugin-angular": "^1.0.0", "@angular/common": "^17.3.0", @@ -47,25 +61,7 @@ "typescript": "5.4.2", "zone.js": "~0.14.2" }, - "dependencies": { - "@tanstack/angular-store": "^0.4.1", - "@tanstack/form-core": "workspace:*", - "tslib": "^2.3.0" - }, "peerDependencies": { "@angular/core": ">=17.3.0" - }, - "module": "build/fesm2022/tanstack-angular-form.mjs", - "types": "build/index.d.ts", - "exports": { - "./package.json": { - "default": "./package.json" - }, - ".": { - "types": "./build/index.d.ts", - "esm2022": "./build/esm2022/tanstack-angular-form.mjs", - "esm": "./build/esm2022/tanstack-angular-form.mjs", - "default": "./build/fesm2022/tanstack-angular-form.mjs" - } } } diff --git a/packages/angular-form/src/index.ts b/packages/angular-form/src/index.ts index e5fe14d49..b62b35873 100644 --- a/packages/angular-form/src/index.ts +++ b/packages/angular-form/src/index.ts @@ -1,10 +1,5 @@ -export type { - FieldApi, - FormOptions, - FieldState, - FieldValidateFn, - FieldValidateAsyncFn, -} from '@tanstack/form-core' +export * from '@tanstack/form-core' + export { injectForm } from './inject-form' export { TanStackField } from './tanstack-field.directive' export { injectStore } from './inject-store' diff --git a/packages/angular-form/src/tanstack-field.directive.ts b/packages/angular-form/src/tanstack-field.directive.ts index adb743d1a..5d227ea15 100644 --- a/packages/angular-form/src/tanstack-field.directive.ts +++ b/packages/angular-form/src/tanstack-field.directive.ts @@ -48,7 +48,6 @@ export class TanStackField< @Input() defaultValue?: NoInferHack @Input({ transform: numberAttribute }) asyncDebounceMs?: number @Input({ transform: booleanAttribute }) asyncAlways?: boolean - @Input({ transform: booleanAttribute }) preserveValue?: boolean @Input() validatorAdapter?: TFieldValidator @Input({ required: true }) tanstackField!: FormApi< TParentData, @@ -66,7 +65,6 @@ export class TanStackField< defaultValue: this.defaultValue, asyncDebounceMs: this.asyncDebounceMs, asyncAlways: this.asyncAlways, - preserveValue: this.preserveValue, validatorAdapter: this.validatorAdapter, validators: this.validators, defaultMeta: this.defaultMeta, diff --git a/packages/angular-form/src/test-setup.ts b/packages/angular-form/tests/test-setup.ts similarity index 100% rename from packages/angular-form/src/test-setup.ts rename to packages/angular-form/tests/test-setup.ts diff --git a/packages/angular-form/src/tests/test.component.spec.ts b/packages/angular-form/tests/test.component.spec.ts similarity index 99% rename from packages/angular-form/src/tests/test.component.spec.ts rename to packages/angular-form/tests/test.component.spec.ts index ffa2f2345..3df50d126 100644 --- a/packages/angular-form/src/tests/test.component.spec.ts +++ b/packages/angular-form/tests/test.component.spec.ts @@ -2,8 +2,7 @@ import { render } from '@testing-library/angular' import { Component } from '@angular/core' import { describe, expect, it } from 'vitest' import { userEvent } from '@testing-library/user-event' -import { injectForm } from '../inject-form' -import { TanStackField } from '../tanstack-field.directive' +import { TanStackField, injectForm } from '../src/index' import { sleep } from './utils' import type { FieldValidateAsyncFn, FieldValidateFn } from '@tanstack/form-core' diff --git a/packages/angular-form/src/tests/utils.ts b/packages/angular-form/tests/utils.ts similarity index 100% rename from packages/angular-form/src/tests/utils.ts rename to packages/angular-form/tests/utils.ts diff --git a/packages/angular-form/tsconfig.build.json b/packages/angular-form/tsconfig.build.json index 2e37591ec..ca4b45410 100644 --- a/packages/angular-form/tsconfig.build.json +++ b/packages/angular-form/tsconfig.build.json @@ -1,15 +1,15 @@ { "extends": "./node_modules/ng-packagr/lib/ts/conf/tsconfig.ngc.json", "compilerOptions": { - "moduleResolution": "bundler", "allowJs": true, + "module": "ESNext", "moduleDetection": "force", - "module": "ESNext" + "moduleResolution": "Bundler" }, "angularCompilerOptions": { "enableI18nLegacyMessageIdFormat": false, "strictInjectionParameters": true, "strictInputAccessModifiers": true }, - "include": ["src/**/*.ts", ".eslintrc.cjs"] + "include": ["src"] } diff --git a/packages/angular-form/tsconfig.docs.json b/packages/angular-form/tsconfig.docs.json new file mode 100644 index 000000000..15be73f1b --- /dev/null +++ b/packages/angular-form/tsconfig.docs.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "paths": { + "@tanstack/form-core": ["../form-core/src"] + } + }, + "include": ["src"] +} diff --git a/packages/angular-form/tsconfig.json b/packages/angular-form/tsconfig.json index 69a13789f..2b035839b 100644 --- a/packages/angular-form/tsconfig.json +++ b/packages/angular-form/tsconfig.json @@ -1,25 +1,13 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "declaration": true, - "declarationMap": true, - "useDefineForClassFields": false, - "target": "es2022", - - "strict": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, - "moduleResolution": "node", - "module": "ES2022", - "types": ["vitest/globals"], + "moduleResolution": "Bundler", + "useDefineForClassFields": false, "paths": { "@tanstack/form-core": ["../form-core/src"] } }, - "angularCompilerOptions": { - "strictInjectionParameters": true, - "strictInputAccessModifiers": true, - "strictTemplates": true - }, - "include": ["src/**/*.ts", ".eslintrc.cjs", "vite.config.ts"] + "include": ["src", "tests", "eslint.config.js", "vite.config.ts"] } diff --git a/packages/angular-form/vite.config.ts b/packages/angular-form/vite.config.ts index 3793a2137..1b13fbd19 100644 --- a/packages/angular-form/vite.config.ts +++ b/packages/angular-form/vite.config.ts @@ -4,10 +4,10 @@ import packageJson from './package.json' export default defineConfig({ test: { name: packageJson.name, - dir: './src', + dir: './tests', watch: false, environment: 'jsdom', - setupFiles: ['src/test-setup.ts'], + setupFiles: ['./tests/test-setup.ts'], coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, typecheck: { enabled: true }, globals: true, diff --git a/packages/form-core/.eslintrc.cjs b/packages/form-core/.eslintrc.cjs deleted file mode 100644 index cca134ce1..000000000 --- a/packages/form-core/.eslintrc.cjs +++ /dev/null @@ -1,6 +0,0 @@ -// @ts-check - -/** @type {import('eslint').Linter.Config} */ -const config = {} - -module.exports = config diff --git a/packages/form-core/eslint.config.js b/packages/form-core/eslint.config.js new file mode 100644 index 000000000..8ce6ad05f --- /dev/null +++ b/packages/form-core/eslint.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import rootConfig from '../../eslint.config.js' + +export default [...rootConfig] diff --git a/packages/form-core/package.json b/packages/form-core/package.json index a5375b836..a1468dd95 100644 --- a/packages/form-core/package.json +++ b/packages/form-core/package.json @@ -1,10 +1,14 @@ { "name": "@tanstack/form-core", - "version": "0.22.0", + "version": "0.23.3", "description": "Powerful, type-safe, framework agnostic forms.", "author": "tannerlinsley", "license": "MIT", - "repository": "tanstack/form", + "repository": { + "type": "git", + "url": "https://github.com/TanStack/form.git", + "directory": "packages/form-core" + }, "homepage": "https://tanstack.com/form", "funding": { "type": "github", @@ -34,20 +38,20 @@ ], "scripts": { "clean": "rimraf ./dist && rimraf ./coverage", - "test:eslint": "eslint --ext .ts,.tsx ./src", - "test:types:versions49": "node ../../node_modules/typescript49/lib/tsc.js --project tsconfig.legacy.json", - "test:types:versions50": "node ../../node_modules/typescript50/lib/tsc.js", - "test:types:versions51": "node ../../node_modules/typescript51/lib/tsc.js", - "test:types:versions52": "node ../../node_modules/typescript52/lib/tsc.js", - "test:types:versions53": "node ../../node_modules/typescript53/lib/tsc.js", - "test:types:versions54": "tsc", - "test:types": "pnpm run \"/^test:types:versions.*/\"", + "test:eslint": "eslint ./src", + "test:types": "pnpm run \"/^test:types:ts[0-9]{2}$/\"", + "test:types:ts49": "node ../../node_modules/typescript49/lib/tsc.js -p tsconfig.legacy.json", + "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js", + "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js", + "test:types:ts52": "node ../../node_modules/typescript52/lib/tsc.js", + "test:types:ts53": "node ../../node_modules/typescript53/lib/tsc.js", + "test:types:ts54": "tsc", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict", "build": "vite build" }, "dependencies": { - "@tanstack/store": "^0.4.1" + "@tanstack/store": "^0.5.0" } } diff --git a/packages/form-core/src/FieldApi.ts b/packages/form-core/src/FieldApi.ts index 3e81049a0..e9ad5160d 100644 --- a/packages/form-core/src/FieldApi.ts +++ b/packages/form-core/src/FieldApi.ts @@ -10,6 +10,9 @@ import type { import type { AsyncValidator, SyncValidator, Updater } from './utils' import type { DeepKeys, DeepValue, NoInfer } from './util-types' +/** + * @private + */ export type FieldValidateFn< TParentData, TName extends DeepKeys, @@ -25,6 +28,9 @@ export type FieldValidateFn< fieldApi: FieldApi }) => ValidationError +/** + * @private + */ export type FieldValidateOrFn< TParentData, TName extends DeepKeys, @@ -63,6 +69,9 @@ export type FieldValidateOrFn< TData > +/** + * @private + */ export type FieldValidateAsyncFn< TParentData, TName extends DeepKeys, @@ -79,6 +88,9 @@ export type FieldValidateAsyncFn< signal: AbortSignal }) => ValidationError | Promise +/** + * @private + */ export type FieldAsyncValidateOrFn< TParentData, TName extends DeepKeys, @@ -128,6 +140,9 @@ export interface FieldValidators< | undefined = undefined, TData extends DeepValue = DeepValue, > { + /** + * An optional function that takes a param of `formApi` which is a generic type of `TData` and `TParentData` + */ onMount?: FieldValidateOrFn< TParentData, TName, @@ -135,6 +150,12 @@ export interface FieldValidators< TFormValidator, TData > + /** + * An optional property that takes a `ValidateFn` which is a generic of `TData` and `TParentData`. + * If `validatorAdapter` is passed, this may also accept a property from the respective adapter + * + * @example `z.string().min(1)` if `zodAdapter` is passed + */ onChange?: FieldValidateOrFn< TParentData, TName, @@ -142,6 +163,12 @@ export interface FieldValidators< TFormValidator, TData > + /** + * An optional property similar to `onChange` but async validation. If `validatorAdapter` + * is passed, this may also accept a property from the respective adapter + * + * @example `z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' })` if `zodAdapter` is passed + */ onChangeAsync?: FieldAsyncValidateOrFn< TParentData, TName, @@ -149,8 +176,22 @@ export interface FieldValidators< TFormValidator, TData > + /** + * An optional number to represent how long the `onChangeAsync` should wait before running + * + * If set to a number larger than 0, will debounce the async validation event by this length of time in milliseconds + */ onChangeAsyncDebounceMs?: number + /** + * An optional list of field names that should trigger this field's `onChange` and `onChangeAsync` events when its value changes + */ onChangeListenTo?: DeepKeys[] + /** + * An optional function, that when run when subscribing to blur event of input. + * If `validatorAdapter` is passed, this may also accept a property from the respective adapter + * + * @example `z.string().min(1)` if `zodAdapter` is passed + */ onBlur?: FieldValidateOrFn< TParentData, TName, @@ -158,6 +199,12 @@ export interface FieldValidators< TFormValidator, TData > + /** + * An optional property similar to `onBlur` but async validation. If `validatorAdapter` + * is passed, this may also accept a property from the respective adapter + * + * @example `z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' })` if `zodAdapter` is passed + */ onBlurAsync?: FieldAsyncValidateOrFn< TParentData, TName, @@ -165,8 +212,23 @@ export interface FieldValidators< TFormValidator, TData > + + /** + * An optional number to represent how long the `onBlurAsync` should wait before running + * + * If set to a number larger than 0, will debounce the async validation event by this length of time in milliseconds + */ onBlurAsyncDebounceMs?: number + /** + * An optional list of field names that should trigger this field's `onBlur` and `onBlurAsync` events when its value changes + */ onBlurListenTo?: DeepKeys[] + /** + * An optional function, that when run when subscribing to submit event of input. + * If `validatorAdapter` is passed, this may also accept a property from the respective adapter + * + * @example `z.string().min(1)` if `zodAdapter` is passed + */ onSubmit?: FieldValidateOrFn< TParentData, TName, @@ -174,6 +236,12 @@ export interface FieldValidators< TFormValidator, TData > + /** + * An optional property similar to `onSubmit` but async validation. If `validatorAdapter` + * is passed, this may also accept a property from the respective adapter + * + * @example `z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' })` if `zodAdapter` is passed + */ onSubmitAsync?: FieldAsyncValidateOrFn< TParentData, TName, @@ -183,6 +251,9 @@ export interface FieldValidators< > } +/** + * An object type representing the options for a field in a form. + */ export interface FieldOptions< TParentData, TName extends DeepKeys, @@ -194,12 +265,29 @@ export interface FieldOptions< | undefined = undefined, TData extends DeepValue = DeepValue, > { + /** + * The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. + */ name: TName + /** + * An optional default value for the field. + */ defaultValue?: NoInfer + /** + * The default time to debounce async validation if there is not a more specific debounce time passed. + */ asyncDebounceMs?: number + /** + * If `true`, always run async validation, even if there are errors emitted during synchronous validation. + */ asyncAlways?: boolean - preserveValue?: boolean + /** + * A validator provided by an extension, like `yupValidator` from `@tanstack/yup-form-adapter` + */ validatorAdapter?: TFieldValidator + /** + * A list of validators to pass to the field + */ validators?: FieldValidators< TParentData, TName, @@ -207,9 +295,15 @@ export interface FieldOptions< TFormValidator, TData > + /** + * An optional object with default metadata for the field. + */ defaultMeta?: Partial } +/** + * An object type representing the required options for the FieldApi class. + */ export interface FieldApiOptions< TParentData, TName extends DeepKeys, @@ -230,25 +324,63 @@ export interface FieldApiOptions< form: FormApi } +/** + * An object type representing the metadata of a field in a form. + */ export type FieldMeta = { + /** + * A flag indicating whether the field has been touched. + */ isTouched: boolean + /** + * A flag that is `true` if the field's value has not been modified by the user. Opposite of `isDirty`. + */ isPristine: boolean + /** + * A flag that is `true` if the field's value has been modified by the user. Opposite of `isPristine`. + */ isDirty: boolean + /** + * An array of errors related to the touched state of the field. + */ touchedErrors: ValidationError[] + /** + * An array of errors related to the field value. + */ errors: ValidationError[] + /** + * A map of errors related to the field value. + */ errorMap: ValidationErrorMap + /** + * A flag indicating whether the field is currently being validated. + */ isValidating: boolean } +/** + * An object type representing the state of a field. + */ export type FieldState = { + /** + * The current value of the field. + */ value: TData + /** + * The current metadata of the field. + */ meta: FieldMeta } -export type ResolveName = unknown extends TParentData - ? string - : DeepKeys - +/** + * A class representing the API for managing a form field. + * + * Normally, you will not need to create a new `FieldApi` instance directly. + * Instead, you will use a framework hook/function like `useField` or `createField` + * to create a new instance for you that uses your framework's reactivity model. + * However, if you need to create a new instance manually, you can do so by calling + * the `new FieldApi` constructor. + */ export class FieldApi< TParentData, TName extends DeepKeys, @@ -260,6 +392,9 @@ export class FieldApi< | undefined = undefined, TData extends DeepValue = DeepValue, > { + /** + * A reference to the form API instance. + */ form: FieldApiOptions< TParentData, TName, @@ -267,7 +402,13 @@ export class FieldApi< TFormValidator, TData >['form'] + /** + * The field name. + */ name!: DeepKeys + /** + * The field options. + */ options: FieldApiOptions< TParentData, TName, @@ -275,10 +416,22 @@ export class FieldApi< TFormValidator, TData > = {} as any + /** + * The field state store. + */ store!: Store> + /** + * The current field state. + */ state!: FieldState + /** + * @private + */ prevState!: FieldState + /** + * Initializes a new `FieldApi` instance. + */ constructor( opts: FieldApiOptions< TParentData, @@ -335,6 +488,9 @@ export class FieldApi< this.options = opts as never } + /** + * @private + */ runValidator< TValue extends { value: TData; fieldApi: FieldApi }, TType extends 'validate' | 'validateAsync', @@ -361,6 +517,9 @@ export class FieldApi< return (props.validate as FieldValidateFn)(props.value) as never } + /** + * Mounts the field instance to the form. + */ mount = () => { const info = this.getInfo() info.instance = this as never @@ -401,14 +560,13 @@ export class FieldApi< } return () => { - const preserveValue = this.options.preserveValue unsubscribe() - if (!preserveValue) { - this.form.deleteField(this.name) - } } } + /** + * Updates the field instance with new options. + */ update = ( opts: FieldApiOptions< TParentData, @@ -438,10 +596,16 @@ export class FieldApi< this.options = opts as never } + /** + * Gets the current field value. + */ getValue = (): TData => { return this.form.getFieldValue(this.name) as TData } + /** + * Sets the field value and run the `change` validator. + */ setValue = ( updater: Updater, options?: { touch?: boolean; notify?: boolean }, @@ -450,7 +614,14 @@ export class FieldApi< this.validate('change') } + /** + * @private + */ _getMeta = () => this.form.getFieldMeta(this.name) + + /** + * Gets the current field metadata. + */ getMeta = () => this._getMeta() ?? ({ @@ -464,37 +635,64 @@ export class FieldApi< ...this.options.defaultMeta, } as FieldMeta) + /** + * Sets the field metadata. + */ setMeta = (updater: Updater) => this.form.setFieldMeta(this.name, updater) + /** + * Gets the field information object. + */ getInfo = () => this.form.getFieldInfo(this.name) + /** + * Pushes a new value to the field. + */ pushValue = ( value: TData extends any[] ? TData[number] : never, opts?: { touch?: boolean }, ) => this.form.pushFieldValue(this.name, value as any, opts) + /** + * Inserts a value at the specified index, shifting the subsequent values to the right. + */ insertValue = ( index: number, value: TData extends any[] ? TData[number] : never, opts?: { touch?: boolean }, ) => this.form.insertFieldValue(this.name, index, value as any, opts) + /** + * Replaces a value at the specified index. + */ replaceValue = ( index: number, value: TData extends any[] ? TData[number] : never, opts?: { touch?: boolean }, ) => this.form.replaceFieldValue(this.name, index, value as any, opts) + /** + * Removes a value at the specified index. + */ removeValue = (index: number, opts?: { touch: boolean }) => this.form.removeFieldValue(this.name, index, opts) + /** + * Swaps the values at the specified indices. + */ swapValues = (aIndex: number, bIndex: number, opts?: { touch?: boolean }) => this.form.swapFieldValues(this.name, aIndex, bIndex, opts) + /** + * Moves the value at the first specified index to the second specified index. + */ moveValue = (aIndex: number, bIndex: number, opts?: { touch?: boolean }) => this.form.moveFieldValues(this.name, aIndex, bIndex, opts) + /** + * @private + */ getLinkedFields = (cause: ValidationCause) => { const fields = Object.values(this.form.fieldInfo) as FieldInfo< any, @@ -520,6 +718,9 @@ export class FieldApi< return linkedFields } + /** + * @private + */ validateSync = (cause: ValidationCause) => { const validates = getSyncValidatorArray(cause, this.options) @@ -597,6 +798,9 @@ export class FieldApi< return { hasErrored } } + /** + * @private + */ validateAsync = async (cause: ValidationCause) => { const validates = getAsyncValidatorArray(cause, this.options) @@ -717,6 +921,9 @@ export class FieldApi< return results.filter(Boolean) } + /** + * Validates the field value. + */ validate = ( cause: ValidationCause, ): ValidationError[] | Promise => { @@ -737,10 +944,16 @@ export class FieldApi< return this.validateAsync(cause) } + /** + * Handles the change event. + */ handleChange = (updater: Updater) => { this.setValue(updater, { touch: true }) } + /** + * Handles the blur event. + */ handleBlur = () => { const prevTouched = this.state.meta.isTouched if (!prevTouched) { diff --git a/packages/form-core/src/FormApi.ts b/packages/form-core/src/FormApi.ts index d4d5e89d4..b9c0fe72a 100644 --- a/packages/form-core/src/FormApi.ts +++ b/packages/form-core/src/FormApi.ts @@ -19,6 +19,9 @@ import type { Validator, } from './types' +/** + * @private + */ export type FormValidateFn< TFormData, TFormValidator extends Validator | undefined = undefined, @@ -27,6 +30,9 @@ export type FormValidateFn< formApi: FormApi }) => ValidationError +/** + * @private + */ export type FormValidateOrFn< TFormData, TFormValidator extends Validator | undefined = undefined, @@ -34,6 +40,9 @@ export type FormValidateOrFn< ? TFN : FormValidateFn +/** + * @private + */ export type FormValidateAsyncFn< TFormData, TFormValidator extends Validator | undefined = undefined, @@ -43,6 +52,9 @@ export type FormValidateAsyncFn< signal: AbortSignal }) => ValidationError | Promise +/** + * @private + */ export type FormAsyncValidateOrFn< TFormData, TFormValidator extends Validator | undefined = undefined, @@ -54,17 +66,41 @@ export interface FormValidators< TFormData, TFormValidator extends Validator | undefined = undefined, > { + /** + * Optional function that fires as soon as the component mounts. + */ onMount?: FormValidateOrFn + /** + * Optional function that checks the validity of your data whenever a value changes + */ onChange?: FormValidateOrFn + /** + * Optional onChange asynchronous counterpart to onChange. Useful for more complex validation logic that might involve server requests. + */ onChangeAsync?: FormAsyncValidateOrFn + /** + * 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. + */ onChangeAsyncDebounceMs?: number + /** + * Optional function that validates the form data when a field loses focus, returns a ValidationError + */ onBlur?: FormValidateOrFn + /** + * Optional onBlur asynchronous validation method for when a field loses focus return a `ValidationError` or a promise of `Promise` + */ onBlurAsync?: FormAsyncValidateOrFn + /** + * 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. + */ onBlurAsyncDebounceMs?: number onSubmit?: FormValidateOrFn onSubmitAsync?: FormAsyncValidateOrFn } +/** + * @private + */ export interface FormTransform< TFormData, TFormValidator extends Validator | undefined = undefined, @@ -75,20 +111,47 @@ export interface FormTransform< deps: unknown[] } +/** + * An object representing the options for a form. + */ export interface FormOptions< TFormData, TFormValidator extends Validator | undefined = undefined, > { + /** + * Set initial values for your form. + */ defaultValues?: TFormData + /** + * The default state for the form. + */ defaultState?: Partial> + /** + * If true, always run async validation, even when sync validation has produced an error. Defaults to undefined. + */ asyncAlways?: boolean + /** + * Optional time in milliseconds if you want to introduce a delay before firing off an async action. + */ asyncDebounceMs?: number + /** + * A validator adapter to support usage of extra validation types (IE: Zod, Yup, or Valibot usage) + */ validatorAdapter?: TFormValidator + /** + * A list of validators to pass to the form + */ validators?: FormValidators + /** + * 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` + */ onSubmit?: (props: { value: TFormData formApi: FormApi }) => any | Promise + /** + * Specify an action for scenarios where the user tries to submit an invalid form. + */ onSubmitInvalid?: (props: { value: TFormData formApi: FormApi @@ -96,44 +159,113 @@ export interface FormOptions< transform?: FormTransform } +/** + * An object representing the validation metadata for a field. Not intended for public usage. + */ export type ValidationMeta = { + /** + * An abort controller stored in memory to cancel previous async validation attempts. + */ lastAbortController: AbortController } +/** + * An object representing the field information for a specific field within the form. + */ export type FieldInfo< TFormData, TFormValidator extends Validator | undefined = undefined, > = { + /** + * An instance of the FieldAPI. + */ instance: FieldApi< TFormData, any, Validator | undefined, TFormValidator > | null + /** + * A record of field validation internal handling. + */ validationMetaMap: Record } +/** + * An object representing the current state of the form. + */ export type FormState = { + /** + * The current values of the form fields. + */ values: TFormData - // Form Validation + /** + * A boolean indicating if the form is currently validating. + */ isFormValidating: boolean + /** + * A boolean indicating if the form is valid. + */ isFormValid: boolean + /** + * The error array for the form itself. + */ errors: ValidationError[] + /** + * The error map for the form itself. + */ errorMap: ValidationErrorMap + /** + * An internal mechanism used for keeping track of validation logic in a form. + */ validationMetaMap: Record - // Fields + /** + * A record of field metadata for each field in the form. + */ fieldMeta: Record, FieldMeta> + /** + * A boolean indicating if any of the form fields are currently validating. + */ isFieldsValidating: boolean + /** + * A boolean indicating if all the form fields are valid. + */ isFieldsValid: boolean + /** + * A boolean indicating if the form is currently submitting. + */ isSubmitting: boolean - // General + /** + * A boolean indicating if any of the form fields have been touched. + */ isTouched: boolean + /** + * A boolean indicating if any of the form's fields' values have been modified by the user. `True` if the user have modified at least one of the fields. Opposite of `isPristine`. + */ isDirty: boolean + /** + * A boolean indicating if none of the form's fields' values have been modified by the user. `True` if the user have not modified any of the fields. Opposite of `isDirty`. + */ isPristine: boolean + /** + * A boolean indicating if the form has been submitted. + */ isSubmitted: boolean + /** + * A boolean indicating if the form or any of its fields are currently validating. + */ isValidating: boolean + /** + * A boolean indicating if the form and all its fields are valid. + */ isValid: boolean + /** + * A boolean indicating if the form can be submitted based on its current state. + */ canSubmit: boolean + /** + * A counter for tracking the number of submission attempts. + */ submissionAttempts: number } @@ -168,21 +300,47 @@ function getDefaultFormState( } } +/** + * A class representing the Form API. It handles the logic and interactions with the form state. + * + * Normally, you will not need to create a new `FormApi` instance directly. Instead, you will use a framework + * hook/function like `useForm` or `createForm` to create a new instance for you that uses your framework's reactivity model. + * However, if you need to create a new instance manually, you can do so by calling the `new FormApi` constructor. + */ export class FormApi< TFormData, TFormValidator extends Validator | undefined = undefined, > { + /** + * The options for the form. + */ options: FormOptions = {} + /** + * A [TanStack Store instance](https://tanstack.com/store/latest/docs/reference/Store) that keeps track of the form's state. + */ store!: Store> - // Do not use __state directly, as it is not reactive. - // Please use form.useStore() utility to subscribe to state + /** + * 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 + */ state!: FormState - // // This carries the context for nested fields + /** + * A record of field information for each field in the form. + */ fieldInfo: Record, FieldInfo> = {} as any + /** + * @private + */ prevTransformArray: unknown[] = [] + /** + * Constructs a new `FormApi` instance with the given form options. + */ constructor(opts?: FormOptions) { this.store = new Store>( getDefaultFormState({ @@ -260,6 +418,9 @@ export class FormApi< this.update(opts || {}) } + /** + * @private + */ runValidator< TValue extends { value: TFormData; formApi: FormApi }, TType extends 'validate' | 'validateAsync', @@ -297,6 +458,9 @@ export class FormApi< } } + /** + * Updates the form options and form state. + */ update = (options?: FormOptions) => { if (!options) return @@ -334,6 +498,9 @@ export class FormApi< }) } + /** + * Resets the form state to the default values. + */ reset = () => { const { fieldMeta: currentFieldMeta } = this.state const fieldMeta = this.resetFieldMeta(currentFieldMeta) @@ -346,6 +513,9 @@ export class FormApi< ) } + /** + * Validates all fields in the form using the correct handlers for a given validation type. + */ validateAllFields = async (cause: ValidationCause) => { const fieldValidationPromises: Promise[] = [] as any this.store.batch(() => { @@ -370,6 +540,9 @@ export class FormApi< return fieldErrorMapMap.flat() } + /** + * 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. + */ validateArrayFieldsStartingFrom = async >( field: TField, index: number, @@ -406,6 +579,9 @@ export class FormApi< return fieldErrorMapMap.flat() } + /** + * Validates a specified field in the form using the correct handlers for a given validation type. + */ validateField = >( field: TField, cause: ValidationCause, @@ -423,7 +599,10 @@ export class FormApi< return fieldInstance.validate(cause) } - // TODO: This code is copied from FieldApi, we should refactor to share + /** + * TODO: This code is copied from FieldApi, we should refactor to share + * @private + */ validateSync = (cause: ValidationCause) => { const validates = getSyncValidatorArray(cause, this.options) let hasErrored = false as boolean @@ -480,6 +659,9 @@ export class FormApi< return { hasErrored } } + /** + * @private + */ validateAsync = async ( cause: ValidationCause, ): Promise => { @@ -561,6 +743,9 @@ export class FormApi< return results.filter(Boolean) } + /** + * @private + */ validate = ( cause: ValidationCause, ): ValidationError[] | Promise => { @@ -575,12 +760,10 @@ export class FormApi< return this.validateAsync(cause) } + /** + * Handles the form submission, performs validation, and calls the appropriate onSubmit or onInvalidSubmit callbacks. + */ handleSubmit = async () => { - // Check to see that the form and all fields have been touched - // If they have not, touch them all and run validation - // Run form validation - // Submit the form - this.store.setState((old) => ({ ...old, // Submission attempts mark the form as not submitted @@ -637,16 +820,25 @@ export class FormApi< } } + /** + * Gets the value of the specified field. + */ getFieldValue = >( field: TField, ): DeepValue => getBy(this.state.values, field) + /** + * Gets the metadata of the specified field. + */ getFieldMeta = >( field: TField, ): FieldMeta | undefined => { return this.state.fieldMeta[field] } + /** + * Gets the field info of the specified field. + */ getFieldInfo = >( field: TField, ): FieldInfo => { @@ -663,6 +855,9 @@ export class FormApi< }) } + /** + * Updates the metadata of the specified field. + */ setFieldMeta = >( field: TField, updater: Updater, @@ -699,6 +894,9 @@ export class FormApi< ) } + /** + * Sets the value of the specified field and optionally updates the touched state. + */ setFieldValue = >( field: TField, updater: Updater>, @@ -735,6 +933,9 @@ export class FormApi< delete this.fieldInfo[field] } + /** + * Pushes a value into an array field. + */ pushFieldValue = >( field: TField, value: DeepValue extends any[] @@ -750,6 +951,9 @@ export class FormApi< this.validateField(field, 'change') } + /** + * Inserts a value into an array field at the specified index, shifting the subsequent values to the right. + */ insertFieldValue = async >( field: TField, index: number, @@ -774,6 +978,9 @@ export class FormApi< await this.validateField(field, 'change') } + /** + * Replaces a value into an array field at the specified index. + */ replaceFieldValue = async >( field: TField, index: number, @@ -797,6 +1004,9 @@ export class FormApi< await this.validateArrayFieldsStartingFrom(field, index, 'change') } + /** + * Removes a value from an array field at the specified index. + */ removeFieldValue = async >( field: TField, index: number, @@ -833,6 +1043,9 @@ export class FormApi< await this.validateArrayFieldsStartingFrom(field, index, 'change') } + /** + * Swaps the values at the specified indices within an array field. + */ swapFieldValues = >( field: TField, index1: number, @@ -856,6 +1069,9 @@ export class FormApi< this.validateField(`${field}[${index2}]` as DeepKeys, 'change') } + /** + * Moves the value at the first specified index to the second specified index within an array field. + */ moveFieldValues = >( field: TField, index1: number, diff --git a/packages/form-core/src/formOptions.ts b/packages/form-core/src/formOptions.ts new file mode 100644 index 000000000..6089cec87 --- /dev/null +++ b/packages/form-core/src/formOptions.ts @@ -0,0 +1,9 @@ +import type { Validator } from './types' +import type { FormOptions } from './FormApi' + +export function formOptions< + TFormData, + TFormValidator extends Validator | undefined = undefined, +>(defaultOpts?: FormOptions) { + return defaultOpts +} diff --git a/packages/form-core/src/index.ts b/packages/form-core/src/index.ts index bf037e63c..e6aec68e3 100644 --- a/packages/form-core/src/index.ts +++ b/packages/form-core/src/index.ts @@ -4,3 +4,4 @@ export * from './utils' export * from './util-types' export * from './types' export * from './mergeForm' +export * from './formOptions' diff --git a/packages/form-core/src/mergeForm.ts b/packages/form-core/src/mergeForm.ts index 7e9b29714..202e307af 100644 --- a/packages/form-core/src/mergeForm.ts +++ b/packages/form-core/src/mergeForm.ts @@ -1,6 +1,10 @@ import type { FormApi } from './FormApi' import type { Validator } from './types' +import type { NoInfer } from './util-types' +/** + * @private + */ export function mutateMergeDeep(target: object, source: object): object { const targetKeys = Object.keys(target) const sourceKeys = Object.keys(source) @@ -34,7 +38,7 @@ export function mergeForm< TFormData, TFormValidator extends Validator | undefined = undefined, >( - baseForm: FormApi, + baseForm: FormApi, NoInfer>, state: Partial['state']>, ) { mutateMergeDeep(baseForm.state, state) diff --git a/packages/form-core/src/types.ts b/packages/form-core/src/types.ts index 1e87173fa..13392e588 100644 --- a/packages/form-core/src/types.ts +++ b/packages/form-core/src/types.ts @@ -1,16 +1,28 @@ export type ValidationError = undefined | false | null | string -// If/when TypeScript supports higher-kinded types, this should not be `unknown` anymore +/** + * If/when TypeScript supports higher-kinded types, this should not be `unknown` anymore + * @private + */ export type Validator = () => { validate(options: { value: Type }, fn: Fn): ValidationError validateAsync(options: { value: Type }, fn: Fn): Promise } -// "server" is only intended for SSR/SSG validation and should not execute anything +/** + * "server" is only intended for SSR/SSG validation and should not execute anything + * @private + */ export type ValidationCause = 'change' | 'blur' | 'submit' | 'mount' | 'server' +/** + * @private + */ export type ValidationErrorMapKeys = `on${Capitalize}` +/** + * @private + */ export type ValidationErrorMap = { [K in ValidationErrorMapKeys]?: ValidationError } diff --git a/packages/form-core/src/util-types.ts b/packages/form-core/src/util-types.ts index c0507c202..277f90011 100644 --- a/packages/form-core/src/util-types.ts +++ b/packages/form-core/src/util-types.ts @@ -8,6 +8,9 @@ type Get = T extends { [Key in K]: infer V } type Nullable = T | null type IsNullable = [null] extends [T] ? true : false +/** + * @private + */ export type RequiredByKey = Omit & Required> @@ -20,13 +23,22 @@ type NarrowRaw = [K in keyof A]: A[K] extends Function ? A[K] : NarrowRaw } +/** + * @private + */ export type NoInfer = [T][T extends any ? 0 : never] +/** + * @private + */ export type Narrow = Try> type Try = A1 extends A2 ? A1 : Catch -// Hack to get TypeScript to show simplified types in error messages +/** + * Hack to get TypeScript to show simplified types in error messages + * @private + */ export type Pretty = { [K in keyof T]: T[K] } & {} type ComputeRange< @@ -74,6 +86,9 @@ type PrefixObjectAccessor = { : never }[keyof T] +/** + * The keys of an object or array, deeply nested. + */ export type DeepKeys = TDepth['length'] extends 5 ? never : unknown extends T @@ -96,9 +111,8 @@ type PrefixFromDepth< > = TDepth['length'] extends 0 ? T : `.${T}` /** - Infer the type of a deeply nested property within an object or an array. - See the tests in `util-types.test-d.ts` for usage. -*/ + * Infer the type of a deeply nested property within an object or an array. + */ export type DeepValue< // The object or array in which we have the property whose type we're trying to infer TValue, diff --git a/packages/form-core/src/utils.ts b/packages/form-core/src/utils.ts index e6c554b36..535b1d3a0 100644 --- a/packages/form-core/src/utils.ts +++ b/packages/form-core/src/utils.ts @@ -8,6 +8,9 @@ export type Updater = | TOutput | UpdaterFn +/** + * @private + */ export function functionalUpdate( updater: Updater, input: TInput, @@ -19,6 +22,7 @@ export function functionalUpdate( /** * Get a value from an object using a path, including dot notation. + * @private */ export function getBy(obj: any, path: any) { const pathObj = makePathArray(path) @@ -33,6 +37,7 @@ export function getBy(obj: any, path: any) { /** * Set a value on an object using a path, including dot notation. + * @private */ export function setBy(obj: any, _path: any, updater: Updater) { const path = makePathArray(_path) @@ -75,6 +80,7 @@ export function setBy(obj: any, _path: any, updater: Updater) { /** * Delete a field on an object using a path, including dot notation. + * @private */ export function deleteBy(obj: any, _path: any) { const path = makePathArray(_path) @@ -130,6 +136,9 @@ const reFindMultiplePeriods = /\.{2,}/gm const intPrefix = '__int__' const intReplace = `${intPrefix}$1` +/** + * @private + */ export function makePathArray(str: string) { if (typeof str !== 'string') { throw new Error('Path must be a string.') @@ -152,6 +161,9 @@ export function makePathArray(str: string) { }) } +/** + * @private + */ export function isNonEmptyArray(obj: any) { return !(Array.isArray(obj) && obj.length === 0) } @@ -161,12 +173,18 @@ interface AsyncValidatorArrayPartialOptions { asyncDebounceMs?: number } +/** + * @private + */ export interface AsyncValidator { cause: ValidationCause validate: T debounceMs: number } +/** + * @private + */ export function getAsyncValidatorArray( cause: ValidationCause, options: AsyncValidatorArrayPartialOptions, @@ -240,11 +258,17 @@ interface SyncValidatorArrayPartialOptions { validators?: T } +/** + * @private + */ export interface SyncValidator { cause: ValidationCause validate: T } +/** + * @private + */ export function getSyncValidatorArray( cause: ValidationCause, options: SyncValidatorArrayPartialOptions, diff --git a/packages/form-core/src/tests/FieldApi.spec.ts b/packages/form-core/tests/FieldApi.spec.ts similarity index 96% rename from packages/form-core/src/tests/FieldApi.spec.ts rename to packages/form-core/tests/FieldApi.spec.ts index 5e842cc88..69d7ecf2f 100644 --- a/packages/form-core/src/tests/FieldApi.spec.ts +++ b/packages/form-core/tests/FieldApi.spec.ts @@ -1,7 +1,5 @@ import { describe, expect, it, vi } from 'vitest' - -import { FormApi } from '../FormApi' -import { FieldApi } from '../FieldApi' +import { FieldApi, FormApi } from '../src/index' import { sleep } from './utils' describe('field api', () => { @@ -900,7 +898,6 @@ describe('field api', () => { const field = new FieldApi({ form, name: 'name', - preserveValue: true, }) const unmount = field.mount() @@ -909,37 +906,6 @@ describe('field api', () => { expect(form.getFieldInfo(field.name)).toBeDefined() }) - it('should not preserve field value on ummount', () => { - const form = new FormApi({ - defaultValues: { - name: 'test', - }, - }) - - const field = new FieldApi({ - form, - name: 'name', - }) - - const unmount = field.mount() - const callback = vi.fn() - const subscription = form.store.subscribe(callback) - unmount() - const info = form.getFieldInfo(field.name) - subscription() - expect(info.instance).toBeNull() - expect(Object.keys(info.instance ?? {}).length).toBe(0) - - // Check that form store has been updated - expect(callback).toHaveBeenCalledOnce() - - // Field should have been removed from the form as well - expect(form.state.values.name).toBeUndefined() - expect(form.state.fieldMeta.name).toBeUndefined() - expect(form.store.state.values.name).toBeUndefined() - expect(form.store.state.fieldMeta.name).toBeUndefined() - }) - it('should show onSubmit errors', async () => { const form = new FormApi({ defaultValues: { diff --git a/packages/form-core/src/tests/FieldApi.test-d.ts b/packages/form-core/tests/FieldApi.test-d.ts similarity index 97% rename from packages/form-core/src/tests/FieldApi.test-d.ts rename to packages/form-core/tests/FieldApi.test-d.ts index 379696d35..92ad5cb20 100644 --- a/packages/form-core/src/tests/FieldApi.test-d.ts +++ b/packages/form-core/tests/FieldApi.test-d.ts @@ -1,6 +1,5 @@ import { assertType, it } from 'vitest' -import { FormApi } from '../FormApi' -import { FieldApi } from '../FieldApi' +import { FieldApi, FormApi } from '../src/index' it('should type value properly', () => { const form = new FormApi({ diff --git a/packages/form-core/src/tests/FormApi.spec.ts b/packages/form-core/tests/FormApi.spec.ts similarity index 99% rename from packages/form-core/src/tests/FormApi.spec.ts rename to packages/form-core/tests/FormApi.spec.ts index 022950f8a..b7ea1df71 100644 --- a/packages/form-core/src/tests/FormApi.spec.ts +++ b/packages/form-core/tests/FormApi.spec.ts @@ -1,7 +1,5 @@ import { describe, expect, it, vi } from 'vitest' - -import { FormApi } from '../FormApi' -import { FieldApi } from '../FieldApi' +import { FieldApi, FormApi } from '../src/index' import { sleep } from './utils' describe('form api', () => { diff --git a/packages/form-core/tests/formOptions.test.ts b/packages/form-core/tests/formOptions.test.ts new file mode 100644 index 000000000..08ec895c2 --- /dev/null +++ b/packages/form-core/tests/formOptions.test.ts @@ -0,0 +1,25 @@ +import { describe, expect, it } from 'vitest' +import { FormApi, formOptions } from '../src/index' + +describe('formOptions', () => { + it('should allow default values to be set', async () => { + type Person = { + firstName: string + lastName: string + } + + const formOpts = formOptions({ + defaultValues: { + firstName: 'FirstName', + lastName: 'LastName', + }, + }) + + const form = new FormApi({ + ...formOpts, + }) + + expect(form.state.values['firstName']).toBe('FirstName') + expect(form.state.values['lastName']).toBe('LastName') + }) +}) diff --git a/packages/form-core/src/tests/mutateMergeDeep.spec.ts b/packages/form-core/tests/mutateMergeDeep.spec.ts similarity index 94% rename from packages/form-core/src/tests/mutateMergeDeep.spec.ts rename to packages/form-core/tests/mutateMergeDeep.spec.ts index 0707802d5..c5193adef 100644 --- a/packages/form-core/src/tests/mutateMergeDeep.spec.ts +++ b/packages/form-core/tests/mutateMergeDeep.spec.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from 'vitest' -import { mutateMergeDeep } from '../mergeForm' +import { mutateMergeDeep } from '../src/index' describe('mutateMergeDeep', () => { test('Should merge two objects by mutating', () => { diff --git a/packages/form-core/src/tests/util-types.test-d.ts b/packages/form-core/tests/util-types.test-d.ts similarity index 98% rename from packages/form-core/src/tests/util-types.test-d.ts rename to packages/form-core/tests/util-types.test-d.ts index 6c1869505..56d04d9ac 100644 --- a/packages/form-core/src/tests/util-types.test-d.ts +++ b/packages/form-core/tests/util-types.test-d.ts @@ -1,5 +1,5 @@ import { assertType } from 'vitest' -import type { DeepKeys, DeepValue } from '../util-types' +import type { DeepKeys, DeepValue } from '../src/index' /** * Properly recognizes that `0` is not an object and should not have subkeys diff --git a/packages/form-core/src/tests/utils.spec.ts b/packages/form-core/tests/utils.spec.ts similarity index 98% rename from packages/form-core/src/tests/utils.spec.ts rename to packages/form-core/tests/utils.spec.ts index 77cb247c9..7e6a8c12c 100644 --- a/packages/form-core/src/tests/utils.spec.ts +++ b/packages/form-core/tests/utils.spec.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { deleteBy, getBy, makePathArray, setBy } from '../utils' +import { deleteBy, getBy, makePathArray, setBy } from '../src/index' describe('getBy', () => { const structure = { diff --git a/packages/form-core/src/tests/utils.ts b/packages/form-core/tests/utils.ts similarity index 100% rename from packages/form-core/src/tests/utils.ts rename to packages/form-core/tests/utils.ts diff --git a/packages/react-form/tsconfig.50.json b/packages/form-core/tsconfig.docs.json similarity index 54% rename from packages/react-form/tsconfig.50.json rename to packages/form-core/tsconfig.docs.json index 7eb52de1e..63f834a08 100644 --- a/packages/react-form/tsconfig.50.json +++ b/packages/form-core/tsconfig.docs.json @@ -1,4 +1,4 @@ { "extends": "./tsconfig.json", - "exclude": ["src/tests/**"] + "include": ["tests"] } diff --git a/packages/form-core/tsconfig.json b/packages/form-core/tsconfig.json index f1368359c..e04bee269 100644 --- a/packages/form-core/tsconfig.json +++ b/packages/form-core/tsconfig.json @@ -3,5 +3,5 @@ "compilerOptions": { "moduleResolution": "Bundler" }, - "include": ["src/**/*.ts", "src/**/*.tsx", ".eslintrc.cjs", "vite.config.ts"] + "include": ["src", "tests", "eslint.config.js", "vite.config.ts"] } diff --git a/packages/form-core/tsconfig.legacy.json b/packages/form-core/tsconfig.legacy.json index 8ba4eb48e..596e2cf72 100644 --- a/packages/form-core/tsconfig.legacy.json +++ b/packages/form-core/tsconfig.legacy.json @@ -1,8 +1,4 @@ { "extends": "../../tsconfig.json", - "compilerOptions": { - "moduleResolution": "Node" - }, - "include": ["src/**/*.ts", "src/**/*.tsx"], - "exclude": ["src/tests/**"] + "include": ["src"] } diff --git a/packages/form-core/vite.config.ts b/packages/form-core/vite.config.ts index 9601ed3b2..a219ddc97 100644 --- a/packages/form-core/vite.config.ts +++ b/packages/form-core/vite.config.ts @@ -1,10 +1,10 @@ import { defineConfig, mergeConfig } from 'vitest/config' -import { tanstackBuildConfig } from '@tanstack/config/build' +import { tanstackViteConfig } from '@tanstack/config/vite' const config = defineConfig({ test: { name: 'form-core', - dir: './src', + dir: './tests', watch: false, environment: 'jsdom', coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, @@ -14,9 +14,8 @@ const config = defineConfig({ export default mergeConfig( config, - tanstackBuildConfig({ + tanstackViteConfig({ entry: './src/index.ts', srcDir: './src', - exclude: ['./src/tests'], }), ) diff --git a/packages/lit-form/.eslintrc.cjs b/packages/lit-form/.eslintrc.cjs deleted file mode 100644 index e0ee3beb4..000000000 --- a/packages/lit-form/.eslintrc.cjs +++ /dev/null @@ -1,17 +0,0 @@ -// @ts-check - -/** @type {import('eslint').Linter.Config} */ -const config = { - extends: ['plugin:react/recommended', 'plugin:react-hooks/recommended'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.eslint.json', - }, - rules: { - 'react/jsx-key': ['error', { checkFragmentShorthand: true }], - 'react-hooks/exhaustive-deps': 'error', - 'react/no-children-prop': 'off', - }, -} - -module.exports = config diff --git a/packages/lit-form/eslint.config.js b/packages/lit-form/eslint.config.js new file mode 100644 index 000000000..8ce6ad05f --- /dev/null +++ b/packages/lit-form/eslint.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import rootConfig from '../../eslint.config.js' + +export default [...rootConfig] diff --git a/packages/lit-form/package.json b/packages/lit-form/package.json index 22866d80f..1938f821c 100644 --- a/packages/lit-form/package.json +++ b/packages/lit-form/package.json @@ -1,10 +1,14 @@ { "name": "@tanstack/lit-form", - "version": "0.22.0", + "version": "0.23.3", "description": "Powerful, type-safe forms for Lit.", "author": "tannerlinsley", "license": "MIT", - "repository": "tanstack/form", + "repository": { + "type": "git", + "url": "https://github.com/TanStack/form.git", + "directory": "packages/lit-form" + }, "homepage": "https://tanstack.com/form", "funding": { "type": "github", @@ -13,43 +17,35 @@ "sideEffects": false, "scripts": { "clean": "rimraf ./build && rimraf ./coverage", - "test:eslint": "eslint --ext .ts,.tsx ./src", - "test:types": "tsc --noEmit", + "test:eslint": "eslint ./src", + "test:types": "pnpm run \"/^test:types:ts[0-9]{2}$/\"", + "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js", + "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js", + "test:types:ts52": "node ../../node_modules/typescript52/lib/tsc.js", + "test:types:ts53": "node ../../node_modules/typescript53/lib/tsc.js", + "test:types:ts54": "tsc", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict", - "build": "vite build" + "build": "tsc -p tsconfig.build.json" }, "files": [ "dist", "src" ], "type": "module", - "types": "dist/esm/index.d.ts", - "main": "dist/cjs/index.cjs", - "module": "dist/esm/index.js", + "types": "dist/index.d.ts", + "main": "dist/index.js", + "module": "dist/index.js", "exports": { ".": { "import": { - "types": "./dist/esm/index.d.ts", - "default": "./dist/esm/index.js" - }, - "require": { - "types": "./dist/cjs/index.d.cts", - "default": "./dist/cjs/index.cjs" + "types": "./dist/index.d.ts", + "default": "./dist/index.js" } }, "./package.json": "./package.json" }, - "nx": { - "targets": { - "test:build": { - "dependsOn": [ - "build" - ] - } - } - }, "devDependencies": { "@types/node": "^20.9.0" }, diff --git a/packages/lit-form/src/index.ts b/packages/lit-form/src/index.ts index 4d7d91923..78b68464f 100644 --- a/packages/lit-form/src/index.ts +++ b/packages/lit-form/src/index.ts @@ -1,2 +1,2 @@ -export type { FieldApi, FormOptions, FieldState } from '@tanstack/form-core' +export * from '@tanstack/form-core' export { TanStackFormController } from './tanstack-form-controller' diff --git a/packages/lit-form/src/tests/simple.test.ts b/packages/lit-form/tests/simple.test.ts similarity index 95% rename from packages/lit-form/src/tests/simple.test.ts rename to packages/lit-form/tests/simple.test.ts index 8881a4426..3c27ac8d7 100644 --- a/packages/lit-form/src/tests/simple.test.ts +++ b/packages/lit-form/tests/simple.test.ts @@ -1,6 +1,7 @@ /// +import { afterEach, beforeEach, describe, expect, it } from 'vitest' import '@testing-library/jest-dom' -import userEvent from '@testing-library/user-event' +import { userEvent } from '@testing-library/user-event' import { TestForm, sampleData } from './simple' window.customElements.define('test-form', TestForm) diff --git a/packages/lit-form/src/tests/simple.ts b/packages/lit-form/tests/simple.ts similarity index 97% rename from packages/lit-form/src/tests/simple.ts rename to packages/lit-form/tests/simple.ts index 5e79935bf..9d143dbd2 100644 --- a/packages/lit-form/src/tests/simple.ts +++ b/packages/lit-form/tests/simple.ts @@ -1,6 +1,6 @@ import { LitElement, html } from 'lit' -import { TanStackFormController } from '../index.js' -import type { FieldApi, FormOptions } from '../index.js' +import { TanStackFormController } from '../src/index.js' +import type { FieldApi, FormOptions } from '../src/index.js' interface Employee { firstName: string diff --git a/packages/lit-form/tsconfig.build.json b/packages/lit-form/tsconfig.build.json new file mode 100644 index 000000000..f1bd5606f --- /dev/null +++ b/packages/lit-form/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "moduleResolution": "Bundler", + "rootDir": "src", + "outDir": "dist", + "noEmit": false, + "declaration": true, + "sourceMap": true + }, + "include": ["src"] +} diff --git a/packages/lit-form/tsconfig.docs.json b/packages/lit-form/tsconfig.docs.json new file mode 100644 index 000000000..2c9444e16 --- /dev/null +++ b/packages/lit-form/tsconfig.docs.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "paths": { + "@tanstack/form-core": ["../form-core/src"] + } + }, + "exclude": ["tests", "eslint.config.js", "vite.config.ts"] +} diff --git a/packages/lit-form/tsconfig.eslint.json b/packages/lit-form/tsconfig.eslint.json deleted file mode 100644 index bd0895c40..000000000 --- a/packages/lit-form/tsconfig.eslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "noEmit": true - }, - "include": ["**/*.ts", ".eslintrc.cjs", "tsup.config.js"] -} diff --git a/packages/lit-form/tsconfig.json b/packages/lit-form/tsconfig.json index dfdf1d959..e04bee269 100644 --- a/packages/lit-form/tsconfig.json +++ b/packages/lit-form/tsconfig.json @@ -1,12 +1,7 @@ { - "composite": true, "extends": "../../tsconfig.json", "compilerOptions": { - "lib": ["DOM"], - "outDir": "./build/lib", - "module": "ESNext", - "moduleResolution": "bundler", - "types": ["vitest/globals"] + "moduleResolution": "Bundler" }, - "include": ["src"] + "include": ["src", "tests", "eslint.config.js", "vite.config.ts"] } diff --git a/packages/lit-form/vite.config.ts b/packages/lit-form/vite.config.ts index 65d17b25d..8de48919a 100644 --- a/packages/lit-form/vite.config.ts +++ b/packages/lit-form/vite.config.ts @@ -1,10 +1,10 @@ -import { defineConfig, mergeConfig } from 'vitest/config' -import { tanstackBuildConfig } from '@tanstack/config/build' +import { defineConfig } from 'vitest/config' +import packageJson from './package.json' -const config = defineConfig({ +export default defineConfig({ test: { - name: 'lit-form', - dir: './src', + name: packageJson.name, + dir: './tests', watch: false, environment: 'jsdom', globals: true, @@ -12,11 +12,3 @@ const config = defineConfig({ typecheck: { enabled: true }, }, }) -export default mergeConfig( - config, - tanstackBuildConfig({ - entry: './src/index.ts', - srcDir: './src', - exclude: ['./src/tests'], - }), -) diff --git a/packages/react-form/.eslintrc.cjs b/packages/react-form/.eslintrc.cjs deleted file mode 100644 index 5f504cf4c..000000000 --- a/packages/react-form/.eslintrc.cjs +++ /dev/null @@ -1,13 +0,0 @@ -// @ts-check - -/** @type {import('eslint').Linter.Config} */ -const config = { - extends: ['plugin:react/recommended', 'plugin:react-hooks/recommended'], - rules: { - 'react/jsx-key': ['error', { checkFragmentShorthand: true }], - 'react-hooks/exhaustive-deps': 'error', - 'react/no-children-prop': 'off', - }, -} - -module.exports = config diff --git a/packages/react-form/eslint.config.js b/packages/react-form/eslint.config.js new file mode 100644 index 000000000..95cf4ac46 --- /dev/null +++ b/packages/react-form/eslint.config.js @@ -0,0 +1,23 @@ +// @ts-check + +import pluginReact from '@eslint-react/eslint-plugin' +// @ts-expect-error +import pluginReactHooks from 'eslint-plugin-react-hooks' +import rootConfig from '../../eslint.config.js' + +export default [ + ...rootConfig, + { + files: ['**/*.{ts,tsx}'], + ...pluginReact.configs.recommended, + }, + { + plugins: { + 'react-hooks': pluginReactHooks, + }, + rules: { + 'react-hooks/exhaustive-deps': 'error', + 'react-hooks/rules-of-hooks': 'error', + }, + }, +] diff --git a/packages/react-form/package.json b/packages/react-form/package.json index 1be229fcd..c01015315 100644 --- a/packages/react-form/package.json +++ b/packages/react-form/package.json @@ -1,10 +1,14 @@ { "name": "@tanstack/react-form", - "version": "0.22.0", + "version": "0.23.3", "description": "Powerful, type-safe forms for React.", "author": "tannerlinsley", "license": "MIT", - "repository": "tanstack/form", + "repository": { + "type": "git", + "url": "https://github.com/TanStack/form.git", + "directory": "packages/react-form" + }, "homepage": "https://tanstack.com/form", "funding": { "type": "github", @@ -13,12 +17,14 @@ "sideEffects": false, "scripts": { "clean": "rimraf ./dist && rimraf ./coverage", - "test:eslint": "eslint --ext .ts,.tsx ./src", - "test:types:versions49": "node ../../node_modules/typescript49/lib/tsc.js --project tsconfig.legacy.json", - "test:types:versions50": "node ../../node_modules/typescript50/lib/tsc.js --project tsconfig.50.json", - "test:types:versions51": "node ../../node_modules/typescript51/lib/tsc.js", - "test:types:versions52": "tsc", - "test:types": "pnpm run \"/^test:types:versions.*/\"", + "test:eslint": "eslint ./src", + "test:types": "pnpm run \"/^test:types:ts[0-9]{2}$/\"", + "test:types:ts49": "node ../../node_modules/typescript49/lib/tsc.js -p tsconfig.legacy.json", + "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js -p tsconfig.legacy.json", + "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js", + "test:types:ts52": "node ../../node_modules/typescript52/lib/tsc.js", + "test:types:ts53": "node ../../node_modules/typescript53/lib/tsc.js", + "test:types:ts54": "tsc", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict", @@ -43,21 +49,30 @@ "default": "./dist/cjs/index.cjs" } }, + "./nextjs": { + "import": { + "types": "./dist/esm/nextjs-index.d.ts", + "default": "./dist/esm/nextjs-index.js" + }, + "require": { + "types": "./dist/cjs/nextjs-index.d.cts", + "default": "./dist/cjs/nextjs-index.cjs" + } + }, "./package.json": "./package.json" }, "devDependencies": { - "@types/react": "^18.2.45", - "@types/react-dom": "^18.2.19", - "@vitejs/plugin-react": "^4.2.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", "vite": "^5.0.10" }, "dependencies": { "@tanstack/form-core": "workspace:*", - "@tanstack/react-store": "^0.4.1", - "decode-formdata": "^0.4.0", - "rehackt": "^0.0.3" + "@tanstack/react-store": "^0.5.0", + "decode-formdata": "^0.7.5" }, "peerDependencies": { "react": "^17.0.0 || ^18.0.0" diff --git a/packages/react-form/src/createFormFactory.ts b/packages/react-form/src/createFormFactory.ts deleted file mode 100644 index 43fb5ab64..000000000 --- a/packages/react-form/src/createFormFactory.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Field, useField } from './useField' -import { useForm } from './useForm' -import { getValidateFormData } from './validateFormData' -import type { ValidateFormData } from './validateFormData' -import type { FieldComponent, UseField } from './useField' -import type { FormApi, FormOptions, Validator } from '@tanstack/form-core' - -export type FormFactory< - TFormData, - TFormValidator extends Validator | undefined = undefined, -> = { - useForm: ( - opts?: FormOptions, - ) => FormApi - useField: typeof useField - Field: typeof Field - validateFormData: ValidateFormData - initialFormState: Partial['state']> -} - -export function createFormFactory< - TFormData, - TFormValidator extends Validator | undefined = undefined, ->( - defaultOpts?: FormOptions, -): FormFactory { - return { - useForm: (opts) => { - const formOptions = Object.assign({}, defaultOpts, opts) - return useForm(formOptions) - }, - useField: useField, - Field: Field, - validateFormData: getValidateFormData(defaultOpts) as never, - initialFormState: { - errorMap: { - onServer: undefined, - }, - errors: [], - }, - } -} diff --git a/packages/react-form/src/validateFormData.ts b/packages/react-form/src/createServerValidate.ts similarity index 92% rename from packages/react-form/src/validateFormData.ts rename to packages/react-form/src/createServerValidate.ts index 6ba256bbf..ecba801fb 100644 --- a/packages/react-form/src/validateFormData.ts +++ b/packages/react-form/src/createServerValidate.ts @@ -29,7 +29,7 @@ declare module '@tanstack/form-core' { } } -export type ValidateFormData< +type ValidateFormData< TFormData, TFormValidator extends Validator | undefined = undefined, > = ( @@ -37,7 +37,7 @@ export type ValidateFormData< info?: Parameters[1], ) => Promise['state']>> -export const getValidateFormData = < +export const createServerValidate = < TFormData, TFormValidator extends Validator | undefined = undefined, >( @@ -68,3 +68,10 @@ export const getValidateFormData = < errors: onServerError ? [onServerError] : [], } }) as ValidateFormData + +export const initialFormState = { + errorMap: { + onServer: undefined, + }, + errors: [], +} diff --git a/packages/react-form/src/index.ts b/packages/react-form/src/index.ts index 79e4bb641..f2cbe2a9f 100644 --- a/packages/react-form/src/index.ts +++ b/packages/react-form/src/index.ts @@ -1,33 +1,9 @@ -export type { - DeepKeys, - DeepValue, - FieldApiOptions, - FieldInfo, - FieldMeta, - FieldOptions, - FieldState, - FormOptions, - FormState, - RequiredByKey, - Updater, - UpdaterFn, - ValidationCause, - ValidationError, - ValidationMeta, -} from '@tanstack/form-core' - -export { - FormApi, - FieldApi, - functionalUpdate, - mergeForm, -} from '@tanstack/form-core' +export * from '@tanstack/form-core' export { useForm } from './useForm' export type { UseField, FieldComponent } from './useField' export { useField, Field } from './useField' -export type { FormFactory } from './createFormFactory' -export { createFormFactory } from './createFormFactory' +export { createServerValidate, initialFormState } from './createServerValidate' export { useTransform } from './useTransform' diff --git a/packages/react-form/src/nextjs-index.ts b/packages/react-form/src/nextjs-index.ts new file mode 100644 index 000000000..741eeaa7b --- /dev/null +++ b/packages/react-form/src/nextjs-index.ts @@ -0,0 +1,3 @@ +export * from '@tanstack/form-core' + +export { createServerValidate, initialFormState } from './createServerValidate' diff --git a/packages/react-form/src/tests/createFormFactory.test.tsx b/packages/react-form/src/tests/createFormFactory.test.tsx deleted file mode 100644 index afc689c38..000000000 --- a/packages/react-form/src/tests/createFormFactory.test.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import * as React from 'react' -import { describe, expect, it } from 'vitest' -import { render } from '@testing-library/react' -import { createFormFactory } from '../index' - -describe('createFormFactory', () => { - it('should allow default values to be set', async () => { - type Person = { - firstName: string - lastName: string - } - - const formFactory = createFormFactory({ - defaultValues: { - firstName: 'FirstName', - lastName: 'LastName', - }, - }) - - function Comp() { - const form = formFactory.useForm({}) - - return ( - <> - { - return

{field.state.value}

- }} - /> - - ) - } - - const { findByText, queryByText } = render() - expect(await findByText('FirstName')).toBeInTheDocument() - expect(queryByText('LastName')).not.toBeInTheDocument() - }) -}) diff --git a/packages/react-form/src/types.ts b/packages/react-form/src/types.ts index e9e287a75..5ee688e5e 100644 --- a/packages/react-form/src/types.ts +++ b/packages/react-form/src/types.ts @@ -4,8 +4,11 @@ import type { FieldApiOptions, Validator, } from '@tanstack/form-core' -import type { FunctionComponent } from 'rehackt' +import type { FunctionComponent } from 'react' +/** + * The field options. + */ export type UseFieldOptions< TParentData, TName extends DeepKeys, diff --git a/packages/react-form/src/useField.tsx b/packages/react-form/src/useField.tsx index 822468b31..25ed5f058 100644 --- a/packages/react-form/src/useField.tsx +++ b/packages/react-form/src/useField.tsx @@ -1,4 +1,4 @@ -import React, { type FunctionComponent, useState } from 'rehackt' +import React, { type FunctionComponent, useState } from 'react' import { useStore } from '@tanstack/react-store' import { FieldApi, functionalUpdate } from '@tanstack/form-core' import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect' @@ -6,6 +6,9 @@ import type { NodeType, UseFieldOptions } from './types' import type { DeepKeys, DeepValue, Validator } from '@tanstack/form-core' declare module '@tanstack/form-core' { + /** + * When using `@tanstack/react-form`, the core field API is extended at type level with additional methods for React-specific functionality: + */ // eslint-disable-next-line no-shadow interface FieldApi< TParentData, @@ -18,10 +21,18 @@ declare module '@tanstack/form-core' { | undefined = undefined, TData extends DeepValue = DeepValue, > { + /** + * A pre-bound and type-safe sub-field component using this field as a root. + */ Field: FieldComponent } } +/** + * 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, TFormValidator extends @@ -40,6 +51,12 @@ export type UseField< >, ) => FieldApi +/** + * 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, @@ -93,6 +110,9 @@ export function useField< return fieldApi as never } +/** + * @param children A render function that takes a field API instance and returns a React element. + */ type FieldComponentProps< TParentData, TName extends DeepKeys, @@ -115,6 +135,9 @@ type FieldComponentProps< ) => NodeType } & UseFieldOptions +/** + * A type alias representing a field component for a specific form data type. + */ export type FieldComponent< TParentData, TFormValidator extends @@ -140,6 +163,11 @@ export type FieldComponent< 'form' >) => NodeType +/** + * A function component that takes field options and a render function as children and returns a React component. + * + * The `Field` component uses the `useField` hook internally to manage the field instance. + */ export const Field = (< TParentData, TName extends DeepKeys, diff --git a/packages/react-form/src/useForm.tsx b/packages/react-form/src/useForm.tsx index 34b50bef6..36d10b6eb 100644 --- a/packages/react-form/src/useForm.tsx +++ b/packages/react-form/src/useForm.tsx @@ -1,6 +1,6 @@ import { FormApi, functionalUpdate } from '@tanstack/form-core' import { useStore } from '@tanstack/react-store' -import React, { useState } from 'rehackt' +import React, { useState } from 'react' import { Field, type FieldComponent, type UseField, useField } from './useField' import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect' import type { NoInfer } from '@tanstack/react-store' @@ -8,13 +8,28 @@ import type { FormOptions, FormState, Validator } from '@tanstack/form-core' import type { NodeType } from './types' declare module '@tanstack/form-core' { + /** + * When using `@tanstack/react-form`, the core form API is extended at type level with additional methods for React-specific functionality: + */ // eslint-disable-next-line no-shadow interface FormApi { + /** + * A React component to render form fields. With this, you can render and manage individual form fields. + */ Field: FieldComponent + /** + * A custom React hook that provides functionalities related to individual form fields. It gives you access to field values, errors, and allows you to set or update field values. + */ useField: UseField + /** + * A `useStore` hook that connects to the internal store of the form. It can be used to access the form's current state or any other related state information. You can optionally pass in a selector function to cherry-pick specific parts of the state + */ useStore: >>( selector?: (state: NoInfer>) => TSelected, ) => TSelected + /** + * 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: >>(props: { /** TypeScript versions <=5.0.4 have a bug that prevents @@ -33,6 +48,11 @@ declare module '@tanstack/form-core' { } } +/** + * A custom React Hook that returns an 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, TFormValidator extends Validator | undefined = undefined, diff --git a/packages/react-form/src/useIsomorphicLayoutEffect.ts b/packages/react-form/src/useIsomorphicLayoutEffect.ts index 732cea697..9196a6b29 100644 --- a/packages/react-form/src/useIsomorphicLayoutEffect.ts +++ b/packages/react-form/src/useIsomorphicLayoutEffect.ts @@ -1,4 +1,4 @@ -import { useEffect, useLayoutEffect } from 'rehackt' +import { useEffect, useLayoutEffect } from 'react' export const useIsomorphicLayoutEffect = // @ts-ignore diff --git a/packages/react-form/src/useTransform.ts b/packages/react-form/src/useTransform.ts index b27f03a7d..d771d9e7c 100644 --- a/packages/react-form/src/useTransform.ts +++ b/packages/react-form/src/useTransform.ts @@ -4,9 +4,7 @@ export function useTransform< TFormData, TFormValidator extends Validator | undefined = undefined, >( - fn: ( - formBase: FormApi, - ) => FormApi, + fn: (formBase: FormApi) => FormApi, deps: unknown[], ) { return { diff --git a/packages/react-form/test-setup.ts b/packages/react-form/tests/test-setup.ts similarity index 100% rename from packages/react-form/test-setup.ts rename to packages/react-form/tests/test-setup.ts diff --git a/packages/react-form/src/tests/useField.test-d.tsx b/packages/react-form/tests/useField.test-d.tsx similarity index 98% rename from packages/react-form/src/tests/useField.test-d.tsx rename to packages/react-form/tests/useField.test-d.tsx index e075bb792..6acb82d37 100644 --- a/packages/react-form/src/tests/useField.test-d.tsx +++ b/packages/react-form/tests/useField.test-d.tsx @@ -1,6 +1,6 @@ import * as React from 'react' import { assertType, it } from 'vitest' -import { useForm } from '../useForm' +import { useForm } from '../src/index' it('should type state.value properly', () => { function Comp() { diff --git a/packages/react-form/src/tests/useField.test.tsx b/packages/react-form/tests/useField.test.tsx similarity index 86% rename from packages/react-form/src/tests/useField.test.tsx rename to packages/react-form/tests/useField.test.tsx index 4b29b100e..ec67f353b 100644 --- a/packages/react-form/src/tests/useField.test.tsx +++ b/packages/react-form/tests/useField.test.tsx @@ -1,10 +1,11 @@ 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 { createFormFactory, useForm } from '../index' +import { userEvent } from '@testing-library/user-event' +import { useForm } from '../src/index' import { sleep } from './utils' -import type { FieldApi, FormApi } from '../index' +import type { FieldApi, FormApi } from '../src/index' +import { StrictMode } from 'react' const user = userEvent.setup() @@ -15,14 +16,12 @@ describe('useField', () => { lastName: string } - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: 'FirstName', lastName: 'LastName', - }, + } as Person, }) return ( @@ -55,14 +54,12 @@ describe('useField', () => { lastName: string } - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: 'FirstName', lastName: 'LastName', - }, + } as Person, }) return ( @@ -97,14 +94,12 @@ describe('useField', () => { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: '', lastName: '', - }, + } as Person, }) return ( @@ -144,14 +139,12 @@ describe('useField', () => { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: '', lastName: '', - }, + } as Person, }) return ( @@ -194,14 +187,12 @@ describe('useField', () => { const onChangeError = 'Please enter a different value (onChangeError)' const onBlurError = 'Please enter a different value (onBlurError)' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: '', lastName: '', - }, + } as Person, }) return ( @@ -250,14 +241,12 @@ describe('useField', () => { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: '', lastName: '', - }, + } as Person, }) return ( @@ -304,14 +293,12 @@ describe('useField', () => { const onChangeError = 'Please enter a different value (onChangeError)' const onBlurError = 'Please enter a different value (onBlurError)' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: '', lastName: '', - }, + } as Person, }) return ( @@ -367,14 +354,13 @@ describe('useField', () => { } const mockFn = vi.fn() const error = 'Please enter a different value' - const formFactory = createFormFactory() function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: '', lastName: '', - }, + } as Person, }) return ( @@ -416,92 +402,6 @@ describe('useField', () => { expect(getByText(error)).toBeInTheDocument() }) - it('should preserve value when preserve value property is true', async () => { - type Person = { - firstName: string - lastName: string - } - const formFactory = createFormFactory() - let form: FormApi | null = null - function Comp() { - form = formFactory.useForm({ - defaultValues: { - firstName: '', - lastName: '', - }, - }) - return ( - <> - { - return ( - field.handleChange(e.target.value)} - /> - ) - }} - /> - - ) - } - - const { getByTestId, unmount, rerender } = render() - const input = getByTestId('fieldinput') - expect(input).toHaveValue('hello') - await user.type(input, 'world') - unmount() - expect(form!.fieldInfo['firstName']).toBeDefined() - }) - - it('should not preserve value when preserve value property is false', async () => { - type Person = { - firstName: string - lastName: string - } - const formFactory = createFormFactory() - let form: FormApi | null = null - function Comp() { - form = formFactory.useForm({ - defaultValues: { - firstName: '', - lastName: '', - }, - }) - return ( - <> - { - return ( - field.handleChange(e.target.value)} - /> - ) - }} - /> - - ) - } - - const { getByTestId, unmount } = render() - const input = getByTestId('fieldinput') - expect(input).toHaveValue('hello') - unmount() - const info = form!.fieldInfo - expect(Object.keys(info)).toHaveLength(0) - }) - it('should handle strict mode properly with conditional fields', async () => { function FieldInfo({ field }: { field: FieldApi }) { return ( @@ -908,14 +808,13 @@ describe('useField', () => { } const mockFn = vi.fn() const error = 'Please enter a different value' - const formFactory = createFormFactory() function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: '', lastName: '', - }, + } as Person, validators: { onChangeAsyncDebounceMs: 1000000, onChangeAsync: async () => { @@ -957,4 +856,124 @@ describe('useField', () => { await waitFor(() => getByText(error)) expect(getByText(error)).toBeInTheDocument() }) + + it('should validate allow pushvalue to implicitly set a default value', async () => { + type Person = { + people: string[] + } + + 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: string[] + } + + 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() + }) }) diff --git a/packages/react-form/src/tests/useForm.test-d.tsx b/packages/react-form/tests/useForm.test-d.tsx similarity index 94% rename from packages/react-form/src/tests/useForm.test-d.tsx rename to packages/react-form/tests/useForm.test-d.tsx index bd61d2db8..d5c2db3dc 100644 --- a/packages/react-form/src/tests/useForm.test-d.tsx +++ b/packages/react-form/tests/useForm.test-d.tsx @@ -1,6 +1,6 @@ import * as React from 'react' import { assertType, it } from 'vitest' -import { useForm } from '../useForm' +import { useForm } from '../src/index' it('should type onSubmit properly', () => { function Comp() { diff --git a/packages/react-form/src/tests/useForm.test.tsx b/packages/react-form/tests/useForm.test.tsx similarity index 93% rename from packages/react-form/src/tests/useForm.test.tsx rename to packages/react-form/tests/useForm.test.tsx index ca5b0c6d6..46c6c602a 100644 --- a/packages/react-form/src/tests/useForm.test.tsx +++ b/packages/react-form/tests/useForm.test.tsx @@ -1,8 +1,8 @@ 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 { createFormFactory, useForm } from '../index' +import { userEvent } from '@testing-library/user-event' +import { useForm } from '../src/index' import { sleep } from './utils' const user = userEvent.setup() @@ -14,10 +14,8 @@ describe('useForm', () => { lastName: string } - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.useForm() + const form = useForm() return ( <> @@ -52,14 +50,12 @@ describe('useForm', () => { lastName: string } - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: 'FirstName', lastName: 'LastName', - }, + } as Person, }) return ( @@ -167,14 +163,12 @@ describe('useForm', () => { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: '', lastName: '', - }, + } as Person, validators: { onChange() { return error @@ -216,14 +210,12 @@ describe('useForm', () => { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: '', lastName: '', - }, + } as Person, validators: { onChange: ({ value }) => value.firstName === 'other' ? error : undefined, @@ -265,14 +257,12 @@ describe('useForm', () => { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: '', lastName: '', - }, + } as Person, validators: { onChange: ({ value }) => value.firstName === 'other' ? error : undefined, @@ -369,14 +359,12 @@ describe('useForm', () => { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: '', lastName: '', - }, + } as Person, validators: { onChangeAsync: async () => { await sleep(10) @@ -423,14 +411,12 @@ describe('useForm', () => { const onChangeError = 'Please enter a different value (onChangeError)' const onBlurError = 'Please enter a different value (onBlurError)' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: '', lastName: '', - }, + } as Person, validators: { onChangeAsync: async () => { await sleep(10) @@ -487,14 +473,13 @@ describe('useForm', () => { } const mockFn = vi.fn() const error = 'Please enter a different value' - const formFactory = createFormFactory() function Comp() { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: '', lastName: '', - }, + } as Person, validators: { onChangeAsyncDebounceMs: 100, onChangeAsync: async () => { diff --git a/packages/react-form/src/tests/utils.ts b/packages/react-form/tests/utils.ts similarity index 100% rename from packages/react-form/src/tests/utils.ts rename to packages/react-form/tests/utils.ts diff --git a/packages/react-form/tsconfig.docs.json b/packages/react-form/tsconfig.docs.json new file mode 100644 index 000000000..2c9444e16 --- /dev/null +++ b/packages/react-form/tsconfig.docs.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "paths": { + "@tanstack/form-core": ["../form-core/src"] + } + }, + "exclude": ["tests", "eslint.config.js", "vite.config.ts"] +} diff --git a/packages/react-form/tsconfig.json b/packages/react-form/tsconfig.json index a1f605e3b..e08afc08e 100644 --- a/packages/react-form/tsconfig.json +++ b/packages/react-form/tsconfig.json @@ -7,11 +7,5 @@ "@tanstack/form-core": ["../form-core/src"] } }, - "include": [ - "src/**/*.ts", - "src/**/*.tsx", - ".eslintrc.cjs", - "test-setup.ts", - "vite.config.ts" - ] + "include": ["src", "tests", "eslint.config.js", "vite.config.ts"] } diff --git a/packages/react-form/tsconfig.legacy.json b/packages/react-form/tsconfig.legacy.json index bf50bbc73..9c91307ed 100644 --- a/packages/react-form/tsconfig.legacy.json +++ b/packages/react-form/tsconfig.legacy.json @@ -2,11 +2,9 @@ "extends": "../../tsconfig.json", "compilerOptions": { "jsx": "react", - "moduleResolution": "Node", "paths": { "@tanstack/form-core": ["../form-core/src"] } }, - "include": ["src/**/*.ts", "src/**/*.tsx"], - "exclude": ["src/tests/**"] + "include": ["src"] } diff --git a/packages/react-form/vite.config.ts b/packages/react-form/vite.config.ts index 3f7ffb2a7..f8efcc0ea 100644 --- a/packages/react-form/vite.config.ts +++ b/packages/react-form/vite.config.ts @@ -1,15 +1,15 @@ import { defineConfig, mergeConfig } from 'vitest/config' -import { tanstackBuildConfig } from '@tanstack/config/build' +import { tanstackViteConfig } from '@tanstack/config/vite' import react from '@vitejs/plugin-react' const config = defineConfig({ plugins: [react()], test: { name: 'react-form', - dir: './src', + dir: './tests', watch: false, environment: 'jsdom', - setupFiles: ['test-setup.ts'], + setupFiles: ['./tests/test-setup.ts'], coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, typecheck: { enabled: true }, }, @@ -17,9 +17,8 @@ const config = defineConfig({ export default mergeConfig( config, - tanstackBuildConfig({ - entry: './src/index.ts', + tanstackViteConfig({ + entry: ['./src/index.ts', './src/nextjs-index.ts'], srcDir: './src', - exclude: ['./src/tests'], }), ) diff --git a/packages/solid-form/.eslintrc.cjs b/packages/solid-form/.eslintrc.cjs deleted file mode 100644 index cca134ce1..000000000 --- a/packages/solid-form/.eslintrc.cjs +++ /dev/null @@ -1,6 +0,0 @@ -// @ts-check - -/** @type {import('eslint').Linter.Config} */ -const config = {} - -module.exports = config diff --git a/packages/solid-form/eslint.config.js b/packages/solid-form/eslint.config.js new file mode 100644 index 000000000..8ce6ad05f --- /dev/null +++ b/packages/solid-form/eslint.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import rootConfig from '../../eslint.config.js' + +export default [...rootConfig] diff --git a/packages/solid-form/package.json b/packages/solid-form/package.json index 1ef1eb8a2..6d93428d7 100644 --- a/packages/solid-form/package.json +++ b/packages/solid-form/package.json @@ -1,10 +1,14 @@ { "name": "@tanstack/solid-form", - "version": "0.22.1", + "version": "0.23.3", "description": "Powerful, type-safe forms for Solid.", "author": "tannerlinsley", "license": "MIT", - "repository": "tanstack/form", + "repository": { + "type": "git", + "url": "https://github.com/TanStack/form.git", + "directory": "packages/solid-form" + }, "homepage": "https://tanstack.com/form", "funding": { "type": "github", @@ -13,14 +17,14 @@ "sideEffects": false, "scripts": { "clean": "rimraf ./dist && rimraf ./coverage", - "test:eslint": "eslint --ext .ts,.tsx ./src", - "test:types:versions49": "node ../../node_modules/typescript49/lib/tsc.js --project tsconfig.legacy.json", - "test:types:versions50": "node ../../node_modules/typescript50/lib/tsc.js", - "test:types:versions51": "node ../../node_modules/typescript51/lib/tsc.js", - "test:types:versions52": "node ../../node_modules/typescript52/lib/tsc.js", - "test:types:versions53": "node ../../node_modules/typescript53/lib/tsc.js", - "test:types:versions54": "tsc", - "test:types": "pnpm run \"/^test:types:versions.*/\"", + "test:eslint": "eslint ./src", + "test:types": "pnpm run \"/^test:types:ts[0-9]{2}$/\"", + "test:types:ts49": "node ../../node_modules/typescript49/lib/tsc.js -p tsconfig.legacy.json", + "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js", + "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js", + "test:types:ts52": "node ../../node_modules/typescript52/lib/tsc.js", + "test:types:ts53": "node ../../node_modules/typescript53/lib/tsc.js", + "test:types:ts54": "tsc", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict", @@ -32,6 +36,7 @@ ], "type": "module", "types": "dist/index.d.ts", + "main": "dist/index.js", "module": "dist/index.js", "exports": { ".": { @@ -53,7 +58,7 @@ }, "dependencies": { "@tanstack/form-core": "workspace:*", - "@tanstack/solid-store": "^0.4.1" + "@tanstack/solid-store": "^0.5.0" }, "peerDependencies": { "solid-js": "^1.6.0" diff --git a/packages/solid-form/src/createFormFactory.ts b/packages/solid-form/src/createFormFactory.ts deleted file mode 100644 index 73d44e635..000000000 --- a/packages/solid-form/src/createFormFactory.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { mergeProps } from 'solid-js' -import { - type CreateField, - Field, - type FieldComponent, - createField, -} from './createField' -import { createForm } from './createForm' -import type { FormApi, FormOptions, Validator } from '@tanstack/form-core' - -export type FormFactory< - TFormData, - TFormValidator extends Validator | undefined = undefined, -> = { - createForm: ( - opts?: () => FormOptions, - ) => FormApi - createField: typeof createField - Field: typeof Field -} - -export function createFormFactory< - TFormData, - TFormValidator extends Validator | undefined = undefined, ->( - defaultOpts?: () => FormOptions, -): FormFactory { - return { - createForm: (opts) => - createForm(() => - mergeProps(defaultOpts?.() ?? {}, opts?.() ?? {}), - ), - createField, - Field: Field, - } -} diff --git a/packages/solid-form/src/index.ts b/packages/solid-form/src/index.ts index bed595a0c..3daa18e2b 100644 --- a/packages/solid-form/src/index.ts +++ b/packages/solid-form/src/index.ts @@ -1,27 +1,6 @@ -export type { - DeepKeys, - DeepValue, - FieldApiOptions, - FieldInfo, - FieldMeta, - FieldOptions, - FieldState, - FormOptions, - FormState, - RequiredByKey, - Updater, - UpdaterFn, - ValidationCause, - ValidationError, - ValidationMeta, -} from '@tanstack/form-core' - -export { FormApi, FieldApi, functionalUpdate } from '@tanstack/form-core' +export * from '@tanstack/form-core' export { createForm } from './createForm' export type { CreateField, FieldComponent } from './createField' export { createField, Field } from './createField' - -export type { FormFactory } from './createFormFactory' -export { createFormFactory } from './createFormFactory' diff --git a/packages/solid-form/src/tests/createFormFactory.test.tsx b/packages/solid-form/src/tests/createFormFactory.test.tsx deleted file mode 100644 index f66758a2d..000000000 --- a/packages/solid-form/src/tests/createFormFactory.test.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { render } from '@solidjs/testing-library' -import { createFormFactory } from '../index' - -describe('createFormFactory', () => { - it('should allow default values to be set', async () => { - type Person = { - firstName: string - lastName: string - } - - const formFactory = createFormFactory(() => ({ - defaultValues: { - firstName: 'FirstName', - lastName: 'LastName', - }, - })) - - function Comp() { - const form = formFactory.createForm() - - return ( - <> - { - return

{field().state.value}

- }} - /> - - ) - } - - const { findByText, queryByText } = render(() => ) - expect(await findByText('FirstName')).toBeInTheDocument() - expect(queryByText('LastName')).not.toBeInTheDocument() - }) -}) diff --git a/packages/solid-form/src/tests/createField.test-d.tsx b/packages/solid-form/tests/createField.test-d.tsx similarity index 96% rename from packages/solid-form/src/tests/createField.test-d.tsx rename to packages/solid-form/tests/createField.test-d.tsx index 8e691f0fe..58f48b44c 100644 --- a/packages/solid-form/src/tests/createField.test-d.tsx +++ b/packages/solid-form/tests/createField.test-d.tsx @@ -1,5 +1,5 @@ import { assertType, it } from 'vitest' -import { createForm } from '../createForm' +import { createForm } from '../src/createForm' it('should type state.value properly', () => { function Comp() { diff --git a/packages/solid-form/src/tests/createField.test.tsx b/packages/solid-form/tests/createField.test.tsx similarity index 94% rename from packages/solid-form/src/tests/createField.test.tsx rename to packages/solid-form/tests/createField.test.tsx index a5a4cdb10..9ce7b4e03 100644 --- a/packages/solid-form/src/tests/createField.test.tsx +++ b/packages/solid-form/tests/createField.test.tsx @@ -1,9 +1,8 @@ import { describe, expect, it, vi } from 'vitest' import { render, waitFor } from '@solidjs/testing-library' -import userEvent from '@testing-library/user-event' -import '@testing-library/jest-dom/vitest' -import { Index, Show, createEffect } from 'solid-js' -import { createForm, createFormFactory } from '../index' +import { userEvent } from '@testing-library/user-event' +import { Index, Show } from 'solid-js' +import { createForm } from '../src/index' import { sleep } from './utils' const user = userEvent.setup() @@ -15,10 +14,8 @@ describe('createField', () => { lastName: string } - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.createForm() + const form = createForm() return ( <> @@ -51,10 +48,8 @@ describe('createField', () => { lastName: string } - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.createForm(() => ({ + const form = createForm(() => ({ defaultValues: { firstName: 'FirstName', lastName: 'LastName', @@ -93,10 +88,8 @@ describe('createField', () => { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.createForm() + const form = createForm() return ( <> @@ -136,10 +129,8 @@ describe('createField', () => { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.createForm() + const form = createForm() return ( <> @@ -184,10 +175,8 @@ describe('createField', () => { const onChangeError = 'Please enter a different value (onChangeError)' const onBlurError = 'Please enter a different value (onBlurError)' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.createForm() + const form = createForm() return ( <> @@ -235,10 +224,8 @@ describe('createField', () => { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.createForm() + const form = createForm() return ( <> @@ -284,10 +271,8 @@ describe('createField', () => { const onChangeError = 'Please enter a different value (onChangeError)' const onBlurError = 'Please enter a different value (onBlurError)' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.createForm() + const form = createForm() return ( <> @@ -342,10 +327,9 @@ describe('createField', () => { } const mockFn = vi.fn() const error = 'Please enter a different value' - const formFactory = createFormFactory() function Comp() { - const form = formFactory.createForm() + const form = createForm() return ( <> diff --git a/packages/solid-form/src/tests/createForm.test.tsx b/packages/solid-form/tests/createForm.test.tsx similarity index 93% rename from packages/solid-form/src/tests/createForm.test.tsx rename to packages/solid-form/tests/createForm.test.tsx index 87a0d2a45..1076f2503 100644 --- a/packages/solid-form/src/tests/createForm.test.tsx +++ b/packages/solid-form/tests/createForm.test.tsx @@ -1,8 +1,8 @@ import { describe, expect, it, vi } from 'vitest' import { render, screen, waitFor } from '@solidjs/testing-library' -import userEvent from '@testing-library/user-event' +import { userEvent } from '@testing-library/user-event' import { Show, createSignal, onCleanup } from 'solid-js' -import { createForm, createFormFactory } from '../index' +import { createForm } from '../src/index' import { sleep } from './utils' import type { ValidationErrorMap } from '@tanstack/form-core' @@ -15,10 +15,8 @@ describe('createForm', () => { lastName: string } - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.createForm() + const form = createForm() return ( <> { lastName: string } - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.createForm(() => ({ + const form = createForm(() => ({ defaultValues: { firstName: 'FirstName', lastName: 'LastName', - }, + } as Person, })) return ( @@ -159,10 +155,8 @@ describe('createForm', () => { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.createForm(() => ({ + const form = createForm(() => ({ validators: { onChange: ({ value }) => value.firstName.includes('other') ? error : undefined, @@ -205,10 +199,8 @@ describe('createForm', () => { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.createForm(() => ({ + const form = createForm(() => ({ validators: { onChange: ({ value }) => value.firstName.includes('other') ? error : undefined, @@ -257,10 +249,8 @@ describe('createForm', () => { const onChangeError = 'Please enter a different value (onChangeError)' const onBlurError = 'Please enter a different value (onBlurError)' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.createForm(() => ({ + const form = createForm(() => ({ validators: { onChange: ({ value }) => value.firstName.includes('other') ? onChangeError : undefined, @@ -312,10 +302,8 @@ describe('createForm', () => { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.createForm(() => ({ + const form = createForm(() => ({ validators: { onChangeAsync: async () => { await sleep(10) @@ -365,10 +353,8 @@ describe('createForm', () => { const onChangeError = 'Please enter a different value (onChangeError)' const onBlurError = 'Please enter a different value (onBlurError)' - const formFactory = createFormFactory() - function Comp() { - const form = formFactory.createForm(() => ({ + const form = createForm(() => ({ validators: { async onChangeAsync() { await sleep(10) @@ -427,10 +413,9 @@ describe('createForm', () => { } const mockFn = vi.fn() const error = 'Please enter a different value' - const formFactory = createFormFactory() function Comp() { - const form = formFactory.createForm(() => ({ + const form = createForm(() => ({ validators: { onChangeAsyncDebounceMs: 100, onChangeAsync: async () => { diff --git a/packages/solid-form/test-setup.ts b/packages/solid-form/tests/test-setup.ts similarity index 100% rename from packages/solid-form/test-setup.ts rename to packages/solid-form/tests/test-setup.ts diff --git a/packages/solid-form/src/tests/utils.ts b/packages/solid-form/tests/utils.ts similarity index 100% rename from packages/solid-form/src/tests/utils.ts rename to packages/solid-form/tests/utils.ts diff --git a/packages/solid-form/tsconfig.build.json b/packages/solid-form/tsconfig.build.json index fb799aeb7..1fe6972f2 100644 --- a/packages/solid-form/tsconfig.build.json +++ b/packages/solid-form/tsconfig.build.json @@ -4,15 +4,14 @@ "jsx": "preserve", "jsxImportSource": "solid-js", "moduleResolution": "Bundler", - "paths": { - "@tanstack/form-core": ["../../form-core/src"] - }, + "rootDir": "src", "outDir": "dist", "noEmit": false, "declaration": true, - "rootDir": "src", - "sourceMap": true + "sourceMap": true, + "paths": { + "@tanstack/form-core": ["../../form-core/src"] + } }, - "include": ["src/**/*.ts", "src/**/*.tsx"], - "exclude": ["src/tests/**"] + "include": ["src"] } diff --git a/packages/solid-form/tsconfig.docs.json b/packages/solid-form/tsconfig.docs.json new file mode 100644 index 000000000..2c9444e16 --- /dev/null +++ b/packages/solid-form/tsconfig.docs.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "paths": { + "@tanstack/form-core": ["../form-core/src"] + } + }, + "exclude": ["tests", "eslint.config.js", "vite.config.ts"] +} diff --git a/packages/solid-form/tsconfig.json b/packages/solid-form/tsconfig.json index e695d4190..86a377267 100644 --- a/packages/solid-form/tsconfig.json +++ b/packages/solid-form/tsconfig.json @@ -8,11 +8,5 @@ "@tanstack/form-core": ["../form-core/src"] } }, - "include": [ - "src/**/*.ts", - "src/**/*.tsx", - ".eslintrc.cjs", - "test-setup.ts", - "vite.config.ts" - ] + "include": ["src", "tests", "eslint.config.js", "vite.config.ts"] } diff --git a/packages/solid-form/tsconfig.legacy.json b/packages/solid-form/tsconfig.legacy.json index 0041e6679..35fa3e58f 100644 --- a/packages/solid-form/tsconfig.legacy.json +++ b/packages/solid-form/tsconfig.legacy.json @@ -3,11 +3,9 @@ "compilerOptions": { "jsx": "preserve", "jsxImportSource": "solid-js", - "moduleResolution": "Node", "paths": { "@tanstack/form-core": ["../form-core/src"] } }, - "include": ["src/**/*.ts", "src/**/*.tsx"], - "exclude": ["src/tests/**"] + "include": ["src"] } diff --git a/packages/solid-form/vite.config.ts b/packages/solid-form/vite.config.ts index 013a9a280..4783c542d 100644 --- a/packages/solid-form/vite.config.ts +++ b/packages/solid-form/vite.config.ts @@ -1,25 +1,16 @@ -import { defineConfig, mergeConfig } from 'vitest/config' -import { tanstackBuildConfig } from '@tanstack/config/build' +import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' +import packageJson from './package.json' -const config = defineConfig({ +export default defineConfig({ plugins: [solid()], test: { - name: 'solid-form', - dir: './src', + name: packageJson.name, + dir: './tests', watch: false, environment: 'jsdom', - setupFiles: ['test-setup.ts'], + setupFiles: ['./tests/test-setup.ts'], coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, typecheck: { enabled: true }, }, }) - -export default mergeConfig( - config, - tanstackBuildConfig({ - entry: './src/index.ts', - srcDir: './src', - exclude: ['./src/tests'], - }), -) diff --git a/packages/valibot-form-adapter/.eslintrc.cjs b/packages/valibot-form-adapter/.eslintrc.cjs deleted file mode 100644 index cca134ce1..000000000 --- a/packages/valibot-form-adapter/.eslintrc.cjs +++ /dev/null @@ -1,6 +0,0 @@ -// @ts-check - -/** @type {import('eslint').Linter.Config} */ -const config = {} - -module.exports = config diff --git a/packages/valibot-form-adapter/eslint.config.js b/packages/valibot-form-adapter/eslint.config.js new file mode 100644 index 000000000..8ce6ad05f --- /dev/null +++ b/packages/valibot-form-adapter/eslint.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import rootConfig from '../../eslint.config.js' + +export default [...rootConfig] diff --git a/packages/valibot-form-adapter/package.json b/packages/valibot-form-adapter/package.json index b975089ca..061219e2f 100644 --- a/packages/valibot-form-adapter/package.json +++ b/packages/valibot-form-adapter/package.json @@ -1,10 +1,14 @@ { "name": "@tanstack/valibot-form-adapter", - "version": "0.22.0", + "version": "0.23.3", "description": "The Valibot adapter for TanStack Form.", "author": "tannerlinsley", "license": "MIT", - "repository": "tanstack/form", + "repository": { + "type": "git", + "url": "https://github.com/TanStack/form.git", + "directory": "packages/valibot-form-adapter" + }, "homepage": "https://tanstack.com/form", "funding": { "type": "github", @@ -34,13 +38,13 @@ ], "scripts": { "clean": "rimraf ./dist && rimraf ./coverage", - "test:eslint": "eslint --ext .ts,.tsx ./src", - "test:types:versions50": "node ../../node_modules/typescript50/lib/tsc.js", - "test:types:versions51": "node ../../node_modules/typescript51/lib/tsc.js", - "test:types:versions52": "node ../../node_modules/typescript52/lib/tsc.js", - "test:types:versions53": "node ../../node_modules/typescript53/lib/tsc.js", - "test:types:versions54": "tsc", - "test:types": "pnpm run \"/^test:types:versions.*/\"", + "test:eslint": "eslint ./src", + "test:types": "pnpm run \"/^test:types:ts[0-9]{2}$/\"", + "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js", + "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js", + "test:types:ts52": "node ../../node_modules/typescript52/lib/tsc.js", + "test:types:ts53": "node ../../node_modules/typescript53/lib/tsc.js", + "test:types:ts54": "tsc", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict", @@ -50,9 +54,9 @@ "@tanstack/form-core": "workspace:*" }, "peerDependencies": { - "valibot": ">=0.31.0 <1" + "valibot": ">=0.33.0 <1" }, "devDependencies": { - "valibot": "^0.31.1" + "valibot": "^0.35.0" } } diff --git a/packages/valibot-form-adapter/src/tests/FieldApi.spec.ts b/packages/valibot-form-adapter/tests/FieldApi.spec.ts similarity index 98% rename from packages/valibot-form-adapter/src/tests/FieldApi.spec.ts rename to packages/valibot-form-adapter/tests/FieldApi.spec.ts index 695b33b29..99f87d057 100644 --- a/packages/valibot-form-adapter/src/tests/FieldApi.spec.ts +++ b/packages/valibot-form-adapter/tests/FieldApi.spec.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest' import { FieldApi, FormApi } from '@tanstack/form-core' import * as v from 'valibot' -import { valibotValidator } from '../validator' +import { valibotValidator } from '../src/index' import { sleep } from './utils' describe('valibot field api', () => { diff --git a/packages/valibot-form-adapter/src/tests/FieldApi.test-d.ts b/packages/valibot-form-adapter/tests/FieldApi.test-d.ts similarity index 97% rename from packages/valibot-form-adapter/src/tests/FieldApi.test-d.ts rename to packages/valibot-form-adapter/tests/FieldApi.test-d.ts index 5ab61bc91..0ad12ed76 100644 --- a/packages/valibot-form-adapter/src/tests/FieldApi.test-d.ts +++ b/packages/valibot-form-adapter/tests/FieldApi.test-d.ts @@ -1,7 +1,7 @@ import { assertType, it } from 'vitest' import * as v from 'valibot' import { FieldApi, FormApi } from '@tanstack/form-core' -import { valibotValidator } from '../validator' +import { valibotValidator } from '../src/index' it('should allow a Valibot validator to be passed in', () => { const form = new FormApi({ diff --git a/packages/valibot-form-adapter/src/tests/FormApi.spec.ts b/packages/valibot-form-adapter/tests/FormApi.spec.ts similarity index 96% rename from packages/valibot-form-adapter/src/tests/FormApi.spec.ts rename to packages/valibot-form-adapter/tests/FormApi.spec.ts index ed20c0cbe..98d71f2b8 100644 --- a/packages/valibot-form-adapter/src/tests/FormApi.spec.ts +++ b/packages/valibot-form-adapter/tests/FormApi.spec.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest' import { FieldApi, FormApi } from '@tanstack/form-core' import * as v from 'valibot' -import { valibotValidator } from '../validator' +import { valibotValidator } from '../src/index' describe('valibot form api', () => { it('should run an onChange with string validation', () => { diff --git a/packages/valibot-form-adapter/src/tests/FormApi.test-d.ts b/packages/valibot-form-adapter/tests/FormApi.test-d.ts similarity index 97% rename from packages/valibot-form-adapter/src/tests/FormApi.test-d.ts rename to packages/valibot-form-adapter/tests/FormApi.test-d.ts index dd13ce856..a5e803d9a 100644 --- a/packages/valibot-form-adapter/src/tests/FormApi.test-d.ts +++ b/packages/valibot-form-adapter/tests/FormApi.test-d.ts @@ -1,7 +1,7 @@ import { assertType, it } from 'vitest' import * as v from 'valibot' import { FieldApi, FormApi } from '@tanstack/form-core' -import { valibotValidator } from '../validator' +import { valibotValidator } from '../src/index' it('should allow a Valibot validator to be passed in', () => { const form = new FormApi({ diff --git a/packages/valibot-form-adapter/src/tests/utils.ts b/packages/valibot-form-adapter/tests/utils.ts similarity index 100% rename from packages/valibot-form-adapter/src/tests/utils.ts rename to packages/valibot-form-adapter/tests/utils.ts diff --git a/packages/valibot-form-adapter/tsconfig.json b/packages/valibot-form-adapter/tsconfig.json index 4f3c84db6..160c296fe 100644 --- a/packages/valibot-form-adapter/tsconfig.json +++ b/packages/valibot-form-adapter/tsconfig.json @@ -7,5 +7,5 @@ "@tanstack/form-core": ["../form-core/src"] } }, - "include": ["src/**/*.ts", "src/**/*.tsx", ".eslintrc.cjs", "vite.config.ts"] + "include": ["src", "tests", "eslint.config.js", "vite.config.ts"] } diff --git a/packages/valibot-form-adapter/tsconfig.legacy.json b/packages/valibot-form-adapter/tsconfig.legacy.json index 43e94ba72..c9bf46d6c 100644 --- a/packages/valibot-form-adapter/tsconfig.legacy.json +++ b/packages/valibot-form-adapter/tsconfig.legacy.json @@ -1,11 +1,9 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "moduleResolution": "Node", "paths": { "@tanstack/form-core": ["../form-core/src"] } }, - "include": ["src/**/*.ts", "src/**/*.tsx"], - "exclude": ["src/tests/**"] + "include": ["src"] } diff --git a/packages/valibot-form-adapter/vite.config.ts b/packages/valibot-form-adapter/vite.config.ts index 36c6adf7e..b9ef9747c 100644 --- a/packages/valibot-form-adapter/vite.config.ts +++ b/packages/valibot-form-adapter/vite.config.ts @@ -1,10 +1,10 @@ import { defineConfig, mergeConfig } from 'vitest/config' -import { tanstackBuildConfig } from '@tanstack/config/build' +import { tanstackViteConfig } from '@tanstack/config/vite' const config = defineConfig({ test: { name: 'valibot-form-adapter', - dir: './src', + dir: './tests', watch: false, environment: 'jsdom', coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, @@ -14,9 +14,8 @@ const config = defineConfig({ export default mergeConfig( config, - tanstackBuildConfig({ + tanstackViteConfig({ entry: './src/index.ts', srcDir: './src', - exclude: ['./src/tests'], }), ) diff --git a/packages/vue-form/.eslintrc.cjs b/packages/vue-form/.eslintrc.cjs deleted file mode 100644 index cca134ce1..000000000 --- a/packages/vue-form/.eslintrc.cjs +++ /dev/null @@ -1,6 +0,0 @@ -// @ts-check - -/** @type {import('eslint').Linter.Config} */ -const config = {} - -module.exports = config diff --git a/packages/vue-form/eslint.config.js b/packages/vue-form/eslint.config.js new file mode 100644 index 000000000..8ce6ad05f --- /dev/null +++ b/packages/vue-form/eslint.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import rootConfig from '../../eslint.config.js' + +export default [...rootConfig] diff --git a/packages/vue-form/package.json b/packages/vue-form/package.json index aa4e9af24..cd39db797 100644 --- a/packages/vue-form/package.json +++ b/packages/vue-form/package.json @@ -1,10 +1,14 @@ { "name": "@tanstack/vue-form", - "version": "0.22.0", + "version": "0.23.3", "description": "Powerful, type-safe forms for Vue.", "author": "tannerlinsley", "license": "MIT", - "repository": "tanstack/form", + "repository": { + "type": "git", + "url": "https://github.com/TanStack/form.git", + "directory": "packages/vue-form" + }, "homepage": "https://tanstack.com/form", "funding": { "type": "github", @@ -30,14 +34,14 @@ "sideEffects": false, "scripts": { "clean": "rimraf ./dist && rimraf ./coverage", - "test:eslint": "eslint --ext .ts,.tsx ./src", - "test:types:versions49": "node ../../node_modules/typescript49/lib/tsc.js --project tsconfig.legacy.json", - "test:types:versions50": "node ../../node_modules/typescript50/lib/tsc.js", - "test:types:versions51": "node ../../node_modules/typescript51/lib/tsc.js", - "test:types:versions52": "node ../../node_modules/typescript52/lib/tsc.js", - "test:types:versions53": "node ../../node_modules/typescript53/lib/tsc.js", - "test:types:versions54": "tsc", - "test:types": "pnpm run \"/^test:types:versions.*/\"", + "test:eslint": "eslint ./src", + "test:types": "pnpm run \"/^test:types:ts[0-9]{2}$/\"", + "test:types:ts49": "node ../../node_modules/typescript49/lib/tsc.js -p tsconfig.legacy.json", + "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js", + "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js", + "test:types:ts52": "node ../../node_modules/typescript52/lib/tsc.js", + "test:types:ts53": "node ../../node_modules/typescript53/lib/tsc.js", + "test:types:ts54": "tsc", "fixme:test:lib": "pnpm run test:2 && pnpm run test:2.7 && pnpm run test:3", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", @@ -50,7 +54,7 @@ ], "dependencies": { "@tanstack/form-core": "workspace:*", - "@tanstack/vue-store": "^0.4.1" + "@tanstack/vue-store": "^0.5.0" }, "devDependencies": { "@vitejs/plugin-vue": "^5.0.4", diff --git a/packages/vue-form/src/createFormFactory.ts b/packages/vue-form/src/createFormFactory.ts deleted file mode 100644 index a0538c679..000000000 --- a/packages/vue-form/src/createFormFactory.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Field, useField } from './useField' -import { useForm } from './useForm' -import type { FormApi, FormOptions, Validator } from '@tanstack/form-core' -import type { FieldComponent, UseField } from './useField' - -export type FormFactory< - TFormData, - TFormValidator extends Validator | undefined = undefined, -> = { - useForm: ( - opts?: FormOptions, - ) => FormApi - useField: typeof useField - Field: typeof Field -} - -export function createFormFactory< - TFormData, - TFormValidator extends Validator | undefined = undefined, ->( - defaultOpts?: FormOptions, -): FormFactory { - return { - useForm: (opts) => { - const formOptions = Object.assign({}, defaultOpts, opts) - return useForm(formOptions) - }, - useField: useField, - Field: Field, - } -} diff --git a/packages/vue-form/src/index.ts b/packages/vue-form/src/index.ts index 1c57320a1..e39e9c75c 100644 --- a/packages/vue-form/src/index.ts +++ b/packages/vue-form/src/index.ts @@ -1,4 +1,3 @@ export * from '@tanstack/form-core' -export * from './createFormFactory' export * from './useField' export * from './useForm' diff --git a/packages/vue-form/test-setup.ts b/packages/vue-form/tests/test-setup.ts similarity index 100% rename from packages/vue-form/test-setup.ts rename to packages/vue-form/tests/test-setup.ts diff --git a/packages/vue-form/src/tests/useField.test.tsx b/packages/vue-form/tests/useField.test.tsx similarity index 95% rename from packages/vue-form/src/tests/useField.test.tsx rename to packages/vue-form/tests/useField.test.tsx index 408d42094..517714a96 100644 --- a/packages/vue-form/src/tests/useField.test.tsx +++ b/packages/vue-form/tests/useField.test.tsx @@ -1,11 +1,10 @@ import { describe, expect, it, vi } from 'vitest' import { defineComponent, h } from 'vue' import { render, waitFor } from '@testing-library/vue' -import '@testing-library/jest-dom/vitest' -import userEvent from '@testing-library/user-event' -import { createFormFactory, useForm } from '../index' +import { userEvent } from '@testing-library/user-event' +import { useForm } from '../src/index' import { sleep } from './utils' -import type { FieldApi } from '../index' +import type { FieldApi } from '../src/index' const user = userEvent.setup() @@ -16,10 +15,8 @@ describe('useField', () => { lastName: string } - const formFactory = createFormFactory() - const Comp = defineComponent(() => { - const form = formFactory.useForm() + const form = useForm() return () => ( @@ -53,10 +50,8 @@ describe('useField', () => { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - const Comp = defineComponent(() => { - const form = formFactory.useForm() + const form = useForm() return () => ( { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - const Comp = defineComponent(() => { - const form = formFactory.useForm() + const form = useForm() return () => ( { } const error = 'Please enter a different value' - const formFactory = createFormFactory() - const Comp = defineComponent(() => { - const form = formFactory.useForm() + const form = useForm() return () => ( { const mockFn = vi.fn() const error = 'Please enter a different value' - const formFactory = createFormFactory() const Comp = defineComponent(() => { - const form = formFactory.useForm() + const form = useForm() return () => ( { it('preserved field state', async () => { - const formFactory = createFormFactory() - const Comp = defineComponent(() => { - const form = formFactory.useForm() + const form = useForm() return () => ( @@ -49,14 +47,12 @@ describe('useForm', () => { }) it('should allow default values to be set', async () => { - const formFactory = createFormFactory() - const Comp = defineComponent(() => { - const form = formFactory.useForm({ + const form = useForm({ defaultValues: { firstName: 'FirstName', lastName: 'LastName', - }, + } as Person, }) return () => ( @@ -161,10 +157,8 @@ describe('useForm', () => { it('should validate async on change for the form', async () => { const error = 'Please enter a different value' - const formFactory = createFormFactory() - const Comp = defineComponent(() => { - const form = formFactory.useForm({ + const form = useForm({ validators: { onChange() { return error @@ -208,10 +202,8 @@ describe('useForm', () => { it('should not validate on change if isTouched is false', async () => { const error = 'Please enter a different value' - const formFactory = createFormFactory() - const Comp = defineComponent(() => { - const form = formFactory.useForm({ + const form = useForm({ validators: { onChange: ({ value }) => value.firstName === 'other' ? error : undefined, @@ -255,10 +247,8 @@ describe('useForm', () => { it('should validate on change if isTouched is true', async () => { const error = 'Please enter a different value' - const formFactory = createFormFactory() - const Comp = defineComponent(() => { - const form = formFactory.useForm({ + const form = useForm({ validators: { onChange: ({ value }) => value.firstName === 'other' ? error : undefined, @@ -362,10 +352,8 @@ describe('useForm', () => { it('should validate async on change', async () => { const error = 'Please enter a different value' - const formFactory = createFormFactory() - const Comp = defineComponent(() => { - const form = formFactory.useForm({ + const form = useForm({ validators: { onChangeAsync: async () => { await sleep(10) @@ -414,10 +402,8 @@ describe('useForm', () => { const onChangeError = 'Please enter a different value (onChangeError)' const onBlurError = 'Please enter a different value (onBlurError)' - const formFactory = createFormFactory() - const Comp = defineComponent(() => { - const form = formFactory.useForm({ + const form = useForm({ validators: { onChangeAsync: async () => { await sleep(10) @@ -474,10 +460,9 @@ describe('useForm', () => { it('should validate async on change with debounce', async () => { const mockFn = vi.fn() const error = 'Please enter a different value' - const formFactory = createFormFactory() const Comp = defineComponent(() => { - const form = formFactory.useForm({ + const form = useForm({ validators: { onChangeAsyncDebounceMs: 100, onChangeAsync: async () => { diff --git a/packages/vue-form/src/tests/utils.ts b/packages/vue-form/tests/utils.ts similarity index 100% rename from packages/vue-form/src/tests/utils.ts rename to packages/vue-form/tests/utils.ts diff --git a/packages/vue-form/tsconfig.docs.json b/packages/vue-form/tsconfig.docs.json new file mode 100644 index 000000000..2c9444e16 --- /dev/null +++ b/packages/vue-form/tsconfig.docs.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "paths": { + "@tanstack/form-core": ["../form-core/src"] + } + }, + "exclude": ["tests", "eslint.config.js", "vite.config.ts"] +} diff --git a/packages/vue-form/tsconfig.json b/packages/vue-form/tsconfig.json index 971ad9147..01bcbfdae 100644 --- a/packages/vue-form/tsconfig.json +++ b/packages/vue-form/tsconfig.json @@ -9,11 +9,5 @@ "@tanstack/form-core": ["../form-core/src"] } }, - "include": [ - "src/**/*.ts", - "src/**/*.tsx", - ".eslintrc.cjs", - "test-setup.ts", - "vite.config.ts" - ] + "include": ["src", "tests", "eslint.config.js", "vite.config.ts"] } diff --git a/packages/vue-form/tsconfig.legacy.json b/packages/vue-form/tsconfig.legacy.json index b2be0d1ba..743411d9b 100644 --- a/packages/vue-form/tsconfig.legacy.json +++ b/packages/vue-form/tsconfig.legacy.json @@ -3,12 +3,10 @@ "compilerOptions": { "jsx": "preserve", "jsxImportSource": "vue", - "moduleResolution": "Node", "types": ["vue/jsx"], "paths": { "@tanstack/form-core": ["../form-core/src"] } }, - "include": ["src/**/*.ts", "src/**/*.tsx"], - "exclude": ["src/tests/**"] + "include": ["src"] } diff --git a/packages/vue-form/vite.config.ts b/packages/vue-form/vite.config.ts index e4018ebe0..10615925b 100644 --- a/packages/vue-form/vite.config.ts +++ b/packages/vue-form/vite.config.ts @@ -1,15 +1,15 @@ import { defineConfig, mergeConfig } from 'vitest/config' -import { tanstackBuildConfig } from '@tanstack/config/build' +import { tanstackViteConfig } from '@tanstack/config/vite' import vue from '@vitejs/plugin-vue' const config = defineConfig({ plugins: [vue()], test: { name: 'vue-query', - dir: './src', + dir: './tests', watch: false, environment: 'jsdom', - setupFiles: ['test-setup.ts'], + setupFiles: ['./tests/test-setup.ts'], coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, typecheck: { enabled: true }, }, @@ -21,9 +21,8 @@ const config = defineConfig({ export default mergeConfig( config, - tanstackBuildConfig({ + tanstackViteConfig({ entry: './src/index.ts', srcDir: './src', - exclude: ['./src/tests'], }), ) diff --git a/packages/yup-form-adapter/.eslintrc.cjs b/packages/yup-form-adapter/.eslintrc.cjs deleted file mode 100644 index cca134ce1..000000000 --- a/packages/yup-form-adapter/.eslintrc.cjs +++ /dev/null @@ -1,6 +0,0 @@ -// @ts-check - -/** @type {import('eslint').Linter.Config} */ -const config = {} - -module.exports = config diff --git a/packages/yup-form-adapter/eslint.config.js b/packages/yup-form-adapter/eslint.config.js new file mode 100644 index 000000000..8ce6ad05f --- /dev/null +++ b/packages/yup-form-adapter/eslint.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import rootConfig from '../../eslint.config.js' + +export default [...rootConfig] diff --git a/packages/yup-form-adapter/package.json b/packages/yup-form-adapter/package.json index 2c281182d..ea2e45c83 100644 --- a/packages/yup-form-adapter/package.json +++ b/packages/yup-form-adapter/package.json @@ -1,10 +1,14 @@ { "name": "@tanstack/yup-form-adapter", - "version": "0.22.0", + "version": "0.23.3", "description": "The Yup adapter for TanStack Form.", "author": "tannerlinsley", "license": "MIT", - "repository": "tanstack/form", + "repository": { + "type": "git", + "url": "https://github.com/TanStack/form.git", + "directory": "packages/yup-form-adapter" + }, "homepage": "https://tanstack.com/form", "funding": { "type": "github", @@ -34,14 +38,14 @@ ], "scripts": { "clean": "rimraf ./dist && rimraf ./coverage", - "test:eslint": "eslint --ext .ts,.tsx ./src", - "test:types:versions49": "node ../../node_modules/typescript49/lib/tsc.js --project tsconfig.legacy.json", - "test:types:versions50": "node ../../node_modules/typescript50/lib/tsc.js", - "test:types:versions51": "node ../../node_modules/typescript51/lib/tsc.js", - "test:types:versions52": "node ../../node_modules/typescript52/lib/tsc.js", - "test:types:versions53": "node ../../node_modules/typescript53/lib/tsc.js", - "test:types:versions54": "tsc", - "test:types": "pnpm run \"/^test:types:versions.*/\"", + "test:eslint": "eslint ./src", + "test:types": "pnpm run \"/^test:types:ts[0-9]{2}$/\"", + "test:types:ts49": "node ../../node_modules/typescript49/lib/tsc.js -p tsconfig.legacy.json", + "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js", + "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js", + "test:types:ts52": "node ../../node_modules/typescript52/lib/tsc.js", + "test:types:ts53": "node ../../node_modules/typescript53/lib/tsc.js", + "test:types:ts54": "tsc", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict", diff --git a/packages/yup-form-adapter/src/tests/FieldApi.spec.ts b/packages/yup-form-adapter/tests/FieldApi.spec.ts similarity index 98% rename from packages/yup-form-adapter/src/tests/FieldApi.spec.ts rename to packages/yup-form-adapter/tests/FieldApi.spec.ts index c9246c638..45c378bc7 100644 --- a/packages/yup-form-adapter/src/tests/FieldApi.spec.ts +++ b/packages/yup-form-adapter/tests/FieldApi.spec.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest' import { FieldApi, FormApi } from '@tanstack/form-core' import yup from 'yup' -import { yupValidator } from '../validator' +import { yupValidator } from '../src/index' import { sleep } from './utils' describe('yup field api', () => { diff --git a/packages/yup-form-adapter/src/tests/FieldApi.test-d.ts b/packages/yup-form-adapter/tests/FieldApi.test-d.ts similarity index 97% rename from packages/yup-form-adapter/src/tests/FieldApi.test-d.ts rename to packages/yup-form-adapter/tests/FieldApi.test-d.ts index 89686e92e..cee413a57 100644 --- a/packages/yup-form-adapter/src/tests/FieldApi.test-d.ts +++ b/packages/yup-form-adapter/tests/FieldApi.test-d.ts @@ -1,7 +1,7 @@ import yup from 'yup' import { FieldApi, FormApi } from '@tanstack/form-core' import { assertType, it } from 'vitest' -import { yupValidator } from '../validator' +import { yupValidator } from '../src/index' it('should allow a Zod validator to be passed in', () => { const form = new FormApi({ diff --git a/packages/yup-form-adapter/src/tests/FormApi.spec.ts b/packages/yup-form-adapter/tests/FormApi.spec.ts similarity index 97% rename from packages/yup-form-adapter/src/tests/FormApi.spec.ts rename to packages/yup-form-adapter/tests/FormApi.spec.ts index b632eed9e..eba78e2e2 100644 --- a/packages/yup-form-adapter/src/tests/FormApi.spec.ts +++ b/packages/yup-form-adapter/tests/FormApi.spec.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from 'vitest' import { FieldApi, FormApi } from '@tanstack/form-core' import yup from 'yup' -import { yupValidator } from '../validator' +import { yupValidator } from '../src/index' describe('yup form api', () => { it('should run an onChange with z.string validation', () => { diff --git a/packages/yup-form-adapter/src/tests/FormApi.test-d.ts b/packages/yup-form-adapter/tests/FormApi.test-d.ts similarity index 97% rename from packages/yup-form-adapter/src/tests/FormApi.test-d.ts rename to packages/yup-form-adapter/tests/FormApi.test-d.ts index ecfa19671..cfaa062be 100644 --- a/packages/yup-form-adapter/src/tests/FormApi.test-d.ts +++ b/packages/yup-form-adapter/tests/FormApi.test-d.ts @@ -1,7 +1,7 @@ import yup from 'yup' import { FieldApi, FormApi } from '@tanstack/form-core' import { assertType, it } from 'vitest' -import { yupValidator } from '../validator' +import { yupValidator } from '../src/index' it('should allow a Zod validator to be passed in', () => { const form = new FormApi({ diff --git a/packages/yup-form-adapter/src/tests/utils.ts b/packages/yup-form-adapter/tests/utils.ts similarity index 100% rename from packages/yup-form-adapter/src/tests/utils.ts rename to packages/yup-form-adapter/tests/utils.ts diff --git a/packages/yup-form-adapter/tsconfig.json b/packages/yup-form-adapter/tsconfig.json index b6f28346b..1b201bda7 100644 --- a/packages/yup-form-adapter/tsconfig.json +++ b/packages/yup-form-adapter/tsconfig.json @@ -6,5 +6,5 @@ "@tanstack/form-core": ["../form-core/src"] } }, - "include": ["src/**/*.ts", "src/**/*.tsx", ".eslintrc.cjs", "vite.config.ts"] + "include": ["src", "tests", "eslint.config.js", "vite.config.ts"] } diff --git a/packages/yup-form-adapter/tsconfig.legacy.json b/packages/yup-form-adapter/tsconfig.legacy.json index 43e94ba72..c9bf46d6c 100644 --- a/packages/yup-form-adapter/tsconfig.legacy.json +++ b/packages/yup-form-adapter/tsconfig.legacy.json @@ -1,11 +1,9 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "moduleResolution": "Node", "paths": { "@tanstack/form-core": ["../form-core/src"] } }, - "include": ["src/**/*.ts", "src/**/*.tsx"], - "exclude": ["src/tests/**"] + "include": ["src"] } diff --git a/packages/yup-form-adapter/vite.config.ts b/packages/yup-form-adapter/vite.config.ts index 37c3bcbe6..f8bdc32bb 100644 --- a/packages/yup-form-adapter/vite.config.ts +++ b/packages/yup-form-adapter/vite.config.ts @@ -1,10 +1,10 @@ import { defineConfig, mergeConfig } from 'vitest/config' -import { tanstackBuildConfig } from '@tanstack/config/build' +import { tanstackViteConfig } from '@tanstack/config/vite' const config = defineConfig({ test: { name: 'yup-form-adapter', - dir: './src', + dir: './tests', watch: false, environment: 'jsdom', coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, @@ -14,9 +14,8 @@ const config = defineConfig({ export default mergeConfig( config, - tanstackBuildConfig({ + tanstackViteConfig({ entry: './src/index.ts', srcDir: './src', - exclude: ['./src/tests'], }), ) diff --git a/packages/zod-form-adapter/.eslintrc.cjs b/packages/zod-form-adapter/.eslintrc.cjs deleted file mode 100644 index cca134ce1..000000000 --- a/packages/zod-form-adapter/.eslintrc.cjs +++ /dev/null @@ -1,6 +0,0 @@ -// @ts-check - -/** @type {import('eslint').Linter.Config} */ -const config = {} - -module.exports = config diff --git a/packages/zod-form-adapter/eslint.config.js b/packages/zod-form-adapter/eslint.config.js new file mode 100644 index 000000000..8ce6ad05f --- /dev/null +++ b/packages/zod-form-adapter/eslint.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import rootConfig from '../../eslint.config.js' + +export default [...rootConfig] diff --git a/packages/zod-form-adapter/package.json b/packages/zod-form-adapter/package.json index 50d35799a..01a081123 100644 --- a/packages/zod-form-adapter/package.json +++ b/packages/zod-form-adapter/package.json @@ -1,10 +1,14 @@ { "name": "@tanstack/zod-form-adapter", - "version": "0.22.0", + "version": "0.23.3", "description": "The Zod adapter for TanStack Form.", "author": "tannerlinsley", "license": "MIT", - "repository": "tanstack/form", + "repository": { + "type": "git", + "url": "https://github.com/TanStack/form.git", + "directory": "packages/zod-form-adapter" + }, "homepage": "https://tanstack.com/form", "funding": { "type": "github", @@ -34,14 +38,14 @@ ], "scripts": { "clean": "rimraf ./dist && rimraf ./coverage", - "test:eslint": "eslint --ext .ts,.tsx ./src", - "test:types:versions49": "node ../../node_modules/typescript49/lib/tsc.js --project tsconfig.legacy.json", - "test:types:versions50": "node ../../node_modules/typescript50/lib/tsc.js", - "test:types:versions51": "node ../../node_modules/typescript51/lib/tsc.js", - "test:types:versions52": "node ../../node_modules/typescript52/lib/tsc.js", - "test:types:versions53": "node ../../node_modules/typescript53/lib/tsc.js", - "test:types:versions54": "tsc", - "test:types": "pnpm run \"/^test:types:versions.*/\"", + "test:eslint": "eslint ./src", + "test:types": "pnpm run \"/^test:types:ts[0-9]{2}$/\"", + "test:types:ts49": "node ../../node_modules/typescript49/lib/tsc.js -p tsconfig.legacy.json", + "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js", + "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js", + "test:types:ts52": "node ../../node_modules/typescript52/lib/tsc.js", + "test:types:ts53": "node ../../node_modules/typescript53/lib/tsc.js", + "test:types:ts54": "tsc", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict", diff --git a/packages/zod-form-adapter/src/tests/FieldApi.spec.ts b/packages/zod-form-adapter/tests/FieldApi.spec.ts similarity index 98% rename from packages/zod-form-adapter/src/tests/FieldApi.spec.ts rename to packages/zod-form-adapter/tests/FieldApi.spec.ts index af166133a..f38dab2b9 100644 --- a/packages/zod-form-adapter/src/tests/FieldApi.spec.ts +++ b/packages/zod-form-adapter/tests/FieldApi.spec.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from 'vitest' import { FieldApi, FormApi } from '@tanstack/form-core' import { z } from 'zod' -import { zodValidator } from '../validator' +import { zodValidator } from '../src/index' import { sleep } from './utils' describe('zod field api', () => { diff --git a/packages/zod-form-adapter/src/tests/FieldApi.test-d.ts b/packages/zod-form-adapter/tests/FieldApi.test-d.ts similarity index 98% rename from packages/zod-form-adapter/src/tests/FieldApi.test-d.ts rename to packages/zod-form-adapter/tests/FieldApi.test-d.ts index ebd2b3dcb..45c991d89 100644 --- a/packages/zod-form-adapter/src/tests/FieldApi.test-d.ts +++ b/packages/zod-form-adapter/tests/FieldApi.test-d.ts @@ -1,7 +1,7 @@ import { z } from 'zod' import { FieldApi, FormApi } from '@tanstack/form-core' import { assertType, it } from 'vitest' -import { zodValidator } from '../validator' +import { zodValidator } from '../src/index' it('should allow a Zod validator to be passed in', () => { const form = new FormApi({ diff --git a/packages/zod-form-adapter/src/tests/FormApi.spec.ts b/packages/zod-form-adapter/tests/FormApi.spec.ts similarity index 97% rename from packages/zod-form-adapter/src/tests/FormApi.spec.ts rename to packages/zod-form-adapter/tests/FormApi.spec.ts index 69817571f..e579036b1 100644 --- a/packages/zod-form-adapter/src/tests/FormApi.spec.ts +++ b/packages/zod-form-adapter/tests/FormApi.spec.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from 'vitest' import { FieldApi, FormApi } from '@tanstack/form-core' import { z } from 'zod' -import { zodValidator } from '../validator' +import { zodValidator } from '../src/index' describe('zod form api', () => { it('should run an onChange with z.string validation', () => { diff --git a/packages/zod-form-adapter/src/tests/FormApi.test-d.ts b/packages/zod-form-adapter/tests/FormApi.test-d.ts similarity index 97% rename from packages/zod-form-adapter/src/tests/FormApi.test-d.ts rename to packages/zod-form-adapter/tests/FormApi.test-d.ts index 330dae086..9e6acd3af 100644 --- a/packages/zod-form-adapter/src/tests/FormApi.test-d.ts +++ b/packages/zod-form-adapter/tests/FormApi.test-d.ts @@ -1,7 +1,7 @@ import { z } from 'zod' import { FieldApi, FormApi } from '@tanstack/form-core' import { assertType, it } from 'vitest' -import { zodValidator } from '../validator' +import { zodValidator } from '../src/index' it('should allow a Zod validator to be passed in', () => { const form = new FormApi({ diff --git a/packages/zod-form-adapter/src/tests/utils.ts b/packages/zod-form-adapter/tests/utils.ts similarity index 100% rename from packages/zod-form-adapter/src/tests/utils.ts rename to packages/zod-form-adapter/tests/utils.ts diff --git a/packages/zod-form-adapter/tsconfig.json b/packages/zod-form-adapter/tsconfig.json index b6f28346b..1b201bda7 100644 --- a/packages/zod-form-adapter/tsconfig.json +++ b/packages/zod-form-adapter/tsconfig.json @@ -6,5 +6,5 @@ "@tanstack/form-core": ["../form-core/src"] } }, - "include": ["src/**/*.ts", "src/**/*.tsx", ".eslintrc.cjs", "vite.config.ts"] + "include": ["src", "tests", "eslint.config.js", "vite.config.ts"] } diff --git a/packages/zod-form-adapter/tsconfig.legacy.json b/packages/zod-form-adapter/tsconfig.legacy.json index 43e94ba72..c9bf46d6c 100644 --- a/packages/zod-form-adapter/tsconfig.legacy.json +++ b/packages/zod-form-adapter/tsconfig.legacy.json @@ -1,11 +1,9 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "moduleResolution": "Node", "paths": { "@tanstack/form-core": ["../form-core/src"] } }, - "include": ["src/**/*.ts", "src/**/*.tsx"], - "exclude": ["src/tests/**"] + "include": ["src"] } diff --git a/packages/zod-form-adapter/vite.config.ts b/packages/zod-form-adapter/vite.config.ts index 8644e2f38..c94fa167d 100644 --- a/packages/zod-form-adapter/vite.config.ts +++ b/packages/zod-form-adapter/vite.config.ts @@ -1,10 +1,10 @@ import { defineConfig, mergeConfig } from 'vitest/config' -import { tanstackBuildConfig } from '@tanstack/config/build' +import { tanstackViteConfig } from '@tanstack/config/vite' const config = defineConfig({ test: { name: 'zod-form-adapter', - dir: './src', + dir: './tests', watch: false, environment: 'jsdom', coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, @@ -14,9 +14,8 @@ const config = defineConfig({ export default mergeConfig( config, - tanstackBuildConfig({ + tanstackViteConfig({ entry: './src/index.ts', srcDir: './src', - exclude: ['./src/tests'], }), ) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3d44f1b3c..ed1c48434 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,69 +8,51 @@ importers: .: devDependencies: + '@eslint-react/eslint-plugin': + specifier: ^1.5.16 + version: 1.5.16(eslint@8.57.0)(typescript@5.4.2) '@solidjs/testing-library': specifier: ^0.8.6 version: 0.8.6(@solidjs/router@0.13.0(solid-js@1.7.12))(solid-js@1.7.12) '@tanstack/config': - specifier: ^0.7.11 - version: 0.7.11(@types/node@20.10.6)(esbuild@0.20.2)(rollup@4.17.1)(typescript@5.4.2)(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + specifier: ^0.8.1 + version: 0.8.1(@types/node@20.10.6)(esbuild@0.20.2)(eslint@8.57.0)(rollup@4.17.1)(typescript@5.4.2)(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) '@testing-library/jest-dom': specifier: ^6.4.2 version: 6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) '@testing-library/react': specifier: ^14.2.1 - version: 14.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 14.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/user-event': specifier: ^14.5.2 version: 14.5.2(@testing-library/dom@9.3.4) '@testing-library/vue': specifier: ^8.0.2 version: 8.0.2(@vue/compiler-sfc@3.3.4)(@vue/server-renderer@3.3.4(vue@3.3.4))(vue@3.3.4) - '@types/eslint': - specifier: ^8.56.0 - version: 8.56.0 '@types/node': specifier: ^20.9.0 version: 20.10.6 '@types/react': - specifier: ^18.2.45 - version: 18.2.79 + specifier: ^18.3.3 + version: 18.3.3 '@types/react-dom': - specifier: ^18.2.19 - version: 18.2.25 - '@typescript-eslint/eslint-plugin': - specifier: ^6.20.0 - version: 6.20.0(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint@8.56.0)(typescript@5.4.2) - '@typescript-eslint/parser': - specifier: ^6.20.0 - version: 6.20.0(eslint@8.56.0)(typescript@5.4.2) + specifier: ^18.3.0 + version: 18.3.0 '@vitest/coverage-istanbul': specifier: ^1.3.1 version: 1.3.1(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) eslint: - specifier: ^8.56.0 - version: 8.56.0 - eslint-config-prettier: - specifier: ^9.1.0 - version: 9.1.0(eslint@8.56.0) - eslint-import-resolver-typescript: - specifier: ^3.6.1 - version: 3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-plugin-import@2.29.1)(eslint@8.56.0) - eslint-plugin-import: - specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-plugin-import@2.29.1)(eslint@8.56.0))(eslint@8.56.0) - eslint-plugin-react: - specifier: ^7.33.2 - version: 7.33.2(eslint@8.56.0) + specifier: ^8.57.0 + version: 8.57.0 eslint-plugin-react-hooks: - specifier: ^4.6.0 - version: 4.6.0(eslint@8.56.0) + specifier: ^4.6.2 + version: 4.6.2(eslint@8.57.0) jsdom: specifier: ^24.0.0 version: 24.0.0 knip: - specifier: ^4.6.0 - version: 4.6.0(@types/node@20.10.6)(typescript@5.4.2) + specifier: ^5.22.0 + version: 5.22.0(@types/node@20.10.6)(typescript@5.4.2) nx: specifier: ^19.3.0 version: 19.3.0(@swc/core@1.4.6) @@ -81,11 +63,11 @@ importers: specifier: ^0.2.8 version: 0.2.8 react: - specifier: ^18.2.0 - version: 18.2.0 + specifier: ^18.3.1 + version: 18.3.1 react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) rimraf: specifier: ^5.0.5 version: 5.0.5 @@ -95,6 +77,12 @@ importers: solid-js: specifier: ^1.7.8 version: 1.7.12 + typedoc: + specifier: ^0.25.13 + version: 0.25.13(typescript@5.4.2) + typedoc-plugin-markdown: + specifier: ^4.0.3 + version: 4.0.3(typedoc@0.25.13(typescript@5.4.2)) typescript: specifier: 5.4.2 version: 5.4.2 @@ -115,7 +103,7 @@ importers: version: typescript@5.3.3 vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vitest: specifier: ^1.3.1 version: 1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) @@ -150,7 +138,7 @@ importers: specifier: ^17.3.0 version: 17.3.0(@angular/common@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(@angular/platform-browser@17.3.0(@angular/animations@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(@angular/common@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(rxjs@7.8.1) '@tanstack/angular-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/angular-form rxjs: specifier: ~7.8.0 @@ -202,7 +190,7 @@ importers: specifier: ^17.3.0 version: 17.3.0(@angular/common@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(@angular/platform-browser@17.3.0(@angular/animations@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(@angular/common@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(rxjs@7.8.1) '@tanstack/angular-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/angular-form rxjs: specifier: ~7.8.0 @@ -216,7 +204,7 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^17.3.0 - version: 17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(@swc/core@1.4.6)(@types/express@4.17.21)(@types/node@20.10.6)(chokidar@3.6.0)(ng-packagr@17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(tslib@2.6.2)(typescript@5.4.2))(sugarss@4.0.1)(typescript@5.4.2) + version: 17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(@swc/core@1.4.6)(@types/express@4.17.21)(@types/node@20.10.6)(chokidar@3.6.0)(ng-packagr@17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(tslib@2.6.2)(typescript@5.4.2))(sugarss@4.0.1(postcss@8.4.35))(typescript@5.4.2) '@angular/cli': specifier: ^17.3.0 version: 17.3.0(chokidar@3.6.0) @@ -254,10 +242,10 @@ importers: specifier: ^17.3.0 version: 17.3.0(@angular/common@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(@angular/platform-browser@17.3.0(@angular/animations@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(@angular/common@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(rxjs@7.8.1) '@tanstack/angular-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/angular-form '@tanstack/valibot-form-adapter': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/valibot-form-adapter rxjs: specifier: ~7.8.0 @@ -266,15 +254,15 @@ importers: specifier: ^2.3.0 version: 2.6.2 valibot: - specifier: ^0.31.1 - version: 0.31.1 + specifier: ^0.35.0 + version: 0.35.0 zone.js: specifier: ~0.14.2 version: 0.14.4 devDependencies: '@angular-devkit/build-angular': specifier: ^17.3.0 - version: 17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(@swc/core@1.4.6)(@types/express@4.17.21)(@types/node@20.10.6)(chokidar@3.6.0)(ng-packagr@17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(tslib@2.6.2)(typescript@5.4.2))(sugarss@4.0.1)(typescript@5.4.2) + version: 17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(@swc/core@1.4.6)(@types/express@4.17.21)(@types/node@20.10.6)(chokidar@3.6.0)(ng-packagr@17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(tslib@2.6.2)(typescript@5.4.2))(sugarss@4.0.1(postcss@8.4.35))(typescript@5.4.2) '@angular/cli': specifier: ^17.3.0 version: 17.3.0(chokidar@3.6.0) @@ -312,10 +300,10 @@ importers: specifier: ^17.3.0 version: 17.3.0(@angular/common@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(@angular/platform-browser@17.3.0(@angular/animations@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(@angular/common@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(rxjs@7.8.1) '@tanstack/angular-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/angular-form '@tanstack/yup-form-adapter': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/yup-form-adapter rxjs: specifier: ~7.8.0 @@ -332,7 +320,7 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^17.3.0 - version: 17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(@swc/core@1.4.6)(@types/express@4.17.21)(@types/node@20.10.6)(chokidar@3.6.0)(ng-packagr@17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(tslib@2.6.2)(typescript@5.4.2))(sugarss@4.0.1)(typescript@5.4.2) + version: 17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(@swc/core@1.4.6)(@types/express@4.17.21)(@types/node@20.10.6)(chokidar@3.6.0)(ng-packagr@17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(tslib@2.6.2)(typescript@5.4.2))(sugarss@4.0.1(postcss@8.4.35))(typescript@5.4.2) '@angular/cli': specifier: ^17.3.0 version: 17.3.0(chokidar@3.6.0) @@ -370,10 +358,10 @@ importers: specifier: ^17.3.0 version: 17.3.0(@angular/common@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(@angular/platform-browser@17.3.0(@angular/animations@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(@angular/common@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(rxjs@7.8.1) '@tanstack/angular-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/angular-form '@tanstack/zod-form-adapter': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/zod-form-adapter rxjs: specifier: ~7.8.0 @@ -390,7 +378,7 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^17.3.0 - version: 17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(@swc/core@1.4.6)(@types/express@4.17.21)(@types/node@20.10.6)(chokidar@3.6.0)(ng-packagr@17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(tslib@2.6.2)(typescript@5.4.2))(sugarss@4.0.1)(typescript@5.4.2) + version: 17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(@swc/core@1.4.6)(@types/express@4.17.21)(@types/node@20.10.6)(chokidar@3.6.0)(ng-packagr@17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(tslib@2.6.2)(typescript@5.4.2))(sugarss@4.0.1(postcss@8.4.35))(typescript@5.4.2) '@angular/cli': specifier: ^17.3.0 version: 17.3.0(chokidar@3.6.0) @@ -404,7 +392,7 @@ importers: examples/lit/simple: dependencies: '@tanstack/lit-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/lit-form lit: specifier: ^3.1.1 @@ -412,7 +400,7 @@ importers: devDependencies: vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) examples/lit/ui-libraries: dependencies: @@ -420,7 +408,7 @@ importers: specifier: ^1.0.0 version: 1.3.0 '@tanstack/lit-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/lit-form lit: specifier: ^3.1.1 @@ -428,63 +416,57 @@ importers: devDependencies: vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) examples/react/array: dependencies: '@tanstack/react-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/react-form react: - specifier: ^18.2.0 - version: 18.2.0 + specifier: ^18.3.1 + version: 18.3.1 react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) devDependencies: '@types/react': - specifier: ^18.2.45 - version: 18.2.79 + specifier: ^18.3.3 + version: 18.3.3 '@types/react-dom': - specifier: ^18.2.19 - version: 18.2.25 + specifier: ^18.3.0 + version: 18.3.0 '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + specifier: ^4.3.0 + version: 4.3.1(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1)) vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) examples/react/next-server-actions: dependencies: '@tanstack/react-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/react-form next: - specifier: 14.0.4 - version: 14.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0) + specifier: 15.0.0-rc.0 + version: 15.0.0-rc.0(@babel/core@7.24.7)(react-dom@19.0.0-rc-6d3110b4d9-20240531(react@19.0.0-rc-6d3110b4d9-20240531))(react@19.0.0-rc-6d3110b4d9-20240531)(sass@1.72.0) react: - specifier: ^18.2.0 - version: 18.2.0 + specifier: 19.0.0-rc-6d3110b4d9-20240531 + version: 19.0.0-rc-6d3110b4d9-20240531 react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + specifier: 19.0.0-rc-6d3110b4d9-20240531 + version: 19.0.0-rc-6d3110b4d9-20240531(react@19.0.0-rc-6d3110b4d9-20240531) devDependencies: '@types/node': specifier: ^20.9.0 version: 20.10.6 '@types/react': - specifier: ^18.2.45 - version: 18.2.79 + specifier: npm:types-react@rc + version: types-react@19.0.0-rc.1 '@types/react-dom': - specifier: ^18.2.19 - version: 18.2.25 - eslint: - specifier: ^8.56.0 - version: 8.56.0 - eslint-config-next: - specifier: 14.0.4 - version: 14.0.4(eslint@8.56.0)(typescript@5.4.2) + specifier: npm:types-react-dom@rc + version: types-react-dom@19.0.0-rc.1 typescript: specifier: 5.4.2 version: 5.4.2 @@ -492,75 +474,75 @@ importers: examples/react/query-integration: dependencies: '@tanstack/react-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/react-form '@tanstack/react-query': - specifier: ^5.45.1 - version: 5.45.1(react@18.2.0) + specifier: ^5.32.0 + version: 5.45.1(react@18.3.1) react: - specifier: ^18.2.0 - version: 18.2.0 + specifier: ^18.3.1 + version: 18.3.1 react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) devDependencies: '@types/react': - specifier: ^18.2.45 - version: 18.2.79 + specifier: ^18.3.3 + version: 18.3.3 '@types/react-dom': - specifier: ^18.2.19 - version: 18.2.25 + specifier: ^18.3.0 + version: 18.3.0 '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + specifier: ^4.3.0 + version: 4.3.1(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1)) vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) examples/react/simple: dependencies: '@tanstack/react-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/react-form react: - specifier: ^18.2.0 - version: 18.2.0 + specifier: ^18.3.1 + version: 18.3.1 react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) devDependencies: '@types/react': - specifier: ^18.2.45 - version: 18.2.79 + specifier: ^18.3.3 + version: 18.3.3 '@types/react-dom': - specifier: ^18.2.19 - version: 18.2.25 + specifier: ^18.3.0 + version: 18.3.0 '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + specifier: ^4.3.0 + version: 4.3.1(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1)) vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) examples/react/ui-libraries: dependencies: '@emotion/react': specifier: 11.11.3 - version: 11.11.3(@types/react@18.2.79)(react@18.2.0) + version: 11.11.3(@types/react@18.3.3)(react@18.3.1) '@emotion/styled': specifier: 11.11.0 - version: 11.11.0(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0) + version: 11.11.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) '@mantine/core': specifier: 7.3.2 - version: 7.3.2(@mantine/hooks@7.3.2(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 7.3.2(@mantine/hooks@7.3.2(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': specifier: 7.3.2 - version: 7.3.2(react@18.2.0) + version: 7.3.2(react@18.3.1) '@mui/material': specifier: 5.15.2 - version: 5.15.2(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 5.15.2(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/react-form '@yme/lay-postcss': specifier: 0.1.0 @@ -575,146 +557,143 @@ importers: specifier: 7.0.1 version: 7.0.1(postcss@8.4.32) react: - specifier: ^18.2.0 - version: 18.2.0 + specifier: ^18.3.1 + version: 18.3.1 react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) devDependencies: '@types/react': - specifier: ^18.2.45 - version: 18.2.79 + specifier: ^18.3.3 + version: 18.3.3 '@types/react-dom': - specifier: ^18.2.19 - version: 18.2.25 + specifier: ^18.3.0 + version: 18.3.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.15.0 - version: 6.20.0(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint@8.56.0)(typescript@5.4.2) + specifier: ^7.13.1 + version: 7.13.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2) '@typescript-eslint/parser': - specifier: ^6.15.0 - version: 6.20.0(eslint@8.56.0)(typescript@5.4.2) + specifier: ^7.13.1 + version: 7.13.1(eslint@8.57.0)(typescript@5.4.2) '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1)) + specifier: ^4.3.0 + version: 4.3.1(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1)) '@vitejs/plugin-react-swc': specifier: ^3.6.0 - version: 3.6.0(@swc/helpers@0.5.2)(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1)) + version: 3.6.0(@swc/helpers@0.5.11)(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1)) eslint: - specifier: ^8.56.0 - version: 8.56.0 - eslint-plugin-react: - specifier: ^7.33.2 - version: 7.33.2(eslint@8.56.0) + specifier: ^8.57.0 + version: 8.57.0 eslint-plugin-react-hooks: - specifier: ^4.6.0 - version: 4.6.0(eslint@8.56.0) + specifier: ^4.6.2 + version: 4.6.2(eslint@8.57.0) eslint-plugin-react-refresh: - specifier: ^0.4.5 - version: 0.4.5(eslint@8.56.0) + specifier: ^0.4.7 + version: 0.4.7(eslint@8.57.0) typescript: specifier: 5.4.2 version: 5.4.2 vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) examples/react/valibot: dependencies: '@tanstack/react-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/react-form '@tanstack/valibot-form-adapter': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/valibot-form-adapter react: - specifier: ^18.2.0 - version: 18.2.0 + specifier: ^18.3.1 + version: 18.3.1 react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) valibot: - specifier: ^0.31.1 - version: 0.31.1 + specifier: ^0.35.0 + version: 0.35.0 devDependencies: '@types/react': - specifier: ^18.2.45 - version: 18.2.79 + specifier: ^18.3.3 + version: 18.3.3 '@types/react-dom': - specifier: ^18.2.19 - version: 18.2.25 + specifier: ^18.3.0 + version: 18.3.0 '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + specifier: ^4.3.0 + version: 4.3.1(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1)) vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) examples/react/yup: dependencies: '@tanstack/react-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/react-form '@tanstack/yup-form-adapter': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/yup-form-adapter react: - specifier: ^18.2.0 - version: 18.2.0 + specifier: ^18.3.1 + version: 18.3.1 react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) yup: specifier: ^1.3.2 version: 1.3.2 devDependencies: '@types/react': - specifier: ^18.2.45 - version: 18.2.79 + specifier: ^18.3.3 + version: 18.3.3 '@types/react-dom': - specifier: ^18.2.19 - version: 18.2.25 + specifier: ^18.3.0 + version: 18.3.0 '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + specifier: ^4.3.0 + version: 4.3.1(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1)) vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) examples/react/zod: dependencies: '@tanstack/react-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/react-form '@tanstack/zod-form-adapter': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/zod-form-adapter react: - specifier: ^18.2.0 - version: 18.2.0 + specifier: ^18.3.1 + version: 18.3.1 react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) zod: specifier: ^3.22.4 version: 3.22.4 devDependencies: '@types/react': - specifier: ^18.2.45 - version: 18.2.79 + specifier: ^18.3.3 + version: 18.3.3 '@types/react-dom': - specifier: ^18.2.19 - version: 18.2.25 + specifier: ^18.3.0 + version: 18.3.0 '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + specifier: ^4.3.0 + version: 4.3.1(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1)) vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) examples/solid/array: dependencies: '@tanstack/solid-form': - specifier: ^0.22.1 + specifier: ^0.23.3 version: link:../../../packages/solid-form solid-js: specifier: ^1.7.8 @@ -725,15 +704,15 @@ importers: version: 5.4.2 vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vite-plugin-solid: specifier: ^2.10.1 - version: 2.10.1(@testing-library/jest-dom@6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)))(solid-js@1.7.12)(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + version: 2.10.1(@testing-library/jest-dom@6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)))(solid-js@1.7.12)(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) examples/solid/simple: dependencies: '@tanstack/solid-form': - specifier: ^0.22.1 + specifier: ^0.23.3 version: link:../../../packages/solid-form solid-js: specifier: ^1.7.8 @@ -744,43 +723,43 @@ importers: version: 5.4.2 vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vite-plugin-solid: specifier: ^2.10.1 - version: 2.10.1(@testing-library/jest-dom@6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)))(solid-js@1.7.12)(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + version: 2.10.1(@testing-library/jest-dom@6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)))(solid-js@1.7.12)(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) examples/solid/valibot: dependencies: '@tanstack/solid-form': - specifier: ^0.22.1 + specifier: ^0.23.3 version: link:../../../packages/solid-form '@tanstack/valibot-form-adapter': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/valibot-form-adapter solid-js: specifier: ^1.7.8 version: 1.7.12 valibot: - specifier: ^0.31.1 - version: 0.31.1 + specifier: ^0.35.0 + version: 0.35.0 devDependencies: typescript: specifier: 5.4.2 version: 5.4.2 vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vite-plugin-solid: specifier: ^2.10.1 - version: 2.10.1(@testing-library/jest-dom@6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)))(solid-js@1.7.12)(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + version: 2.10.1(@testing-library/jest-dom@6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)))(solid-js@1.7.12)(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) examples/solid/yup: dependencies: '@tanstack/solid-form': - specifier: ^0.22.1 + specifier: ^0.23.3 version: link:../../../packages/solid-form '@tanstack/yup-form-adapter': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/yup-form-adapter solid-js: specifier: ^1.7.8 @@ -794,18 +773,18 @@ importers: version: 5.4.2 vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vite-plugin-solid: specifier: ^2.10.1 - version: 2.10.1(@testing-library/jest-dom@6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)))(solid-js@1.7.12)(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + version: 2.10.1(@testing-library/jest-dom@6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)))(solid-js@1.7.12)(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) examples/solid/zod: dependencies: '@tanstack/solid-form': - specifier: ^0.22.1 + specifier: ^0.23.3 version: link:../../../packages/solid-form '@tanstack/zod-form-adapter': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/zod-form-adapter solid-js: specifier: ^1.7.8 @@ -819,15 +798,15 @@ importers: version: 5.4.2 vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vite-plugin-solid: specifier: ^2.10.1 - version: 2.10.1(@testing-library/jest-dom@6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)))(solid-js@1.7.12)(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + version: 2.10.1(@testing-library/jest-dom@6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)))(solid-js@1.7.12)(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) examples/vue/array: dependencies: '@tanstack/vue-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/vue-form vue: specifier: ^3.3.4 @@ -835,13 +814,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))(vue@3.3.4) + version: 5.0.4(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))(vue@3.3.4) typescript: specifier: 5.4.2 version: 5.4.2 vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vue-tsc: specifier: ^2.0.6 version: 2.0.6(typescript@5.4.2) @@ -849,7 +828,7 @@ importers: examples/vue/simple: dependencies: '@tanstack/vue-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/vue-form vue: specifier: ^3.3.4 @@ -857,13 +836,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))(vue@3.3.4) + version: 5.0.4(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))(vue@3.3.4) typescript: specifier: 5.4.2 version: 5.4.2 vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vue-tsc: specifier: ^2.0.6 version: 2.0.6(typescript@5.4.2) @@ -871,27 +850,27 @@ importers: examples/vue/valibot: dependencies: '@tanstack/valibot-form-adapter': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/valibot-form-adapter '@tanstack/vue-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/vue-form valibot: - specifier: ^0.31.1 - version: 0.31.1 + specifier: ^0.35.0 + version: 0.35.0 vue: specifier: ^3.3.4 version: 3.3.4 devDependencies: '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))(vue@3.3.4) + version: 5.0.4(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))(vue@3.3.4) typescript: specifier: 5.4.2 version: 5.4.2 vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vue-tsc: specifier: ^2.0.6 version: 2.0.6(typescript@5.4.2) @@ -899,10 +878,10 @@ importers: examples/vue/yup: dependencies: '@tanstack/vue-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/vue-form '@tanstack/yup-form-adapter': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/yup-form-adapter vue: specifier: ^3.3.4 @@ -913,13 +892,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))(vue@3.3.4) + version: 5.0.4(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))(vue@3.3.4) typescript: specifier: 5.4.2 version: 5.4.2 vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vue-tsc: specifier: ^2.0.6 version: 2.0.6(typescript@5.4.2) @@ -927,10 +906,10 @@ importers: examples/vue/zod: dependencies: '@tanstack/vue-form': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/vue-form '@tanstack/zod-form-adapter': - specifier: ^0.22.0 + specifier: ^0.23.3 version: link:../../../packages/zod-form-adapter vue: specifier: ^3.3.4 @@ -941,13 +920,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))(vue@3.3.4) + version: 5.0.4(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))(vue@3.3.4) typescript: specifier: 5.4.2 version: 5.4.2 vite: specifier: ^5.0.10 - version: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vue-tsc: specifier: ^2.0.6 version: 2.0.6(typescript@5.4.2) @@ -955,8 +934,8 @@ importers: packages/angular-form: dependencies: '@tanstack/angular-store': - specifier: ^0.4.1 - version: 0.4.1(@angular/common@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)) + specifier: ^0.5.1 + version: 0.5.1(@angular/common@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)) '@tanstack/form-core': specifier: workspace:* version: link:../form-core @@ -1001,8 +980,8 @@ importers: packages/form-core: dependencies: '@tanstack/store': - specifier: ^0.4.1 - version: 0.4.1 + specifier: ^0.5.0 + version: 0.5.0 packages/lit-form: dependencies: @@ -1023,33 +1002,30 @@ importers: specifier: workspace:* version: link:../form-core '@tanstack/react-store': - specifier: ^0.4.1 - version: 0.4.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^0.5.0 + version: 0.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) decode-formdata: - specifier: ^0.4.0 - version: 0.4.0 - rehackt: - specifier: ^0.0.3 - version: 0.0.3(@types/react@18.2.79)(react@18.2.0) + specifier: ^0.7.5 + version: 0.7.5 devDependencies: '@types/react': - specifier: ^18.2.45 - version: 18.2.79 + specifier: ^18.3.3 + version: 18.3.3 '@types/react-dom': - specifier: ^18.2.19 - version: 18.2.25 + specifier: ^18.3.0 + version: 18.3.0 '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + specifier: ^4.3.0 + version: 4.3.1(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1)) react: - specifier: ^18.2.0 - version: 18.2.0 + specifier: ^18.3.1 + version: 18.3.1 react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) vite: specifier: ^5.0.10 - version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) packages/solid-form: dependencies: @@ -1057,15 +1033,15 @@ importers: specifier: workspace:* version: link:../form-core '@tanstack/solid-store': - specifier: ^0.4.1 - version: 0.4.1(solid-js@1.7.12) + specifier: ^0.5.0 + version: 0.5.0(solid-js@1.7.12) devDependencies: solid-js: specifier: ^1.7.8 version: 1.7.12 vite: specifier: ^5.0.10 - version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vite-plugin-solid: specifier: ^2.10.1 version: 2.10.1(@testing-library/jest-dom@6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)))(solid-js@1.7.12)(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) @@ -1077,8 +1053,8 @@ importers: version: link:../form-core devDependencies: valibot: - specifier: ^0.31.1 - version: 0.31.1 + specifier: ^0.35.0 + version: 0.35.0 packages/vue-form: dependencies: @@ -1086,15 +1062,15 @@ importers: specifier: workspace:* version: link:../form-core '@tanstack/vue-store': - specifier: ^0.4.1 - version: 0.4.1(vue@3.3.4) + specifier: ^0.5.0 + version: 0.5.0(vue@3.3.4) devDependencies: '@vitejs/plugin-vue': specifier: ^5.0.4 version: 5.0.4(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))(vue@3.3.4) vite: specifier: ^5.0.10 - version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) + version: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vue: specifier: ^3.3.4 version: 3.3.4 @@ -1282,12 +1258,12 @@ packages: '@angular/platform-browser': 17.3.0 rxjs: ^6.5.3 || ^7.4.0 - '@babel/code-frame@7.23.5': - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.23.5': - resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + '@babel/compat-data@7.24.7': + resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} engines: {node: '>=6.9.0'} '@babel/core@7.23.9': @@ -1298,10 +1274,18 @@ packages: resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} engines: {node: '>=6.9.0'} + '@babel/core@7.24.7': + resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.23.6': resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} + '@babel/generator@7.24.7': + resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.22.5': resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} @@ -1310,8 +1294,8 @@ packages: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.23.6': - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + '@babel/helper-compilation-targets@7.24.7': + resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} engines: {node: '>=6.9.0'} '@babel/helper-create-class-features-plugin@7.24.0': @@ -1336,16 +1320,16 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-environment-visitor@7.22.20': - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + '@babel/helper-environment-visitor@7.24.7': + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.23.0': - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + '@babel/helper-function-name@7.24.7': + resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.22.5': - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + '@babel/helper-hoist-variables@7.24.7': + resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} engines: {node: '>=6.9.0'} '@babel/helper-member-expression-to-functions@7.23.0': @@ -1356,12 +1340,12 @@ packages: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.22.15': - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + '@babel/helper-module-imports@7.24.7': + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.23.3': - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + '@babel/helper-module-transforms@7.24.7': + resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1370,8 +1354,8 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.0': - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} + '@babel/helper-plugin-utils@7.24.7': + resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} engines: {node: '>=6.9.0'} '@babel/helper-remap-async-to-generator@7.22.20': @@ -1386,8 +1370,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-simple-access@7.22.5': - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + '@babel/helper-simple-access@7.24.7': + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} '@babel/helper-skip-transparent-expression-wrappers@7.22.5': @@ -1398,32 +1382,36 @@ packages: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.23.4': - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + '@babel/helper-split-export-declaration@7.24.7': + resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.24.7': + resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.23.5': - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + '@babel/helper-validator-option@7.24.7': + resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} engines: {node: '>=6.9.0'} '@babel/helper-wrap-function@7.22.20': resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.0': - resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==} + '@babel/helpers@7.24.7': + resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.23.4': - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.0': - resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} + '@babel/parser@7.24.7': + resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} engines: {node: '>=6.0.0'} hasBin: true @@ -1775,14 +1763,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.23.3': - resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} + '@babel/plugin-transform-react-jsx-self@7.24.7': + resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.23.3': - resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} + '@babel/plugin-transform-react-jsx-source@7.24.7': + resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1877,16 +1865,16 @@ packages: resolution: {integrity: sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==} engines: {node: '>=6.9.0'} - '@babel/template@7.24.0': - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + '@babel/template@7.24.7': + resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.0': - resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} + '@babel/traverse@7.24.7': + resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.0': - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + '@babel/types@7.24.7': + resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} engines: {node: '>=6.9.0'} '@commitlint/parse@19.0.3': @@ -1901,6 +1889,9 @@ packages: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} + '@emnapi/runtime@1.2.0': + resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} + '@emotion/babel-plugin@11.11.0': resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} @@ -1955,8 +1946,8 @@ packages: '@emotion/weak-memoize@0.3.1': resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} - '@ericcornelissen/bash-parser@0.5.2': - resolution: {integrity: sha512-4pIMTa1nEFfMXitv7oaNEWOdM+zpOZavesa5GaiWTgda6Zk32CFGxjUp/iIaN0PwgUW1yTq/fztSjbpE8SLGZQ==} + '@ericcornelissen/bash-parser@0.5.3': + resolution: {integrity: sha512-9Z0sGuXqf6En19qmwB0Syi1Mc8TYl756dNuuaYal9mrypKa0Jq/IX6aJfh6Rk2S3z66KBisWTqloDo7weYj4zg==} engines: {node: '>=4'} '@esbuild/aix-ppc64@0.19.11': @@ -2379,18 +2370,53 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.8.0': - resolution: {integrity: sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==} + '@eslint-community/regexpp@4.10.1': + resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-react/ast@1.5.16': + resolution: {integrity: sha512-b6WwepSuyV8UNUojfsE/6TjfYcskGdlCXJfbgEtV+CYDclbBLSu7fhGYqSi0kRaG/UOcWSfj4OZ0/pw6hCV6RA==} + + '@eslint-react/core@1.5.16': + resolution: {integrity: sha512-6zAf58toyDT7ZZc+2f7Cv8dSRy4TYv/JfL6GpwtM9FFMUsamlEGJBiaoNnV3U+gHZUyhuvYq42rV7nXegSlXdg==} + + '@eslint-react/eslint-plugin@1.5.16': + resolution: {integrity: sha512-Ff/ZrElIEry1mzoZFhksHqej1zMaFLHR3ciFQoU4kQG8Xc4e5Y6I6WYi3ZT7Dcau1UZK+85sKYTVxSyOtDe5rQ==} + engines: {bun: '>=1.0.15', node: '>=18.18.0'} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ^5.3.3 + peerDependenciesMeta: + typescript: + optional: true + + '@eslint-react/jsx@1.5.16': + resolution: {integrity: sha512-IH+XX9c27ad4kMJhv40Za+PfswfPG93wOEF5+mDC9b1AxPcloPq2lc162NzWbiIHwKYAdHfIyDBY/6BTjXOgPA==} + + '@eslint-react/shared@1.5.16': + resolution: {integrity: sha512-B45RP1yu2tA8RU3lvVu2ZiR3i2TSvOqcVBQm9S0QGfymI2eh54OcOfGdJWWF2lj11lw4H5vNksN1ZEHtCMypGA==} + + '@eslint-react/tools@1.5.16': + resolution: {integrity: sha512-LSyj1KQZd6fDqBQPGfo8FHD3McWOsBndIONKELyx+w2KdPhk+ip4T3opAoAY45dngyG2Sf496GwPBz9VUhvSFA==} + + '@eslint-react/types@1.5.16': + resolution: {integrity: sha512-9tLAzPU8KYNYUXQivudnngTnd3UnjfqgL4QeacsQrElWH2mE3ADDvyOImSyJ7k9DIJUUh2s3i/w618lBr7M4Eg==} + + '@eslint-react/var@1.5.16': + resolution: {integrity: sha512-XTBQ329WViUCxaDxKTrNR3tMb9wYJatQiyNtMB7bAieDG50o9yO0npFse7T1U4ZDX2kaXA7plkeM0euWTriLVQ==} + '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@8.56.0': - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + '@eslint/js@8.57.0': + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/js@9.5.0': + resolution: {integrity: sha512-A7+AOT2ICkodvtsWnxZP4Xxk3NbZ3VMHd8oihydLRGrJgqqdEz1qSeEgXYyT/Cu8h1TWWsQRejIx48mtjZ5y1w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@floating-ui/core@1.5.3': resolution: {integrity: sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q==} @@ -2412,20 +2438,135 @@ packages: '@floating-ui/utils@0.2.1': resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} - '@humanwhocodes/config-array@0.11.13': - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + '@humanwhocodes/config-array@0.11.14': + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.1': - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead '@iarna/toml@2.2.5': resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} + '@img/sharp-darwin-arm64@0.33.4': + resolution: {integrity: sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.4': + resolution: {integrity: sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.2': + resolution: {integrity: sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==} + engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.2': + resolution: {integrity: sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==} + engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.2': + resolution: {integrity: sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==} + engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.2': + resolution: {integrity: sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==} + engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.2': + resolution: {integrity: sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==} + engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.2': + resolution: {integrity: sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==} + engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.2': + resolution: {integrity: sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==} + engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.2': + resolution: {integrity: sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==} + engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.4': + resolution: {integrity: sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.4': + resolution: {integrity: sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==} + engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.4': + resolution: {integrity: sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==} + engines: {glibc: '>=2.31', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.4': + resolution: {integrity: sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.4': + resolution: {integrity: sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==} + engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.4': + resolution: {integrity: sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==} + engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.4': + resolution: {integrity: sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.4': + resolution: {integrity: sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.4': + resolution: {integrity: sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [win32] + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2463,6 +2604,12 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@kwsites/file-exists@1.1.1': + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + + '@kwsites/promise-deferred@1.1.1': + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + '@leichtgewicht/ip-codec@2.0.4': resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} @@ -2592,62 +2739,59 @@ packages: '@types/react': optional: true - '@next/env@14.0.4': - resolution: {integrity: sha512-irQnbMLbUNQpP1wcE5NstJtbuA/69kRfzBrpAD7Gsn8zm/CY6YQYc3HQBz8QPxwISG26tIm5afvvVbu508oBeQ==} + '@next/env@15.0.0-rc.0': + resolution: {integrity: sha512-6W0ndQvHR9sXcqcKeR/inD2UTRCs9+VkSK3lfaGmEuZs7EjwwXMO2BPYjz9oBrtfPL3xuTjtXsHKSsalYQ5l1Q==} - '@next/eslint-plugin-next@14.0.4': - resolution: {integrity: sha512-U3qMNHmEZoVmHA0j/57nRfi3AscXNvkOnxDmle/69Jz/G0o/gWjXTDdlgILZdrxQ0Lw/jv2mPW8PGy0EGIHXhQ==} - - '@next/swc-darwin-arm64@14.0.4': - resolution: {integrity: sha512-mF05E/5uPthWzyYDyptcwHptucf/jj09i2SXBPwNzbgBNc+XnwzrL0U6BmPjQeOL+FiB+iG1gwBeq7mlDjSRPg==} + '@next/swc-darwin-arm64@15.0.0-rc.0': + resolution: {integrity: sha512-4OpTXvAWcSabXA5d688zdUwa3sfT9QrLnHMdpv4q2UDnnuqmOI0xLb6lrOxwpi+vHJNkneuNLqyc5HGBhkqL6A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.0.4': - resolution: {integrity: sha512-IZQ3C7Bx0k2rYtrZZxKKiusMTM9WWcK5ajyhOZkYYTCc8xytmwSzR1skU7qLgVT/EY9xtXDG0WhY6fyujnI3rw==} + '@next/swc-darwin-x64@15.0.0-rc.0': + resolution: {integrity: sha512-/TD8M9DT244uhtFA8P/0DUbM7ftg2zio6yOo6ajV16vNjkcug9Kt9//Wa4SrJjWcsGZpViLctOlwn3/6JFAuAA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.0.4': - resolution: {integrity: sha512-VwwZKrBQo/MGb1VOrxJ6LrKvbpo7UbROuyMRvQKTFKhNaXjUmKTu7wxVkIuCARAfiI8JpaWAnKR+D6tzpCcM4w==} + '@next/swc-linux-arm64-gnu@15.0.0-rc.0': + resolution: {integrity: sha512-3VTO32938AcqOlOI/U61/MIpeYrblP22VU1GrgmMQJozsAXEJgLCgf3wxZtn61/FG4Yc0tp7rPZE2t1fIGe0+w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.0.4': - resolution: {integrity: sha512-8QftwPEW37XxXoAwsn+nXlodKWHfpMaSvt81W43Wh8dv0gkheD+30ezWMcFGHLI71KiWmHK5PSQbTQGUiidvLQ==} + '@next/swc-linux-arm64-musl@15.0.0-rc.0': + resolution: {integrity: sha512-0kDnxM3AfrrHFJ/wTkjkv7cVHIaGwv+CzDg9lL2BoLEM4kMQhH20DTsBOMqpTpo1K2KCg67LuTGd3QOITT5uFQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.0.4': - resolution: {integrity: sha512-/s/Pme3VKfZAfISlYVq2hzFS8AcAIOTnoKupc/j4WlvF6GQ0VouS2Q2KEgPuO1eMBwakWPB1aYFIA4VNVh667A==} + '@next/swc-linux-x64-gnu@15.0.0-rc.0': + resolution: {integrity: sha512-fPMNahzqYFjm5h0ncJ5+F3NrShmWhpusM+zrQl01MMU0Ed5xsL4pJJDSuXV4wPkNUSjCP3XstTjxR5kBdO4juQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.0.4': - resolution: {integrity: sha512-m8z/6Fyal4L9Bnlxde5g2Mfa1Z7dasMQyhEhskDATpqr+Y0mjOBZcXQ7G5U+vgL22cI4T7MfvgtrM2jdopqWaw==} + '@next/swc-linux-x64-musl@15.0.0-rc.0': + resolution: {integrity: sha512-7/FLgOqrrQAxOVQrxfr3bGgZ83pSCmc2S3TXBILnHw0S8qLxmFjhSjH5ogaDmjrES/PSYMaX1FsP5Af88hp7Gw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.0.4': - resolution: {integrity: sha512-7Wv4PRiWIAWbm5XrGz3D8HUkCVDMMz9igffZG4NB1p4u1KoItwx9qjATHz88kwCEal/HXmbShucaslXCQXUM5w==} + '@next/swc-win32-arm64-msvc@15.0.0-rc.0': + resolution: {integrity: sha512-5wcqoYHh7hbdghjH6Xs3i5/f0ov+i1Xw2E3O+BzZNESYVLgCM1q7KJu5gdGFoXA2gz5XaKF/VBcYHikLzyjgmA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.0.4': - resolution: {integrity: sha512-zLeNEAPULsl0phfGb4kdzF/cAVIfaC7hY+kt0/d+y9mzcZHsMS3hAS829WbJ31DkSlVKQeHEjZHIdhN+Pg7Gyg==} + '@next/swc-win32-ia32-msvc@15.0.0-rc.0': + resolution: {integrity: sha512-/hqOmYRTvtBPToE4Dbl9n+sLYU7DPd52R+TtjIrrEzTMgFo2/d7un3sD7GKmb2OwOj/ExyGv6Bd/JzytBVxXlw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.0.4': - resolution: {integrity: sha512-yEh2+R8qDlDCjxVpzOTEpBLQTEFAcP2A8fUFLaWNap9GitYKkKv1//y2S6XY6zsR4rCOPRpU7plYDR+az2n30A==} + '@next/swc-win32-x64-msvc@15.0.0-rc.0': + resolution: {integrity: sha512-2Jly5nShvCUzzngP3RzdQ3JcuEcHcnIEvkvZDCXqFAK+bWks4+qOkEUO1QIAERQ99J5J9/1AN/8zFBme3Mm57A==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2701,14 +2845,6 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true - '@npmcli/map-workspaces@3.0.4': - resolution: {integrity: sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/name-from-folder@2.0.0': - resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@npmcli/node-gyp@3.0.0': resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -2796,61 +2932,6 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pnpm/constants@7.1.1': - resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} - engines: {node: '>=16.14'} - - '@pnpm/core-loggers@9.0.6': - resolution: {integrity: sha512-iK67SGbp+06bA/elpg51wygPFjNA7JKHtKkpLxqXXHw+AjFFBC3f2OznJsCIuDK6HdGi5UhHLYqo5QxJ2gMqJQ==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/error@5.0.2': - resolution: {integrity: sha512-0TEm+tWNYm+9uh6DSKyRbv8pv/6b4NL0PastLvMxIoqZbBZ5Zj1cYi332R9xsSUi31ZOsu2wpgn/bC7DA9hrjg==} - engines: {node: '>=16.14'} - - '@pnpm/fetching-types@5.0.0': - resolution: {integrity: sha512-o9gdO1v8Uc5P2fBBuW6GSpfTqIivQmQlqjQJdFiQX0m+tgxlrMRneIg392jZuc6fk7kFqjLheInlslgJfwY+4Q==} - engines: {node: '>=16.14'} - - '@pnpm/graceful-fs@3.2.0': - resolution: {integrity: sha512-vRoXJxscDpHak7YE9SqCkzfrayn+Lw+YueOeHIPEqkgokrHeYgYeONoc2kGh0ObHaRtNSsonozVfJ456kxLNvA==} - engines: {node: '>=16.14'} - - '@pnpm/logger@5.0.0': - resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} - engines: {node: '>=12.17'} - - '@pnpm/npm-package-arg@1.0.0': - resolution: {integrity: sha512-oQYP08exi6mOPdAZZWcNIGS+KKPsnNwUBzSuAEGWuCcqwMAt3k/WVCqVIXzBxhO5sP2b43og69VHmPj6IroKqw==} - engines: {node: '>=14.6'} - - '@pnpm/npm-resolver@18.1.0': - resolution: {integrity: sha512-fUYKX/iHiHldL0VRVvkQI35YK2jWhZEkPO6rrGke8309+LKAo12v833nBttMDpQrtHefmqhB4mhCzQq6L2Xqmg==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - - '@pnpm/ramda@0.28.1': - resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} - - '@pnpm/resolve-workspace-range@5.0.1': - resolution: {integrity: sha512-yQ0pMthlw8rTgS/C9hrjne+NEnnSNevCjtdodd7i15I59jMBYciHifZ/vjg0NY+Jl+USTc3dBE+0h/4tdYjMKg==} - engines: {node: '>=16.14'} - - '@pnpm/resolver-base@11.1.0': - resolution: {integrity: sha512-y2qKaj18pwe1VWc3YXEitdYFo+WqOOt60aqTUuOVkJAirUzz0DzuYh3Ifct4znYWPdgUXHaN5DMphNF5iL85rA==} - engines: {node: '>=16.14'} - - '@pnpm/types@9.4.2': - resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==} - engines: {node: '>=16.14'} - - '@pnpm/workspace.pkgs-graph@2.0.14': - resolution: {integrity: sha512-SBXXyWDkPEoaLTjLRyQzRHoBYH+P0NLcIjX1yPUxuJiMTvGOMzjpLWTuxYNVe/P0V0VQMrjpJFaJPjlViNLhzg==} - engines: {node: '>=16.14'} - '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} @@ -2892,51 +2973,26 @@ packages: cpu: [arm] os: [android] - '@rollup/rollup-android-arm-eabi@4.9.2': - resolution: {integrity: sha512-RKzxFxBHq9ysZ83fn8Iduv3A283K7zPPYuhL/z9CQuyFrjwpErJx0h4aeb/bnJ+q29GRLgJpY66ceQ/Wcsn3wA==} - cpu: [arm] - os: [android] - '@rollup/rollup-android-arm64@4.17.1': resolution: {integrity: sha512-piwZDjuW2WiHr05djVdUkrG5JbjnGbtx8BXQchYCMfib/nhjzWoiScelZ+s5IJI7lecrwSxHCzW026MWBL+oJQ==} cpu: [arm64] os: [android] - '@rollup/rollup-android-arm64@4.9.2': - resolution: {integrity: sha512-yZ+MUbnwf3SHNWQKJyWh88ii2HbuHCFQnAYTeeO1Nb8SyEiWASEi5dQUygt3ClHWtA9My9RQAYkjvrsZ0WK8Xg==} - cpu: [arm64] - os: [android] - '@rollup/rollup-darwin-arm64@4.17.1': resolution: {integrity: sha512-LsZXXIsN5Q460cKDT4Y+bzoPDhBmO5DTr7wP80d+2EnYlxSgkwdPfE3hbE+Fk8dtya+8092N9srjBTJ0di8RIA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-arm64@4.9.2': - resolution: {integrity: sha512-vqJ/pAUh95FLc/G/3+xPqlSBgilPnauVf2EXOQCZzhZJCXDXt/5A8mH/OzU6iWhb3CNk5hPJrh8pqJUPldN5zw==} - cpu: [arm64] - os: [darwin] - '@rollup/rollup-darwin-x64@4.17.1': resolution: {integrity: sha512-S7TYNQpWXB9APkxu/SLmYHezWwCoZRA9QLgrDeml+SR2A1LLPD2DBUdUlvmCF7FUpRMKvbeeWky+iizQj65Etw==} cpu: [x64] os: [darwin] - '@rollup/rollup-darwin-x64@4.9.2': - resolution: {integrity: sha512-otPHsN5LlvedOprd3SdfrRNhOahhVBwJpepVKUN58L0RnC29vOAej1vMEaVU6DadnpjivVsNTM5eNt0CcwTahw==} - cpu: [x64] - os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.17.1': resolution: {integrity: sha512-Lq2JR5a5jsA5um2ZoLiXXEaOagnVyCpCW7xvlcqHC7y46tLwTEgUSTM3a2TfmmTMmdqv+jknUioWXlmxYxE9Yw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.9.2': - resolution: {integrity: sha512-ewG5yJSp+zYKBYQLbd1CUA7b1lSfIdo9zJShNTyc2ZP1rcPrqyZcNlsHgs7v1zhgfdS+kW0p5frc0aVqhZCiYQ==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.17.1': resolution: {integrity: sha512-9BfzwyPNV0IizQoR+5HTNBGkh1KXE8BqU0DBkqMngmyFW7BfuIZyMjQ0s6igJEiPSBvT3ZcnIFohZ19OqjhDPg==} cpu: [arm] @@ -2947,21 +3003,11 @@ packages: cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.9.2': - resolution: {integrity: sha512-pL6QtV26W52aCWTG1IuFV3FMPL1m4wbsRG+qijIvgFO/VBsiXJjDPE/uiMdHBAO6YcpV4KvpKtd0v3WFbaxBtg==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-musl@4.17.1': resolution: {integrity: sha512-ekggix/Bc/d/60H1Mi4YeYb/7dbal1kEDZ6sIFVAE8pUSx7PiWeEh+NWbL7bGu0X68BBIkgF3ibRJe1oFTksQQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.9.2': - resolution: {integrity: sha512-On+cc5EpOaTwPSNetHXBuqylDW+765G/oqB9xGmWU3npEhCh8xu0xqHGUA+4xwZLqBbIZNcBlKSIYfkBm6ko7g==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.17.1': resolution: {integrity: sha512-UGV0dUo/xCv4pkr/C8KY7XLFwBNnvladt8q+VmdKrw/3RUd3rD0TptwjisvE2TTnnlENtuY4/PZuoOYRiGp8Gw==} cpu: [ppc64] @@ -2972,11 +3018,6 @@ packages: cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.9.2': - resolution: {integrity: sha512-Wnx/IVMSZ31D/cO9HSsU46FjrPWHqtdF8+0eyZ1zIB5a6hXaZXghUKpRrC4D5DcRTZOjml2oBhXoqfGYyXKipw==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.17.1': resolution: {integrity: sha512-xeae5pMAxHFp6yX5vajInG2toST5lsCTrckSRUFwNgzYqnUjNBcQyqk1bXUxX5yhjWFl2Mnz3F8vQjl+2FRIcw==} cpu: [s390x] @@ -2987,59 +3028,31 @@ packages: cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.9.2': - resolution: {integrity: sha512-ym5x1cj4mUAMBummxxRkI4pG5Vht1QMsJexwGP8547TZ0sox9fCLDHw9KCH9c1FO5d9GopvkaJsBIOkTKxksdw==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-musl@4.17.1': resolution: {integrity: sha512-KoB4fyKXTR+wYENkIG3fFF+5G6N4GFvzYx8Jax8BR4vmddtuqSb5oQmYu2Uu067vT/Fod7gxeQYKupm8gAcMSQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.9.2': - resolution: {integrity: sha512-m0hYELHGXdYx64D6IDDg/1vOJEaiV8f1G/iO+tejvRCJNSwK4jJ15e38JQy5Q6dGkn1M/9KcyEOwqmlZ2kqaZg==} - cpu: [x64] - os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.17.1': resolution: {integrity: sha512-J0d3NVNf7wBL9t4blCNat+d0PYqAx8wOoY+/9Q5cujnafbX7BmtYk3XvzkqLmFECaWvXGLuHmKj/wrILUinmQg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.9.2': - resolution: {integrity: sha512-x1CWburlbN5JjG+juenuNa4KdedBdXLjZMp56nHFSHTOsb/MI2DYiGzLtRGHNMyydPGffGId+VgjOMrcltOksA==} - cpu: [arm64] - os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.17.1': resolution: {integrity: sha512-xjgkWUwlq7IbgJSIxvl516FJ2iuC/7ttjsAxSPpC9kkI5iQQFHKyEN5BjbhvJ/IXIZ3yIBcW5QDlWAyrA+TFag==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.9.2': - resolution: {integrity: sha512-VVzCB5yXR1QlfsH1Xw1zdzQ4Pxuzv+CPr5qpElpKhVxlxD3CRdfubAG9mJROl6/dmj5gVYDDWk8sC+j9BI9/kQ==} - cpu: [ia32] - os: [win32] - '@rollup/rollup-win32-x64-msvc@4.17.1': resolution: {integrity: sha512-0QbCkfk6cnnVKWqqlC0cUrrUMDMfu5ffvYMTUHf+qMN2uAb3MKP31LPcwiMXBNsvoFGs/kYdFOsuLmvppCopXA==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.9.2': - resolution: {integrity: sha512-SYRedJi+mweatroB+6TTnJYLts0L0bosg531xnQWtklOI6dezEagx4Q0qDyvRdK+qgdA3YZpjjGuPFtxBmddBA==} - cpu: [x64] - os: [win32] - '@rollup/wasm-node@4.13.0': resolution: {integrity: sha512-oFX11wzU7RTaiW06WBtRpzIVN/oaG0I3XkevNO0brBklYnY9zpLhTfksN4b+TdBt6CfXV/KdVhdWLbb0fQIR7A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - '@rushstack/eslint-patch@1.6.1': - resolution: {integrity: sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==} - '@rushstack/node-core-library@4.0.2': resolution: {integrity: sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==} peerDependencies: @@ -3182,20 +3195,20 @@ packages: '@swc/counter@0.1.2': resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==} - '@swc/helpers@0.5.2': - resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + '@swc/helpers@0.5.11': + resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==} '@swc/types@0.1.5': resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} - '@tanstack/angular-store@0.4.1': - resolution: {integrity: sha512-ZEO/ir0hBnF5AspVHVKOGp0x0WrNXfCUQd8wTamx1KUdXDKQ6qIIrAMLW7d7djN/Z/h55o3Ayj+OTHr46TvyUQ==} + '@tanstack/angular-store@0.5.1': + resolution: {integrity: sha512-ixEqH994z0uLYf8JnH/C1XSKuCVe/5dPkQP7dUgKjoKunPYTR25RvPSE+wKd9gtrBGWFjhWezQPeOmOY1NAKfA==} peerDependencies: '@angular/common': '>=16 < 18' '@angular/core': '>=16 < 18' - '@tanstack/config@0.7.11': - resolution: {integrity: sha512-Nc+n576zIzwPAV8gPdUvbR+vTvJuqOgUFZoBowHfBiyzoNZ9KGmWnAlJ49ReHegXaISLgj5wmHKAdHFGEeGdKA==} + '@tanstack/config@0.8.1': + resolution: {integrity: sha512-d+4A38/PokW/ljv8Q/EOeStpN9EvUwoj1SQORzBbQe7T/YcEMdMWuNp30A/S3DCYQvV4iDFwILSzqle+fxA+ag==} engines: {node: '>=18'} hasBin: true @@ -3207,22 +3220,22 @@ packages: peerDependencies: react: ^18.0.0 - '@tanstack/react-store@0.4.1': - resolution: {integrity: sha512-cyriofh2I6dPOPJf2W0K+ON5q08ezevLTUhC1txiUnrJ9XFFFPr0X8CmGnXzucI2c0t0V6wYZc0GCz4zOAeptg==} + '@tanstack/react-store@0.5.0': + resolution: {integrity: sha512-OL2g5H39Z9HKxrLdMVW6BIcB/Jo3rPe9F/UfjiooNpNFkdpS0u++wKWx6e+k0zRejgyf37OTG9+Jxb4v8uo+4w==} peerDependencies: react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 - '@tanstack/solid-store@0.4.1': - resolution: {integrity: sha512-pxnABnOz6y+GrxFDMjPoNq8yqjuwBJVEcl4LPkS0FLFz3y3XzoBzUb3cd9zWQAebpIKJtUqfDOqWakkYlgiOsA==} + '@tanstack/solid-store@0.5.0': + resolution: {integrity: sha512-1H2uBPDbBBnLKnb5/8XORU3bQCHM915bguHJl01AQKhzCNHMMK6QnnSP4ZxIJDXoGNL8qEagYw3yCnvuZspPpw==} peerDependencies: solid-js: ^1.6.0 - '@tanstack/store@0.4.1': - resolution: {integrity: sha512-NvW3MomYSTzQK61AWdtWNIhWgszXFZDRgCNlvSDw/DBaoLqJIlZ0/gKLsditA8un/BGU1NR06+j0a/UNLgXA+Q==} + '@tanstack/store@0.5.0': + resolution: {integrity: sha512-jftrdrIx/PLRAIY0xLsrdvBRUt+aFtcMfuU04/uCk1e72WD1QKS3OIT2qjrzCvTqbCIabSFfakGI1wMHmU+KHg==} - '@tanstack/vue-store@0.4.1': - resolution: {integrity: sha512-/a0N8VgYvV7Vmpn6cDR8sWjDZEulOlULtaFtzGHpMP0rz+toX6dpMbQctOvz6Hw3RNY3HoTzmkGHUgyuZNJqMw==} + '@tanstack/vue-store@0.5.0': + resolution: {integrity: sha512-CYwxaaNcO9KFcSAv+KseStIBAgYHKTtSvERYNHYl5RKK0G3my9gkZrMSI+4rojuWXWUDAa2omHu1yVdM9Z5F+Q==} peerDependencies: '@vue/composition-api': ^1.2.1 vue: ^2.5.0 || ^3.0.0 @@ -3333,8 +3346,8 @@ packages: '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - '@types/eslint@8.56.0': - resolution: {integrity: sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==} + '@types/eslint@8.56.10': + resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -3354,9 +3367,6 @@ packages: '@types/json-schema@7.0.12': resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} @@ -3378,9 +3388,6 @@ packages: '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - '@types/picomatch@2.3.3': - resolution: {integrity: sha512-Yll76ZHikRFCyz/pffKGjrCwe/le2CDwOP5F210KQo27kpRE46U2rDnzikNlVn6/ezH3Mhn46bJMTfeVTtcYMg==} - '@types/prop-types@15.7.11': resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} @@ -3390,14 +3397,14 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@18.2.25': - resolution: {integrity: sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==} + '@types/react-dom@18.3.0': + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} '@types/react-transition-group@4.4.10': resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==} - '@types/react@18.2.79': - resolution: {integrity: sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==} + '@types/react@18.3.3': + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} @@ -3405,9 +3412,6 @@ packages: '@types/retry@0.12.0': resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - '@types/semver@7.5.6': - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} - '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -3426,63 +3430,121 @@ packages: '@types/ws@8.5.10': resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} - '@typescript-eslint/eslint-plugin@6.20.0': - resolution: {integrity: sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/eslint-plugin@7.13.1': + resolution: {integrity: sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/eslint-plugin@7.14.1': + resolution: {integrity: sha512-aAJd6bIf2vvQRjUG3ZkNXkmBpN+J7Wd0mfQiiVCJMu9Z5GcZZdcc0j8XwN/BM97Fl7e3SkTXODSk4VehUv7CGw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.13.1': + resolution: {integrity: sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/parser@6.20.0': - resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/parser@7.14.1': + resolution: {integrity: sha512-8lKUOebNLcR0D7RvlcloOacTOWzOqemWEWkKSVpMZVF/XVcwjPR+3MD08QzbW9TCGJ+DwIc6zUSGZ9vd8cO1IA==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/scope-manager@6.20.0': - resolution: {integrity: sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@7.13.1': + resolution: {integrity: sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/scope-manager@7.14.1': + resolution: {integrity: sha512-gPrFSsoYcsffYXTOZ+hT7fyJr95rdVe4kGVX1ps/dJ+DfmlnjFN/GcMxXcVkeHDKqsq6uAcVaQaIi3cFffmAbA==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/type-utils@7.13.1': + resolution: {integrity: sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@typescript-eslint/type-utils@6.20.0': - resolution: {integrity: sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/type-utils@7.14.1': + resolution: {integrity: sha512-/MzmgNd3nnbDbOi3LfasXWWe292+iuo+umJ0bCCMCPc1jLO/z2BQmWUUUXvXLbrQey/JgzdF/OV+I5bzEGwJkQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/types@6.20.0': - resolution: {integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/types@7.13.1': + resolution: {integrity: sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==} + engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/typescript-estree@6.20.0': - resolution: {integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/types@7.14.1': + resolution: {integrity: sha512-mL7zNEOQybo5R3AavY+Am7KLv8BorIv7HCYS5rKoNZKQD9tsfGUpO4KdAn3sSUvTiS4PQkr2+K0KJbxj8H9NDg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/typescript-estree@7.13.1': + resolution: {integrity: sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@7.14.1': + resolution: {integrity: sha512-k5d0VuxViE2ulIO6FbxxSZaxqDVUyMbXcidC8rHvii0I56XZPv8cq+EhMns+d/EVIL41sMXqRbK3D10Oza1bbA==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/utils@6.20.0': - resolution: {integrity: sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/utils@7.13.1': + resolution: {integrity: sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/utils@7.14.1': + resolution: {integrity: sha512-CMmVVELns3nak3cpJhZosDkm63n+DwBlDX8g0k4QUa9BMnF+lH2lr3d130M1Zt1xxmB3LLk3NV7KQCq86ZBBhQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 + + '@typescript-eslint/visitor-keys@7.13.1': + resolution: {integrity: sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA==} + engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@6.20.0': - resolution: {integrity: sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/visitor-keys@7.14.1': + resolution: {integrity: sha512-Crb+F75U1JAEtBeQGxSKwI60hZmmzaqA3z9sYsVm8X7W5cwLEm5bRe0/uXS6+MR/y8CVpKSR/ontIAIEPFcEkA==} + engines: {node: ^18.18.0 || >=20.0.0} '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -3498,8 +3560,8 @@ packages: peerDependencies: vite: ^4 || ^5 - '@vitejs/plugin-react@4.2.1': - resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} + '@vitejs/plugin-react@4.3.1': + resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 || ^5.0.0 @@ -3682,14 +3744,6 @@ packages: resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} hasBin: true - '@zkochan/retry@0.2.0': - resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==} - engines: {node: '>=10'} - - '@zkochan/rimraf@2.1.3': - resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} - engines: {node: '>=12.10'} - JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -3784,6 +3838,9 @@ packages: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} + ansi-sequence-parser@1.1.1: + resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} + ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -3803,9 +3860,6 @@ packages: ansi-truncate@1.0.1: resolution: {integrity: sha512-azOe4swp0S5fXHD+6AJt6NpjNcGpVZJV21K0zXdOoM4bG3xDmptn3pWXCvHMLP7ARAi5dvY5ltAIFVqUvADlXQ==} - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -3816,9 +3870,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - argv-formatter@1.0.0: - resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} - aria-hidden@1.2.3: resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==} engines: {node: '>=10'} @@ -3832,8 +3883,9 @@ packages: arity-n@1.0.4: resolution: {integrity: sha512-fExL2kFDC1Q2DUOx3whE/9KoN66IzkY4b4zUHUBFM1ojEYjZZYDcUW3bek/ufGionX9giIKDC5redH2IlGqcQQ==} - array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} array-each@1.0.1: resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} @@ -3845,10 +3897,6 @@ packages: array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} - array-last@1.3.0: resolution: {integrity: sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==} engines: {node: '>=0.10.0'} @@ -3861,25 +3909,6 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - - array.prototype.tosorted@1.1.1: - resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} - - arraybuffer.prototype.slice@1.0.1: - resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} - engines: {node: '>= 0.4'} - arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} @@ -3887,12 +3916,6 @@ packages: assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - - asynciterator.prototype@1.0.0: - resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} - asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -3906,20 +3929,13 @@ packages: peerDependencies: postcss: ^8.1.0 - available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} - engines: {node: '>=4'} - axios@1.6.3: resolution: {integrity: sha512-fWyNdeawGam70jXSVlKl+SUNVcL6j6W79CuSIPfi6HnDUmSCH6gyUys/HrqHeA/wU0Az41rRgean494d0Jb+ww==} - axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} - babel-loader@9.1.3: resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} engines: {node: '>= 14.15.0'} @@ -3990,9 +4006,6 @@ packages: resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - bole@5.0.11: - resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==} - bonjour-service@1.2.1: resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} @@ -4167,6 +4180,13 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} @@ -4178,10 +4198,6 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} - commander@12.0.0: - resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==} - engines: {node: '>=18'} - commander@12.1.0: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} @@ -4298,10 +4314,6 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - css-loader@6.10.0: resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} engines: {node: '>= 12.13.0'} @@ -4339,13 +4351,6 @@ packages: current-git-branch@1.1.0: resolution: {integrity: sha512-n5mwGZllLsFzxDPtTmadqGe4IIBPfqPbiIRX4xgFR9VK/Bx47U+94KiVkxSKAKN6/s43TlkztS2GZpgMKzwQ8A==} - damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - - data-uri-to-buffer@3.0.1: - resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} - engines: {node: '>= 6'} - data-urls@5.0.0: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} @@ -4378,6 +4383,15 @@ packages: supports-color: optional: true + debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize-keys@2.0.1: resolution: {integrity: sha512-nrNeSCtU2gV3Apcmn/EZ+aR20zKDuNDStV67jPiupokD3sOAFeMzslLMCFdKv1sPqzwoe5ZUhsSW9IAVgKSL/Q==} engines: {node: '>=14.16'} @@ -4389,8 +4403,8 @@ packages: decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - decode-formdata@0.4.0: - resolution: {integrity: sha512-/OMUlsRLrSgHPOWCwembsFFTT4DY7Ts9GGlwK8v9yeLOyYZSPKIfn/1oOuV9UmpQ9CZi5JeyT8edunRoBOOl5g==} + decode-formdata@0.7.5: + resolution: {integrity: sha512-zwz+xh+Z2R1s2hk14pGiwgVnYiw1UnlsoxHZ5neSXnslgET1weO0dw0d9dLpf1rxAtcvNXo59IMKq5avdaOcvA==} deep-eql@4.1.3: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} @@ -4399,12 +4413,13 @@ packages: deep-equal@2.2.2: resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} - deep-freeze@0.0.1: - resolution: {integrity: sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg==} - deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepmerge-ts@7.0.3: + resolution: {integrity: sha512-dxFbFO2RSIhPNBPL/j8Nvdt6/vrkW9+uGf1NLah/QxBGAVbK9fj2fGTO+HwdHpPAyFAsyT9iEn/1SI9SUvespw==} + engines: {node: '>=16.0.0'} + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -4456,6 +4471,10 @@ packages: resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} engines: {node: '>=0.10.0'} + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} @@ -4477,10 +4496,6 @@ packages: resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} engines: {node: '>=6'} - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -4519,9 +4534,6 @@ packages: resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} engines: {node: '>=12'} - duplexer2@0.1.4: - resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} - duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -4552,10 +4564,6 @@ packages: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} engines: {node: '>= 4'} - encode-registry@3.0.1: - resolution: {integrity: sha512-6qOwkl1g0fv0DN3Y3ggr2EaZXN71aoAqPp3p/pVaWSBSIo+YjLOWN61Fva43oVyQNPf7kgm8lkudzlzojwE2jw==} - engines: {node: '>=10'} - encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -4592,10 +4600,6 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.22.1: - resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} - engines: {node: '>= 0.4'} - es-define-property@1.0.0: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} @@ -4607,23 +4611,9 @@ packages: es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - es-iterator-helpers@1.0.15: - resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} - es-module-lexer@1.4.1: resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} - es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} - - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - esbuild-register@3.5.0: resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} peerDependencies: @@ -4669,15 +4659,6 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-config-next@14.0.4: - resolution: {integrity: sha512-9/xbOHEQOmQtqvQ1UsTQZpnA7SlDMBtuKJ//S4JnoyK3oGLhILKXdBgu/UO7lQo/2xOykQULS1qQ6p2+EpHgAQ==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - eslint-config-prettier@9.1.0: resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true @@ -4687,66 +4668,62 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-import-resolver-typescript@3.6.1: - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} + eslint-plugin-import-x@0.5.1: + resolution: {integrity: sha512-2JK8bbFOLes+gG6tgdnM8safCxMAj4u2wjX8X1BRFPfnY7Ct2hFYESoIcVwABX/DDcdpQFLGtKmzbNEWJZD9iQ==} + engines: {node: '>=16'} peerDependencies: - eslint: '*' - eslint-plugin-import: '*' + eslint: ^8.56.0 || ^9.0.0-0 - eslint-module-utils@2.8.0: - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} - engines: {node: '>=4'} + eslint-plugin-react-core@1.5.16: + resolution: {integrity: sha512-BlBKgmfZ8N70nnEoFHmbuy/AN4eK9g6akBI+yhN2c3nSC0KojL96WKLvhIszV4du6h5ca3/3zjJMnCfQsyQuaQ==} + engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' + eslint: ^8.57.0 || ^9.0.0 + typescript: ^5.3.3 peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: + typescript: optional: true - eslint-plugin-import@2.29.1: - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} + eslint-plugin-react-dom@1.5.16: + resolution: {integrity: sha512-cDH7n8qDkqPoLQ4MChKxwssJyt+JhvkpeZP8SXwkgqAQp4nTvgAfZVTbW7aJ+IxorI4E+sWCVwVJa4HlvL5acQ==} + engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^8.57.0 || ^9.0.0 + typescript: ^5.3.3 peerDependenciesMeta: - '@typescript-eslint/parser': + typescript: optional: true - eslint-plugin-jsx-a11y@6.8.0: - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} - engines: {node: '>=4.0'} + eslint-plugin-react-hooks-extra@1.5.16: + resolution: {integrity: sha512-vgWEfYVqe5iJN0I/Cx1F+nKNn0oy1SXNCPCsIBkCx5xoIXPLA3FijhsyxS/9DEH62np9mlFxsd+KUIPEW5X20A==} + engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^8.57.0 || ^9.0.0 + typescript: ^5.3.3 + peerDependenciesMeta: + typescript: + optional: true - eslint-plugin-react-hooks@4.6.0: - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + eslint-plugin-react-hooks@4.6.2: + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react-refresh@0.4.5: - resolution: {integrity: sha512-D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w==} + eslint-plugin-react-naming-convention@1.5.16: + resolution: {integrity: sha512-7hsdfcQAKnizIM1sIzd3yuqMgA8vlMwnPAGFUe0xL5IZ2nBDYW243kXesuVlHuiMn0Y+iLSOC2CfXm4Pv9ip9Q==} + engines: {bun: '>=1.0.15', node: '>=18.18.0'} peerDependencies: - eslint: '>=7' + eslint: ^8.57.0 || ^9.0.0 + typescript: ^5.3.3 + peerDependenciesMeta: + typescript: + optional: true - eslint-plugin-react@7.33.2: - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} - engines: {node: '>=4'} + eslint-plugin-react-refresh@0.4.7: + resolution: {integrity: sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: '>=7' eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} @@ -4760,8 +4737,8 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true @@ -4857,9 +4834,6 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} @@ -4867,15 +4841,6 @@ packages: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} - fetch-blob@2.1.2: - resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==} - engines: {node: ^10.17.0 || >=12.3.0} - peerDependencies: - domexception: '*' - peerDependenciesMeta: - domexception: - optional: true - figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -4888,9 +4853,6 @@ packages: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} - filter-iterator@0.0.1: - resolution: {integrity: sha512-v4lhL7Qa8XpbW3LN46CEnmhGk3eHZwxfNl5at20aEkreesht4YKb/Ba3BUIbnPhAC/r3dmu7ABaGk6MAvh2alA==} - filter-obj@1.1.0: resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} engines: {node: '>=0.10.0'} @@ -4993,10 +4955,6 @@ packages: fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} @@ -5027,10 +4985,6 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} - engines: {node: '>= 0.4'} - functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} @@ -5072,15 +5026,8 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - - get-tsconfig@4.7.0: - resolution: {integrity: sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==} - - git-log-parser@1.2.0: - resolution: {integrity: sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==} + get-tsconfig@4.7.5: + resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -5098,15 +5045,14 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true - glob@7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} - glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported global-modules@1.0.0: resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} @@ -5124,9 +5070,9 @@ packages: resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} engines: {node: '>=8'} - globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} + globals@15.6.0: + resolution: {integrity: sha512-UzcJi88Hw//CurUIRa9Jxb0vgOCcuD/MNjwmXp633cyaRKkCWACkoqHCtfZv43b1kqXGg/fpOa8bwgacCeXsVg==} + engines: {node: '>=18'} globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -5175,24 +5121,20 @@ packages: has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - - hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} he@1.2.0: @@ -5308,8 +5250,8 @@ packages: resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} image-size@0.5.5: @@ -5343,11 +5285,9 @@ packages: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} - individual@3.0.0: - resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} - inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.3: resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} @@ -5372,8 +5312,8 @@ packages: resolution: {integrity: sha512-vI2w4zl/mDluHt9YEQ/543VTCwPKWiHzKtm9dM2V0NdFcqEexDAjUHzO1oA60HRNaVifGXXM1tRRNluLVHa0Kg==} engines: {node: '>=18'} - internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} interpret@3.1.1: @@ -5406,15 +5346,15 @@ packages: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} - is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -5451,17 +5391,10 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - is-git-repository@1.1.1: resolution: {integrity: sha512-hxLpJytJnIZ5Og5QsxSkzmb8Qx8rGau9bio1JN/QtXcGEFuSsQYau0IiqlsCwftsfVYjF1mOq6uLdmwNSspgpA==} @@ -5486,10 +5419,6 @@ packages: is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} @@ -5540,8 +5469,9 @@ packages: is-set@2.0.2: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} @@ -5567,10 +5497,6 @@ packages: resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} engines: {node: '>=8'} - is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} - is-unc-path@1.0.0: resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} engines: {node: '>=0.10.0'} @@ -5582,9 +5508,6 @@ packages: is-weakmap@2.0.1: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} @@ -5648,9 +5571,6 @@ packages: resolution: {integrity: sha512-hJnEP2Xk4+44DDwJqUQGdXal5VbyeWLaPyDl2AQc242Zr7iqz4DgpQOrEzglWVMGHMDCkguLHEKxd1+rOsmgSQ==} engines: {node: '>=4'} - iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} - jackspeak@2.3.6: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} @@ -5736,13 +5656,6 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -5764,10 +5677,6 @@ packages: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - karma-source-map-support@1.4.0: resolution: {integrity: sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==} @@ -5785,8 +5694,8 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} - knip@4.6.0: - resolution: {integrity: sha512-6slzggzmyAuvtr97nH56ob1RNlkrG2dGF7yn8PJ/LIF8bPsoM93TRNLWTbmuOg4/E1CImilSX4qy9fok0AKJyA==} + knip@5.22.0: + resolution: {integrity: sha512-ijGbuB/622oL/rhg5kPR7U26xebu7czEu50RAxjh66YXkpvXW67Dv9Oz48yBSbGFMEWylX9aOe+NeHJbVe68jw==} engines: {node: '>=18.6.0'} hasBin: true peerDependencies: @@ -5796,13 +5705,6 @@ packages: kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} - - language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} - launch-editor@2.6.1: resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} @@ -5850,10 +5752,6 @@ packages: lit@3.1.2: resolution: {integrity: sha512-VZx5iAyMtX7CV4K8iTLdCkMaYZ7ipjJZ0JcSdJ0zIdGxxyurjIn7yuuSxNBD7QmjvcNJwr0JS4cAdAtsy7gZ6w==} - load-json-file@6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} - engines: {node: '>=8'} - loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} @@ -5929,6 +5827,9 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} + lunr@2.3.9: + resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -5959,10 +5860,6 @@ packages: resolution: {integrity: sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==} engines: {node: ^16.14.0 || >=18.0.0} - map-age-cleaner@0.1.3: - resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} - engines: {node: '>=6'} - map-cache@0.2.2: resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} engines: {node: '>=0.10.0'} @@ -5975,18 +5872,15 @@ packages: resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} engines: {node: '>=8'} + marked@4.3.0: + resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} + engines: {node: '>= 12'} + hasBin: true + media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} - mem@6.1.1: - resolution: {integrity: sha512-Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q==} - engines: {node: '>=8'} - - mem@8.1.1: - resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} - engines: {node: '>=10'} - memfs@3.5.3: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} @@ -6013,6 +5907,9 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} + micro-memoize@4.1.2: + resolution: {integrity: sha512-+HzcV2H+rbSJzApgkj0NdTakkC+bnyeiUxgT6/m7mjcz1CmM22KYFKp+EVj1sWe4UYcnriJr5uqHQD/gMHLD+g==} + micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -6034,10 +5931,6 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - mimic-fn@3.1.0: - resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} - engines: {node: '>=8'} - mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} @@ -6073,6 +5966,10 @@ packages: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} + minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} @@ -6171,11 +6068,6 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - ndjson@2.0.0: - resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} - engines: {node: '>=10'} - hasBin: true - needle@3.3.1: resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} engines: {node: '>= 4.4.x'} @@ -6188,18 +6080,24 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - next@14.0.4: - resolution: {integrity: sha512-qbwypnM7327SadwFtxXnQdGiKpkuhaRLE2uq62/nRul9cj9KhQ5LhHmlziTNqUidZotw/Q1I9OjirBROdUJNgA==} + next@15.0.0-rc.0: + resolution: {integrity: sha512-IWcCvxUSCAuOK5gig4+9yiyt/dLKpIa+WT01Qcx4CBE4TtwJljyTDnCVVn64jDZ4qmSzsaEYXpb4DTI8qbk03A==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - react: ^18.2.0 - react-dom: ^18.2.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: 19.0.0-rc-f994737d14-20240522 + react-dom: 19.0.0-rc-f994737d14-20240522 sass: ^1.3.0 peerDependenciesMeta: '@opentelemetry/api': optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true sass: optional: true @@ -6223,10 +6121,6 @@ packages: node-addon-api@3.2.1: resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} - node-fetch@3.0.0-beta.9: - resolution: {integrity: sha512-RdbZCEynH2tH46+tj0ua9caUHVWrd/RHnRfvly2EVdqGmI3ndS1Vn/xjm5KuGejDt2RNDQsVRLPNd2QPwcewVg==} - engines: {node: ^10.17 || >=12.3} - node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} @@ -6351,8 +6245,9 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} object-is@1.1.5: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} @@ -6369,36 +6264,18 @@ packages: resolution: {integrity: sha512-+8hwcz/JnQ9EpLIXzN0Rs7DLsBpJNT/xYehtB/jU93tHYr5BFEO8E+JGQNOSqE7opVzz5cGksKFHt7uUJVLSjQ==} engines: {node: '>=0.10.0'} - object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} object.defaults@1.1.0: resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} engines: {node: '>=0.10.0'} - object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} - engines: {node: '>= 0.4'} - - object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} - - object.hasown@1.1.2: - resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} - object.pick@1.3.0: resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} engines: {node: '>=0.10.0'} - object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} - obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} @@ -6441,10 +6318,6 @@ packages: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} - p-defer@1.0.0: - resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} - engines: {node: '>=4'} - p-finally@1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -6481,10 +6354,6 @@ packages: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} - p-memoize@4.0.1: - resolution: {integrity: sha512-km0sP12uE0dOZ5qP+s7kGVf07QngxyG0gS8sYFvFWhqlgzOsSy+m71aUejf/0akxj5W7gE//2G74qTv6b4iMog==} - engines: {node: '>=10'} - p-retry@4.6.2: resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} engines: {node: '>=8'} @@ -6518,10 +6387,6 @@ packages: resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} engines: {node: '>= 0.10'} - parse-npm-tarball-url@3.0.0: - resolution: {integrity: sha512-InpdgIdNe5xWMEUcrVQUniQKwnggBtJ7+SCwh7zQAZwbbIYZV9XdgJyhtmDSSvykFyQXoe4BINnzKTfCwWLs5g==} - engines: {node: '>=8.15'} - parse-passwd@1.0.0: resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} engines: {node: '>=0.10.0'} @@ -6581,10 +6446,6 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} - path-temp@2.1.0: - resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} - engines: {node: '>=8.15'} - path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} @@ -6598,9 +6459,6 @@ packages: pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} @@ -6633,6 +6491,10 @@ packages: pkg-types@1.0.3: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + postcss-js@4.0.1: resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} @@ -6827,10 +6689,15 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} - react-dom@18.2.0: - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: - react: ^18.2.0 + react: ^18.3.1 + + react-dom@19.0.0-rc-6d3110b4d9-20240531: + resolution: {integrity: sha512-+dPxMs8RKrvt+rqc+yXLxjUV8D4WyrsvhlKrIm+Sfcek3t+tQfp0L9nHqiFrYnWmr2QGUijAZr18JK6GMHkYAw==} + peerDependencies: + react: 19.0.0-rc-6d3110b4d9-20240531 react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -6847,8 +6714,8 @@ packages: react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} react-remove-scroll-bar@2.3.4: @@ -6893,8 +6760,12 @@ packages: react: '>=16.6.0' react-dom: '>=16.6.0' - react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + react@19.0.0-rc-6d3110b4d9-20240531: + resolution: {integrity: sha512-PeNhsJDvPc12kjbohywr1Mgl3J53LzbUTTpE5A5uqQxlA/ZcXs2ErZvBndiYBT3jqqgnqCcGIdvvZ8A0r0FsAQ==} engines: {node: '>=0.10.0'} read-package-json-fast@3.0.2: @@ -6904,6 +6775,7 @@ packages: read-package-json@7.0.0: resolution: {integrity: sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==} engines: {node: ^16.14.0 || >=18.0.0} + deprecated: This package is no longer supported. Please use @npmcli/package-json instead. read-pkg-up@9.1.0: resolution: {integrity: sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==} @@ -6940,10 +6812,6 @@ packages: resolution: {integrity: sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==} deprecated: This version has a critical bug in fallback handling. Please upgrade to reflect-metadata@0.2.2 or newer. - reflect.getprototypeof@1.0.4: - resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} - engines: {node: '>= 0.4'} - regenerate-unicode-properties@10.1.1: resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} engines: {node: '>=4'} @@ -6960,8 +6828,8 @@ packages: regex-parser@2.3.0: resolution: {integrity: sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==} - regexp.prototype.flags@1.5.0: - resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} regexpu-core@5.3.2: @@ -6972,21 +6840,6 @@ packages: resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} hasBin: true - rehackt@0.0.3: - resolution: {integrity: sha512-aBRHudKhOWwsTvCbSoinzq+Lej/7R8e8UoPvLZo5HirZIIBLGAgdG7SL9QpdcBoQ7+3QYPi3lRLknAzXBlhZ7g==} - peerDependencies: - '@types/react': '*' - react: '*' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - - rename-overwrite@5.0.0: - resolution: {integrity: sha512-vSxE5Ww7Jnyotvaxi3Dj0vOMoojH8KMkBfs9xYeW/qNfJiLTcC1fmwTjrbGUq3mQSOCxkG0DbdcvwTUrpvBN4w==} - engines: {node: '>=12.10'} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -7024,10 +6877,6 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true - resolve@2.0.0-next.4: - resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} - hasBin: true - restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -7049,6 +6898,7 @@ packages: rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@5.0.5: @@ -7066,11 +6916,6 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rollup@4.9.2: - resolution: {integrity: sha512-66RB8OtFKUTozmVEh3qyNfH+b+z2RXBVloqO2KCC/pjFaGaHtxP9fVfOQKPSGXg2mElmjmxjW/fZ7iKrEpMH5Q==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - rrweb-cssom@0.6.0: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} @@ -7088,19 +6933,12 @@ packages: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} - safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} - engines: {node: '>=0.4'} - safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -7142,8 +6980,11 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + scheduler@0.25.0-rc-6d3110b4d9-20240531: + resolution: {integrity: sha512-DQp/XrKAuIFX153kxp1yVa8dLuGRcm/z8RAGLLEv97iEMrFlwyOXx+AIvPk3jLrX1Y68oDyNBfXh3Su7LDGcOg==} schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} @@ -7206,8 +7047,8 @@ packages: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} - set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} setprototypeof@1.1.0: @@ -7220,6 +7061,10 @@ packages: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} + sharp@0.33.4: + resolution: {integrity: sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==} + engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0} + shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -7276,8 +7121,16 @@ packages: resolution: {integrity: sha512-L2tNE60i5gRNe5eFNSjUAqt2rCIbKj9jp/50zCfsw8bSBX6noHamR7FDhaecyrNBk6ZgGEEAjxGe4C6iqelwZw==} hasBin: true - side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + shiki@0.14.7: + resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} + + short-unique-id@5.2.0: + resolution: {integrity: sha512-cMGfwNyfDZ/nzJ2k2M+ClthBIh//GlZl1JEf47Uoa9XR11bz8Pa2T2wQO4bVrRdH48LrIDWJahQziKo3MjhsWg==} + hasBin: true + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -7293,6 +7146,12 @@ packages: resolution: {integrity: sha512-2A3WvXkQurhuMgORgT60r6pOWiCOO5LlEqY2ADxGBDGVYLSo5HN0uLtb68YpVpuL/Vi8mLTe7+0Dx2Fq8lLqEg==} engines: {node: ^16.14.0 || >=18.0.0} + simple-git@3.25.0: + resolution: {integrity: sha512-KIY5sBnzc4yEcJXW7Tdv4viEz8KyG+nU0hay+DWZasvdFOYKeUZ6Xc25LUHHjw0tinPT7O1eY6pzX7pRT1K8rw==} + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -7328,10 +7187,6 @@ packages: peerDependencies: solid-js: ^1.3 - source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} @@ -7357,9 +7212,6 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} - spawn-error-forwarder@1.0.0: - resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==} - spdx-correct@3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} @@ -7382,12 +7234,6 @@ packages: specialist@1.4.0: resolution: {integrity: sha512-RO76zlzjdw4acNYH2oiDqmSc3jQTymiJapNI6w47XB1iOKOaWIYA+eZ07b8pCPCsHZPwNdxHTJihS0LHFelFOA==} - split2@1.0.0: - resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} - - split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} @@ -7423,12 +7269,6 @@ packages: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} - stream-combiner2@1.1.1: - resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} - - stream-to-array@2.3.0: - resolution: {integrity: sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==} - streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} @@ -7437,6 +7277,9 @@ packages: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} + string-ts@2.1.1: + resolution: {integrity: sha512-BtSlY8ttfj+veJuirU5uOP7pxqIuGQHzPSNZS7Kj3orT8250GBijUYp0K5ZV+s5OREMsC1TLaSVB75kyeBYZyw==} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -7448,19 +7291,6 @@ packages: string.fromcodepoint@0.2.1: resolution: {integrity: sha512-n69H31OnxSGSZyZbgBlvYIXlrMhJQ0dQAX1js1QDhpaUH6zmU3QYlj07bCwCNlPOu3oRXIubGPl2gDGnHsiCqg==} - string.prototype.matchall@4.0.8: - resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} - - string.prototype.trim@1.2.7: - resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} - - string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} - string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -7479,10 +7309,6 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - strip-eof@1.0.0: resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} engines: {node: '>=0.10.0'} @@ -7522,13 +7348,13 @@ packages: stubborn-fs@1.2.5: resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==} - styled-jsx@5.1.1: - resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + styled-jsx@5.1.3: + resolution: {integrity: sha512-qLRShOWTE/Mf6Bvl72kFeKBl8N2Eq9WIFfoAuvbtP/6tqlnj1SCjv117n2MIjOPpa1jTorYqLJgsHKy5Y3ziww==} engines: {node: '>= 12.0.0'} peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' peerDependenciesMeta: '@babel/core': optional: true @@ -7617,12 +7443,6 @@ packages: text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - - through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} @@ -7719,9 +7539,6 @@ packages: resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} engines: {node: '>=18'} - traverse@0.6.6: - resolution: {integrity: sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==} - tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -7730,15 +7547,18 @@ packages: resolution: {integrity: sha512-kstfs+hgwmdsOadN3KgA+C68wPJwnZq4DN6WMDCvZapDWEF34W2TyPKN2v2+BJnZgIz5QOfxFeldLyYvdgRAwg==} engines: {node: '>=14.16'} - ts-api-utils@1.0.2: - resolution: {integrity: sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==} - engines: {node: '>=16.13.0'} + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' ts-morph@21.0.1: resolution: {integrity: sha512-dbDtVdEAncKctzrVZ+Nr7kHpHkv+0JDJb2MjjpBaj8bFeCkePU9rHfMklmhuLFnpeq/EJZk2IhStY6NzqgjOkg==} + ts-pattern@5.2.0: + resolution: {integrity: sha512-aGaSpOlDcns7ZoeG/OMftWyQG1KqPVhgplhJxNCvyIXqWrumM5uIoOSarw/hmmi/T1PnuQ/uD8NaFHvLpHicDg==} + tsconfck@3.0.3: resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} engines: {node: ^18 || >=20} @@ -7749,9 +7569,6 @@ packages: typescript: optional: true - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} @@ -7779,10 +7596,6 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} @@ -7795,23 +7608,36 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} + typed-assert@1.0.9: + resolution: {integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==} - typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} + typedoc-plugin-markdown@4.0.3: + resolution: {integrity: sha512-0tZbeVGGCd4+lpoIX+yHWgUfyaLZCQCgJOpuVdTtOtD3+jKaedJ4sl/tkNaYBPeWVKiyDkSHfGuHkq53jlzIFg==} + peerDependencies: + typedoc: 0.25.x - typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} + typedoc@0.25.13: + resolution: {integrity: sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==} + engines: {node: '>= 16'} + hasBin: true + peerDependencies: + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x - typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + types-react-dom@19.0.0-rc.1: + resolution: {integrity: sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ==} - typed-assert@1.0.9: - resolution: {integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==} + types-react@19.0.0-rc.1: + resolution: {integrity: sha512-RshndUfqTW6K3STLPis8BtAYCGOkMbtvYsi90gmVNDZBXUyUc5juf2PE9LfS/JmOlUIRO8cWTS/1MTnmhjDqyQ==} + + typescript-eslint@7.14.1: + resolution: {integrity: sha512-Eo1X+Y0JgGPspcANKjeR6nIqXl4VL5ldXLc15k4m9upq+eY5fhU2IueiEZL6jmHrKH8aCfbIvM/v3IrX5Hg99w==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} @@ -7846,9 +7672,6 @@ packages: ufo@1.3.0: resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - unc-path-regex@0.1.2: resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} engines: {node: '>=0.10.0'} @@ -7887,10 +7710,6 @@ packages: resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} - universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} @@ -7982,8 +7801,11 @@ packages: resolution: {integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==} engines: {node: '>= 10.13.0'} - valibot@0.31.1: - resolution: {integrity: sha512-2YYIhPrnVSz/gfT2/iXVTrSj92HwchCt9Cga/6hX4B26iCz9zkIsGTS0HjDYTZfTi1Un0X6aRvhBi1cfqs/i0Q==} + valibot@0.32.0: + resolution: {integrity: sha512-FXBnJl4bNOmeg7lQv+jfvo/wADsRBN8e9C3r+O77Re3dEnDma8opp7p4hcIbF7XJJ30h/5SVohdjer17/sHOsQ==} + + valibot@0.35.0: + resolution: {integrity: sha512-+i2aCRkReTrd5KBN/dW2BrPOvFnU5LXTV2xjZnjnqUIO8YUx6P2+MgRrkwF2FhkexgyKq/NIZdPdknhHf5A/Ww==} validate-html-nesting@1.2.2: resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==} @@ -7991,10 +7813,6 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - validate-npm-package-name@4.0.0: - resolution: {integrity: sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - validate-npm-package-name@5.0.0: resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -8007,10 +7825,6 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - version-selector-type@3.0.0: - resolution: {integrity: sha512-PSvMIZS7C1MuVNBXl/CDG2pZq8EXy/NW2dHIdm3bVP5N0PC8utDK8ttXLXj44Gn3J0lQE3U7Mpm1estAOd+eiA==} - engines: {node: '>=10.13'} - vite-node@1.3.1: resolution: {integrity: sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==} engines: {node: ^18.0.0 || >=20.0.0} @@ -8141,6 +7955,12 @@ packages: vlq@0.2.3: resolution: {integrity: sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==} + vscode-oniguruma@1.7.0: + resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} + + vscode-textmate@8.0.0: + resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + vue-component-type-helpers@1.8.4: resolution: {integrity: sha512-6bnLkn8O0JJyiFSIF0EfCogzeqNXpnjJ0vW/SZzNHfe6sPx30lTtTXlE5TFs2qhJlAtDFybStVNpL73cPe3OMQ==} @@ -8276,15 +8096,11 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} - which-collection@1.0.1: resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} - which-typed-array@1.1.11: - resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} which@1.3.1: @@ -8346,10 +8162,6 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -8394,8 +8206,8 @@ packages: zeptomatch@1.2.2: resolution: {integrity: sha512-0ETdzEO0hdYmT8aXHHf5aMjpX+FHFE61sG4qKFAoJD2Umt3TWdCmH7ADxn2oUiWTlqBGC+SGr8sYMfr+37J8pQ==} - zod-validation-error@3.0.0: - resolution: {integrity: sha512-x+agsJJG9rvC7axF0xqTEdZhJkLHyIZkdOAWDJSmwGPzxNHMHwtU6w2yDOAAP6yuSfTAUhAMJRBfhVGY64ySEQ==} + zod-validation-error@3.3.0: + resolution: {integrity: sha512-Syib9oumw1NTqEv4LT0e6U83Td9aVRk9iTXPUQr1otyV1PuXQKOvOwhMNqZIq5hluzHP2pMgnOmHEo7kPdI2mw==} engines: {node: '>=18.0.0'} peerDependencies: zod: ^3.18.0 @@ -8493,7 +8305,7 @@ snapshots: watchpack: 2.4.0 webpack: 5.90.3(@swc/core@1.4.6)(esbuild@0.20.2) webpack-dev-middleware: 6.1.1(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)) - webpack-dev-server: 4.15.1(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)) + webpack-dev-server: 4.15.1(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.2)) webpack-merge: 5.10.0 webpack-subresource-integrity: 5.1.0(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)) optionalDependencies: @@ -8582,7 +8394,7 @@ snapshots: watchpack: 2.4.0 webpack: 5.90.3(@swc/core@1.4.6)(esbuild@0.20.2) webpack-dev-middleware: 6.1.1(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)) - webpack-dev-server: 4.15.1(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)) + webpack-dev-server: 4.15.1(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.2)) webpack-merge: 5.10.0 webpack-subresource-integrity: 5.1.0(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)) optionalDependencies: @@ -8612,7 +8424,7 @@ snapshots: '@angular-devkit/architect': 0.1703.0(chokidar@3.6.0) rxjs: 7.8.1 webpack: 5.90.3(@swc/core@1.4.6)(esbuild@0.20.2) - webpack-dev-server: 4.15.1(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)) + webpack-dev-server: 4.15.1(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.2)) transitivePeerDependencies: - chokidar @@ -8681,7 +8493,7 @@ snapshots: chokidar: 3.6.0 convert-source-map: 1.9.0 reflect-metadata: 0.2.1 - semver: 7.6.0 + semver: 7.6.2 tslib: 2.6.2 typescript: 5.4.2 yargs: 17.7.2 @@ -8732,25 +8544,25 @@ snapshots: rxjs: 7.8.1 tslib: 2.6.2 - '@babel/code-frame@7.23.5': + '@babel/code-frame@7.24.7': dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 - '@babel/compat-data@7.23.5': {} + '@babel/compat-data@7.24.7': {} '@babel/core@7.23.9': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helpers': 7.24.0 - '@babel/parser': 7.24.0 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 - '@babel/types': 7.24.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.23.9) + '@babel/helpers': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -8762,15 +8574,35 @@ snapshots: '@babel/core@7.24.0': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helpers': 7.24.0 - '@babel/parser': 7.24.0 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 - '@babel/types': 7.24.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.0) + '@babel/helpers': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/core@7.24.7': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helpers': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -8781,23 +8613,30 @@ snapshots: '@babel/generator@7.23.6': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + '@babel/generator@7.24.7': + dependencies: + '@babel/types': 7.24.7 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 '@babel/helper-annotate-as-pure@7.22.5': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 - '@babel/helper-compilation-targets@7.23.6': + '@babel/helper-compilation-targets@7.24.7': dependencies: - '@babel/compat-data': 7.23.5 - '@babel/helper-validator-option': 7.23.5 + '@babel/compat-data': 7.24.7 + '@babel/helper-validator-option': 7.24.7 browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 @@ -8806,13 +8645,13 @@ snapshots: dependencies: '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-split-export-declaration': 7.24.7 semver: 6.3.1 '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.0)': @@ -8825,8 +8664,8 @@ snapshots: '@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.8 @@ -8836,134 +8675,159 @@ snapshots: '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: - supports-color - '@babel/helper-environment-visitor@7.22.20': {} + '@babel/helper-environment-visitor@7.24.7': + dependencies: + '@babel/types': 7.24.7 - '@babel/helper-function-name@7.23.0': + '@babel/helper-function-name@7.24.7': dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 - '@babel/helper-hoist-variables@7.22.5': + '@babel/helper-hoist-variables@7.24.7': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 '@babel/helper-member-expression-to-functions@7.23.0': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 '@babel/helper-module-imports@7.18.6': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 - '@babel/helper-module-imports@7.22.15': + '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/types': 7.24.0 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9)': + '@babel/helper-module-transforms@7.24.7(@babel/core@7.23.9)': dependencies: '@babel/core': 7.23.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0)': + '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/helper-optimise-call-expression@7.22.5': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 - '@babel/helper-plugin-utils@7.24.0': {} + '@babel/helper-plugin-utils@7.24.7': {} '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-wrap-function': 7.22.20 '@babel/helper-replace-supers@7.22.20(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-simple-access@7.22.5': + '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/types': 7.24.0 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.22.5': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 '@babel/helper-split-export-declaration@7.22.6': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 - '@babel/helper-string-parser@7.23.4': {} + '@babel/helper-split-export-declaration@7.24.7': + dependencies: + '@babel/types': 7.24.7 + + '@babel/helper-string-parser@7.24.7': {} - '@babel/helper-validator-identifier@7.22.20': {} + '@babel/helper-validator-identifier@7.24.7': {} - '@babel/helper-validator-option@7.23.5': {} + '@babel/helper-validator-option@7.24.7': {} '@babel/helper-wrap-function@7.22.20': dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/helper-function-name': 7.24.7 + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 - '@babel/helpers@7.24.0': + '@babel/helpers@7.24.7': dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 - '@babel/types': 7.24.0 - transitivePeerDependencies: - - supports-color + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 - '@babel/highlight@7.23.4': + '@babel/highlight@7.24.7': dependencies: - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 + picocolors: 1.0.1 - '@babel/parser@7.24.0': + '@babel/parser@7.24.7': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0) '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0)': dependencies: @@ -8972,357 +8836,367 @@ snapshots: '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.0)': + '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) '@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0) '@babel/plugin-transform-classes@7.23.8(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) - '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-split-export-declaration': 7.24.7 globals: 11.12.0 '@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/template': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/template': 7.24.7 '@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) '@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0) '@babel/plugin-transform-for-of@7.23.6(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-function-name@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) '@babel/plugin-transform-literals@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) '@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-simple-access': 7.22.5 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-new-target@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) '@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) '@babel/plugin-transform-object-rest-spread@7.24.0(@babel/core@7.24.0)': dependencies: - '@babel/compat-data': 7.23.5 + '@babel/compat-data': 7.24.7 '@babel/core': 7.24.0 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0) '@babel/plugin-transform-object-super@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) '@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) '@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) '@babel/plugin-transform-parameters@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0) '@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.24.0)': + '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.24.0)': + '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 regenerator-transform: 0.15.2 '@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-runtime@7.24.0(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.0) babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.24.0) babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.24.0) @@ -9333,59 +9207,59 @@ snapshots: '@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-spread@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@babel/preset-env@7.24.0(@babel/core@7.24.0)': dependencies: - '@babel/compat-data': 7.23.5 + '@babel/compat-data': 7.24.7 '@babel/core': 7.24.0 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-option': 7.24.7 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.24.0) '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.24.0) '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.24.0) @@ -9468,8 +9342,8 @@ snapshots: '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/types': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/types': 7.24.7 esutils: 2.0.3 '@babel/regjsgen@0.8.0': {} @@ -9478,31 +9352,31 @@ snapshots: dependencies: regenerator-runtime: 0.14.0 - '@babel/template@7.24.0': + '@babel/template@7.24.7': dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 - '@babel/traverse@7.24.0': + '@babel/traverse@7.24.7': dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.24.0': + '@babel/types@7.24.7': dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-string-parser': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 '@commitlint/parse@19.0.3': @@ -9518,9 +9392,14 @@ snapshots: '@discoveryjs/json-ext@0.5.7': {} + '@emnapi/runtime@1.2.0': + dependencies: + tslib: 2.6.2 + optional: true + '@emotion/babel-plugin@11.11.0': dependencies: - '@babel/helper-module-imports': 7.22.15 + '@babel/helper-module-imports': 7.24.7 '@babel/runtime': 7.24.0 '@emotion/hash': 0.9.1 '@emotion/memoize': 0.8.1 @@ -9531,6 +9410,8 @@ snapshots: find-root: 1.1.0 source-map: 0.5.7 stylis: 4.2.0 + transitivePeerDependencies: + - supports-color '@emotion/cache@11.11.0': dependencies: @@ -9548,19 +9429,21 @@ snapshots: '@emotion/memoize@0.8.1': {} - '@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0)': + '@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.0 '@emotion/babel-plugin': 11.11.0 '@emotion/cache': 11.11.0 '@emotion/serialize': 1.1.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1) '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 hoist-non-react-statics: 3.3.2 - react: 18.2.0 + react: 18.3.1 optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 + transitivePeerDependencies: + - supports-color '@emotion/serialize@1.1.3': dependencies: @@ -9572,36 +9455,36 @@ snapshots: '@emotion/sheet@1.2.2': {} - '@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0)': + '@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.0 '@emotion/babel-plugin': 11.11.0 '@emotion/is-prop-valid': 1.2.1 - '@emotion/react': 11.11.3(@types/react@18.2.79)(react@18.2.0) + '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) '@emotion/serialize': 1.1.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1) '@emotion/utils': 1.2.1 - react: 18.2.0 + react: 18.3.1 optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 + transitivePeerDependencies: + - supports-color '@emotion/unitless@0.8.1': {} - '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0)': + '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.3.1)': dependencies: - react: 18.2.0 + react: 18.3.1 '@emotion/utils@1.2.1': {} '@emotion/weak-memoize@0.3.1': {} - '@ericcornelissen/bash-parser@0.5.2': + '@ericcornelissen/bash-parser@0.5.3': dependencies: array-last: 1.3.0 babylon: 6.18.0 compose-function: 3.0.3 - deep-freeze: 0.0.1 - filter-iterator: 0.0.1 filter-obj: 1.1.0 has-own-property: 0.1.0 identity-function: 1.0.0 @@ -9824,28 +9707,137 @@ snapshots: '@esbuild/win32-x64@0.20.2': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.56.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: - eslint: 8.56.0 + eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.8.0': {} + '@eslint-community/regexpp@4.10.1': {} - '@eslint/eslintrc@2.1.4': + '@eslint-react/ast@1.5.16(eslint@8.57.0)(typescript@5.4.2)': dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.21.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-react/tools': 1.5.16 + '@eslint-react/types': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.13.1 + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + string-ts: 2.1.1 + ts-pattern: 5.2.0 transitivePeerDependencies: + - eslint - supports-color + - typescript + + '@eslint-react/core@1.5.16(eslint@8.57.0)(typescript@5.4.2)': + dependencies: + '@eslint-react/ast': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/jsx': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/shared': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/tools': 1.5.16 + '@eslint-react/types': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/var': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.13.1 + '@typescript-eslint/type-utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + short-unique-id: 5.2.0 + ts-pattern: 5.2.0 + valibot: 0.32.0 + transitivePeerDependencies: + - eslint + - supports-color + - typescript + + '@eslint-react/eslint-plugin@1.5.16(eslint@8.57.0)(typescript@5.4.2)': + dependencies: + '@eslint-react/shared': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/tools': 1.5.16 + '@eslint-react/types': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.13.1 + '@typescript-eslint/type-utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + eslint: 8.57.0 + eslint-plugin-react-core: 1.5.16(eslint@8.57.0)(typescript@5.4.2) + eslint-plugin-react-dom: 1.5.16(eslint@8.57.0)(typescript@5.4.2) + eslint-plugin-react-hooks-extra: 1.5.16(eslint@8.57.0)(typescript@5.4.2) + eslint-plugin-react-naming-convention: 1.5.16(eslint@8.57.0)(typescript@5.4.2) + optionalDependencies: + typescript: 5.4.2 + transitivePeerDependencies: + - supports-color + + '@eslint-react/jsx@1.5.16(eslint@8.57.0)(typescript@5.4.2)': + dependencies: + '@eslint-react/ast': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/shared': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/tools': 1.5.16 + '@eslint-react/types': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/var': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.13.1 + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + micro-memoize: 4.1.2 + ts-pattern: 5.2.0 + transitivePeerDependencies: + - eslint + - supports-color + - typescript + + '@eslint-react/shared@1.5.16(eslint@8.57.0)(typescript@5.4.2)': + dependencies: + '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + deepmerge-ts: 7.0.3 + transitivePeerDependencies: + - eslint + - supports-color + - typescript - '@eslint/js@8.56.0': {} + '@eslint-react/tools@1.5.16': {} + + '@eslint-react/types@1.5.16(eslint@8.57.0)(typescript@5.4.2)': + dependencies: + '@eslint-react/tools': 1.5.16 + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + transitivePeerDependencies: + - eslint + - supports-color + - typescript + + '@eslint-react/var@1.5.16(eslint@8.57.0)(typescript@5.4.2)': + dependencies: + '@eslint-react/ast': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/tools': 1.5.16 + '@eslint-react/types': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.13.1 + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + string-ts: 2.1.1 + valibot: 0.32.0 + transitivePeerDependencies: + - eslint + - supports-color + - typescript + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.21.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.0': {} + + '@eslint/js@9.5.0': {} '@floating-ui/core@1.5.3': dependencies: @@ -9856,25 +9848,25 @@ snapshots: '@floating-ui/core': 1.5.3 '@floating-ui/utils': 0.2.1 - '@floating-ui/react-dom@2.0.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@floating-ui/react-dom@2.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/dom': 1.5.4 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@floating-ui/react@0.24.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@floating-ui/react@0.24.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/react-dom': 2.0.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@floating-ui/react-dom': 2.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) aria-hidden: 1.2.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) tabbable: 6.2.0 '@floating-ui/utils@0.2.1': {} - '@humanwhocodes/config-array@0.11.13': + '@humanwhocodes/config-array@0.11.14': dependencies: - '@humanwhocodes/object-schema': 2.0.1 + '@humanwhocodes/object-schema': 2.0.3 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -9882,10 +9874,85 @@ snapshots: '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.1': {} + '@humanwhocodes/object-schema@2.0.3': {} '@iarna/toml@2.2.5': {} + '@img/sharp-darwin-arm64@0.33.4': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.2 + optional: true + + '@img/sharp-darwin-x64@0.33.4': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.2 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.2': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.2': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.2': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.2': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.2': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.2': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.2': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.2': + optional: true + + '@img/sharp-linux-arm64@0.33.4': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.2 + optional: true + + '@img/sharp-linux-arm@0.33.4': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.2 + optional: true + + '@img/sharp-linux-s390x@0.33.4': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.2 + optional: true + + '@img/sharp-linux-x64@0.33.4': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.2 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.4': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.4': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.2 + optional: true + + '@img/sharp-wasm32@0.33.4': + dependencies: + '@emnapi/runtime': 1.2.0 + optional: true + + '@img/sharp-win32-ia32@0.33.4': + optional: true + + '@img/sharp-win32-x64@0.33.4': + optional: true + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -9931,6 +9998,14 @@ snapshots: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + '@kwsites/file-exists@1.1.1': + dependencies: + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + + '@kwsites/promise-deferred@1.1.1': {} + '@leichtgewicht/ip-codec@2.0.4': {} '@lit-labs/ssr-dom-shim@1.2.0': {} @@ -9943,23 +10018,23 @@ snapshots: dependencies: call-bind: 1.0.7 - '@mantine/core@7.3.2(@mantine/hooks@7.3.2(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@mantine/core@7.3.2(@mantine/hooks@7.3.2(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/react': 0.24.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@mantine/hooks': 7.3.2(react@18.2.0) + '@floating-ui/react': 0.24.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/hooks': 7.3.2(react@18.3.1) clsx: 2.0.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-number-format: 5.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react-remove-scroll: 2.5.7(@types/react@18.2.79)(react@18.2.0) - react-textarea-autosize: 8.5.3(@types/react@18.2.79)(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-number-format: 5.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-remove-scroll: 2.5.7(@types/react@18.3.3)(react@18.3.1) + react-textarea-autosize: 8.5.3(@types/react@18.3.3)(react@18.3.1) type-fest: 3.13.1 transitivePeerDependencies: - '@types/react' - '@mantine/hooks@7.3.2(react@18.2.0)': + '@mantine/hooks@7.3.2(react@18.3.1)': dependencies: - react: 18.2.0 + react: 18.3.1 '@material/web@1.3.0': dependencies: @@ -10001,124 +10076,120 @@ snapshots: '@microsoft/tsdoc@0.14.2': {} - '@mui/base@5.0.0-beta.29(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@mui/base@5.0.0-beta.29(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.0 - '@floating-ui/react-dom': 2.0.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@mui/types': 7.2.12(@types/react@18.2.79) - '@mui/utils': 5.15.3(@types/react@18.2.79)(react@18.2.0) + '@floating-ui/react-dom': 2.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.12(@types/react@18.3.3) + '@mui/utils': 5.15.3(@types/react@18.3.3)(react@18.3.1) '@popperjs/core': 2.11.8 clsx: 2.1.0 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 '@mui/core-downloads-tracker@5.15.3': {} - '@mui/material@5.15.2(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@mui/material@5.15.2(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.0 - '@mui/base': 5.0.0-beta.29(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mui/base': 5.0.0-beta.29(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/core-downloads-tracker': 5.15.3 - '@mui/system': 5.15.3(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0) - '@mui/types': 7.2.12(@types/react@18.2.79) - '@mui/utils': 5.15.3(@types/react@18.2.79)(react@18.2.0) + '@mui/system': 5.15.3(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@mui/types': 7.2.12(@types/react@18.3.3) + '@mui/utils': 5.15.3(@types/react@18.3.3)(react@18.3.1) '@types/react-transition-group': 4.4.10 clsx: 2.1.0 csstype: 3.1.2 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) react-is: 18.2.0 - react-transition-group: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) optionalDependencies: - '@emotion/react': 11.11.3(@types/react@18.2.79)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 + '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.11.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 - '@mui/private-theming@5.15.3(@types/react@18.2.79)(react@18.2.0)': + '@mui/private-theming@5.15.3(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.0 - '@mui/utils': 5.15.3(@types/react@18.2.79)(react@18.2.0) + '@mui/utils': 5.15.3(@types/react@18.3.3)(react@18.3.1) prop-types: 15.8.1 - react: 18.2.0 + react: 18.3.1 optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - '@mui/styled-engine@5.15.3(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(react@18.2.0)': + '@mui/styled-engine@5.15.3(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.0 '@emotion/cache': 11.11.0 csstype: 3.1.2 prop-types: 15.8.1 - react: 18.2.0 + react: 18.3.1 optionalDependencies: - '@emotion/react': 11.11.3(@types/react@18.2.79)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0) + '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.11.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) - '@mui/system@5.15.3(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0)': + '@mui/system@5.15.3(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.0 - '@mui/private-theming': 5.15.3(@types/react@18.2.79)(react@18.2.0) - '@mui/styled-engine': 5.15.3(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(react@18.2.0) - '@mui/types': 7.2.12(@types/react@18.2.79) - '@mui/utils': 5.15.3(@types/react@18.2.79)(react@18.2.0) + '@mui/private-theming': 5.15.3(@types/react@18.3.3)(react@18.3.1) + '@mui/styled-engine': 5.15.3(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.12(@types/react@18.3.3) + '@mui/utils': 5.15.3(@types/react@18.3.3)(react@18.3.1) clsx: 2.1.0 csstype: 3.1.2 prop-types: 15.8.1 - react: 18.2.0 + react: 18.3.1 optionalDependencies: - '@emotion/react': 11.11.3(@types/react@18.2.79)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.3(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 + '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.11.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 - '@mui/types@7.2.12(@types/react@18.2.79)': + '@mui/types@7.2.12(@types/react@18.3.3)': optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - '@mui/utils@5.15.3(@types/react@18.2.79)(react@18.2.0)': + '@mui/utils@5.15.3(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.0 '@types/prop-types': 15.7.11 prop-types: 15.8.1 - react: 18.2.0 + react: 18.3.1 react-is: 18.2.0 optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - '@next/env@14.0.4': {} + '@next/env@15.0.0-rc.0': {} - '@next/eslint-plugin-next@14.0.4': - dependencies: - glob: 7.1.7 - - '@next/swc-darwin-arm64@14.0.4': + '@next/swc-darwin-arm64@15.0.0-rc.0': optional: true - '@next/swc-darwin-x64@14.0.4': + '@next/swc-darwin-x64@15.0.0-rc.0': optional: true - '@next/swc-linux-arm64-gnu@14.0.4': + '@next/swc-linux-arm64-gnu@15.0.0-rc.0': optional: true - '@next/swc-linux-arm64-musl@14.0.4': + '@next/swc-linux-arm64-musl@15.0.0-rc.0': optional: true - '@next/swc-linux-x64-gnu@14.0.4': + '@next/swc-linux-x64-gnu@15.0.0-rc.0': optional: true - '@next/swc-linux-x64-musl@14.0.4': + '@next/swc-linux-x64-musl@15.0.0-rc.0': optional: true - '@next/swc-win32-arm64-msvc@14.0.4': + '@next/swc-win32-arm64-msvc@15.0.0-rc.0': optional: true - '@next/swc-win32-ia32-msvc@14.0.4': + '@next/swc-win32-ia32-msvc@15.0.0-rc.0': optional: true - '@next/swc-win32-x64-msvc@14.0.4': + '@next/swc-win32-x64-msvc@15.0.0-rc.0': optional: true '@ngtools/webpack@17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(typescript@5.4.2)(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1))': @@ -10163,7 +10234,7 @@ snapshots: '@npmcli/fs@3.1.0': dependencies: - semver: 7.6.0 + semver: 7.6.2 '@npmcli/git@5.0.4': dependencies: @@ -10173,7 +10244,7 @@ snapshots: proc-log: 3.0.0 promise-inflight: 1.0.1 promise-retry: 2.0.1 - semver: 7.6.0 + semver: 7.6.2 which: 4.0.0 transitivePeerDependencies: - bluebird @@ -10183,15 +10254,6 @@ snapshots: npm-bundled: 3.0.0 npm-normalize-package-bin: 3.0.1 - '@npmcli/map-workspaces@3.0.4': - dependencies: - '@npmcli/name-from-folder': 2.0.0 - glob: 10.3.10 - minimatch: 9.0.3 - read-package-json-fast: 3.0.2 - - '@npmcli/name-from-folder@2.0.0': {} - '@npmcli/node-gyp@3.0.0': {} '@npmcli/package-json@5.0.0': @@ -10202,7 +10264,7 @@ snapshots: json-parse-even-better-errors: 3.0.1 normalize-package-data: 6.0.0 proc-log: 3.0.0 - semver: 7.6.0 + semver: 7.6.2 transitivePeerDependencies: - bluebird @@ -10265,88 +10327,6 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pnpm/constants@7.1.1': {} - - '@pnpm/core-loggers@9.0.6(@pnpm/logger@5.0.0)': - dependencies: - '@pnpm/logger': 5.0.0 - '@pnpm/types': 9.4.2 - - '@pnpm/error@5.0.2': - dependencies: - '@pnpm/constants': 7.1.1 - - '@pnpm/fetching-types@5.0.0': - dependencies: - '@zkochan/retry': 0.2.0 - node-fetch: 3.0.0-beta.9 - transitivePeerDependencies: - - domexception - - '@pnpm/graceful-fs@3.2.0': - dependencies: - graceful-fs: 4.2.11 - - '@pnpm/logger@5.0.0': - dependencies: - bole: 5.0.11 - ndjson: 2.0.0 - - '@pnpm/npm-package-arg@1.0.0': - dependencies: - hosted-git-info: 4.1.0 - semver: 7.6.0 - validate-npm-package-name: 4.0.0 - - '@pnpm/npm-resolver@18.1.0(@pnpm/logger@5.0.0)': - dependencies: - '@pnpm/core-loggers': 9.0.6(@pnpm/logger@5.0.0) - '@pnpm/error': 5.0.2 - '@pnpm/fetching-types': 5.0.0 - '@pnpm/graceful-fs': 3.2.0 - '@pnpm/logger': 5.0.0 - '@pnpm/resolve-workspace-range': 5.0.1 - '@pnpm/resolver-base': 11.1.0 - '@pnpm/types': 9.4.2 - '@zkochan/retry': 0.2.0 - encode-registry: 3.0.1 - load-json-file: 6.2.0 - lru-cache: 10.2.0 - normalize-path: 3.0.0 - p-limit: 3.1.0 - p-memoize: 4.0.1 - parse-npm-tarball-url: 3.0.0 - path-temp: 2.1.0 - ramda: '@pnpm/ramda@0.28.1' - rename-overwrite: 5.0.0 - semver: 7.6.0 - ssri: 10.0.5 - version-selector-type: 3.0.0 - transitivePeerDependencies: - - domexception - - '@pnpm/ramda@0.28.1': {} - - '@pnpm/resolve-workspace-range@5.0.1': - dependencies: - semver: 7.6.0 - - '@pnpm/resolver-base@11.1.0': - dependencies: - '@pnpm/types': 9.4.2 - - '@pnpm/types@9.4.2': {} - - '@pnpm/workspace.pkgs-graph@2.0.14(@pnpm/logger@5.0.0)': - dependencies: - '@pnpm/npm-package-arg': 1.0.0 - '@pnpm/npm-resolver': 18.1.0(@pnpm/logger@5.0.0) - '@pnpm/resolve-workspace-range': 5.0.1 - ramda: '@pnpm/ramda@0.28.1' - transitivePeerDependencies: - - '@pnpm/logger' - - domexception - '@popperjs/core@2.11.8': {} '@prettier/cli@0.3.0(prettier@4.0.0-alpha.8)': @@ -10371,22 +10351,22 @@ snapshots: worktank: 2.6.0 zeptomatch: 1.2.2 - '@rollup/plugin-json@6.1.0(rollup@4.9.2)': + '@rollup/plugin-json@6.1.0(rollup@4.17.1)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.17.1) optionalDependencies: - rollup: 4.9.2 + rollup: 4.17.1 - '@rollup/plugin-node-resolve@15.2.3(rollup@4.9.2)': + '@rollup/plugin-node-resolve@15.2.3(rollup@4.17.1)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.17.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 optionalDependencies: - rollup: 4.9.2 + rollup: 4.17.1 '@rollup/pluginutils@5.1.0(rollup@4.17.1)': dependencies: @@ -10396,109 +10376,60 @@ snapshots: optionalDependencies: rollup: 4.17.1 - '@rollup/pluginutils@5.1.0(rollup@4.9.2)': - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - optionalDependencies: - rollup: 4.9.2 - '@rollup/rollup-android-arm-eabi@4.17.1': optional: true - '@rollup/rollup-android-arm-eabi@4.9.2': - optional: true - '@rollup/rollup-android-arm64@4.17.1': optional: true - '@rollup/rollup-android-arm64@4.9.2': - optional: true - '@rollup/rollup-darwin-arm64@4.17.1': optional: true - '@rollup/rollup-darwin-arm64@4.9.2': - optional: true - '@rollup/rollup-darwin-x64@4.17.1': optional: true - '@rollup/rollup-darwin-x64@4.9.2': - optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.17.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.9.2': - optional: true - '@rollup/rollup-linux-arm-musleabihf@4.17.1': optional: true '@rollup/rollup-linux-arm64-gnu@4.17.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.9.2': - optional: true - '@rollup/rollup-linux-arm64-musl@4.17.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.9.2': - optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.17.1': optional: true '@rollup/rollup-linux-riscv64-gnu@4.17.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.9.2': - optional: true - '@rollup/rollup-linux-s390x-gnu@4.17.1': optional: true '@rollup/rollup-linux-x64-gnu@4.17.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.9.2': - optional: true - '@rollup/rollup-linux-x64-musl@4.17.1': optional: true - '@rollup/rollup-linux-x64-musl@4.9.2': - optional: true - '@rollup/rollup-win32-arm64-msvc@4.17.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.9.2': - optional: true - '@rollup/rollup-win32-ia32-msvc@4.17.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.9.2': - optional: true - '@rollup/rollup-win32-x64-msvc@4.17.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.9.2': - optional: true - '@rollup/wasm-node@4.13.0': dependencies: '@types/estree': 1.0.5 optionalDependencies: fsevents: 2.3.3 - '@rushstack/eslint-patch@1.6.1': {} - '@rushstack/node-core-library@4.0.2(@types/node@20.10.6)': dependencies: fs-extra: 7.0.1 @@ -10574,7 +10505,7 @@ snapshots: '@snyk/github-codeowners@1.1.0': dependencies: commander: 4.1.1 - ignore: 5.2.4 + ignore: 5.3.1 p-map: 4.0.0 '@solidjs/router@0.13.0(solid-js@1.7.12)': @@ -10617,7 +10548,7 @@ snapshots: '@swc/core-win32-x64-msvc@1.4.6': optional: true - '@swc/core@1.4.6(@swc/helpers@0.5.2)': + '@swc/core@1.4.6(@swc/helpers@0.5.11)': dependencies: '@swc/counter': 0.1.2 '@swc/types': 0.1.5 @@ -10632,43 +10563,49 @@ snapshots: '@swc/core-win32-arm64-msvc': 1.4.6 '@swc/core-win32-ia32-msvc': 1.4.6 '@swc/core-win32-x64-msvc': 1.4.6 - '@swc/helpers': 0.5.2 + '@swc/helpers': 0.5.11 '@swc/counter@0.1.2': {} - '@swc/helpers@0.5.2': + '@swc/helpers@0.5.11': dependencies: tslib: 2.6.2 '@swc/types@0.1.5': {} - '@tanstack/angular-store@0.4.1(@angular/common@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))': + '@tanstack/angular-store@0.5.1(@angular/common@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))': dependencies: '@angular/common': 17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1) '@angular/core': 17.3.0(rxjs@7.8.1)(zone.js@0.14.4) - '@tanstack/store': 0.4.1 + '@tanstack/store': 0.5.0 + tslib: 2.6.2 - '@tanstack/config@0.7.11(@types/node@20.10.6)(esbuild@0.20.2)(rollup@4.17.1)(typescript@5.4.2)(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))': + '@tanstack/config@0.8.1(@types/node@20.10.6)(esbuild@0.20.2)(eslint@8.57.0)(rollup@4.17.1)(typescript@5.4.2)(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))': dependencies: '@commitlint/parse': 19.0.3 + '@eslint/js': 9.5.0 commander: 12.1.0 current-git-branch: 1.1.0 esbuild-register: 3.5.0(esbuild@0.20.2) - git-log-parser: 1.2.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + eslint-plugin-import-x: 0.5.1(eslint@8.57.0)(typescript@5.4.2) + globals: 15.6.0 interpret: 3.1.1 jsonfile: 6.1.0 liftoff: 5.0.0 minimist: 1.2.8 rollup-plugin-preserve-directives: 0.4.0(rollup@4.17.1) semver: 7.6.2 - stream-to-array: 2.3.0 + simple-git: 3.25.0 + typescript-eslint: 7.14.1(eslint@8.57.0)(typescript@5.4.2) v8flags: 4.0.1 - vite-plugin-dts: 3.9.1(@types/node@20.10.6)(rollup@4.17.1)(typescript@5.4.2)(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) - vite-plugin-externalize-deps: 0.8.0(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) - vite-tsconfig-paths: 4.3.2(typescript@5.4.2)(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + vite-plugin-dts: 3.9.1(@types/node@20.10.6)(rollup@4.17.1)(typescript@5.4.2)(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + vite-plugin-externalize-deps: 0.8.0(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) + vite-tsconfig-paths: 4.3.2(typescript@5.4.2)(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) transitivePeerDependencies: - '@types/node' - esbuild + - eslint - rollup - supports-color - typescript @@ -10676,28 +10613,28 @@ snapshots: '@tanstack/query-core@5.45.0': {} - '@tanstack/react-query@5.45.1(react@18.2.0)': + '@tanstack/react-query@5.45.1(react@18.3.1)': dependencies: '@tanstack/query-core': 5.45.0 - react: 18.2.0 + react: 18.3.1 - '@tanstack/react-store@0.4.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@tanstack/react-store@0.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/store': 0.4.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - use-sync-external-store: 1.2.0(react@18.2.0) + '@tanstack/store': 0.5.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + use-sync-external-store: 1.2.0(react@18.3.1) - '@tanstack/solid-store@0.4.1(solid-js@1.7.12)': + '@tanstack/solid-store@0.5.0(solid-js@1.7.12)': dependencies: - '@tanstack/store': 0.4.1 + '@tanstack/store': 0.5.0 solid-js: 1.7.12 - '@tanstack/store@0.4.1': {} + '@tanstack/store@0.5.0': {} - '@tanstack/vue-store@0.4.1(vue@3.3.4)': + '@tanstack/vue-store@0.5.0(vue@3.3.4)': dependencies: - '@tanstack/store': 0.4.1 + '@tanstack/store': 0.5.0 vue: 3.3.4 vue-demi: 0.14.6(vue@3.3.4) @@ -10712,7 +10649,7 @@ snapshots: '@testing-library/dom@9.3.4': dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.7 '@babel/runtime': 7.24.0 '@types/aria-query': 5.0.1 aria-query: 5.1.3 @@ -10734,13 +10671,13 @@ snapshots: optionalDependencies: vitest: 1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) - '@testing-library/react@14.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@testing-library/react@14.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.0 '@testing-library/dom': 9.3.4 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) '@testing-library/user-event@14.5.2(@testing-library/dom@9.3.4)': dependencies: @@ -10760,7 +10697,7 @@ snapshots: '@ts-morph/common@0.22.0': dependencies: fast-glob: 3.3.2 - minimatch: 9.0.3 + minimatch: 9.0.4 mkdirp: 3.0.1 path-browserify: 1.0.1 @@ -10769,7 +10706,7 @@ snapshots: '@tufjs/models@2.0.0': dependencies: '@tufjs/canonical-json': 2.0.0 - minimatch: 9.0.3 + minimatch: 9.0.4 '@types/argparse@1.0.38': {} @@ -10777,24 +10714,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.17.1 '@types/babel__generator@7.6.4': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 '@types/babel__template@7.4.1': dependencies: - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 '@types/babel__traverse@7.17.1': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 '@types/body-parser@1.19.5': dependencies: @@ -10820,10 +10757,10 @@ snapshots: '@types/eslint-scope@3.7.7': dependencies: - '@types/eslint': 8.56.0 + '@types/eslint': 8.56.10 '@types/estree': 1.0.5 - '@types/eslint@8.56.0': + '@types/eslint@8.56.10': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.12 @@ -10852,8 +10789,6 @@ snapshots: '@types/json-schema@7.0.12': {} - '@types/json5@0.0.29': {} - '@types/mime@1.3.5': {} '@types/mime@3.0.4': {} @@ -10872,23 +10807,21 @@ snapshots: '@types/parse-json@4.0.2': {} - '@types/picomatch@2.3.3': {} - '@types/prop-types@15.7.11': {} '@types/qs@6.9.12': {} '@types/range-parser@1.2.7': {} - '@types/react-dom@18.2.25': + '@types/react-dom@18.3.0': dependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 '@types/react-transition-group@4.4.10': dependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - '@types/react@18.2.79': + '@types/react@18.3.3': dependencies: '@types/prop-types': 15.7.11 csstype: 3.1.2 @@ -10897,8 +10830,6 @@ snapshots: '@types/retry@0.12.0': {} - '@types/semver@7.5.6': {} - '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 @@ -10924,90 +10855,166 @@ snapshots: dependencies: '@types/node': 20.10.6 - '@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint@8.56.0)(typescript@5.4.2)': + '@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2)': dependencies: - '@eslint-community/regexpp': 4.8.0 - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.4.2) - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/type-utils': 6.20.0(eslint@8.56.0)(typescript@5.4.2) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.4.2) - '@typescript-eslint/visitor-keys': 6.20.0 - debug: 4.3.4 - eslint: 8.56.0 + '@eslint-community/regexpp': 4.10.1 + '@typescript-eslint/parser': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.13.1 + '@typescript-eslint/type-utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 7.13.1 + eslint: 8.57.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.6.0 - ts-api-utils: 1.0.2(typescript@5.4.2) + ts-api-utils: 1.3.0(typescript@5.4.2) + optionalDependencies: + typescript: 5.4.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2)': + dependencies: + '@eslint-community/regexpp': 4.10.1 + '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.14.1 + '@typescript-eslint/type-utils': 7.14.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 7.14.1 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.4.2) optionalDependencies: typescript: 5.4.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2)': + '@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.2)': dependencies: - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.4.2) - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/scope-manager': 7.13.1 + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 7.13.1 debug: 4.3.4 - eslint: 8.56.0 + eslint: 8.57.0 optionalDependencies: typescript: 5.4.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@6.20.0': + '@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.4.2)': dependencies: - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/scope-manager': 7.14.1 + '@typescript-eslint/types': 7.14.1 + '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 7.14.1 + debug: 4.3.5 + eslint: 8.57.0 + optionalDependencies: + typescript: 5.4.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@7.13.1': + dependencies: + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/visitor-keys': 7.13.1 - '@typescript-eslint/type-utils@6.20.0(eslint@8.56.0)(typescript@5.4.2)': + '@typescript-eslint/scope-manager@7.14.1': dependencies: - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.4.2) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.4.2) + '@typescript-eslint/types': 7.14.1 + '@typescript-eslint/visitor-keys': 7.14.1 + + '@typescript-eslint/type-utils@7.13.1(eslint@8.57.0)(typescript@5.4.2)': + dependencies: + '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.4.2) + '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) debug: 4.3.4 - eslint: 8.56.0 - ts-api-utils: 1.0.2(typescript@5.4.2) + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.4.2) optionalDependencies: typescript: 5.4.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@6.20.0': {} + '@typescript-eslint/type-utils@7.14.1(eslint@8.57.0)(typescript@5.4.2)': + dependencies: + '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.4.2) + '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.4.2) + debug: 4.3.5 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.4.2) + optionalDependencies: + typescript: 5.4.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@7.13.1': {} + + '@typescript-eslint/types@7.14.1': {} - '@typescript-eslint/typescript-estree@6.20.0(typescript@5.4.2)': + '@typescript-eslint/typescript-estree@7.13.1(typescript@5.4.2)': dependencies: - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/visitor-keys': 7.13.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.0 - ts-api-utils: 1.0.2(typescript@5.4.2) + minimatch: 9.0.4 + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@5.4.2) optionalDependencies: typescript: 5.4.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@6.20.0(eslint@8.56.0)(typescript@5.4.2)': + '@typescript-eslint/typescript-estree@7.14.1(typescript@5.4.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@types/json-schema': 7.0.12 - '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.4.2) - eslint: 8.56.0 - semver: 7.6.0 + '@typescript-eslint/types': 7.14.1 + '@typescript-eslint/visitor-keys': 7.14.1 + debug: 4.3.5 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.4 + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@5.4.2) + optionalDependencies: + typescript: 5.4.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@7.13.1(eslint@8.57.0)(typescript@5.4.2)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@typescript-eslint/scope-manager': 7.13.1 + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.4.2) + eslint: 8.57.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@7.14.1(eslint@8.57.0)(typescript@5.4.2)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@typescript-eslint/scope-manager': 7.14.1 + '@typescript-eslint/types': 7.14.1 + '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.4.2) + eslint: 8.57.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@6.20.0': + '@typescript-eslint/visitor-keys@7.13.1': dependencies: - '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/types': 7.13.1 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@7.14.1': + dependencies: + '@typescript-eslint/types': 7.14.1 eslint-visitor-keys: 3.4.3 '@ungap/structured-clone@1.2.0': {} @@ -11020,54 +11027,27 @@ snapshots: dependencies: vite: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.71.1)(sugarss@4.0.1)(terser@5.29.1) - '@vitejs/plugin-react-swc@3.6.0(@swc/helpers@0.5.2)(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1))': + '@vitejs/plugin-react-swc@3.6.0(@swc/helpers@0.5.11)(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1))': dependencies: - '@swc/core': 1.4.6(@swc/helpers@0.5.2) - vite: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + '@swc/core': 1.4.6(@swc/helpers@0.5.11) + vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) transitivePeerDependencies: - '@swc/helpers' - '@vitejs/plugin-react@4.2.1(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1))': + '@vitejs/plugin-react@4.3.1(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1))': dependencies: - '@babel/core': 7.24.0 - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.24.0) + '@babel/core': 7.24.7 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) '@types/babel__core': 7.20.5 - react-refresh: 0.14.0 - vite: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) + react-refresh: 0.14.2 + vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.2.1(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))': - dependencies: - '@babel/core': 7.24.0 - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.24.0) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.0 - vite: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) - transitivePeerDependencies: - - supports-color - - '@vitejs/plugin-react@4.2.1(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))': - dependencies: - '@babel/core': 7.24.0 - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.24.0) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.0 - vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) - transitivePeerDependencies: - - supports-color - - '@vitejs/plugin-vue@5.0.4(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))(vue@3.3.4)': - dependencies: - vite: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) - vue: 3.3.4 - '@vitejs/plugin-vue@5.0.4(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))(vue@3.3.4)': dependencies: - vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) + vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vue: 3.3.4 '@vitest/coverage-istanbul@1.3.1(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1))': @@ -11079,7 +11059,7 @@ snapshots: istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.6 magicast: 0.3.3 - picocolors: 1.0.0 + picocolors: 1.0.1 test-exclude: 6.0.0 vitest: 1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) transitivePeerDependencies: @@ -11142,18 +11122,18 @@ snapshots: '@vue/compiler-core@3.3.4': dependencies: - '@babel/parser': 7.24.0 + '@babel/parser': 7.24.7 '@vue/shared': 3.3.4 estree-walker: 2.0.2 - source-map-js: 1.0.2 + source-map-js: 1.2.0 '@vue/compiler-core@3.4.21': dependencies: - '@babel/parser': 7.24.0 + '@babel/parser': 7.24.7 '@vue/shared': 3.4.21 entities: 4.5.0 estree-walker: 2.0.2 - source-map-js: 1.0.2 + source-map-js: 1.2.0 '@vue/compiler-dom@3.3.4': dependencies: @@ -11167,7 +11147,7 @@ snapshots: '@vue/compiler-sfc@3.3.4': dependencies: - '@babel/parser': 7.24.0 + '@babel/parser': 7.24.7 '@vue/compiler-core': 3.3.4 '@vue/compiler-dom': 3.3.4 '@vue/compiler-ssr': 3.3.4 @@ -11176,7 +11156,7 @@ snapshots: estree-walker: 2.0.2 magic-string: 0.30.8 postcss: 8.4.32 - source-map-js: 1.0.2 + source-map-js: 1.2.0 '@vue/compiler-ssr@3.3.4': dependencies: @@ -11190,7 +11170,7 @@ snapshots: '@vue/compiler-dom': 3.4.21 '@vue/shared': 3.4.21 computeds: 0.0.1 - minimatch: 9.0.3 + minimatch: 9.0.4 muggle-string: 0.3.1 path-browserify: 1.0.1 vue-template-compiler: 2.7.14 @@ -11203,7 +11183,7 @@ snapshots: '@vue/compiler-dom': 3.4.21 '@vue/shared': 3.4.21 computeds: 0.0.1 - minimatch: 9.0.3 + minimatch: 9.0.4 path-browserify: 1.0.1 vue-template-compiler: 2.7.14 optionalDependencies: @@ -11211,7 +11191,7 @@ snapshots: '@vue/reactivity-transform@3.3.4': dependencies: - '@babel/parser': 7.24.0 + '@babel/parser': 7.24.7 '@vue/compiler-core': 3.3.4 '@vue/shared': 3.3.4 estree-walker: 2.0.2 @@ -11346,12 +11326,6 @@ snapshots: dependencies: argparse: 2.0.1 - '@zkochan/retry@0.2.0': {} - - '@zkochan/rimraf@2.1.3': - dependencies: - rimraf: 3.0.2 - JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 @@ -11435,6 +11409,8 @@ snapshots: ansi-regex@6.0.1: {} + ansi-sequence-parser@1.1.1: {} + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 @@ -11449,8 +11425,6 @@ snapshots: ansi-truncate@1.0.1: {} - any-promise@1.3.0: {} - anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -11462,8 +11436,6 @@ snapshots: argparse@2.0.1: {} - argv-formatter@1.0.0: {} - aria-hidden@1.2.3: dependencies: tslib: 2.6.2 @@ -11478,81 +11450,28 @@ snapshots: arity-n@1.0.4: {} - array-buffer-byte-length@1.0.0: - dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.2 - - array-each@1.0.1: {} - - array-flatten@1.1.1: {} - - array-ify@1.0.0: {} - - array-includes@3.1.7: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - get-intrinsic: 1.2.4 - is-string: 1.0.7 - - array-last@1.3.0: - dependencies: - is-number: 4.0.0 - - array-slice@1.1.0: {} - - array-union@2.1.0: {} - - array.prototype.findlastindex@1.2.3: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.4 - - array.prototype.flat@1.3.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 - - array.prototype.flatmap@1.3.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 - - array.prototype.tosorted@1.1.1: + array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + + array-each@1.0.1: {} + + array-flatten@1.1.1: {} + + array-ify@1.0.0: {} - arraybuffer.prototype.slice@1.0.1: + array-last@1.3.0: dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.7 - define-properties: 1.2.1 - get-intrinsic: 1.2.4 - is-array-buffer: 3.0.2 - is-shared-array-buffer: 1.0.2 + is-number: 4.0.0 - arrify@1.0.1: {} + array-slice@1.1.0: {} - assertion-error@1.1.0: {} + array-union@2.1.0: {} - ast-types-flow@0.0.8: {} + arrify@1.0.1: {} - asynciterator.prototype@1.0.0: - dependencies: - has-symbols: 1.0.3 + assertion-error@1.1.0: {} asynckit@0.4.0: {} @@ -11567,13 +11486,13 @@ snapshots: caniuse-lite: 1.0.30001599 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 postcss: 8.4.35 postcss-value-parser: 4.2.0 - available-typed-arrays@1.0.5: {} - - axe-core@4.7.0: {} + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 axios@1.6.3: dependencies: @@ -11583,10 +11502,6 @@ snapshots: transitivePeerDependencies: - debug - axobject-query@3.2.1: - dependencies: - dequal: 2.0.3 - babel-loader@9.1.3(@babel/core@7.24.0)(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)): dependencies: '@babel/core': 7.24.0 @@ -11598,7 +11513,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.7 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -11606,12 +11521,12 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-jsx-dom-expressions@0.37.9(@babel/core@7.24.0): + babel-plugin-jsx-dom-expressions@0.37.9(@babel/core@7.24.7): dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.7 '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) - '@babel/types': 7.24.0 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.7) + '@babel/types': 7.24.7 html-entities: 2.3.3 validate-html-nesting: 1.2.2 @@ -11623,7 +11538,7 @@ snapshots: babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.0): dependencies: - '@babel/compat-data': 7.23.5 + '@babel/compat-data': 7.24.7 '@babel/core': 7.24.0 '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.0) semver: 6.3.1 @@ -11645,10 +11560,10 @@ snapshots: transitivePeerDependencies: - supports-color - babel-preset-solid@1.8.6(@babel/core@7.24.0): + babel-preset-solid@1.8.6(@babel/core@7.24.7): dependencies: - '@babel/core': 7.24.0 - babel-plugin-jsx-dom-expressions: 0.37.9(@babel/core@7.24.0) + '@babel/core': 7.24.7 + babel-plugin-jsx-dom-expressions: 0.37.9(@babel/core@7.24.7) babylon@6.18.0: {} @@ -11685,11 +11600,6 @@ snapshots: transitivePeerDependencies: - supports-color - bole@5.0.11: - dependencies: - fast-safe-stringify: 2.1.1 - individual: 3.0.0 - bonjour-service@1.2.1: dependencies: fast-deep-equal: 3.1.3 @@ -11728,7 +11638,7 @@ snapshots: builtins@5.0.1: dependencies: - semver: 7.6.0 + semver: 7.6.2 busboy@1.6.0: dependencies: @@ -11874,6 +11784,18 @@ snapshots: color-name@1.1.4: {} + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + optional: true + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + optional: true + colorette@2.0.20: {} combined-stream@1.0.8: @@ -11882,8 +11804,6 @@ snapshots: commander@10.0.1: {} - commander@12.0.0: {} - commander@12.1.0: {} commander@2.20.3: {} @@ -12017,18 +11937,16 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - crypto-random-string@2.0.0: {} - css-loader@6.10.0(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)): dependencies: - icss-utils: 5.1.0(postcss@8.4.35) - postcss: 8.4.35 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.35) - postcss-modules-local-by-default: 4.0.4(postcss@8.4.35) - postcss-modules-scope: 3.1.1(postcss@8.4.35) - postcss-modules-values: 4.0.0(postcss@8.4.35) + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.38) + postcss-modules-local-by-default: 4.0.4(postcss@8.4.38) + postcss-modules-scope: 3.1.1(postcss@8.4.38) + postcss-modules-values: 4.0.0(postcss@8.4.38) postcss-value-parser: 4.2.0 - semver: 7.6.0 + semver: 7.6.2 optionalDependencies: webpack: 5.90.3(@swc/core@1.4.6)(esbuild@0.20.2) @@ -12058,10 +11976,6 @@ snapshots: execa: 0.6.3 is-git-repository: 1.1.1 - damerau-levenshtein@1.0.8: {} - - data-uri-to-buffer@3.0.1: {} - data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 @@ -12081,6 +11995,10 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.3.5: + dependencies: + ms: 2.1.2 + decamelize-keys@2.0.1: dependencies: decamelize: 6.0.0 @@ -12092,7 +12010,7 @@ snapshots: decimal.js@10.4.3: {} - decode-formdata@0.4.0: {} + decode-formdata@0.7.5: {} deep-eql@4.1.3: dependencies: @@ -12100,29 +12018,29 @@ snapshots: deep-equal@2.2.2: dependencies: - array-buffer-byte-length: 1.0.0 + array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 es-get-iterator: 1.1.3 get-intrinsic: 1.2.4 is-arguments: 1.1.1 - is-array-buffer: 3.0.2 + is-array-buffer: 3.0.4 is-date-object: 1.0.5 is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 + is-shared-array-buffer: 1.0.3 isarray: 2.0.5 object-is: 1.1.5 object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.0 - side-channel: 1.0.4 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + side-channel: 1.0.6 which-boxed-primitive: 1.0.2 which-collection: 1.0.1 - which-typed-array: 1.1.11 - - deep-freeze@0.0.1: {} + which-typed-array: 1.1.15 deep-is@0.1.4: {} + deepmerge-ts@7.0.3: {} + deepmerge@4.3.1: {} default-gateway@6.0.3: @@ -12161,6 +12079,9 @@ snapshots: detect-file@1.0.0: {} + detect-libc@2.0.3: + optional: true + detect-node-es@1.1.0: {} detect-node@2.1.0: {} @@ -12177,10 +12098,6 @@ snapshots: dependencies: '@leichtgewicht/ip-codec': 2.0.4 - doctrine@2.1.0: - dependencies: - esutils: 2.0.3 - doctrine@3.0.0: dependencies: esutils: 2.0.3 @@ -12220,10 +12137,6 @@ snapshots: dotenv@16.3.1: {} - duplexer2@0.1.4: - dependencies: - readable-stream: 2.3.8 - duplexer@0.1.2: {} eastasianwidth@0.2.0: {} @@ -12239,7 +12152,7 @@ snapshots: '@one-ini/wasm': 0.1.1 commander: 10.0.1 minimatch: 9.0.1 - semver: 7.6.0 + semver: 7.6.2 ee-first@1.1.1: {} @@ -12251,10 +12164,6 @@ snapshots: emojis-list@3.0.0: {} - encode-registry@3.0.1: - dependencies: - mem: 8.1.1 - encodeurl@1.0.2: {} encoding@0.1.13: @@ -12290,48 +12199,6 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.22.1: - dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.1 - available-typed-arrays: 1.0.5 - call-bind: 1.0.7 - es-set-tostringtag: 2.0.1 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.2.4 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has: 1.0.3 - has-property-descriptors: 1.0.2 - has-proto: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.12 - is-weakref: 1.0.2 - object-inspect: 1.12.3 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.0 - safe-array-concat: 1.0.1 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.7 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.11 - es-define-property@1.0.0: dependencies: get-intrinsic: 1.2.4 @@ -12350,44 +12217,11 @@ snapshots: isarray: 2.0.5 stop-iteration-iterator: 1.0.0 - es-iterator-helpers@1.0.15: - dependencies: - asynciterator.prototype: 1.0.0 - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - es-set-tostringtag: 2.0.1 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - globalthis: 1.0.3 - has-property-descriptors: 1.0.2 - has-proto: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - iterator.prototype: 1.1.2 - safe-array-concat: 1.0.1 - es-module-lexer@1.4.1: {} - es-set-tostringtag@2.0.1: - dependencies: - get-intrinsic: 1.2.4 - has: 1.0.3 - has-tostringtag: 1.0.0 - - es-shim-unscopables@1.0.0: - dependencies: - has: 1.0.3 - - es-to-primitive@1.2.1: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - esbuild-register@3.5.0(esbuild@0.20.2): dependencies: - debug: 4.3.4 + debug: 4.3.5 esbuild: 0.20.2 transitivePeerDependencies: - supports-color @@ -12483,27 +12317,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-next@14.0.4(eslint@8.56.0)(typescript@5.4.2): + eslint-config-prettier@9.1.0(eslint@8.57.0): dependencies: - '@next/eslint-plugin-next': 14.0.4 - '@rushstack/eslint-patch': 1.6.1 - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.4.2) - eslint: 8.56.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-plugin-import@2.29.1)(eslint@8.56.0))(eslint@8.56.0) - eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) - eslint-plugin-react: 7.33.2(eslint@8.56.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) - optionalDependencies: - typescript: 5.4.2 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - supports-color - - eslint-config-prettier@9.1.0(eslint@8.56.0): - dependencies: - eslint: 8.56.0 + eslint: 8.57.0 eslint-import-resolver-node@0.3.9: dependencies: @@ -12513,136 +12329,112 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0): + eslint-plugin-import-x@0.5.1(eslint@8.57.0)(typescript@5.4.2): dependencies: - debug: 4.3.4 - enhanced-resolve: 5.15.0 - eslint: 8.56.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0))(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-plugin-import@2.29.1)(eslint@8.56.0))(eslint@8.56.0) - fast-glob: 3.3.2 - get-tsconfig: 4.7.0 - is-core-module: 2.13.1 + '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + debug: 4.3.5 + doctrine: 3.0.0 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + get-tsconfig: 4.7.5 is-glob: 4.0.3 + minimatch: 9.0.4 + semver: 7.6.2 + tslib: 2.6.2 transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - supports-color + - typescript - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-plugin-import@2.29.1)(eslint@8.56.0): - dependencies: - debug: 4.3.4 - enhanced-resolve: 5.15.0 - eslint: 8.56.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-plugin-import@2.29.1)(eslint@8.56.0))(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-plugin-import@2.29.1)(eslint@8.56.0))(eslint@8.56.0) - fast-glob: 3.3.2 - get-tsconfig: 4.7.0 - is-core-module: 2.13.1 - is-glob: 4.0.3 + eslint-plugin-react-core@1.5.16(eslint@8.57.0)(typescript@5.4.2): + dependencies: + '@eslint-react/ast': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/core': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/jsx': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/shared': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/tools': 1.5.16 + '@eslint-react/types': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/var': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.13.1 + '@typescript-eslint/type-utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + eslint: 8.57.0 + string-ts: 2.1.1 + ts-api-utils: 1.3.0(typescript@5.4.2) + valibot: 0.32.0 + optionalDependencies: + typescript: 5.4.2 transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0))(eslint@8.56.0): - dependencies: - debug: 3.2.7 + eslint-plugin-react-dom@1.5.16(eslint@8.57.0)(typescript@5.4.2): + dependencies: + '@eslint-react/ast': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/core': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/jsx': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/shared': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/tools': 1.5.16 + '@eslint-react/types': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/var': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.13.1 + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + eslint: 8.57.0 + string-ts: 2.1.1 + valibot: 0.32.0 optionalDependencies: - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.4.2) - eslint: 8.56.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + typescript: 5.4.2 transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-plugin-import@2.29.1)(eslint@8.56.0))(eslint@8.56.0): - dependencies: - debug: 3.2.7 + eslint-plugin-react-hooks-extra@1.5.16(eslint@8.57.0)(typescript@5.4.2): + dependencies: + '@eslint-react/ast': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/core': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/jsx': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/shared': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/tools': 1.5.16 + '@eslint-react/types': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/var': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.13.1 + '@typescript-eslint/type-utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + eslint: 8.57.0 + string-ts: 2.1.1 + valibot: 0.32.0 optionalDependencies: - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.4.2) - eslint: 8.56.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-plugin-import@2.29.1)(eslint@8.56.0) + typescript: 5.4.2 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-plugin-import@2.29.1)(eslint@8.56.0))(eslint@8.56.0): - dependencies: - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.56.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.4.2))(eslint-plugin-import@2.29.1)(eslint@8.56.0))(eslint@8.56.0) - hasown: 2.0.0 - is-core-module: 2.13.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 - semver: 6.3.1 - tsconfig-paths: 3.15.0 + eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): + dependencies: + eslint: 8.57.0 + + eslint-plugin-react-naming-convention@1.5.16(eslint@8.57.0)(typescript@5.4.2): + dependencies: + '@eslint-react/ast': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/core': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/jsx': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/shared': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@eslint-react/tools': 1.5.16 + '@eslint-react/types': 1.5.16(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.13.1 + '@typescript-eslint/type-utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.2) + eslint: 8.57.0 + string-ts: 2.1.1 + valibot: 0.32.0 optionalDependencies: - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.4.2) + typescript: 5.4.2 transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0): - dependencies: - '@babel/runtime': 7.24.0 - aria-query: 5.3.0 - array-includes: 3.1.7 - array.prototype.flatmap: 1.3.2 - ast-types-flow: 0.0.8 - axe-core: 4.7.0 - axobject-query: 3.2.1 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.15 - eslint: 8.56.0 - hasown: 2.0.0 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - - eslint-plugin-react-hooks@4.6.0(eslint@8.56.0): - dependencies: - eslint: 8.56.0 - - eslint-plugin-react-refresh@0.4.5(eslint@8.56.0): + eslint-plugin-react-refresh@0.4.7(eslint@8.57.0): dependencies: - eslint: 8.56.0 - - eslint-plugin-react@7.33.2(eslint@8.56.0): - dependencies: - array-includes: 3.1.7 - array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.1 - doctrine: 2.1.0 - es-iterator-helpers: 1.0.15 - eslint: 8.56.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - object.hasown: 1.1.2 - object.values: 1.1.7 - prop-types: 15.8.1 - resolve: 2.0.0-next.4 - semver: 6.3.1 - string.prototype.matchall: 4.0.8 + eslint: 8.57.0 eslint-scope@5.1.1: dependencies: @@ -12656,13 +12448,13 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint@8.56.0: + eslint@8.57.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@eslint-community/regexpp': 4.8.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.1 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.13 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.2.0 @@ -12683,7 +12475,7 @@ snapshots: glob-parent: 6.0.2 globals: 13.21.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -12835,8 +12627,6 @@ snapshots: fast-levenshtein@2.0.6: {} - fast-safe-stringify@2.1.1: {} - fastq@1.15.0: dependencies: reusify: 1.0.4 @@ -12845,8 +12635,6 @@ snapshots: dependencies: websocket-driver: 0.7.4 - fetch-blob@2.1.2: {} - figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 @@ -12859,8 +12647,6 @@ snapshots: dependencies: to-regex-range: 5.0.1 - filter-iterator@0.0.1: {} - filter-obj@1.1.0: {} finalhandler@1.2.0: @@ -12967,12 +12753,6 @@ snapshots: fs-constants@1.0.0: {} - fs-extra@10.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.0 - fs-extra@11.1.1: dependencies: graceful-fs: 4.2.11 @@ -13002,13 +12782,6 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.5: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - functions-have-names: 1.2.3 - functions-have-names@1.2.3: {} gensync@1.0.0-beta.2: {} @@ -13025,9 +12798,9 @@ snapshots: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.1 + has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.2 get-nonce@1.0.1: {} @@ -13039,24 +12812,10 @@ snapshots: get-stream@8.0.1: {} - get-symbol-description@1.0.0: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - - get-tsconfig@4.7.0: + get-tsconfig@4.7.5: dependencies: resolve-pkg-maps: 1.0.0 - git-log-parser@1.2.0: - dependencies: - argv-formatter: 1.0.0 - spawn-error-forwarder: 1.0.0 - split2: 1.0.0 - stream-combiner2: 1.1.1 - through2: 2.0.5 - traverse: 0.6.6 - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -13071,19 +12830,10 @@ snapshots: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 - minimatch: 9.0.3 + minimatch: 9.0.4 minipass: 7.0.3 path-scurry: 1.10.1 - glob@7.1.7: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -13121,16 +12871,14 @@ snapshots: dependencies: type-fest: 0.20.2 - globalthis@1.0.3: - dependencies: - define-properties: 1.2.1 + globals@15.6.0: {} globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.2.4 + ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 @@ -13138,7 +12886,7 @@ snapshots: dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.2.4 + ignore: 5.3.1 merge2: 1.4.1 slash: 4.0.0 @@ -13170,19 +12918,15 @@ snapshots: dependencies: es-define-property: 1.0.0 - has-proto@1.0.1: {} + has-proto@1.0.3: {} has-symbols@1.0.3: {} - has-tostringtag@1.0.0: + has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 - has@1.0.3: - dependencies: - function-bind: 1.1.2 - - hasown@2.0.0: + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -13297,9 +13041,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.4.35): + icss-utils@5.1.0(postcss@8.4.38): dependencies: - postcss: 8.4.35 + postcss: 8.4.38 identity-function@1.0.0: {} @@ -13311,9 +13055,9 @@ snapshots: ignore-walk@6.0.4: dependencies: - minimatch: 9.0.3 + minimatch: 9.0.4 - ignore@5.2.4: {} + ignore@5.3.1: {} image-size@0.5.5: optional: true @@ -13335,8 +13079,6 @@ snapshots: indent-string@5.0.0: {} - individual@3.0.0: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -13374,11 +13116,11 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 6.2.0 - internal-slot@1.0.5: + internal-slot@1.0.7: dependencies: - get-intrinsic: 1.2.4 - has: 1.0.3 - side-channel: 1.0.4 + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 interpret@3.1.1: {} @@ -13405,19 +13147,17 @@ snapshots: is-arguments@1.1.1: dependencies: call-bind: 1.0.7 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 - is-array-buffer@3.0.2: + is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - is-typed-array: 1.1.12 is-arrayish@0.2.1: {} - is-async-function@2.0.0: - dependencies: - has-tostringtag: 1.0.0 + is-arrayish@0.3.2: + optional: true is-bigint@1.0.4: dependencies: @@ -13430,7 +13170,7 @@ snapshots: is-boolean-object@1.1.2: dependencies: call-bind: 1.0.7 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-builtin-module@3.2.1: dependencies: @@ -13440,26 +13180,18 @@ snapshots: is-core-module@2.13.1: dependencies: - hasown: 2.0.0 + hasown: 2.0.2 is-date-object@1.0.5: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-docker@2.2.1: {} is-extglob@2.1.1: {} - is-finalizationregistry@1.0.2: - dependencies: - call-bind: 1.0.7 - is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.0.10: - dependencies: - has-tostringtag: 1.0.0 - is-git-repository@1.1.1: dependencies: execa: 0.6.3 @@ -13479,11 +13211,9 @@ snapshots: is-module@1.0.0: {} - is-negative-zero@2.0.2: {} - is-number-object@1.0.7: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-number@4.0.0: {} @@ -13508,7 +13238,7 @@ snapshots: is-regex@1.1.4: dependencies: call-bind: 1.0.7 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-relative@1.0.0: dependencies: @@ -13516,7 +13246,7 @@ snapshots: is-set@2.0.2: {} - is-shared-array-buffer@1.0.2: + is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 @@ -13528,7 +13258,7 @@ snapshots: is-string@1.0.7: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-symbol@1.0.4: dependencies: @@ -13538,10 +13268,6 @@ snapshots: dependencies: text-extensions: 2.4.0 - is-typed-array@1.1.12: - dependencies: - which-typed-array: 1.1.11 - is-unc-path@1.0.0: dependencies: unc-path-regex: 0.1.2 @@ -13550,10 +13276,6 @@ snapshots: is-weakmap@2.0.1: {} - is-weakref@1.0.2: - dependencies: - call-bind: 1.0.7 - is-weakset@2.0.2: dependencies: call-bind: 1.0.7 @@ -13583,8 +13305,8 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.24.0 - '@babel/parser': 7.24.0 + '@babel/core': 7.24.7 + '@babel/parser': 7.24.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -13593,11 +13315,11 @@ snapshots: istanbul-lib-instrument@6.0.1: dependencies: - '@babel/core': 7.24.0 - '@babel/parser': 7.24.0 + '@babel/core': 7.24.7 + '@babel/parser': 7.24.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.6.0 + semver: 7.6.2 transitivePeerDependencies: - supports-color @@ -13622,14 +13344,6 @@ snapshots: iterable-lookahead@1.0.0: {} - iterator.prototype@1.1.2: - dependencies: - define-properties: 1.2.1 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.4 - set-function-name: 2.0.1 - jackspeak@2.3.6: dependencies: '@isaacs/cliui': 8.0.2 @@ -13723,12 +13437,6 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} - json-stringify-safe@5.0.1: {} - - json5@1.0.2: - dependencies: - minimist: 1.2.8 - json5@2.2.3: {} jsonc-parser@3.2.0: {} @@ -13747,13 +13455,6 @@ snapshots: jsonparse@1.3.1: {} - jsx-ast-utils@3.3.5: - dependencies: - array-includes: 3.1.7 - array.prototype.flat: 1.3.2 - object.assign: 4.1.4 - object.values: 1.1.7 - karma-source-map-support@1.4.0: dependencies: source-map-support: 0.5.21 @@ -13768,48 +13469,34 @@ snapshots: klona@2.0.6: {} - knip@4.6.0(@types/node@20.10.6)(typescript@5.4.2): + knip@5.22.0(@types/node@20.10.6)(typescript@5.4.2): dependencies: - '@ericcornelissen/bash-parser': 0.5.2 + '@ericcornelissen/bash-parser': 0.5.3 '@nodelib/fs.walk': 2.0.0 - '@npmcli/map-workspaces': 3.0.4 - '@npmcli/package-json': 5.0.0 - '@pnpm/logger': 5.0.0 - '@pnpm/workspace.pkgs-graph': 2.0.14(@pnpm/logger@5.0.0) '@snyk/github-codeowners': 1.1.0 '@types/node': 20.10.6 - '@types/picomatch': 2.3.3 easy-table: 1.2.0 fast-glob: 3.3.2 jiti: 1.21.0 js-yaml: 4.1.0 - micromatch: 4.0.5 minimist: 1.2.8 - picocolors: 1.0.0 + picocolors: 1.0.1 picomatch: 4.0.1 pretty-ms: 9.0.0 - semver: 7.6.0 + resolve: 1.22.8 smol-toml: 1.1.4 strip-json-comments: 5.0.1 summary: 2.1.0 + tsconfig-paths: 4.2.0 typescript: 5.4.2 zod: 3.22.4 - zod-validation-error: 3.0.0(zod@3.22.4) - transitivePeerDependencies: - - bluebird - - domexception + zod-validation-error: 3.3.0(zod@3.22.4) kolorist@1.8.0: {} - language-subtag-registry@0.3.22: {} - - language-tags@1.0.9: - dependencies: - language-subtag-registry: 0.3.22 - launch-editor@2.6.1: dependencies: - picocolors: 1.0.0 + picocolors: 1.0.1 shell-quote: 1.8.1 less-loader@11.1.0(less@4.2.0)(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)): @@ -13873,13 +13560,6 @@ snapshots: lit-element: 4.0.4 lit-html: 3.1.2 - load-json-file@6.2.0: - dependencies: - graceful-fs: 4.2.11 - parse-json: 5.2.0 - strip-bom: 4.0.0 - type-fest: 0.6.0 - loader-runner@4.3.0: {} loader-utils@2.0.4: @@ -13949,6 +13629,8 @@ snapshots: lru-cache@7.18.3: {} + lunr@2.3.9: {} + lz-string@1.5.0: {} magic-string@0.16.0: @@ -13961,9 +13643,9 @@ snapshots: magicast@0.3.3: dependencies: - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 - source-map-js: 1.0.2 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + source-map-js: 1.2.0 make-dir@2.1.0: dependencies: @@ -13977,7 +13659,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.6.0 + semver: 7.6.2 make-fetch-happen@13.0.0: dependencies: @@ -13995,27 +13677,15 @@ snapshots: transitivePeerDependencies: - supports-color - map-age-cleaner@0.1.3: - dependencies: - p-defer: 1.0.0 - map-cache@0.2.2: {} map-obj@2.0.0: {} map-obj@4.3.0: {} - media-typer@0.3.0: {} - - mem@6.1.1: - dependencies: - map-age-cleaner: 0.1.3 - mimic-fn: 3.1.0 + marked@4.3.0: {} - mem@8.1.1: - dependencies: - map-age-cleaner: 0.1.3 - mimic-fn: 3.1.0 + media-typer@0.3.0: {} memfs@3.5.3: dependencies: @@ -14048,6 +13718,8 @@ snapshots: methods@1.1.2: {} + micro-memoize@4.1.2: {} + micromatch@4.0.5: dependencies: braces: 3.0.2 @@ -14063,8 +13735,6 @@ snapshots: mimic-fn@2.1.0: {} - mimic-fn@3.1.0: {} - mimic-fn@4.0.0: {} min-indent@1.0.1: {} @@ -14097,6 +13767,10 @@ snapshots: dependencies: brace-expansion: 2.0.1 + minimatch@9.0.4: + dependencies: + brace-expansion: 2.0.1 + minimist-options@4.1.0: dependencies: arrify: 1.0.1 @@ -14183,14 +13857,6 @@ snapshots: natural-compare@1.4.0: {} - ndjson@2.0.0: - dependencies: - json-stringify-safe: 5.0.1 - minimist: 1.2.8 - readable-stream: 3.6.2 - split2: 3.2.2 - through2: 4.0.2 - needle@3.3.1: dependencies: iconv-lite: 0.6.3 @@ -14201,29 +13867,29 @@ snapshots: neo-async@2.6.2: {} - next@14.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0): + next@15.0.0-rc.0(@babel/core@7.24.7)(react-dom@19.0.0-rc-6d3110b4d9-20240531(react@19.0.0-rc-6d3110b4d9-20240531))(react@19.0.0-rc-6d3110b4d9-20240531)(sass@1.72.0): dependencies: - '@next/env': 14.0.4 - '@swc/helpers': 0.5.2 + '@next/env': 15.0.0-rc.0 + '@swc/helpers': 0.5.11 busboy: 1.6.0 caniuse-lite: 1.0.30001599 graceful-fs: 4.2.11 postcss: 8.4.31 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(react@18.2.0) - watchpack: 2.4.0 + react: 19.0.0-rc-6d3110b4d9-20240531 + react-dom: 19.0.0-rc-6d3110b4d9-20240531(react@19.0.0-rc-6d3110b4d9-20240531) + styled-jsx: 5.1.3(@babel/core@7.24.7)(react@19.0.0-rc-6d3110b4d9-20240531) optionalDependencies: - '@next/swc-darwin-arm64': 14.0.4 - '@next/swc-darwin-x64': 14.0.4 - '@next/swc-linux-arm64-gnu': 14.0.4 - '@next/swc-linux-arm64-musl': 14.0.4 - '@next/swc-linux-x64-gnu': 14.0.4 - '@next/swc-linux-x64-musl': 14.0.4 - '@next/swc-win32-arm64-msvc': 14.0.4 - '@next/swc-win32-ia32-msvc': 14.0.4 - '@next/swc-win32-x64-msvc': 14.0.4 + '@next/swc-darwin-arm64': 15.0.0-rc.0 + '@next/swc-darwin-x64': 15.0.0-rc.0 + '@next/swc-linux-arm64-gnu': 15.0.0-rc.0 + '@next/swc-linux-arm64-musl': 15.0.0-rc.0 + '@next/swc-linux-x64-gnu': 15.0.0-rc.0 + '@next/swc-linux-x64-musl': 15.0.0-rc.0 + '@next/swc-win32-arm64-msvc': 15.0.0-rc.0 + '@next/swc-win32-ia32-msvc': 15.0.0-rc.0 + '@next/swc-win32-x64-msvc': 15.0.0-rc.0 sass: 1.72.0 + sharp: 0.33.4 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -14231,15 +13897,15 @@ snapshots: ng-packagr@17.3.0(@angular/compiler-cli@17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2))(tslib@2.6.2)(typescript@5.4.2): dependencies: '@angular/compiler-cli': 17.3.0(@angular/compiler@17.3.0(@angular/core@17.3.0(rxjs@7.8.1)(zone.js@0.14.4)))(typescript@5.4.2) - '@rollup/plugin-json': 6.1.0(rollup@4.9.2) - '@rollup/plugin-node-resolve': 15.2.3(rollup@4.9.2) + '@rollup/plugin-json': 6.1.0(rollup@4.17.1) + '@rollup/plugin-node-resolve': 15.2.3(rollup@4.17.1) '@rollup/wasm-node': 4.13.0 ajv: 8.12.0 ansi-colors: 4.1.3 browserslist: 4.23.0 cacache: 18.0.2 chokidar: 3.6.0 - commander: 12.0.0 + commander: 12.1.0 convert-source-map: 2.0.0 dependency-graph: 1.0.0 esbuild-wasm: 0.20.2 @@ -14257,7 +13923,7 @@ snapshots: typescript: 5.4.2 optionalDependencies: esbuild: 0.20.2 - rollup: 4.9.2 + rollup: 4.17.1 nice-napi@1.0.2: dependencies: @@ -14268,13 +13934,6 @@ snapshots: node-addon-api@3.2.1: optional: true - node-fetch@3.0.0-beta.9: - dependencies: - data-uri-to-buffer: 3.0.1 - fetch-blob: 2.1.2 - transitivePeerDependencies: - - domexception - node-forge@1.3.1: {} node-gyp-build@4.8.0: @@ -14289,7 +13948,7 @@ snapshots: make-fetch-happen: 13.0.0 nopt: 7.2.0 proc-log: 3.0.0 - semver: 7.6.0 + semver: 7.6.2 tar: 6.2.0 which: 4.0.0 transitivePeerDependencies: @@ -14325,7 +13984,7 @@ snapshots: dependencies: hosted-git-info: 7.0.1 is-core-module: 2.13.1 - semver: 7.6.0 + semver: 7.6.2 validate-npm-package-license: 3.0.4 normalize-path@3.0.0: {} @@ -14342,7 +14001,7 @@ snapshots: npm-install-checks@6.3.0: dependencies: - semver: 7.6.0 + semver: 7.6.2 npm-normalize-package-bin@2.0.0: {} @@ -14352,7 +14011,7 @@ snapshots: dependencies: hosted-git-info: 7.0.1 proc-log: 3.0.0 - semver: 7.6.0 + semver: 7.6.2 validate-npm-package-name: 5.0.0 npm-packlist@5.1.3: @@ -14371,7 +14030,7 @@ snapshots: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 11.0.1 - semver: 7.6.0 + semver: 7.6.2 npm-registry-fetch@16.1.0: dependencies: @@ -14421,7 +14080,7 @@ snapshots: flat: 5.0.2 front-matter: 4.0.2 fs-extra: 11.1.1 - ignore: 5.2.4 + ignore: 5.3.1 jest-diff: 29.7.0 jsonc-parser: 3.2.0 lines-and-columns: 2.0.3 @@ -14450,13 +14109,13 @@ snapshots: '@nx/nx-linux-x64-musl': 19.3.0 '@nx/nx-win32-arm64-msvc': 19.3.0 '@nx/nx-win32-x64-msvc': 19.3.0 - '@swc/core': 1.4.6(@swc/helpers@0.5.2) + '@swc/core': 1.4.6(@swc/helpers@0.5.11) transitivePeerDependencies: - debug object-assign@4.1.1: {} - object-inspect@1.12.3: {} + object-inspect@1.13.2: {} object-is@1.1.5: dependencies: @@ -14469,7 +14128,7 @@ snapshots: object-values@1.0.0: {} - object.assign@4.1.4: + object.assign@4.1.5: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -14483,40 +14142,10 @@ snapshots: for-own: 1.0.0 isobject: 3.0.1 - object.entries@1.1.7: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - - object.fromentries@2.0.7: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - - object.groupby@1.0.1: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - get-intrinsic: 1.2.4 - - object.hasown@1.1.2: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.22.1 - object.pick@1.3.0: dependencies: isobject: 3.0.1 - object.values@1.1.7: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - obuf@1.1.2: {} on-finished@2.4.1: @@ -14577,8 +14206,6 @@ snapshots: os-tmpdir@1.0.2: {} - p-defer@1.0.0: {} - p-finally@1.0.0: {} p-limit@2.3.0: @@ -14613,11 +14240,6 @@ snapshots: dependencies: aggregate-error: 3.1.0 - p-memoize@4.0.1: - dependencies: - mem: 6.1.1 - mimic-fn: 3.1.0 - p-retry@4.6.2: dependencies: '@types/retry': 0.12.0 @@ -14661,7 +14283,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -14670,10 +14292,6 @@ snapshots: parse-node-version@1.0.1: {} - parse-npm-tarball-url@3.0.0: - dependencies: - semver: 6.3.1 - parse-passwd@1.0.0: {} parse5-html-rewriting-stream@7.0.0: @@ -14719,10 +14337,6 @@ snapshots: lru-cache: 10.2.0 minipass: 7.0.3 - path-temp@2.1.0: - dependencies: - unique-string: 2.0.0 - path-to-regexp@0.1.7: {} path-type@4.0.0: {} @@ -14731,8 +14345,6 @@ snapshots: pathval@1.1.1: {} - picocolors@1.0.0: {} - picocolors@1.0.1: {} picomatch@2.3.1: {} @@ -14765,6 +14377,8 @@ snapshots: mlly: 1.4.2 pathe: 1.1.1 + possible-typed-array-names@1.0.0: {} + postcss-js@4.0.1(postcss@8.4.32): dependencies: camelcase-css: 2.0.1 @@ -14775,7 +14389,7 @@ snapshots: cosmiconfig: 9.0.0(typescript@5.4.2) jiti: 1.21.0 postcss: 8.4.35 - semver: 7.6.0 + semver: 7.6.2 optionalDependencies: webpack: 5.90.3(@swc/core@1.4.6)(esbuild@0.20.2) transitivePeerDependencies: @@ -14791,26 +14405,26 @@ snapshots: postcss-simple-vars: 7.0.1(postcss@8.4.32) sugarss: 4.0.1(postcss@8.4.32) - postcss-modules-extract-imports@3.0.0(postcss@8.4.35): + postcss-modules-extract-imports@3.0.0(postcss@8.4.38): dependencies: - postcss: 8.4.35 + postcss: 8.4.38 - postcss-modules-local-by-default@4.0.4(postcss@8.4.35): + postcss-modules-local-by-default@4.0.4(postcss@8.4.38): dependencies: - icss-utils: 5.1.0(postcss@8.4.35) - postcss: 8.4.35 + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.1.1(postcss@8.4.35): + postcss-modules-scope@3.1.1(postcss@8.4.38): dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-selector-parser: 6.0.15 - postcss-modules-values@4.0.0(postcss@8.4.35): + postcss-modules-values@4.0.0(postcss@8.4.38): dependencies: - icss-utils: 5.1.0(postcss@8.4.35) - postcss: 8.4.35 + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 postcss-nested@6.0.1(postcss@8.4.32): dependencies: @@ -14837,25 +14451,25 @@ snapshots: postcss@8.4.31: dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 + picocolors: 1.0.1 + source-map-js: 1.2.0 postcss@8.4.32: dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 + picocolors: 1.0.1 + source-map-js: 1.2.0 postcss@8.4.35: dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 + picocolors: 1.0.1 + source-map-js: 1.2.0 postcss@8.4.38: dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 prelude-ls@1.2.1: {} @@ -14927,7 +14541,7 @@ snapshots: qs@6.11.0: dependencies: - side-channel: 1.0.4 + side-channel: 1.0.6 querystringify@2.2.0: {} @@ -14948,11 +14562,16 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 - react-dom@18.2.0(react@18.2.0): + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-dom@19.0.0-rc-6d3110b4d9-20240531(react@19.0.0-rc-6d3110b4d9-20240531): + dependencies: + react: 19.0.0-rc-6d3110b4d9-20240531 + scheduler: 0.25.0-rc-6d3110b4d9-20240531 react-is@16.13.1: {} @@ -14960,64 +14579,66 @@ snapshots: react-is@18.2.0: {} - react-number-format@5.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-number-format@5.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - react-refresh@0.14.0: {} + react-refresh@0.14.2: {} - react-remove-scroll-bar@2.3.4(@types/react@18.2.79)(react@18.2.0): + react-remove-scroll-bar@2.3.4(@types/react@18.3.3)(react@18.3.1): dependencies: - react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.2.79)(react@18.2.0) + react: 18.3.1 + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) tslib: 2.6.2 optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - react-remove-scroll@2.5.7(@types/react@18.2.79)(react@18.2.0): + react-remove-scroll@2.5.7(@types/react@18.3.3)(react@18.3.1): dependencies: - react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.2.79)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.79)(react@18.2.0) + react: 18.3.1 + react-remove-scroll-bar: 2.3.4(@types/react@18.3.3)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) tslib: 2.6.2 - use-callback-ref: 1.3.1(@types/react@18.2.79)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.79)(react@18.2.0) + use-callback-ref: 1.3.1(@types/react@18.3.3)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1) optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - react-style-singleton@2.2.1(@types/react@18.2.79)(react@18.2.0): + react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.3.1): dependencies: get-nonce: 1.0.1 invariant: 2.2.4 - react: 18.2.0 + react: 18.3.1 tslib: 2.6.2 optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - react-textarea-autosize@8.5.3(@types/react@18.2.79)(react@18.2.0): + react-textarea-autosize@8.5.3(@types/react@18.3.3)(react@18.3.1): dependencies: '@babel/runtime': 7.24.0 - react: 18.2.0 - use-composed-ref: 1.3.0(react@18.2.0) - use-latest: 1.2.1(@types/react@18.2.79)(react@18.2.0) + react: 18.3.1 + use-composed-ref: 1.3.0(react@18.3.1) + use-latest: 1.2.1(@types/react@18.3.3)(react@18.3.1) transitivePeerDependencies: - '@types/react' - react-transition-group@4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.24.0 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - react@18.2.0: + react@18.3.1: dependencies: loose-envify: 1.4.0 + react@19.0.0-rc-6d3110b4d9-20240531: {} + read-package-json-fast@3.0.2: dependencies: json-parse-even-better-errors: 3.0.1 @@ -15079,15 +14700,6 @@ snapshots: reflect-metadata@0.2.1: {} - reflect.getprototypeof@1.0.4: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - get-intrinsic: 1.2.4 - globalthis: 1.0.3 - which-builtin-type: 1.1.3 - regenerate-unicode-properties@10.1.1: dependencies: regenerate: 1.4.2 @@ -15102,11 +14714,12 @@ snapshots: regex-parser@2.3.0: {} - regexp.prototype.flags@1.5.0: + regexp.prototype.flags@1.5.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - functions-have-names: 1.2.3 + es-errors: 1.3.0 + set-function-name: 2.0.2 regexpu-core@5.3.2: dependencies: @@ -15121,16 +14734,6 @@ snapshots: dependencies: jsesc: 0.5.0 - rehackt@0.0.3(@types/react@18.2.79)(react@18.2.0): - optionalDependencies: - '@types/react': 18.2.79 - react: 18.2.0 - - rename-overwrite@5.0.0: - dependencies: - '@zkochan/rimraf': 2.1.3 - fs-extra: 10.1.0 - require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -15167,12 +14770,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.4: - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@3.1.0: dependencies: onetime: 5.1.2 @@ -15222,23 +14819,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.17.1 fsevents: 2.3.3 - rollup@4.9.2: - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.2 - '@rollup/rollup-android-arm64': 4.9.2 - '@rollup/rollup-darwin-arm64': 4.9.2 - '@rollup/rollup-darwin-x64': 4.9.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.2 - '@rollup/rollup-linux-arm64-gnu': 4.9.2 - '@rollup/rollup-linux-arm64-musl': 4.9.2 - '@rollup/rollup-linux-riscv64-gnu': 4.9.2 - '@rollup/rollup-linux-x64-gnu': 4.9.2 - '@rollup/rollup-linux-x64-musl': 4.9.2 - '@rollup/rollup-win32-arm64-msvc': 4.9.2 - '@rollup/rollup-win32-ia32-msvc': 4.9.2 - '@rollup/rollup-win32-x64-msvc': 4.9.2 - fsevents: 2.3.3 - rrweb-cssom@0.6.0: {} run-async@3.0.0: {} @@ -15255,23 +14835,10 @@ snapshots: dependencies: mri: 1.2.0 - safe-array-concat@1.0.1: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - isarray: 2.0.5 - safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} - safe-regex-test@1.0.0: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - is-regex: 1.1.4 - safer-buffer@2.1.2: {} sass-loader@14.1.1(sass@1.71.1)(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)): @@ -15285,13 +14852,13 @@ snapshots: dependencies: chokidar: 3.6.0 immutable: 4.3.5 - source-map-js: 1.0.2 + source-map-js: 1.2.0 sass@1.72.0: dependencies: chokidar: 3.6.0 immutable: 4.3.5 - source-map-js: 1.0.2 + source-map-js: 1.2.0 sax@1.3.0: optional: true @@ -15300,10 +14867,12 @@ snapshots: dependencies: xmlchars: 2.2.0 - scheduler@0.23.0: + scheduler@0.23.2: dependencies: loose-envify: 1.4.0 + scheduler@0.25.0-rc-6d3110b4d9-20240531: {} + schema-utils@3.3.0: dependencies: '@types/json-schema': 7.0.12 @@ -15393,9 +14962,10 @@ snapshots: gopd: 1.0.1 has-property-descriptors: 1.0.2 - set-function-name@2.0.1: + set-function-name@2.0.2: dependencies: define-data-property: 1.1.4 + es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 @@ -15407,6 +14977,33 @@ snapshots: dependencies: kind-of: 6.0.3 + sharp@0.33.4: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.6.2 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.4 + '@img/sharp-darwin-x64': 0.33.4 + '@img/sharp-libvips-darwin-arm64': 1.0.2 + '@img/sharp-libvips-darwin-x64': 1.0.2 + '@img/sharp-libvips-linux-arm': 1.0.2 + '@img/sharp-libvips-linux-arm64': 1.0.2 + '@img/sharp-libvips-linux-s390x': 1.0.2 + '@img/sharp-libvips-linux-x64': 1.0.2 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 + '@img/sharp-libvips-linuxmusl-x64': 1.0.2 + '@img/sharp-linux-arm': 0.33.4 + '@img/sharp-linux-arm64': 0.33.4 + '@img/sharp-linux-s390x': 0.33.4 + '@img/sharp-linux-x64': 0.33.4 + '@img/sharp-linuxmusl-arm64': 0.33.4 + '@img/sharp-linuxmusl-x64': 0.33.4 + '@img/sharp-wasm32': 0.33.4 + '@img/sharp-win32-ia32': 0.33.4 + '@img/sharp-win32-x64': 0.33.4 + optional: true + shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 @@ -15450,11 +15047,21 @@ snapshots: sherif-windows-arm64: 0.8.4 sherif-windows-x64: 0.8.4 - side-channel@1.0.4: + shiki@0.14.7: + dependencies: + ansi-sequence-parser: 1.1.1 + jsonc-parser: 3.2.1 + vscode-oniguruma: 1.7.0 + vscode-textmate: 8.0.0 + + short-unique-id@5.2.0: {} + + side-channel@1.0.6: dependencies: call-bind: 1.0.7 + es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.12.3 + object-inspect: 1.13.2 siginfo@2.0.0: {} @@ -15473,6 +15080,19 @@ snapshots: transitivePeerDependencies: - supports-color + simple-git@3.25.0: + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + optional: true + slash@3.0.0: {} slash@4.0.0: {} @@ -15507,19 +15127,19 @@ snapshots: solid-refresh@0.6.3(solid-js@1.7.12): dependencies: - '@babel/generator': 7.23.6 - '@babel/helper-module-imports': 7.22.15 - '@babel/types': 7.24.0 + '@babel/generator': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/types': 7.24.7 solid-js: 1.7.12 - - source-map-js@1.0.2: {} + transitivePeerDependencies: + - supports-color source-map-js@1.2.0: {} source-map-loader@5.0.0(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)): dependencies: iconv-lite: 0.6.3 - source-map-js: 1.0.2 + source-map-js: 1.2.0 webpack: 5.90.3(@swc/core@1.4.6)(esbuild@0.20.2) source-map-support@0.5.21: @@ -15533,8 +15153,6 @@ snapshots: source-map@0.7.4: {} - spawn-error-forwarder@1.0.0: {} - spdx-correct@3.1.1: dependencies: spdx-expression-parse: 3.0.1 @@ -15577,14 +15195,6 @@ snapshots: tiny-parse-argv: 2.4.0 tiny-updater: 3.5.1 - split2@1.0.0: - dependencies: - through2: 2.0.5 - - split2@3.2.2: - dependencies: - readable-stream: 3.6.2 - split2@4.2.0: {} sprintf-js@1.0.3: {} @@ -15607,21 +15217,14 @@ snapshots: stop-iteration-iterator@1.0.0: dependencies: - internal-slot: 1.0.5 - - stream-combiner2@1.1.1: - dependencies: - duplexer2: 0.1.4 - readable-stream: 2.3.8 - - stream-to-array@2.3.0: - dependencies: - any-promise: 1.3.0 + internal-slot: 1.0.7 streamsearch@1.1.0: {} string-argv@0.3.2: {} + string-ts@2.1.1: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -15636,35 +15239,6 @@ snapshots: string.fromcodepoint@0.2.1: {} - string.prototype.matchall@4.0.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - regexp.prototype.flags: 1.5.0 - side-channel: 1.0.4 - - string.prototype.trim@1.2.7: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - - string.prototype.trimend@1.0.6: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - - string.prototype.trimstart@1.0.6: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.1 - string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 @@ -15683,8 +15257,6 @@ snapshots: strip-bom@3.0.0: {} - strip-bom@4.0.0: {} - strip-eof@1.0.0: {} strip-final-newline@2.0.0: {} @@ -15715,10 +15287,12 @@ snapshots: stubborn-fs@1.2.5: {} - styled-jsx@5.1.1(react@18.2.0): + styled-jsx@5.1.3(@babel/core@7.24.7)(react@19.0.0-rc-6d3110b4d9-20240531): dependencies: client-only: 0.0.1 - react: 18.2.0 + react: 19.0.0-rc-6d3110b4d9-20240531 + optionalDependencies: + '@babel/core': 7.24.7 stylis@4.2.0: {} @@ -15772,7 +15346,7 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - terser-webpack-plugin@5.3.10(@swc/core@1.4.6)(esbuild@0.20.2)(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)): + terser-webpack-plugin@5.3.10(@swc/core@1.4.6)(esbuild@0.20.2)(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.2)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 @@ -15781,7 +15355,7 @@ snapshots: terser: 5.29.1 webpack: 5.90.3(@swc/core@1.4.6)(esbuild@0.20.2) optionalDependencies: - '@swc/core': 1.4.6(@swc/helpers@0.5.2) + '@swc/core': 1.4.6(@swc/helpers@0.5.11) esbuild: 0.20.2 terser@5.29.1: @@ -15801,15 +15375,6 @@ snapshots: text-table@0.2.0: {} - through2@2.0.5: - dependencies: - readable-stream: 2.3.8 - xtend: 4.0.2 - - through2@4.0.2: - dependencies: - readable-stream: 3.6.2 - through@2.3.8: {} thunky@1.1.0: {} @@ -15913,13 +15478,11 @@ snapshots: dependencies: punycode: 2.3.1 - traverse@0.6.6: {} - tree-kill@1.2.2: {} trim-newlines@5.0.0: {} - ts-api-utils@1.0.2(typescript@5.4.2): + ts-api-utils@1.3.0(typescript@5.4.2): dependencies: typescript: 5.4.2 @@ -15928,17 +15491,12 @@ snapshots: '@ts-morph/common': 0.22.0 code-block-writer: 12.0.0 + ts-pattern@5.2.0: {} + tsconfck@3.0.3(typescript@5.4.2): optionalDependencies: typescript: 5.4.2 - tsconfig-paths@3.15.0: - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -15965,8 +15523,6 @@ snapshots: type-fest@0.21.3: {} - type-fest@0.6.0: {} - type-fest@2.19.0: {} type-fest@3.13.1: {} @@ -15976,34 +15532,38 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 - typed-array-buffer@1.0.0: + typed-assert@1.0.9: {} + + typedoc-plugin-markdown@4.0.3(typedoc@0.25.13(typescript@5.4.2)): dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - is-typed-array: 1.1.12 + typedoc: 0.25.13(typescript@5.4.2) - typed-array-byte-length@1.0.0: + typedoc@0.25.13(typescript@5.4.2): dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 + lunr: 2.3.9 + marked: 4.3.0 + minimatch: 9.0.4 + shiki: 0.14.7 + typescript: 5.4.2 - typed-array-byte-offset@1.0.0: + types-react-dom@19.0.0-rc.1: dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.7 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 + '@types/react': 18.3.3 - typed-array-length@1.0.4: + types-react@19.0.0-rc.1: dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - is-typed-array: 1.1.12 + csstype: 3.1.2 - typed-assert@1.0.9: {} + typescript-eslint@7.14.1(eslint@8.57.0)(typescript@5.4.2): + dependencies: + '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.4.2) + eslint: 8.57.0 + optionalDependencies: + typescript: 5.4.2 + transitivePeerDependencies: + - supports-color typescript@4.9.5: {} @@ -16019,13 +15579,6 @@ snapshots: ufo@1.3.0: {} - unbox-primitive@1.0.2: - dependencies: - call-bind: 1.0.7 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - unc-path-regex@0.1.2: {} undici-types@5.26.5: {} @@ -16055,10 +15608,6 @@ snapshots: dependencies: imurmurhash: 0.1.4 - unique-string@2.0.0: - dependencies: - crypto-random-string: 2.0.0 - universalify@0.1.2: {} universalify@0.2.0: {} @@ -16071,7 +15620,7 @@ snapshots: dependencies: browserslist: 4.23.0 escalade: 3.1.1 - picocolors: 1.0.0 + picocolors: 1.0.1 uri-js@4.4.1: dependencies: @@ -16082,41 +15631,41 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 - use-callback-ref@1.3.1(@types/react@18.2.79)(react@18.2.0): + use-callback-ref@1.3.1(@types/react@18.3.3)(react@18.3.1): dependencies: - react: 18.2.0 + react: 18.3.1 tslib: 2.6.2 optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - use-composed-ref@1.3.0(react@18.2.0): + use-composed-ref@1.3.0(react@18.3.1): dependencies: - react: 18.2.0 + react: 18.3.1 - use-isomorphic-layout-effect@1.1.2(@types/react@18.2.79)(react@18.2.0): + use-isomorphic-layout-effect@1.1.2(@types/react@18.3.3)(react@18.3.1): dependencies: - react: 18.2.0 + react: 18.3.1 optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - use-latest@1.2.1(@types/react@18.2.79)(react@18.2.0): + use-latest@1.2.1(@types/react@18.3.3)(react@18.3.1): dependencies: - react: 18.2.0 - use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.79)(react@18.2.0) + react: 18.3.1 + use-isomorphic-layout-effect: 1.1.2(@types/react@18.3.3)(react@18.3.1) optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - use-sidecar@1.1.2(@types/react@18.2.79)(react@18.2.0): + use-sidecar@1.1.2(@types/react@18.3.3)(react@18.3.1): dependencies: detect-node-es: 1.1.0 - react: 18.2.0 + react: 18.3.1 tslib: 2.6.2 optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - use-sync-external-store@1.2.0(react@18.2.0): + use-sync-external-store@1.2.0(react@18.3.1): dependencies: - react: 18.2.0 + react: 18.3.1 util-deprecate@1.0.2: {} @@ -16126,7 +15675,9 @@ snapshots: v8flags@4.0.1: {} - valibot@0.31.1: {} + valibot@0.32.0: {} + + valibot@0.35.0: {} validate-html-nesting@1.2.2: {} @@ -16135,10 +15686,6 @@ snapshots: spdx-correct: 3.1.1 spdx-expression-parse: 3.0.1 - validate-npm-package-name@4.0.0: - dependencies: - builtins: 5.0.1 - validate-npm-package-name@5.0.0: dependencies: builtins: 5.0.1 @@ -16147,17 +15694,13 @@ snapshots: vary@1.1.2: {} - version-selector-type@3.0.0: - dependencies: - semver: 7.6.0 - vite-node@1.3.1(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1): dependencies: cac: 6.7.14 debug: 4.3.4 pathe: 1.1.1 - picocolors: 1.0.0 - vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) + picocolors: 1.0.1 + vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) transitivePeerDependencies: - '@types/node' - less @@ -16168,64 +15711,49 @@ snapshots: - supports-color - terser - vite-plugin-dts@3.9.1(@types/node@20.10.6)(rollup@4.17.1)(typescript@5.4.2)(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)): + vite-plugin-dts@3.9.1(@types/node@20.10.6)(rollup@4.17.1)(typescript@5.4.2)(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)): dependencies: '@microsoft/api-extractor': 7.43.0(@types/node@20.10.6) '@rollup/pluginutils': 5.1.0(rollup@4.17.1) '@vue/language-core': 1.8.27(typescript@5.4.2) - debug: 4.3.4 + debug: 4.3.5 kolorist: 1.8.0 magic-string: 0.30.8 typescript: 5.4.2 vue-tsc: 1.8.27(typescript@5.4.2) optionalDependencies: - vite: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) + vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-externalize-deps@0.8.0(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)): + vite-plugin-externalize-deps@0.8.0(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)): dependencies: - vite: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) - - vite-plugin-solid@2.10.1(@testing-library/jest-dom@6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)))(solid-js@1.7.12)(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)): - dependencies: - '@babel/core': 7.24.0 - '@types/babel__core': 7.20.5 - babel-preset-solid: 1.8.6(@babel/core@7.24.0) - merge-anything: 5.1.7 - solid-js: 1.7.12 - solid-refresh: 0.6.3(solid-js@1.7.12) - vite: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) - vitefu: 0.2.5(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) - optionalDependencies: - '@testing-library/jest-dom': 6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) - transitivePeerDependencies: - - supports-color + vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vite-plugin-solid@2.10.1(@testing-library/jest-dom@6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)))(solid-js@1.7.12)(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)): dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.7 '@types/babel__core': 7.20.5 - babel-preset-solid: 1.8.6(@babel/core@7.24.0) + babel-preset-solid: 1.8.6(@babel/core@7.24.7) merge-anything: 5.1.7 solid-js: 1.7.12 solid-refresh: 0.6.3(solid-js@1.7.12) - vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) + vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vitefu: 0.2.5(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) optionalDependencies: '@testing-library/jest-dom': 6.4.2(vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)) transitivePeerDependencies: - supports-color - vite-tsconfig-paths@4.3.2(typescript@5.4.2)(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)): + vite-tsconfig-paths@4.3.2(typescript@5.4.2)(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)): dependencies: - debug: 4.3.4 + debug: 4.3.5 globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.4.2) optionalDependencies: - vite: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) + vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) transitivePeerDependencies: - supports-color - typescript @@ -16233,8 +15761,8 @@ snapshots: vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.71.1)(sugarss@4.0.1(postcss@8.4.35))(terser@5.29.1): dependencies: esbuild: 0.19.11 - postcss: 8.4.35 - rollup: 4.9.2 + postcss: 8.4.38 + rollup: 4.17.1 optionalDependencies: '@types/node': 20.10.6 fsevents: 2.3.3 @@ -16246,8 +15774,8 @@ snapshots: vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.71.1)(sugarss@4.0.1)(terser@5.29.1): dependencies: esbuild: 0.19.11 - postcss: 8.4.35 - rollup: 4.9.2 + postcss: 8.4.38 + rollup: 4.17.1 optionalDependencies: '@types/node': 20.10.6 fsevents: 2.3.3 @@ -16256,33 +15784,7 @@ snapshots: sugarss: 4.0.1(postcss@8.4.32) terser: 5.29.1 - vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1): - dependencies: - esbuild: 0.19.11 - postcss: 8.4.35 - rollup: 4.9.2 - optionalDependencies: - '@types/node': 20.10.6 - fsevents: 2.3.3 - less: 4.2.0 - sass: 1.72.0 - sugarss: 4.0.1(postcss@8.4.32) - terser: 5.29.1 - - vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1): - dependencies: - esbuild: 0.19.11 - postcss: 8.4.35 - rollup: 4.9.2 - optionalDependencies: - '@types/node': 20.10.6 - fsevents: 2.3.3 - less: 4.2.0 - sass: 1.72.0 - sugarss: 4.0.1(postcss@8.4.32) - terser: 5.29.1 - - vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1): + vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1): dependencies: esbuild: 0.20.2 postcss: 8.4.38 @@ -16295,13 +15797,9 @@ snapshots: sugarss: 4.0.1(postcss@8.4.32) terser: 5.29.1 - vitefu@0.2.5(vite@5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)): - optionalDependencies: - vite: 5.1.5(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) - vitefu@0.2.5(vite@5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1)): optionalDependencies: - vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) + vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vitest@1.3.1(@types/node@20.10.6)(jsdom@24.0.0)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1): dependencies: @@ -16317,12 +15815,12 @@ snapshots: local-pkg: 0.5.0 magic-string: 0.30.8 pathe: 1.1.1 - picocolors: 1.0.0 + picocolors: 1.0.1 std-env: 3.7.0 strip-literal: 2.0.0 tinybench: 2.5.1 tinypool: 0.8.2 - vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) + vite: 5.2.10(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1(postcss@8.4.32))(terser@5.29.1) vite-node: 1.3.1(@types/node@20.10.6)(less@4.2.0)(sass@1.72.0)(sugarss@4.0.1)(terser@5.29.1) why-is-node-running: 2.2.2 optionalDependencies: @@ -16339,6 +15837,10 @@ snapshots: vlq@0.2.3: {} + vscode-oniguruma@1.7.0: {} + + vscode-textmate@8.0.0: {} + vue-component-type-helpers@1.8.4: {} vue-demi@0.14.6(vue@3.3.4): @@ -16361,7 +15863,7 @@ snapshots: dependencies: '@volar/typescript': 2.1.2 '@vue/language-core': 2.0.6(typescript@5.4.2) - semver: 7.6.0 + semver: 7.6.2 typescript: 5.4.2 vue@3.3.4: @@ -16391,7 +15893,7 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-dev-middleware@5.3.3(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)): + webpack-dev-middleware@5.3.3(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.2)): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -16410,7 +15912,7 @@ snapshots: optionalDependencies: webpack: 5.90.3(@swc/core@1.4.6)(esbuild@0.20.2) - webpack-dev-server@4.15.1(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)): + webpack-dev-server@4.15.1(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.2)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -16440,7 +15942,7 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 5.3.3(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)) + webpack-dev-middleware: 5.3.3(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.2)) ws: 8.16.0 optionalDependencies: webpack: 5.90.3(@swc/core@1.4.6)(esbuild@0.20.2) @@ -16486,7 +15988,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.4.6)(esbuild@0.20.2)(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.1)) + terser-webpack-plugin: 5.3.10(@swc/core@1.4.6)(esbuild@0.20.2)(webpack@5.90.3(@swc/core@1.4.6)(esbuild@0.20.2)) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -16525,21 +16027,6 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-builtin-type@1.1.3: - dependencies: - function.prototype.name: 1.1.5 - has-tostringtag: 1.0.0 - is-async-function: 2.0.0 - is-date-object: 1.0.5 - is-finalizationregistry: 1.0.2 - is-generator-function: 1.0.10 - is-regex: 1.1.4 - is-weakref: 1.0.2 - isarray: 2.0.5 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.11 - which-collection@1.0.1: dependencies: is-map: 2.0.2 @@ -16547,13 +16034,13 @@ snapshots: is-weakmap: 2.0.1 is-weakset: 2.0.2 - which-typed-array@1.1.11: + which-typed-array@1.1.15: dependencies: - available-typed-arrays: 1.0.5 + available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 which@1.3.1: dependencies: @@ -16605,8 +16092,6 @@ snapshots: xmlchars@2.2.0: {} - xtend@4.0.2: {} - y18n@5.0.8: {} yallist@2.1.2: {} @@ -16652,7 +16137,7 @@ snapshots: dependencies: grammex: 3.1.2 - zod-validation-error@3.0.0(zod@3.22.4): + zod-validation-error@3.3.0(zod@3.22.4): dependencies: zod: 3.22.4 diff --git a/scripts/reference-docs.js b/scripts/reference-docs.js new file mode 100644 index 000000000..fad58707e --- /dev/null +++ b/scripts/reference-docs.js @@ -0,0 +1,124 @@ +import * as path from 'node:path' +import { fileURLToPath } from 'node:url' +import { promises } from 'node:fs' +import * as TypeDoc from 'typedoc' + +// Prevent Knip from removing the import +import { load } from './typedoc-remove-prefix.mjs' +;(() => load)() + +const { rm, mkdir } = promises +const __dirname = path.dirname(fileURLToPath(import.meta.url)) + +/** + * @type {Partial} + */ +const options = { + plugin: [ + 'typedoc-plugin-markdown', + path.resolve(__dirname, './typedoc-remove-prefix.mjs'), + ], + hideGenerator: true, + readme: 'none', + flattenOutputFiles: true, + entryFileName: 'index', + hideBreadcrumbs: true, + hidePageHeader: true, + useCodeBlocks: true, + excludePrivate: true, +} + +const packages = [ + { + name: 'form-core', + entryPoint: path.resolve(__dirname, '../packages/form-core/src/index.ts'), + tsconfig: path.resolve( + __dirname, + '../packages/form-core/tsconfig.docs.json', + ), + outputDir: path.resolve(__dirname, '../docs/reference'), + }, + { + name: 'angular-form', + entryPoint: path.resolve( + __dirname, + '../packages/angular-form/src/index.ts', + ), + tsconfig: path.resolve( + __dirname, + '../packages/angular-form/tsconfig.docs.json', + ), + outputDir: path.resolve(__dirname, '../docs/framework/angular/reference'), + exclude: ['packages/form-core/**/*'], + }, + { + name: 'lit-form', + entryPoint: path.resolve(__dirname, '../packages/lit-form/src/index.ts'), + tsconfig: path.resolve( + __dirname, + '../packages/lit-form/tsconfig.docs.json', + ), + outputDir: path.resolve(__dirname, '../docs/framework/lit/reference'), + exclude: ['packages/form-core/**/*'], + }, + { + name: 'react-form', + entryPoint: path.resolve(__dirname, '../packages/react-form/src/index.ts'), + tsconfig: path.resolve( + __dirname, + '../packages/react-form/tsconfig.docs.json', + ), + outputDir: path.resolve(__dirname, '../docs/framework/react/reference'), + exclude: ['packages/form-core/**/*'], + }, + { + name: 'solid-form', + entryPoint: path.resolve(__dirname, '../packages/solid-form/src/index.ts'), + tsconfig: path.resolve( + __dirname, + '../packages/solid-form/tsconfig.docs.json', + ), + outputDir: path.resolve(__dirname, '../docs/framework/solid/reference'), + exclude: ['packages/form-core/**/*'], + }, + { + name: 'vue-form', + entryPoint: path.resolve(__dirname, '../packages/vue-form/src/index.ts'), + tsconfig: path.resolve( + __dirname, + '../packages/vue-form/tsconfig.docs.json', + ), + outputDir: path.resolve(__dirname, '../docs/framework/vue/reference'), + exclude: ['packages/form-core/**/*'], + }, +] + +async function main() { + for (const pkg of packages) { + // Clean and recreate the output directories + try { + await rm(pkg.outputDir, { recursive: true }) + } catch (error) { + // @ts-ignore + if (error.code !== 'ENOENT') { + throw error + } + } + await mkdir(pkg.outputDir, { recursive: true }) + + const app = await TypeDoc.Application.bootstrapWithPlugins({ + ...options, + entryPoints: [pkg.entryPoint], + tsconfig: pkg.tsconfig, + exclude: pkg.exclude, + }) + + const project = await app.convert() + + if (project) { + await app.generateDocs(project, pkg.outputDir) + } + } +} + +main().catch(console.error) diff --git a/scripts/typedoc-remove-prefix.mjs b/scripts/typedoc-remove-prefix.mjs new file mode 100644 index 000000000..f9cfc8d76 --- /dev/null +++ b/scripts/typedoc-remove-prefix.mjs @@ -0,0 +1,24 @@ +import { MarkdownRendererEvent } from 'typedoc-plugin-markdown' + +/** + * @param {import("typedoc-plugin-markdown").MarkdownApplication} app + */ +export function load(app) { + app.renderer.on( + MarkdownRendererEvent.BEGIN, + /** + * @param {import("typedoc-plugin-markdown").MarkdownRendererEvent} renderer + */ (renderer) => { + renderer.urls = renderer.urls?.map((urlMapping) => { + const name = urlMapping.url.split('.') + if (name[0] !== 'index') { + name.splice(0, 1) + } + const newBasename = name.join('.').toLowerCase() + urlMapping.url = newBasename + urlMapping.model.url = newBasename + return urlMapping + }) + }, + ) +} diff --git a/tsconfig.json b/tsconfig.json index 2daa1629d..06d7628be 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,6 +12,7 @@ "isolatedModules": true, "lib": ["DOM", "DOM.Iterable", "ES2022"], "module": "ES2022", + "moduleResolution": "Node", "noEmit": true, "noImplicitReturns": true, "noUncheckedIndexedAccess": true, @@ -22,5 +23,5 @@ "strict": true, "target": "ES2020" }, - "include": [".eslintrc.cjs", "prettier.config.js"] + "include": ["eslint.config.js", "prettier.config.js"] }