@sveltejs/kit 2.48.6 → 2.48.8

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sveltejs/kit",
3
- "version": "2.48.6",
3
+ "version": "2.48.8",
4
4
  "description": "SvelteKit is the fastest way to build Svelte apps",
5
5
  "keywords": [
6
6
  "framework",
@@ -1,4 +1,6 @@
1
- import { HttpError, Redirect, ActionFailure } from './internal/index.js';
1
+ /** @import { StandardSchemaV1 } from '@standard-schema/spec' */
2
+
3
+ import { HttpError, Redirect, ActionFailure, ValidationError } from './internal/index.js';
2
4
  import { BROWSER, DEV } from 'esm-env';
3
5
  import {
4
6
  add_data_suffix,
@@ -215,6 +217,49 @@ export function isActionFailure(e) {
215
217
  return e instanceof ActionFailure;
216
218
  }
217
219
 
220
+ /**
221
+ * Use this to throw a validation error to imperatively fail form validation.
222
+ * Can be used in combination with `issue` passed to form actions to create field-specific issues.
223
+ *
224
+ * @example
225
+ * ```ts
226
+ * import { invalid } from '@sveltejs/kit';
227
+ * import { form } from '$app/server';
228
+ * import { tryLogin } from '$lib/server/auth';
229
+ * import * as v from 'valibot';
230
+ *
231
+ * export const login = form(
232
+ * v.object({ name: v.string(), _password: v.string() }),
233
+ * async ({ name, _password }) => {
234
+ * const success = tryLogin(name, _password);
235
+ * if (!success) {
236
+ * invalid('Incorrect username or password');
237
+ * }
238
+ *
239
+ * // ...
240
+ * }
241
+ * );
242
+ * ```
243
+ * @param {...(StandardSchemaV1.Issue | string)} issues
244
+ * @returns {never}
245
+ * @since 2.47.3
246
+ */
247
+ export function invalid(...issues) {
248
+ throw new ValidationError(
249
+ issues.map((issue) => (typeof issue === 'string' ? { message: issue } : issue))
250
+ );
251
+ }
252
+
253
+ /**
254
+ * Checks whether this is an validation error thrown by {@link invalid}.
255
+ * @param {unknown} e The object to check.
256
+ * @return {e is import('./public.js').ActionFailure}
257
+ * @since 2.47.3
258
+ */
259
+ export function isValidationError(e) {
260
+ return e instanceof ValidationError;
261
+ }
262
+
218
263
  /**
219
264
  * Strips possible SvelteKit-internal suffixes and trailing slashes from the URL pathname.
220
265
  * Returns the normalized URL as well as a method for adding the potential suffix back
@@ -1,3 +1,5 @@
1
+ /** @import { StandardSchemaV1 } from '@standard-schema/spec' */
2
+
1
3
  export class HttpError {
2
4
  /**
3
5
  * @param {number} status
@@ -62,4 +64,18 @@ export class ActionFailure {
62
64
  }
63
65
  }
64
66
 
67
+ /**
68
+ * Error thrown when form validation fails imperatively
69
+ */
70
+ export class ValidationError extends Error {
71
+ /**
72
+ * @param {StandardSchemaV1.Issue[]} issues
73
+ */
74
+ constructor(issues) {
75
+ super('Validation failed');
76
+ this.name = 'ValidationError';
77
+ this.issues = issues;
78
+ }
79
+ }
80
+
65
81
  export { init_remote_functions } from './remote-functions.js';
@@ -1992,10 +1992,13 @@ type ExtractId<Input> = Input extends { id: infer Id }
1992
1992
  : string | number;
1993
1993
 
1994
1994
  /**
1995
- * Recursively maps an input type to a structure where each field can create a validation issue.
1996
- * This mirrors the runtime behavior of the `invalid` proxy passed to form handlers.
1995
+ * A function and proxy object used to imperatively create validation errors in form handlers.
1996
+ *
1997
+ * Access properties to create field-specific issues: `issue.fieldName('message')`.
1998
+ * The type structure mirrors the input data structure for type-safe field access.
1999
+ * Call `invalid(issue.foo(...), issue.nested.bar(...))` to throw a validation error.
1997
2000
  */
1998
- type InvalidField<T> =
2001
+ export type InvalidField<T> =
1999
2002
  WillRecurseIndefinitely<T> extends true
2000
2003
  ? Record<string | number, any>
2001
2004
  : NonNullable<T> extends string | number | boolean | File
@@ -2011,15 +2014,12 @@ type InvalidField<T> =
2011
2014
  : Record<string, never>;
2012
2015
 
2013
2016
  /**
2014
- * A function and proxy object used to imperatively create validation errors in form handlers.
2015
- *
2016
- * Call `invalid(issue1, issue2, ...issueN)` to throw a validation error.
2017
- * If an issue is a `string`, it applies to the form as a whole (and will show up in `fields.allIssues()`)
2018
- * Access properties to create field-specific issues: `invalid.fieldName('message')`.
2019
- * The type structure mirrors the input data structure for type-safe field access.
2017
+ * A validation error thrown by `invalid`.
2020
2018
  */
2021
- export type Invalid<Input = any> = ((...issues: Array<string | StandardSchemaV1.Issue>) => never) &
2022
- InvalidField<Input>;
2019
+ export interface ValidationError {
2020
+ /** The validation issues */
2021
+ issues: StandardSchemaV1.Issue[];
2022
+ }
2023
2023
 
2024
2024
  /**
2025
2025
  * The return value of a remote `form` function. See [Remote functions](https://svelte.dev/docs/kit/remote-functions#form) for full documentation.
@@ -2067,15 +2067,13 @@ export type RemoteForm<Input extends RemoteFormInput | void, Output> = {
2067
2067
  includeUntouched?: boolean;
2068
2068
  /** Set this to `true` to only run the `preflight` validation. */
2069
2069
  preflightOnly?: boolean;
2070
- /** Perform validation as if the form was submitted by the given button. */
2071
- submitter?: HTMLButtonElement | HTMLInputElement;
2072
2070
  }): Promise<void>;
2073
2071
  /** The result of the form submission */
2074
2072
  get result(): Output | undefined;
2075
2073
  /** The number of pending submissions */
2076
2074
  get pending(): number;
2077
2075
  /** Access form fields using object notation */
2078
- fields: Input extends void ? never : RemoteFormFields<Input>;
2076
+ fields: RemoteFormFields<Input>;
2079
2077
  /** Spread this onto a `<button>` or `<input type="submit">` */
2080
2078
  buttonProps: {
2081
2079
  type: 'submit';
@@ -1,4 +1,4 @@
1
- /** @import { RemoteFormInput, RemoteForm } from '@sveltejs/kit' */
1
+ /** @import { RemoteFormInput, RemoteForm, InvalidField } from '@sveltejs/kit' */
2
2
  /** @import { InternalRemoteFormIssue, MaybePromise, RemoteInfo } from 'types' */
3
3
  /** @import { StandardSchemaV1 } from '@standard-schema/spec' */
4
4
  import { get_request_store } from '@sveltejs/kit/internal/server';
@@ -13,6 +13,7 @@ import {
13
13
  flatten_issues
14
14
  } from '../../../form-utils.js';
15
15
  import { get_cache, run_remote_function } from './shared.js';
16
+ import { ValidationError } from '@sveltejs/kit/internal';
16
17
 
17
18
  /**
18
19
  * Creates a form object that can be spread onto a `<form>` element.
@@ -21,7 +22,7 @@ import { get_cache, run_remote_function } from './shared.js';
21
22
  *
22
23
  * @template Output
23
24
  * @overload
24
- * @param {(invalid: import('@sveltejs/kit').Invalid<void>) => MaybePromise<Output>} fn
25
+ * @param {() => MaybePromise<Output>} fn
25
26
  * @returns {RemoteForm<void, Output>}
26
27
  * @since 2.27
27
28
  */
@@ -34,7 +35,7 @@ import { get_cache, run_remote_function } from './shared.js';
34
35
  * @template Output
35
36
  * @overload
36
37
  * @param {'unchecked'} validate
37
- * @param {(data: Input, invalid: import('@sveltejs/kit').Invalid<Input>) => MaybePromise<Output>} fn
38
+ * @param {(data: Input, issue: InvalidField<Input>) => MaybePromise<Output>} fn
38
39
  * @returns {RemoteForm<Input, Output>}
39
40
  * @since 2.27
40
41
  */
@@ -47,7 +48,7 @@ import { get_cache, run_remote_function } from './shared.js';
47
48
  * @template Output
48
49
  * @overload
49
50
  * @param {Schema} validate
50
- * @param {(data: StandardSchemaV1.InferOutput<Schema>, invalid: import('@sveltejs/kit').Invalid<StandardSchemaV1.InferInput<Schema>>) => MaybePromise<Output>} fn
51
+ * @param {(data: StandardSchemaV1.InferOutput<Schema>, issue: InvalidField<StandardSchemaV1.InferInput<Schema>>) => MaybePromise<Output>} fn
51
52
  * @returns {RemoteForm<StandardSchemaV1.InferInput<Schema>, Output>}
52
53
  * @since 2.27
53
54
  */
@@ -55,7 +56,7 @@ import { get_cache, run_remote_function } from './shared.js';
55
56
  * @template {RemoteFormInput} Input
56
57
  * @template Output
57
58
  * @param {any} validate_or_fn
58
- * @param {(data_or_invalid: any, invalid?: any) => MaybePromise<Output>} [maybe_fn]
59
+ * @param {(data_or_issue: any, issue?: any) => MaybePromise<Output>} [maybe_fn]
59
60
  * @returns {RemoteForm<Input, Output>}
60
61
  * @since 2.27
61
62
  */
@@ -165,7 +166,7 @@ export function form(validate_or_fn, maybe_fn) {
165
166
 
166
167
  state.refreshes ??= {};
167
168
 
168
- const invalid = create_invalid();
169
+ const issue = create_issues();
169
170
 
170
171
  try {
171
172
  output.result = await run_remote_function(
@@ -174,7 +175,7 @@ export function form(validate_or_fn, maybe_fn) {
174
175
  true,
175
176
  data,
176
177
  (d) => d,
177
- (data) => (!maybe_fn ? fn(invalid) : fn(data, invalid))
178
+ (data) => (!maybe_fn ? fn() : fn(data, issue))
178
179
  );
179
180
  } catch (e) {
180
181
  if (e instanceof ValidationError) {
@@ -328,89 +329,72 @@ function handle_issues(output, issues, is_remote_request, form_data) {
328
329
 
329
330
  /**
330
331
  * Creates an invalid function that can be used to imperatively mark form fields as invalid
331
- * @returns {import('@sveltejs/kit').Invalid}
332
+ * @returns {InvalidField<any>}
332
333
  */
333
- function create_invalid() {
334
- /**
335
- * @param {...(string | StandardSchemaV1.Issue)} issues
336
- * @returns {never}
337
- */
338
- function invalid(...issues) {
339
- throw new ValidationError(
340
- issues.map((issue) => {
341
- if (typeof issue === 'string') {
342
- return {
343
- path: [],
344
- message: issue
345
- };
334
+ function create_issues() {
335
+ return /** @type {InvalidField<any>} */ (
336
+ new Proxy(
337
+ /** @param {string} message */
338
+ (message) => {
339
+ // TODO 3.0 remove
340
+ if (typeof message !== 'string') {
341
+ throw new Error(
342
+ '`invalid` should now be imported from `@sveltejs/kit` to throw validation issues. ' +
343
+ "The second parameter provided to the form function (renamed to `issue`) is still used to construct issues, e.g. `invalid(issue.field('message'))`. " +
344
+ 'For more info see https://github.com/sveltejs/kit/pulls/14768'
345
+ );
346
346
  }
347
347
 
348
- return issue;
349
- })
350
- );
351
- }
352
-
353
- return /** @type {import('@sveltejs/kit').Invalid} */ (
354
- new Proxy(invalid, {
355
- get(target, prop) {
356
- if (typeof prop === 'symbol') return /** @type {any} */ (target)[prop];
348
+ return create_issue(message);
349
+ },
350
+ {
351
+ get(target, prop) {
352
+ if (typeof prop === 'symbol') return /** @type {any} */ (target)[prop];
357
353
 
358
- /**
359
- * @param {string} message
360
- * @param {(string | number)[]} path
361
- * @returns {StandardSchemaV1.Issue}
362
- */
363
- const create_issue = (message, path = []) => ({
364
- message,
365
- path
366
- });
367
-
368
- return create_issue_proxy(prop, create_issue, []);
354
+ return create_issue_proxy(prop, []);
355
+ }
369
356
  }
370
- })
357
+ )
371
358
  );
372
- }
373
359
 
374
- /**
375
- * Error thrown when form validation fails imperatively
376
- */
377
- class ValidationError extends Error {
378
360
  /**
379
- * @param {StandardSchemaV1.Issue[]} issues
361
+ * @param {string} message
362
+ * @param {(string | number)[]} path
363
+ * @returns {StandardSchemaV1.Issue}
380
364
  */
381
- constructor(issues) {
382
- super('Validation failed');
383
- this.name = 'ValidationError';
384
- this.issues = issues;
365
+ function create_issue(message, path = []) {
366
+ return {
367
+ message,
368
+ path
369
+ };
385
370
  }
386
- }
387
-
388
- /**
389
- * Creates a proxy that builds up a path and returns a function to create an issue
390
- * @param {string | number} key
391
- * @param {(message: string, path: (string | number)[]) => StandardSchemaV1.Issue} create_issue
392
- * @param {(string | number)[]} path
393
- */
394
- function create_issue_proxy(key, create_issue, path) {
395
- const new_path = [...path, key];
396
371
 
397
372
  /**
398
- * @param {string} message
399
- * @returns {StandardSchemaV1.Issue}
373
+ * Creates a proxy that builds up a path and returns a function to create an issue
374
+ * @param {string | number} key
375
+ * @param {(string | number)[]} path
400
376
  */
401
- const issue_func = (message) => create_issue(message, new_path);
377
+ function create_issue_proxy(key, path) {
378
+ const new_path = [...path, key];
402
379
 
403
- return new Proxy(issue_func, {
404
- get(target, prop) {
405
- if (typeof prop === 'symbol') return /** @type {any} */ (target)[prop];
380
+ /**
381
+ * @param {string} message
382
+ * @returns {StandardSchemaV1.Issue}
383
+ */
384
+ const issue_func = (message) => create_issue(message, new_path);
406
385
 
407
- // Handle array access like invalid.items[0]
408
- if (/^\d+$/.test(prop)) {
409
- return create_issue_proxy(parseInt(prop, 10), create_issue, new_path);
410
- }
386
+ return new Proxy(issue_func, {
387
+ get(target, prop) {
388
+ if (typeof prop === 'symbol') return /** @type {any} */ (target)[prop];
411
389
 
412
- // Handle property access like invalid.field.nested
413
- return create_issue_proxy(prop, create_issue, new_path);
414
- }
415
- });
390
+ // Handle array access like invalid.items[0]
391
+ if (/^\d+$/.test(prop)) {
392
+ return create_issue_proxy(parseInt(prop, 10), new_path);
393
+ }
394
+
395
+ // Handle property access like invalid.field.nested
396
+ return create_issue_proxy(prop, new_path);
397
+ }
398
+ });
399
+ }
416
400
  }
@@ -522,7 +522,7 @@ export function form(id) {
522
522
  },
523
523
  validate: {
524
524
  /** @type {RemoteForm<any, any>['validate']} */
525
- value: async ({ includeUntouched = false, preflightOnly = false, submitter } = {}) => {
525
+ value: async ({ includeUntouched = false, preflightOnly = false } = {}) => {
526
526
  if (!element) return;
527
527
 
528
528
  const id = ++validate_id;
@@ -530,7 +530,11 @@ export function form(id) {
530
530
  // wait a tick in case the user is calling validate() right after set() which takes time to propagate
531
531
  await tick();
532
532
 
533
- const form_data = new FormData(element, submitter);
533
+ const default_submitter = /** @type {HTMLElement | undefined} */ (
534
+ element.querySelector('button:not([type]), [type="submit"]')
535
+ );
536
+
537
+ const form_data = new FormData(element, default_submitter);
534
538
 
535
539
  /** @type {InternalRemoteFormIssue[]} */
536
540
  let array = [];
@@ -317,16 +317,7 @@ export function is_external_url(url, base, hash_routing) {
317
317
  }
318
318
 
319
319
  if (hash_routing) {
320
- if (url.pathname === base + '/' || url.pathname === base + '/index.html') {
321
- return false;
322
- }
323
-
324
- // be lenient if serving from filesystem
325
- if (url.protocol === 'file:' && url.pathname.replace(/\/[^/]+\.html?$/, '') === base) {
326
- return false;
327
- }
328
-
329
- return true;
320
+ return url.pathname !== location.pathname;
330
321
  }
331
322
 
332
323
  return false;
@@ -183,7 +183,12 @@ export async function internal_respond(request, options, manifest, state) {
183
183
  'Use `event.cookies.set(name, value, options)` instead of `event.setHeaders` to set cookies'
184
184
  );
185
185
  } else if (lower in headers) {
186
- throw new Error(`"${key}" header is already set`);
186
+ // appendHeaders-style for Server-Timing https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Server-Timing
187
+ if (lower === 'server-timing') {
188
+ headers[lower] += ', ' + value;
189
+ } else {
190
+ throw new Error(`"${key}" header is already set`);
191
+ }
187
192
  } else {
188
193
  headers[lower] = value;
189
194
 
package/src/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // generated during release, do not modify
2
2
 
3
3
  /** @type {string} */
4
- export const VERSION = '2.48.6';
4
+ export const VERSION = '2.48.8';
package/types/index.d.ts CHANGED
@@ -1968,10 +1968,13 @@ declare module '@sveltejs/kit' {
1968
1968
  : string | number;
1969
1969
 
1970
1970
  /**
1971
- * Recursively maps an input type to a structure where each field can create a validation issue.
1972
- * This mirrors the runtime behavior of the `invalid` proxy passed to form handlers.
1971
+ * A function and proxy object used to imperatively create validation errors in form handlers.
1972
+ *
1973
+ * Access properties to create field-specific issues: `issue.fieldName('message')`.
1974
+ * The type structure mirrors the input data structure for type-safe field access.
1975
+ * Call `invalid(issue.foo(...), issue.nested.bar(...))` to throw a validation error.
1973
1976
  */
1974
- type InvalidField<T> =
1977
+ export type InvalidField<T> =
1975
1978
  WillRecurseIndefinitely<T> extends true
1976
1979
  ? Record<string | number, any>
1977
1980
  : NonNullable<T> extends string | number | boolean | File
@@ -1987,15 +1990,12 @@ declare module '@sveltejs/kit' {
1987
1990
  : Record<string, never>;
1988
1991
 
1989
1992
  /**
1990
- * A function and proxy object used to imperatively create validation errors in form handlers.
1991
- *
1992
- * Call `invalid(issue1, issue2, ...issueN)` to throw a validation error.
1993
- * If an issue is a `string`, it applies to the form as a whole (and will show up in `fields.allIssues()`)
1994
- * Access properties to create field-specific issues: `invalid.fieldName('message')`.
1995
- * The type structure mirrors the input data structure for type-safe field access.
1993
+ * A validation error thrown by `invalid`.
1996
1994
  */
1997
- export type Invalid<Input = any> = ((...issues: Array<string | StandardSchemaV1.Issue>) => never) &
1998
- InvalidField<Input>;
1995
+ export interface ValidationError {
1996
+ /** The validation issues */
1997
+ issues: StandardSchemaV1.Issue[];
1998
+ }
1999
1999
 
2000
2000
  /**
2001
2001
  * The return value of a remote `form` function. See [Remote functions](https://svelte.dev/docs/kit/remote-functions#form) for full documentation.
@@ -2043,15 +2043,13 @@ declare module '@sveltejs/kit' {
2043
2043
  includeUntouched?: boolean;
2044
2044
  /** Set this to `true` to only run the `preflight` validation. */
2045
2045
  preflightOnly?: boolean;
2046
- /** Perform validation as if the form was submitted by the given button. */
2047
- submitter?: HTMLButtonElement | HTMLInputElement;
2048
2046
  }): Promise<void>;
2049
2047
  /** The result of the form submission */
2050
2048
  get result(): Output | undefined;
2051
2049
  /** The number of pending submissions */
2052
2050
  get pending(): number;
2053
2051
  /** Access form fields using object notation */
2054
- fields: Input extends void ? never : RemoteFormFields<Input>;
2052
+ fields: RemoteFormFields<Input>;
2055
2053
  /** Spread this onto a `<button>` or `<input type="submit">` */
2056
2054
  buttonProps: {
2057
2055
  type: 'submit';
@@ -2702,6 +2700,38 @@ declare module '@sveltejs/kit' {
2702
2700
  * @param e The object to check.
2703
2701
  * */
2704
2702
  export function isActionFailure(e: unknown): e is ActionFailure;
2703
+ /**
2704
+ * Use this to throw a validation error to imperatively fail form validation.
2705
+ * Can be used in combination with `issue` passed to form actions to create field-specific issues.
2706
+ *
2707
+ * @example
2708
+ * ```ts
2709
+ * import { invalid } from '@sveltejs/kit';
2710
+ * import { form } from '$app/server';
2711
+ * import { tryLogin } from '$lib/server/auth';
2712
+ * import * as v from 'valibot';
2713
+ *
2714
+ * export const login = form(
2715
+ * v.object({ name: v.string(), _password: v.string() }),
2716
+ * async ({ name, _password }) => {
2717
+ * const success = tryLogin(name, _password);
2718
+ * if (!success) {
2719
+ * invalid('Incorrect username or password');
2720
+ * }
2721
+ *
2722
+ * // ...
2723
+ * }
2724
+ * );
2725
+ * ```
2726
+ * @since 2.47.3
2727
+ */
2728
+ export function invalid(...issues: (StandardSchemaV1.Issue | string)[]): never;
2729
+ /**
2730
+ * Checks whether this is an validation error thrown by {@link invalid}.
2731
+ * @param e The object to check.
2732
+ * @since 2.47.3
2733
+ */
2734
+ export function isValidationError(e: unknown): e is ActionFailure;
2705
2735
  /**
2706
2736
  * Strips possible SvelteKit-internal suffixes and trailing slashes from the URL pathname.
2707
2737
  * Returns the normalized URL as well as a method for adding the potential suffix back
@@ -3134,7 +3164,7 @@ declare module '$app/paths' {
3134
3164
  }
3135
3165
 
3136
3166
  declare module '$app/server' {
3137
- import type { RequestEvent, RemoteCommand, RemoteForm, RemoteFormInput, RemotePrerenderFunction, RemoteQueryFunction } from '@sveltejs/kit';
3167
+ import type { RequestEvent, RemoteCommand, RemoteForm, RemoteFormInput, InvalidField, RemotePrerenderFunction, RemoteQueryFunction } from '@sveltejs/kit';
3138
3168
  import type { StandardSchemaV1 } from '@standard-schema/spec';
3139
3169
  /**
3140
3170
  * Read the contents of an imported asset from the filesystem
@@ -3188,7 +3218,7 @@ declare module '$app/server' {
3188
3218
  *
3189
3219
  * @since 2.27
3190
3220
  */
3191
- export function form<Output>(fn: (invalid: import("@sveltejs/kit").Invalid<void>) => MaybePromise<Output>): RemoteForm<void, Output>;
3221
+ export function form<Output>(fn: () => MaybePromise<Output>): RemoteForm<void, Output>;
3192
3222
  /**
3193
3223
  * Creates a form object that can be spread onto a `<form>` element.
3194
3224
  *
@@ -3196,7 +3226,7 @@ declare module '$app/server' {
3196
3226
  *
3197
3227
  * @since 2.27
3198
3228
  */
3199
- export function form<Input extends RemoteFormInput, Output>(validate: "unchecked", fn: (data: Input, invalid: import("@sveltejs/kit").Invalid<Input>) => MaybePromise<Output>): RemoteForm<Input, Output>;
3229
+ export function form<Input extends RemoteFormInput, Output>(validate: "unchecked", fn: (data: Input, issue: InvalidField<Input>) => MaybePromise<Output>): RemoteForm<Input, Output>;
3200
3230
  /**
3201
3231
  * Creates a form object that can be spread onto a `<form>` element.
3202
3232
  *
@@ -3204,7 +3234,7 @@ declare module '$app/server' {
3204
3234
  *
3205
3235
  * @since 2.27
3206
3236
  */
3207
- export function form<Schema extends StandardSchemaV1<RemoteFormInput, Record<string, any>>, Output>(validate: Schema, fn: (data: StandardSchemaV1.InferOutput<Schema>, invalid: import("@sveltejs/kit").Invalid<StandardSchemaV1.InferInput<Schema>>) => MaybePromise<Output>): RemoteForm<StandardSchemaV1.InferInput<Schema>, Output>;
3237
+ export function form<Schema extends StandardSchemaV1<RemoteFormInput, Record<string, any>>, Output>(validate: Schema, fn: (data: StandardSchemaV1.InferOutput<Schema>, issue: InvalidField<StandardSchemaV1.InferInput<Schema>>) => MaybePromise<Output>): RemoteForm<StandardSchemaV1.InferInput<Schema>, Output>;
3208
3238
  /**
3209
3239
  * Creates a remote prerender function. When called from the browser, the function will be invoked on the server via a `fetch` call.
3210
3240
  *
@@ -75,7 +75,7 @@
75
75
  "RemoteFormIssue",
76
76
  "ExtractId",
77
77
  "InvalidField",
78
- "Invalid",
78
+ "ValidationError",
79
79
  "RemoteForm",
80
80
  "RemoteCommand",
81
81
  "RemoteResource",
@@ -128,6 +128,8 @@
128
128
  "json",
129
129
  "text",
130
130
  "isActionFailure",
131
+ "invalid",
132
+ "isValidationError",
131
133
  "normalizeUrl",
132
134
  "VERSION",
133
135
  "sequence",
@@ -213,6 +215,6 @@
213
215
  null,
214
216
  null
215
217
  ],
216
- "mappings": "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",
218
+ "mappings": "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",
217
219
  "ignoreList": []
218
220
  }