@sveltejs/kit 2.47.1 → 2.47.2
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 +1 -1
- package/src/exports/public.d.ts +3 -0
- package/src/runtime/app/server/remote/form.js +10 -7
- package/src/runtime/client/remote-functions/form.svelte.js +38 -53
- package/src/runtime/form-utils.svelte.js +36 -17
- package/src/utils/streaming.js +11 -35
- package/src/version.js +1 -1
- package/types/index.d.ts +4 -1
- package/types/index.d.ts.map +1 -1
package/package.json
CHANGED
package/src/exports/public.d.ts
CHANGED
|
@@ -2021,7 +2021,10 @@ export type RemoteForm<Input extends RemoteFormInput | void, Output> = {
|
|
|
2021
2021
|
preflight(schema: StandardSchemaV1<Input, any>): RemoteForm<Input, Output>;
|
|
2022
2022
|
/** Validate the form contents programmatically */
|
|
2023
2023
|
validate(options?: {
|
|
2024
|
+
/** Set this to `true` to also show validation issues of fields that haven't been touched yet. */
|
|
2024
2025
|
includeUntouched?: boolean;
|
|
2026
|
+
/** Set this to `true` to only run the `preflight` validation. */
|
|
2027
|
+
preflightOnly?: boolean;
|
|
2025
2028
|
/** Perform validation as if the form was submitted by the given button. */
|
|
2026
2029
|
submitter?: HTMLButtonElement | HTMLInputElement;
|
|
2027
2030
|
}): Promise<void>;
|
|
@@ -5,11 +5,12 @@ import { get_request_store } from '@sveltejs/kit/internal/server';
|
|
|
5
5
|
import { DEV } from 'esm-env';
|
|
6
6
|
import {
|
|
7
7
|
convert_formdata,
|
|
8
|
-
flatten_issues,
|
|
9
8
|
create_field_proxy,
|
|
10
9
|
set_nested_value,
|
|
11
10
|
throw_on_old_property_access,
|
|
12
|
-
deep_set
|
|
11
|
+
deep_set,
|
|
12
|
+
normalize_issue,
|
|
13
|
+
flatten_issues
|
|
13
14
|
} from '../../../form-utils.svelte.js';
|
|
14
15
|
import { get_cache, run_remote_function } from './shared.js';
|
|
15
16
|
|
|
@@ -46,7 +47,7 @@ import { get_cache, run_remote_function } from './shared.js';
|
|
|
46
47
|
* @template Output
|
|
47
48
|
* @overload
|
|
48
49
|
* @param {Schema} validate
|
|
49
|
-
* @param {(data: StandardSchemaV1.InferOutput<Schema>, invalid: import('@sveltejs/kit').Invalid<StandardSchemaV1.
|
|
50
|
+
* @param {(data: StandardSchemaV1.InferOutput<Schema>, invalid: import('@sveltejs/kit').Invalid<StandardSchemaV1.InferInput<Schema>>) => MaybePromise<Output>} fn
|
|
50
51
|
* @returns {RemoteForm<StandardSchemaV1.InferInput<Schema>, Output>}
|
|
51
52
|
* @since 2.27
|
|
52
53
|
*/
|
|
@@ -142,7 +143,7 @@ export function form(validate_or_fn, maybe_fn) {
|
|
|
142
143
|
}
|
|
143
144
|
}
|
|
144
145
|
|
|
145
|
-
/** @type {{ submission: true, input?: Record<string, any>, issues?:
|
|
146
|
+
/** @type {{ submission: true, input?: Record<string, any>, issues?: InternalRemoteFormIssue[], result: Output }} */
|
|
146
147
|
const output = {};
|
|
147
148
|
|
|
148
149
|
// make it possible to differentiate between user submission and programmatic `field.set(...)` updates
|
|
@@ -209,6 +210,8 @@ export function form(validate_or_fn, maybe_fn) {
|
|
|
209
210
|
Object.defineProperty(instance, 'fields', {
|
|
210
211
|
get() {
|
|
211
212
|
const data = get_cache(__)?.[''];
|
|
213
|
+
const issues = flatten_issues(data?.issues ?? []);
|
|
214
|
+
|
|
212
215
|
return create_field_proxy(
|
|
213
216
|
{},
|
|
214
217
|
() => data?.input ?? {},
|
|
@@ -224,7 +227,7 @@ export function form(validate_or_fn, maybe_fn) {
|
|
|
224
227
|
|
|
225
228
|
(get_cache(__)[''] ??= {}).input = input;
|
|
226
229
|
},
|
|
227
|
-
() =>
|
|
230
|
+
() => issues
|
|
228
231
|
);
|
|
229
232
|
}
|
|
230
233
|
});
|
|
@@ -293,13 +296,13 @@ export function form(validate_or_fn, maybe_fn) {
|
|
|
293
296
|
}
|
|
294
297
|
|
|
295
298
|
/**
|
|
296
|
-
* @param {{ issues?:
|
|
299
|
+
* @param {{ issues?: InternalRemoteFormIssue[], input?: Record<string, any>, result: any }} output
|
|
297
300
|
* @param {readonly StandardSchemaV1.Issue[]} issues
|
|
298
301
|
* @param {boolean} is_remote_request
|
|
299
302
|
* @param {FormData} form_data
|
|
300
303
|
*/
|
|
301
304
|
function handle_issues(output, issues, is_remote_request, form_data) {
|
|
302
|
-
output.issues =
|
|
305
|
+
output.issues = issues.map((issue) => normalize_issue(issue, true));
|
|
303
306
|
|
|
304
307
|
// if it was a progressively-enhanced submission, we don't need
|
|
305
308
|
// to return the input — it's already there
|
|
@@ -18,27 +18,29 @@ import {
|
|
|
18
18
|
set_nested_value,
|
|
19
19
|
throw_on_old_property_access,
|
|
20
20
|
split_path,
|
|
21
|
-
build_path_string
|
|
21
|
+
build_path_string,
|
|
22
|
+
normalize_issue
|
|
22
23
|
} from '../../form-utils.svelte.js';
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
|
-
* Merge client issues into server issues
|
|
26
|
-
*
|
|
27
|
-
* @param {
|
|
28
|
-
* @
|
|
26
|
+
* Merge client issues into server issues. Server issues are persisted unless
|
|
27
|
+
* a client-issue exists for the same path, in which case the client-issue overrides it.
|
|
28
|
+
* @param {FormData} form_data
|
|
29
|
+
* @param {InternalRemoteFormIssue[]} current_issues
|
|
30
|
+
* @param {InternalRemoteFormIssue[]} client_issues
|
|
31
|
+
* @returns {InternalRemoteFormIssue[]}
|
|
29
32
|
*/
|
|
30
|
-
function merge_with_server_issues(current_issues, client_issues) {
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
for (const [key, new_issue_list] of Object.entries(client_issues)) {
|
|
38
|
-
merged_issues[key] = [...(merged_issues[key] || []), ...new_issue_list];
|
|
39
|
-
}
|
|
33
|
+
function merge_with_server_issues(form_data, current_issues, client_issues) {
|
|
34
|
+
const merged = [
|
|
35
|
+
...current_issues.filter(
|
|
36
|
+
(issue) => issue.server && !client_issues.some((i) => i.name === issue.name)
|
|
37
|
+
),
|
|
38
|
+
...client_issues
|
|
39
|
+
];
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
const keys = Array.from(form_data.keys());
|
|
42
|
+
|
|
43
|
+
return merged.sort((a, b) => keys.indexOf(a.name) - keys.indexOf(b.name));
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
/**
|
|
@@ -77,8 +79,10 @@ export function form(id) {
|
|
|
77
79
|
*/
|
|
78
80
|
const version_reads = new Set();
|
|
79
81
|
|
|
80
|
-
/** @type {
|
|
81
|
-
let
|
|
82
|
+
/** @type {InternalRemoteFormIssue[]} */
|
|
83
|
+
let raw_issues = $state.raw([]);
|
|
84
|
+
|
|
85
|
+
const issues = $derived(flatten_issues(raw_issues));
|
|
82
86
|
|
|
83
87
|
/** @type {any} */
|
|
84
88
|
let result = $state.raw(remote_responses[action_id]);
|
|
@@ -132,8 +136,11 @@ export function form(id) {
|
|
|
132
136
|
const validated = await preflight_schema?.['~standard'].validate(data);
|
|
133
137
|
|
|
134
138
|
if (validated?.issues) {
|
|
135
|
-
|
|
136
|
-
|
|
139
|
+
raw_issues = merge_with_server_issues(
|
|
140
|
+
form_data,
|
|
141
|
+
raw_issues,
|
|
142
|
+
validated.issues.map((issue) => normalize_issue(issue, false))
|
|
143
|
+
);
|
|
137
144
|
return;
|
|
138
145
|
}
|
|
139
146
|
|
|
@@ -223,14 +230,7 @@ export function form(id) {
|
|
|
223
230
|
const form_result = /** @type { RemoteFunctionResponse} */ (await response.json());
|
|
224
231
|
|
|
225
232
|
if (form_result.type === 'result') {
|
|
226
|
-
({ issues =
|
|
227
|
-
|
|
228
|
-
// Mark server issues with server: true
|
|
229
|
-
for (const issue_list of Object.values(issues)) {
|
|
230
|
-
for (const issue of issue_list) {
|
|
231
|
-
issue.server = true;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
233
|
+
({ issues: raw_issues = [], result } = devalue.parse(form_result.result, app.decoders));
|
|
234
234
|
|
|
235
235
|
if (issues.$) {
|
|
236
236
|
release_overrides(updates);
|
|
@@ -572,7 +572,7 @@ export function form(id) {
|
|
|
572
572
|
},
|
|
573
573
|
validate: {
|
|
574
574
|
/** @type {RemoteForm<any, any>['validate']} */
|
|
575
|
-
value: async ({ includeUntouched = false, submitter } = {}) => {
|
|
575
|
+
value: async ({ includeUntouched = false, preflightOnly = false, submitter } = {}) => {
|
|
576
576
|
if (!element) return;
|
|
577
577
|
|
|
578
578
|
const id = ++validate_id;
|
|
@@ -582,7 +582,7 @@ export function form(id) {
|
|
|
582
582
|
|
|
583
583
|
const form_data = new FormData(element, submitter);
|
|
584
584
|
|
|
585
|
-
/** @type {
|
|
585
|
+
/** @type {InternalRemoteFormIssue[]} */
|
|
586
586
|
let array = [];
|
|
587
587
|
|
|
588
588
|
const validated = await preflight_schema?.['~standard'].validate(convert(form_data));
|
|
@@ -592,8 +592,8 @@ export function form(id) {
|
|
|
592
592
|
}
|
|
593
593
|
|
|
594
594
|
if (validated?.issues) {
|
|
595
|
-
array = validated.issues;
|
|
596
|
-
} else {
|
|
595
|
+
array = validated.issues.map((issue) => normalize_issue(issue, false));
|
|
596
|
+
} else if (!preflightOnly) {
|
|
597
597
|
form_data.set('sveltekit:validate_only', 'true');
|
|
598
598
|
|
|
599
599
|
const response = await fetch(`${base}/${app_dir}/remote/${action_id}`, {
|
|
@@ -608,36 +608,21 @@ export function form(id) {
|
|
|
608
608
|
}
|
|
609
609
|
|
|
610
610
|
if (result.type === 'result') {
|
|
611
|
-
array = /** @type {
|
|
611
|
+
array = /** @type {InternalRemoteFormIssue[]} */ (
|
|
612
612
|
devalue.parse(result.result, app.decoders)
|
|
613
613
|
);
|
|
614
614
|
}
|
|
615
615
|
}
|
|
616
616
|
|
|
617
617
|
if (!includeUntouched && !submitted) {
|
|
618
|
-
array = array.filter((issue) =>
|
|
619
|
-
if (issue.path !== undefined) {
|
|
620
|
-
let path = '';
|
|
621
|
-
|
|
622
|
-
for (const segment of issue.path) {
|
|
623
|
-
const key = typeof segment === 'object' ? segment.key : segment;
|
|
624
|
-
|
|
625
|
-
if (typeof key === 'number') {
|
|
626
|
-
path += `[${key}]`;
|
|
627
|
-
} else if (typeof key === 'string') {
|
|
628
|
-
path += path === '' ? key : '.' + key;
|
|
629
|
-
}
|
|
630
|
-
}
|
|
631
|
-
|
|
632
|
-
return touched[path];
|
|
633
|
-
}
|
|
634
|
-
});
|
|
618
|
+
array = array.filter((issue) => touched[issue.name]);
|
|
635
619
|
}
|
|
636
620
|
|
|
637
|
-
const is_server_validation = !validated?.issues;
|
|
638
|
-
const new_issues = flatten_issues(array, is_server_validation);
|
|
621
|
+
const is_server_validation = !validated?.issues && !preflightOnly;
|
|
639
622
|
|
|
640
|
-
|
|
623
|
+
raw_issues = is_server_validation
|
|
624
|
+
? array
|
|
625
|
+
: merge_with_server_issues(form_data, raw_issues, array);
|
|
641
626
|
}
|
|
642
627
|
},
|
|
643
628
|
enhance: {
|
|
@@ -116,39 +116,58 @@ export function deep_set(object, keys, value) {
|
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
/**
|
|
119
|
-
* @param {
|
|
120
|
-
* @param {boolean}
|
|
119
|
+
* @param {StandardSchemaV1.Issue} issue
|
|
120
|
+
* @param {boolean} server Whether this issue came from server validation
|
|
121
121
|
*/
|
|
122
|
-
export function
|
|
122
|
+
export function normalize_issue(issue, server = false) {
|
|
123
|
+
/** @type {InternalRemoteFormIssue} */
|
|
124
|
+
const normalized = { name: '', path: [], message: issue.message, server };
|
|
125
|
+
|
|
126
|
+
if (issue.path !== undefined) {
|
|
127
|
+
let name = '';
|
|
128
|
+
|
|
129
|
+
for (const segment of issue.path) {
|
|
130
|
+
const key = /** @type {string | number} */ (
|
|
131
|
+
typeof segment === 'object' ? segment.key : segment
|
|
132
|
+
);
|
|
133
|
+
|
|
134
|
+
normalized.path.push(key);
|
|
135
|
+
|
|
136
|
+
if (typeof key === 'number') {
|
|
137
|
+
name += `[${key}]`;
|
|
138
|
+
} else if (typeof key === 'string') {
|
|
139
|
+
name += name === '' ? key : '.' + key;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
normalized.name = name;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return normalized;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* @param {InternalRemoteFormIssue[]} issues
|
|
151
|
+
*/
|
|
152
|
+
export function flatten_issues(issues) {
|
|
123
153
|
/** @type {Record<string, InternalRemoteFormIssue[]>} */
|
|
124
154
|
const result = {};
|
|
125
155
|
|
|
126
156
|
for (const issue of issues) {
|
|
127
|
-
|
|
128
|
-
const normalized = { name: '', path: [], message: issue.message, server };
|
|
129
|
-
|
|
130
|
-
(result.$ ??= []).push(normalized);
|
|
157
|
+
(result.$ ??= []).push(issue);
|
|
131
158
|
|
|
132
159
|
let name = '';
|
|
133
160
|
|
|
134
161
|
if (issue.path !== undefined) {
|
|
135
|
-
for (const
|
|
136
|
-
const key = /** @type {string | number} */ (
|
|
137
|
-
typeof segment === 'object' ? segment.key : segment
|
|
138
|
-
);
|
|
139
|
-
|
|
140
|
-
normalized.path.push(key);
|
|
141
|
-
|
|
162
|
+
for (const key of issue.path) {
|
|
142
163
|
if (typeof key === 'number') {
|
|
143
164
|
name += `[${key}]`;
|
|
144
165
|
} else if (typeof key === 'string') {
|
|
145
166
|
name += name === '' ? key : '.' + key;
|
|
146
167
|
}
|
|
147
168
|
|
|
148
|
-
(result[name] ??= []).push(
|
|
169
|
+
(result[name] ??= []).push(issue);
|
|
149
170
|
}
|
|
150
|
-
|
|
151
|
-
normalized.name = name;
|
|
152
171
|
}
|
|
153
172
|
}
|
|
154
173
|
|
package/src/utils/streaming.js
CHANGED
|
@@ -1,18 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* @returns {import('types').Deferred & { promise: Promise<any> }}}
|
|
3
|
-
*/
|
|
4
|
-
function defer() {
|
|
5
|
-
let fulfil;
|
|
6
|
-
let reject;
|
|
7
|
-
|
|
8
|
-
const promise = new Promise((f, r) => {
|
|
9
|
-
fulfil = f;
|
|
10
|
-
reject = r;
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
// @ts-expect-error
|
|
14
|
-
return { promise, fulfil, reject };
|
|
15
|
-
}
|
|
1
|
+
import { with_resolvers } from './promise.js';
|
|
16
2
|
|
|
17
3
|
/**
|
|
18
4
|
* Create an async iterator and a function to push values into it
|
|
@@ -23,9 +9,11 @@ function defer() {
|
|
|
23
9
|
* }}
|
|
24
10
|
*/
|
|
25
11
|
export function create_async_iterator() {
|
|
26
|
-
let
|
|
12
|
+
let resolved = -1;
|
|
13
|
+
let returned = -1;
|
|
27
14
|
|
|
28
|
-
|
|
15
|
+
/** @type {import('./promise.js').PromiseWithResolvers<T>[]} */
|
|
16
|
+
const deferred = [];
|
|
29
17
|
|
|
30
18
|
return {
|
|
31
19
|
iterate: (transform = (x) => x) => {
|
|
@@ -33,32 +21,20 @@ export function create_async_iterator() {
|
|
|
33
21
|
[Symbol.asyncIterator]() {
|
|
34
22
|
return {
|
|
35
23
|
next: async () => {
|
|
36
|
-
const next =
|
|
24
|
+
const next = deferred[++returned];
|
|
25
|
+
if (!next) return { value: null, done: true };
|
|
37
26
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return { value: transform(next.value), done: false };
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return next;
|
|
27
|
+
const value = await next.promise;
|
|
28
|
+
return { value: transform(value), done: false };
|
|
44
29
|
}
|
|
45
30
|
};
|
|
46
31
|
}
|
|
47
32
|
};
|
|
48
33
|
},
|
|
49
34
|
add: (promise) => {
|
|
50
|
-
|
|
51
|
-
|
|
35
|
+
deferred.push(with_resolvers());
|
|
52
36
|
void promise.then((value) => {
|
|
53
|
-
deferred[
|
|
54
|
-
value,
|
|
55
|
-
done: false
|
|
56
|
-
});
|
|
57
|
-
deferred.push(defer());
|
|
58
|
-
|
|
59
|
-
if (--count === 0) {
|
|
60
|
-
deferred[deferred.length - 1].fulfil({ done: true });
|
|
61
|
-
}
|
|
37
|
+
deferred[++resolved].resolve(value);
|
|
62
38
|
});
|
|
63
39
|
}
|
|
64
40
|
};
|
package/src/version.js
CHANGED
package/types/index.d.ts
CHANGED
|
@@ -1997,7 +1997,10 @@ declare module '@sveltejs/kit' {
|
|
|
1997
1997
|
preflight(schema: StandardSchemaV1<Input, any>): RemoteForm<Input, Output>;
|
|
1998
1998
|
/** Validate the form contents programmatically */
|
|
1999
1999
|
validate(options?: {
|
|
2000
|
+
/** Set this to `true` to also show validation issues of fields that haven't been touched yet. */
|
|
2000
2001
|
includeUntouched?: boolean;
|
|
2002
|
+
/** Set this to `true` to only run the `preflight` validation. */
|
|
2003
|
+
preflightOnly?: boolean;
|
|
2001
2004
|
/** Perform validation as if the form was submitted by the given button. */
|
|
2002
2005
|
submitter?: HTMLButtonElement | HTMLInputElement;
|
|
2003
2006
|
}): Promise<void>;
|
|
@@ -3158,7 +3161,7 @@ declare module '$app/server' {
|
|
|
3158
3161
|
*
|
|
3159
3162
|
* @since 2.27
|
|
3160
3163
|
*/
|
|
3161
|
-
export function form<Schema extends StandardSchemaV1<RemoteFormInput, Record<string, any>>, Output>(validate: Schema, fn: (data: StandardSchemaV1.InferOutput<Schema>, invalid: import("@sveltejs/kit").Invalid<StandardSchemaV1.
|
|
3164
|
+
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>;
|
|
3162
3165
|
/**
|
|
3163
3166
|
* Creates a remote prerender function. When called from the browser, the function will be invoked on the server via a `fetch` call.
|
|
3164
3167
|
*
|
package/types/index.d.ts.map
CHANGED
|
@@ -211,6 +211,6 @@
|
|
|
211
211
|
null,
|
|
212
212
|
null
|
|
213
213
|
],
|
|
214
|
-
"mappings": "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
|
|
214
|
+
"mappings": "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",
|
|
215
215
|
"ignoreList": []
|
|
216
216
|
}
|