@tanstack/react-form 0.45.1 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/start/createServerValidate.cjs +2 -2
- package/dist/cjs/start/createServerValidate.cjs.map +1 -1
- package/dist/cjs/start/getFormData.cjs +3 -3
- package/dist/cjs/start/getFormData.cjs.map +1 -1
- package/dist/esm/start/createServerValidate.js +1 -1
- package/dist/esm/start/createServerValidate.js.map +1 -1
- package/dist/esm/start/getFormData.js +1 -1
- package/dist/esm/start/getFormData.js.map +1 -1
- package/package.json +4 -4
- package/src/start/createServerValidate.tsx +1 -1
- package/src/start/getFormData.tsx +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const decodeFormdata = require("decode-formdata");
|
|
4
4
|
const formCore = require("@tanstack/form-core");
|
|
5
|
-
const
|
|
5
|
+
const server = require("@tanstack/react-start/server");
|
|
6
6
|
const utils = require("./utils.cjs");
|
|
7
7
|
const error = require("./error.cjs");
|
|
8
8
|
const createServerValidate = (defaultOpts) => async (formData, info) => {
|
|
@@ -23,7 +23,7 @@ const createServerValidate = (defaultOpts) => async (formData, info) => {
|
|
|
23
23
|
formApi: void 0
|
|
24
24
|
});
|
|
25
25
|
};
|
|
26
|
-
const referer =
|
|
26
|
+
const referer = server.getHeader("referer");
|
|
27
27
|
const data = decodeFormdata.decode(formData, info);
|
|
28
28
|
const onServerError = await runValidator({
|
|
29
29
|
value: data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createServerValidate.cjs","sources":["../../../src/start/createServerValidate.tsx"],"sourcesContent":["import { decode } from 'decode-formdata'\nimport {\n isGlobalFormValidationError,\n isStandardSchemaValidator,\n standardSchemaValidators,\n} from '@tanstack/form-core'\nimport { getHeader } from '
|
|
1
|
+
{"version":3,"file":"createServerValidate.cjs","sources":["../../../src/start/createServerValidate.tsx"],"sourcesContent":["import { decode } from 'decode-formdata'\nimport {\n isGlobalFormValidationError,\n isStandardSchemaValidator,\n standardSchemaValidators,\n} from '@tanstack/form-core'\nimport { getHeader } from '@tanstack/react-start/server'\nimport { _tanstackInternalsCookie } from './utils'\nimport { ServerValidateError } from './error'\nimport type {\n FormAsyncValidateOrFn,\n FormOptions,\n FormValidateAsyncFn,\n FormValidateOrFn,\n UnwrapFormAsyncValidateOrFn,\n} from '@tanstack/form-core'\nimport type { ServerFormState } from './types'\n\ninterface CreateServerValidateOptions<\n TFormData,\n TOnMount extends undefined | FormValidateOrFn<TFormData>,\n TOnChange extends undefined | FormValidateOrFn<TFormData>,\n TOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n TOnBlur extends undefined | FormValidateOrFn<TFormData>,\n TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n TOnSubmit extends undefined | FormValidateOrFn<TFormData>,\n TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>,\n TSubmitMeta,\n> extends FormOptions<\n TFormData,\n TOnMount,\n TOnChange,\n TOnChangeAsync,\n TOnBlur,\n TOnBlurAsync,\n TOnSubmit,\n TOnSubmitAsync,\n TOnServer,\n TSubmitMeta\n > {\n onServerValidate: TOnServer\n}\n\nexport const createServerValidate =\n <\n TFormData,\n TOnMount extends undefined | FormValidateOrFn<TFormData>,\n TOnChange extends undefined | FormValidateOrFn<TFormData>,\n TOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n TOnBlur extends undefined | FormValidateOrFn<TFormData>,\n TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n TOnSubmit extends undefined | FormValidateOrFn<TFormData>,\n TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>,\n TSubmitMeta,\n >(\n defaultOpts: CreateServerValidateOptions<\n TFormData,\n TOnMount,\n TOnChange,\n TOnChangeAsync,\n TOnBlur,\n TOnBlurAsync,\n TOnSubmit,\n TOnSubmitAsync,\n TOnServer,\n TSubmitMeta\n >,\n ) =>\n async (formData: FormData, info?: Parameters<typeof decode>[1]) => {\n const { onServerValidate } = defaultOpts\n\n const runValidator = async ({\n value,\n validationSource,\n }: {\n value: TFormData\n validationSource: 'form'\n }) => {\n if (isStandardSchemaValidator(onServerValidate)) {\n return await standardSchemaValidators.validateAsync(\n { value, validationSource },\n onServerValidate,\n )\n }\n return (onServerValidate as FormValidateAsyncFn<TFormData>)({\n value,\n signal: undefined as never,\n formApi: undefined as never,\n })\n }\n\n const referer = getHeader('referer')!\n\n const data = decode(formData, info) as never as TFormData\n\n const onServerError = (await runValidator({\n value: data,\n validationSource: 'form',\n })) as UnwrapFormAsyncValidateOrFn<TOnServer> | undefined\n\n if (!onServerError) return\n\n const onServerErrorVal = (\n isGlobalFormValidationError(onServerError)\n ? onServerError.form\n : onServerError\n ) as UnwrapFormAsyncValidateOrFn<TOnServer>\n\n const formState: ServerFormState<TFormData, TOnServer> = {\n errorMap: {\n onServer: onServerError,\n },\n values: data,\n errors: onServerErrorVal ? [onServerErrorVal] : [],\n }\n\n const cookie = await _tanstackInternalsCookie.serialize(formState)\n\n throw new ServerValidateError({\n response: new Response('ok', {\n headers: {\n Location: referer,\n 'Set-Cookie': cookie,\n },\n status: 302,\n }),\n formState: formState,\n })\n }\n"],"names":["isStandardSchemaValidator","standardSchemaValidators","getHeader","decode","isGlobalFormValidationError","_tanstackInternalsCookie","ServerValidateError"],"mappings":";;;;;;;AA4CO,MAAM,uBACX,CAYE,gBAaF,OAAO,UAAoB,SAAwC;AAC3D,QAAA,EAAE,qBAAqB;AAE7B,QAAM,eAAe,OAAO;AAAA,IAC1B;AAAA,IACA;AAAA,EAAA,MAII;AACA,QAAAA,SAAAA,0BAA0B,gBAAgB,GAAG;AAC/C,aAAO,MAAMC,SAAyB,yBAAA;AAAA,QACpC,EAAE,OAAO,iBAAiB;AAAA,QAC1B;AAAA,MACF;AAAA,IAAA;AAEF,WAAQ,iBAAoD;AAAA,MAC1D;AAAA,MACA,QAAQ;AAAA,MACR,SAAS;AAAA,IAAA,CACV;AAAA,EACH;AAEM,QAAA,UAAUC,iBAAU,SAAS;AAE7B,QAAA,OAAOC,eAAAA,OAAO,UAAU,IAAI;AAE5B,QAAA,gBAAiB,MAAM,aAAa;AAAA,IACxC,OAAO;AAAA,IACP,kBAAkB;AAAA,EAAA,CACnB;AAED,MAAI,CAAC,cAAe;AAEpB,QAAM,mBACJC,SAAAA,4BAA4B,aAAa,IACrC,cAAc,OACd;AAGN,QAAM,YAAmD;AAAA,IACvD,UAAU;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ,mBAAmB,CAAC,gBAAgB,IAAI,CAAA;AAAA,EAClD;AAEA,QAAM,SAAS,MAAMC,+BAAyB,UAAU,SAAS;AAEjE,QAAM,IAAIC,MAAAA,oBAAoB;AAAA,IAC5B,UAAU,IAAI,SAAS,MAAM;AAAA,MAC3B,SAAS;AAAA,QACP,UAAU;AAAA,QACV,cAAc;AAAA,MAChB;AAAA,MACA,QAAQ;AAAA,IAAA,CACT;AAAA,IACD;AAAA,EAAA,CACD;AACH;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const
|
|
3
|
+
const server = require("@tanstack/react-start/server");
|
|
4
4
|
const utils = require("./utils.cjs");
|
|
5
5
|
const initialFormState = {
|
|
6
6
|
errorMap: {
|
|
@@ -9,8 +9,8 @@ const initialFormState = {
|
|
|
9
9
|
errors: []
|
|
10
10
|
};
|
|
11
11
|
const getFormData = async () => {
|
|
12
|
-
const data = await utils._tanstackInternalsCookie.parse(
|
|
13
|
-
|
|
12
|
+
const data = await utils._tanstackInternalsCookie.parse(server.getHeader("Cookie"));
|
|
13
|
+
server.removeResponseHeader("Cookie");
|
|
14
14
|
if (!data) return initialFormState;
|
|
15
15
|
return data;
|
|
16
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFormData.cjs","sources":["../../../src/start/getFormData.tsx"],"sourcesContent":["import { getHeader, removeResponseHeader } from '
|
|
1
|
+
{"version":3,"file":"getFormData.cjs","sources":["../../../src/start/getFormData.tsx"],"sourcesContent":["import { getHeader, removeResponseHeader } from '@tanstack/react-start/server'\nimport { _tanstackInternalsCookie } from './utils'\nimport type { ServerFormState } from './types'\n\nexport const initialFormState = {\n errorMap: {\n onServer: undefined,\n },\n errors: [],\n}\n\nexport const getFormData = async () => {\n const data = (await _tanstackInternalsCookie.parse(getHeader('Cookie')!)) as\n | undefined\n | ServerFormState<any, undefined>\n // Delete the cookie before it hits the client again¸\n removeResponseHeader('Cookie')\n if (!data) return initialFormState\n return data\n}\n"],"names":["_tanstackInternalsCookie","getHeader","removeResponseHeader"],"mappings":";;;;AAIO,MAAM,mBAAmB;AAAA,EAC9B,UAAU;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,QAAQ,CAAA;AACV;AAEO,MAAM,cAAc,YAAY;AACrC,QAAM,OAAQ,MAAMA,MAAA,yBAAyB,MAAMC,OAAA,UAAU,QAAQ,CAAE;AAIvEC,SAAAA,qBAAqB,QAAQ;AACzB,MAAA,CAAC,KAAa,QAAA;AACX,SAAA;AACT;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { decode } from "decode-formdata";
|
|
2
2
|
import { isGlobalFormValidationError, isStandardSchemaValidator, standardSchemaValidators } from "@tanstack/form-core";
|
|
3
|
-
import { getHeader } from "
|
|
3
|
+
import { getHeader } from "@tanstack/react-start/server";
|
|
4
4
|
import { _tanstackInternalsCookie } from "./utils.js";
|
|
5
5
|
import { ServerValidateError } from "./error.js";
|
|
6
6
|
const createServerValidate = (defaultOpts) => async (formData, info) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createServerValidate.js","sources":["../../../src/start/createServerValidate.tsx"],"sourcesContent":["import { decode } from 'decode-formdata'\nimport {\n isGlobalFormValidationError,\n isStandardSchemaValidator,\n standardSchemaValidators,\n} from '@tanstack/form-core'\nimport { getHeader } from '
|
|
1
|
+
{"version":3,"file":"createServerValidate.js","sources":["../../../src/start/createServerValidate.tsx"],"sourcesContent":["import { decode } from 'decode-formdata'\nimport {\n isGlobalFormValidationError,\n isStandardSchemaValidator,\n standardSchemaValidators,\n} from '@tanstack/form-core'\nimport { getHeader } from '@tanstack/react-start/server'\nimport { _tanstackInternalsCookie } from './utils'\nimport { ServerValidateError } from './error'\nimport type {\n FormAsyncValidateOrFn,\n FormOptions,\n FormValidateAsyncFn,\n FormValidateOrFn,\n UnwrapFormAsyncValidateOrFn,\n} from '@tanstack/form-core'\nimport type { ServerFormState } from './types'\n\ninterface CreateServerValidateOptions<\n TFormData,\n TOnMount extends undefined | FormValidateOrFn<TFormData>,\n TOnChange extends undefined | FormValidateOrFn<TFormData>,\n TOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n TOnBlur extends undefined | FormValidateOrFn<TFormData>,\n TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n TOnSubmit extends undefined | FormValidateOrFn<TFormData>,\n TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>,\n TSubmitMeta,\n> extends FormOptions<\n TFormData,\n TOnMount,\n TOnChange,\n TOnChangeAsync,\n TOnBlur,\n TOnBlurAsync,\n TOnSubmit,\n TOnSubmitAsync,\n TOnServer,\n TSubmitMeta\n > {\n onServerValidate: TOnServer\n}\n\nexport const createServerValidate =\n <\n TFormData,\n TOnMount extends undefined | FormValidateOrFn<TFormData>,\n TOnChange extends undefined | FormValidateOrFn<TFormData>,\n TOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n TOnBlur extends undefined | FormValidateOrFn<TFormData>,\n TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n TOnSubmit extends undefined | FormValidateOrFn<TFormData>,\n TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>,\n TSubmitMeta,\n >(\n defaultOpts: CreateServerValidateOptions<\n TFormData,\n TOnMount,\n TOnChange,\n TOnChangeAsync,\n TOnBlur,\n TOnBlurAsync,\n TOnSubmit,\n TOnSubmitAsync,\n TOnServer,\n TSubmitMeta\n >,\n ) =>\n async (formData: FormData, info?: Parameters<typeof decode>[1]) => {\n const { onServerValidate } = defaultOpts\n\n const runValidator = async ({\n value,\n validationSource,\n }: {\n value: TFormData\n validationSource: 'form'\n }) => {\n if (isStandardSchemaValidator(onServerValidate)) {\n return await standardSchemaValidators.validateAsync(\n { value, validationSource },\n onServerValidate,\n )\n }\n return (onServerValidate as FormValidateAsyncFn<TFormData>)({\n value,\n signal: undefined as never,\n formApi: undefined as never,\n })\n }\n\n const referer = getHeader('referer')!\n\n const data = decode(formData, info) as never as TFormData\n\n const onServerError = (await runValidator({\n value: data,\n validationSource: 'form',\n })) as UnwrapFormAsyncValidateOrFn<TOnServer> | undefined\n\n if (!onServerError) return\n\n const onServerErrorVal = (\n isGlobalFormValidationError(onServerError)\n ? onServerError.form\n : onServerError\n ) as UnwrapFormAsyncValidateOrFn<TOnServer>\n\n const formState: ServerFormState<TFormData, TOnServer> = {\n errorMap: {\n onServer: onServerError,\n },\n values: data,\n errors: onServerErrorVal ? [onServerErrorVal] : [],\n }\n\n const cookie = await _tanstackInternalsCookie.serialize(formState)\n\n throw new ServerValidateError({\n response: new Response('ok', {\n headers: {\n Location: referer,\n 'Set-Cookie': cookie,\n },\n status: 302,\n }),\n formState: formState,\n })\n }\n"],"names":[],"mappings":";;;;;AA4CO,MAAM,uBACX,CAYE,gBAaF,OAAO,UAAoB,SAAwC;AAC3D,QAAA,EAAE,qBAAqB;AAE7B,QAAM,eAAe,OAAO;AAAA,IAC1B;AAAA,IACA;AAAA,EAAA,MAII;AACA,QAAA,0BAA0B,gBAAgB,GAAG;AAC/C,aAAO,MAAM,yBAAyB;AAAA,QACpC,EAAE,OAAO,iBAAiB;AAAA,QAC1B;AAAA,MACF;AAAA,IAAA;AAEF,WAAQ,iBAAoD;AAAA,MAC1D;AAAA,MACA,QAAQ;AAAA,MACR,SAAS;AAAA,IAAA,CACV;AAAA,EACH;AAEM,QAAA,UAAU,UAAU,SAAS;AAE7B,QAAA,OAAO,OAAO,UAAU,IAAI;AAE5B,QAAA,gBAAiB,MAAM,aAAa;AAAA,IACxC,OAAO;AAAA,IACP,kBAAkB;AAAA,EAAA,CACnB;AAED,MAAI,CAAC,cAAe;AAEpB,QAAM,mBACJ,4BAA4B,aAAa,IACrC,cAAc,OACd;AAGN,QAAM,YAAmD;AAAA,IACvD,UAAU;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ,mBAAmB,CAAC,gBAAgB,IAAI,CAAA;AAAA,EAClD;AAEA,QAAM,SAAS,MAAM,yBAAyB,UAAU,SAAS;AAEjE,QAAM,IAAI,oBAAoB;AAAA,IAC5B,UAAU,IAAI,SAAS,MAAM;AAAA,MAC3B,SAAS;AAAA,QACP,UAAU;AAAA,QACV,cAAc;AAAA,MAChB;AAAA,MACA,QAAQ;AAAA,IAAA,CACT;AAAA,IACD;AAAA,EAAA,CACD;AACH;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFormData.js","sources":["../../../src/start/getFormData.tsx"],"sourcesContent":["import { getHeader, removeResponseHeader } from '
|
|
1
|
+
{"version":3,"file":"getFormData.js","sources":["../../../src/start/getFormData.tsx"],"sourcesContent":["import { getHeader, removeResponseHeader } from '@tanstack/react-start/server'\nimport { _tanstackInternalsCookie } from './utils'\nimport type { ServerFormState } from './types'\n\nexport const initialFormState = {\n errorMap: {\n onServer: undefined,\n },\n errors: [],\n}\n\nexport const getFormData = async () => {\n const data = (await _tanstackInternalsCookie.parse(getHeader('Cookie')!)) as\n | undefined\n | ServerFormState<any, undefined>\n // Delete the cookie before it hits the client again¸\n removeResponseHeader('Cookie')\n if (!data) return initialFormState\n return data\n}\n"],"names":[],"mappings":";;AAIO,MAAM,mBAAmB;AAAA,EAC9B,UAAU;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,QAAQ,CAAA;AACV;AAEO,MAAM,cAAc,YAAY;AACrC,QAAM,OAAQ,MAAM,yBAAyB,MAAM,UAAU,QAAQ,CAAE;AAIvE,uBAAqB,QAAQ;AACzB,MAAA,CAAC,KAAa,QAAA;AACX,SAAA;AACT;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/react-form",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.46.0",
|
|
4
4
|
"description": "Powerful, type-safe forms for React.",
|
|
5
5
|
"author": "tannerlinsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"@tanstack/form-core": "0.45.1"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
|
-
"@tanstack/start": "^1.
|
|
76
|
+
"@tanstack/react-start": "^1.112.0",
|
|
77
77
|
"@types/react": "^19.0.7",
|
|
78
78
|
"@types/react-dom": "^19.0.3",
|
|
79
79
|
"@vitejs/plugin-react": "^4.3.4",
|
|
@@ -84,12 +84,12 @@
|
|
|
84
84
|
"vite": "^6.1.1"
|
|
85
85
|
},
|
|
86
86
|
"peerDependencies": {
|
|
87
|
-
"@tanstack/start": "^1.
|
|
87
|
+
"@tanstack/react-start": "^1.112.0",
|
|
88
88
|
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
89
89
|
"vinxi": "^0.5.0"
|
|
90
90
|
},
|
|
91
91
|
"peerDependenciesMeta": {
|
|
92
|
-
"@tanstack/start": {
|
|
92
|
+
"@tanstack/react-start": {
|
|
93
93
|
"optional": true
|
|
94
94
|
},
|
|
95
95
|
"vinxi": {
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
isStandardSchemaValidator,
|
|
5
5
|
standardSchemaValidators,
|
|
6
6
|
} from '@tanstack/form-core'
|
|
7
|
-
import { getHeader } from '
|
|
7
|
+
import { getHeader } from '@tanstack/react-start/server'
|
|
8
8
|
import { _tanstackInternalsCookie } from './utils'
|
|
9
9
|
import { ServerValidateError } from './error'
|
|
10
10
|
import type {
|