@sveltejs/kit 1.27.7 → 1.29.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/package.json +1 -1
- package/src/exports/index.js +9 -0
- package/src/runtime/app/paths.js +49 -0
- package/src/runtime/client/client.js +1 -1
- package/src/runtime/server/cookie.js +41 -3
- package/src/runtime/server/fetch.js +14 -2
- package/src/runtime/server/page/load_data.js +18 -8
- package/src/runtime/server/utils.js +14 -0
- package/src/utils/promises.js +45 -1
- package/src/version.js +1 -1
- package/types/index.d.ts +16 -0
- package/types/index.d.ts.map +4 -1
package/package.json
CHANGED
package/src/exports/index.js
CHANGED
|
@@ -113,7 +113,11 @@ export function fail(status, data) {
|
|
|
113
113
|
|
|
114
114
|
const basic_param_pattern = /\[(\[)?(\.\.\.)?(\w+?)(?:=(\w+))?\]\]?/g;
|
|
115
115
|
|
|
116
|
+
let warned = false;
|
|
117
|
+
|
|
116
118
|
/**
|
|
119
|
+
* @deprecated Use `resolveRoute` from `$app/paths` instead.
|
|
120
|
+
*
|
|
117
121
|
* Populate a route ID with params to resolve a pathname.
|
|
118
122
|
* @example
|
|
119
123
|
* ```js
|
|
@@ -130,6 +134,11 @@ const basic_param_pattern = /\[(\[)?(\.\.\.)?(\w+?)(?:=(\w+))?\]\]?/g;
|
|
|
130
134
|
* @returns {string}
|
|
131
135
|
*/
|
|
132
136
|
export function resolvePath(id, params) {
|
|
137
|
+
if (!warned) {
|
|
138
|
+
console.warn('`resolvePath` is deprecated. Use `resolveRoute` from `$app/paths` instead.');
|
|
139
|
+
warned = true;
|
|
140
|
+
}
|
|
141
|
+
|
|
133
142
|
const segments = get_route_segments(id);
|
|
134
143
|
return (
|
|
135
144
|
'/' +
|
package/src/runtime/app/paths.js
CHANGED
|
@@ -1 +1,50 @@
|
|
|
1
1
|
export { base, assets } from '__sveltekit/paths';
|
|
2
|
+
import { base } from '__sveltekit/paths';
|
|
3
|
+
import { get_route_segments } from '../../utils/routing.js';
|
|
4
|
+
|
|
5
|
+
const basic_param_pattern = /\[(\[)?(\.\.\.)?(\w+?)(?:=(\w+))?\]\]?/g;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Populate a route ID with params to resolve a pathname.
|
|
9
|
+
* @example
|
|
10
|
+
* ```js
|
|
11
|
+
* resolveRoute(
|
|
12
|
+
* `/blog/[slug]/[...somethingElse]`,
|
|
13
|
+
* {
|
|
14
|
+
* slug: 'hello-world',
|
|
15
|
+
* somethingElse: 'something/else'
|
|
16
|
+
* }
|
|
17
|
+
* ); // `/blog/hello-world/something/else`
|
|
18
|
+
* ```
|
|
19
|
+
* @param {string} id
|
|
20
|
+
* @param {Record<string, string | undefined>} params
|
|
21
|
+
* @returns {string}
|
|
22
|
+
*/
|
|
23
|
+
export function resolveRoute(id, params) {
|
|
24
|
+
const segments = get_route_segments(id);
|
|
25
|
+
return (
|
|
26
|
+
base +
|
|
27
|
+
'/' +
|
|
28
|
+
segments
|
|
29
|
+
.map((segment) =>
|
|
30
|
+
segment.replace(basic_param_pattern, (_, optional, rest, name) => {
|
|
31
|
+
const param_value = params[name];
|
|
32
|
+
|
|
33
|
+
// This is nested so TS correctly narrows the type
|
|
34
|
+
if (!param_value) {
|
|
35
|
+
if (optional) return '';
|
|
36
|
+
if (rest && param_value !== undefined) return '';
|
|
37
|
+
throw new Error(`Missing parameter '${name}' in route ${id}`);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (param_value.startsWith('/') || param_value.endsWith('/'))
|
|
41
|
+
throw new Error(
|
|
42
|
+
`Parameter '${name}' in route ${id} cannot start or end with a slash -- this would cause an invalid route like foo//bar`
|
|
43
|
+
);
|
|
44
|
+
return param_value;
|
|
45
|
+
})
|
|
46
|
+
)
|
|
47
|
+
.filter(Boolean)
|
|
48
|
+
.join('/')
|
|
49
|
+
);
|
|
50
|
+
}
|
|
@@ -559,7 +559,7 @@ export function create_client(app, target) {
|
|
|
559
559
|
} else {
|
|
560
560
|
data = (await node.universal.load.call(null, load_input)) ?? null;
|
|
561
561
|
}
|
|
562
|
-
data = data ? await unwrap_promises(data) : null;
|
|
562
|
+
data = data ? await unwrap_promises(data, route.id) : null;
|
|
563
563
|
}
|
|
564
564
|
|
|
565
565
|
return {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { parse, serialize } from 'cookie';
|
|
2
|
-
import { normalize_path } from '../../utils/url.js';
|
|
2
|
+
import { normalize_path, resolve } from '../../utils/url.js';
|
|
3
|
+
import { warn_with_callsite } from './utils.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Tracks all cookies set during dev mode so we can emit warnings
|
|
@@ -14,6 +15,27 @@ const cookie_paths = {};
|
|
|
14
15
|
*/
|
|
15
16
|
const MAX_COOKIE_SIZE = 4129;
|
|
16
17
|
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @param {import('cookie').CookieSerializeOptions} opts
|
|
21
|
+
* @param {'set' | 'delete' | 'serialize'} method
|
|
22
|
+
*/
|
|
23
|
+
function deprecate_missing_path(opts, method) {
|
|
24
|
+
if (opts.path === undefined) {
|
|
25
|
+
warn_with_callsite(
|
|
26
|
+
`Calling \`cookies.${method}(...)\` without specifying a \`path\` is deprecated, and will be disallowed in SvelteKit 2.0. Relative paths can be used`,
|
|
27
|
+
1
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (opts.path === '') {
|
|
32
|
+
warn_with_callsite(
|
|
33
|
+
`Calling \`cookies.${method}(...)\` with \`path: ''\` will behave differently in SvelteKit 2.0. Instead of using the browser default behaviour, it will set the cookie path to the current pathname`,
|
|
34
|
+
1
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
17
39
|
/**
|
|
18
40
|
* @param {Request} request
|
|
19
41
|
* @param {URL} url
|
|
@@ -107,6 +129,7 @@ export function get_cookies(request, url, trailing_slash) {
|
|
|
107
129
|
* @param {import('cookie').CookieSerializeOptions} opts
|
|
108
130
|
*/
|
|
109
131
|
set(name, value, opts = {}) {
|
|
132
|
+
deprecate_missing_path(opts, 'set');
|
|
110
133
|
set_internal(name, value, { ...defaults, ...opts });
|
|
111
134
|
},
|
|
112
135
|
|
|
@@ -115,7 +138,10 @@ export function get_cookies(request, url, trailing_slash) {
|
|
|
115
138
|
* @param {import('cookie').CookieSerializeOptions} opts
|
|
116
139
|
*/
|
|
117
140
|
delete(name, opts = {}) {
|
|
141
|
+
deprecate_missing_path(opts, 'delete');
|
|
142
|
+
|
|
118
143
|
cookies.set(name, '', {
|
|
144
|
+
path: default_path, // TODO 2.0 remove this
|
|
119
145
|
...opts,
|
|
120
146
|
maxAge: 0
|
|
121
147
|
});
|
|
@@ -126,7 +152,9 @@ export function get_cookies(request, url, trailing_slash) {
|
|
|
126
152
|
* @param {string} value
|
|
127
153
|
* @param {import('cookie').CookieSerializeOptions} opts
|
|
128
154
|
*/
|
|
129
|
-
serialize(name, value, opts) {
|
|
155
|
+
serialize(name, value, opts = {}) {
|
|
156
|
+
deprecate_missing_path(opts, 'serialize');
|
|
157
|
+
|
|
130
158
|
return serialize(name, value, {
|
|
131
159
|
...defaults,
|
|
132
160
|
...opts
|
|
@@ -174,7 +202,15 @@ export function get_cookies(request, url, trailing_slash) {
|
|
|
174
202
|
* @param {import('cookie').CookieSerializeOptions} opts
|
|
175
203
|
*/
|
|
176
204
|
function set_internal(name, value, opts) {
|
|
177
|
-
|
|
205
|
+
let path = opts.path;
|
|
206
|
+
|
|
207
|
+
if (!opts.domain || opts.domain === url.hostname) {
|
|
208
|
+
if (path) {
|
|
209
|
+
if (path[0] === '.') path = resolve(url.pathname, path);
|
|
210
|
+
} else {
|
|
211
|
+
path = default_path;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
178
214
|
|
|
179
215
|
new_cookies[name] = {
|
|
180
216
|
name,
|
|
@@ -194,8 +230,10 @@ export function get_cookies(request, url, trailing_slash) {
|
|
|
194
230
|
cookie_paths[name] ??= new Set();
|
|
195
231
|
|
|
196
232
|
if (!value) {
|
|
233
|
+
// @ts-expect-error temporary
|
|
197
234
|
cookie_paths[name].delete(path);
|
|
198
235
|
} else {
|
|
236
|
+
// @ts-expect-error temporary
|
|
199
237
|
cookie_paths[name].add(path);
|
|
200
238
|
}
|
|
201
239
|
}
|
|
@@ -14,7 +14,10 @@ import * as paths from '__sveltekit/paths';
|
|
|
14
14
|
* @returns {typeof fetch}
|
|
15
15
|
*/
|
|
16
16
|
export function create_fetch({ event, options, manifest, state, get_cookie_header, set_internal }) {
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* @type {typeof fetch}
|
|
19
|
+
*/
|
|
20
|
+
const server_fetch = async (info, init) => {
|
|
18
21
|
const original_request = normalize_fetch_input(info, init, event.url);
|
|
19
22
|
|
|
20
23
|
// some runtimes (e.g. Cloudflare) error if you access `request.mode`,
|
|
@@ -23,7 +26,7 @@ export function create_fetch({ event, options, manifest, state, get_cookie_heade
|
|
|
23
26
|
let credentials =
|
|
24
27
|
(info instanceof Request ? info.credentials : init?.credentials) ?? 'same-origin';
|
|
25
28
|
|
|
26
|
-
return
|
|
29
|
+
return options.hooks.handleFetch({
|
|
27
30
|
event,
|
|
28
31
|
request: original_request,
|
|
29
32
|
fetch: async (info, init) => {
|
|
@@ -144,6 +147,15 @@ export function create_fetch({ event, options, manifest, state, get_cookie_heade
|
|
|
144
147
|
}
|
|
145
148
|
});
|
|
146
149
|
};
|
|
150
|
+
|
|
151
|
+
// Don't make this function `async`! Otherwise, the user has to `catch` promises they use for streaming responses or else
|
|
152
|
+
// it will be an unhandled rejection. Instead, we add a `.catch(() => {})` ourselves below to this from happening.
|
|
153
|
+
return (input, init) => {
|
|
154
|
+
// See docs in fetch.js for why we need to do this
|
|
155
|
+
const response = server_fetch(input, init);
|
|
156
|
+
response.catch(() => {});
|
|
157
|
+
return response;
|
|
158
|
+
};
|
|
147
159
|
}
|
|
148
160
|
|
|
149
161
|
/**
|
|
@@ -125,9 +125,9 @@ export async function load_server_data({
|
|
|
125
125
|
url
|
|
126
126
|
});
|
|
127
127
|
|
|
128
|
-
const data = result ? await unwrap_promises(result) : null;
|
|
128
|
+
const data = result ? await unwrap_promises(result, node.server_id) : null;
|
|
129
129
|
if (__SVELTEKIT_DEV__) {
|
|
130
|
-
validate_load_response(data,
|
|
130
|
+
validate_load_response(data, node.server_id);
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
done = true;
|
|
@@ -181,9 +181,9 @@ export async function load_data({
|
|
|
181
181
|
parent
|
|
182
182
|
});
|
|
183
183
|
|
|
184
|
-
const data = result ? await unwrap_promises(result) : null;
|
|
184
|
+
const data = result ? await unwrap_promises(result, node.universal_id) : null;
|
|
185
185
|
if (__SVELTEKIT_DEV__) {
|
|
186
|
-
validate_load_response(data,
|
|
186
|
+
validate_load_response(data, node.universal_id);
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
return data;
|
|
@@ -195,13 +195,14 @@ export async function load_data({
|
|
|
195
195
|
* @param {import('./types.js').Fetched[]} fetched
|
|
196
196
|
* @param {boolean} csr
|
|
197
197
|
* @param {Pick<Required<import('@sveltejs/kit').ResolveOptions>, 'filterSerializedResponseHeaders'>} resolve_opts
|
|
198
|
+
* @returns {typeof fetch}
|
|
198
199
|
*/
|
|
199
200
|
export function create_universal_fetch(event, state, fetched, csr, resolve_opts) {
|
|
200
201
|
/**
|
|
201
202
|
* @param {URL | RequestInfo} input
|
|
202
203
|
* @param {RequestInit} [init]
|
|
203
204
|
*/
|
|
204
|
-
|
|
205
|
+
const universal_fetch = async (input, init) => {
|
|
205
206
|
const cloned_body = input instanceof Request && input.body ? input.clone().body : null;
|
|
206
207
|
|
|
207
208
|
const cloned_headers =
|
|
@@ -329,6 +330,15 @@ export function create_universal_fetch(event, state, fetched, csr, resolve_opts)
|
|
|
329
330
|
|
|
330
331
|
return proxy;
|
|
331
332
|
};
|
|
333
|
+
|
|
334
|
+
// Don't make this function `async`! Otherwise, the user has to `catch` promises they use for streaming responses or else
|
|
335
|
+
// it will be an unhandled rejection. Instead, we add a `.catch(() => {})` ourselves below to this from happening.
|
|
336
|
+
return (input, init) => {
|
|
337
|
+
// See docs in fetch.js for why we need to do this
|
|
338
|
+
const response = universal_fetch(input, init);
|
|
339
|
+
response.catch(() => {});
|
|
340
|
+
return response;
|
|
341
|
+
};
|
|
332
342
|
}
|
|
333
343
|
|
|
334
344
|
/**
|
|
@@ -350,12 +360,12 @@ async function stream_to_string(stream) {
|
|
|
350
360
|
|
|
351
361
|
/**
|
|
352
362
|
* @param {any} data
|
|
353
|
-
* @param {string} [
|
|
363
|
+
* @param {string} [id]
|
|
354
364
|
*/
|
|
355
|
-
function validate_load_response(data,
|
|
365
|
+
function validate_load_response(data, id) {
|
|
356
366
|
if (data != null && Object.getPrototypeOf(data) !== Object.prototype) {
|
|
357
367
|
throw new Error(
|
|
358
|
-
`a load function
|
|
368
|
+
`a load function in ${id} returned ${
|
|
359
369
|
typeof data !== 'object'
|
|
360
370
|
? `a ${typeof data}`
|
|
361
371
|
: data instanceof Response
|
|
@@ -159,3 +159,17 @@ export function stringify_uses(node) {
|
|
|
159
159
|
|
|
160
160
|
return `"uses":{${uses.join(',')}}`;
|
|
161
161
|
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* @param {string} message
|
|
165
|
+
* @param {number} offset
|
|
166
|
+
*/
|
|
167
|
+
export function warn_with_callsite(message, offset = 0) {
|
|
168
|
+
if (DEV) {
|
|
169
|
+
const stack = fix_stack_trace(new Error()).split('\n');
|
|
170
|
+
const line = stack.at(3 + offset);
|
|
171
|
+
message += `\n${line}`;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
console.warn(message);
|
|
175
|
+
}
|
package/src/utils/promises.js
CHANGED
|
@@ -1,10 +1,54 @@
|
|
|
1
|
+
import { DEV } from 'esm-env';
|
|
2
|
+
|
|
3
|
+
/** @type {Set<string> | null} */
|
|
4
|
+
let warned = null;
|
|
5
|
+
|
|
6
|
+
// TODO v2: remove all references to unwrap_promises
|
|
7
|
+
|
|
1
8
|
/**
|
|
2
9
|
* Given an object, return a new object where all top level values are awaited
|
|
3
10
|
*
|
|
4
11
|
* @param {Record<string, any>} object
|
|
12
|
+
* @param {string | null} [id]
|
|
5
13
|
* @returns {Promise<Record<string, any>>}
|
|
6
14
|
*/
|
|
7
|
-
export async function unwrap_promises(object) {
|
|
15
|
+
export async function unwrap_promises(object, id) {
|
|
16
|
+
if (DEV) {
|
|
17
|
+
/** @type {string[]} */
|
|
18
|
+
const promises = [];
|
|
19
|
+
|
|
20
|
+
for (const key in object) {
|
|
21
|
+
if (typeof object[key]?.then === 'function') {
|
|
22
|
+
promises.push(key);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (promises.length > 0) {
|
|
27
|
+
if (!warned) warned = new Set();
|
|
28
|
+
|
|
29
|
+
const last = promises.pop();
|
|
30
|
+
|
|
31
|
+
const properties =
|
|
32
|
+
promises.length > 0
|
|
33
|
+
? `${promises.map((p) => `"${p}"`).join(', ')} and "${last}" properties`
|
|
34
|
+
: `"${last}" property`;
|
|
35
|
+
|
|
36
|
+
const location = id ? `the \`load\` function in ${id}` : 'a `load` function';
|
|
37
|
+
|
|
38
|
+
const description = promises.length > 0 ? 'are promises' : 'is a promise';
|
|
39
|
+
|
|
40
|
+
const message = `The top-level ${properties} returned from ${location} ${description}.`;
|
|
41
|
+
|
|
42
|
+
if (!warned.has(message)) {
|
|
43
|
+
console.warn(
|
|
44
|
+
`\n${message}\n\nIn SvelteKit 2.0, these will longer be awaited automatically. To get rid of this warning, await all promises included as top-level properties in \`load\` return values.\n`
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
warned.add(message);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
8
52
|
for (const key in object) {
|
|
9
53
|
if (typeof object[key]?.then === 'function') {
|
|
10
54
|
return Object.fromEntries(
|
package/src/version.js
CHANGED
package/types/index.d.ts
CHANGED
|
@@ -1720,6 +1720,8 @@ declare module '@sveltejs/kit' {
|
|
|
1720
1720
|
* */
|
|
1721
1721
|
export function fail<T extends Record<string, unknown> | undefined = undefined>(status: number, data?: T | undefined): ActionFailure<T>;
|
|
1722
1722
|
/**
|
|
1723
|
+
* @deprecated Use `resolveRoute` from `$app/paths` instead.
|
|
1724
|
+
*
|
|
1723
1725
|
* Populate a route ID with params to resolve a pathname.
|
|
1724
1726
|
* @example
|
|
1725
1727
|
* ```js
|
|
@@ -1997,6 +1999,20 @@ declare module '$app/navigation' {
|
|
|
1997
1999
|
|
|
1998
2000
|
declare module '$app/paths' {
|
|
1999
2001
|
export { base, assets } from '__sveltekit/paths';
|
|
2002
|
+
/**
|
|
2003
|
+
* Populate a route ID with params to resolve a pathname.
|
|
2004
|
+
* @example
|
|
2005
|
+
* ```js
|
|
2006
|
+
* resolveRoute(
|
|
2007
|
+
* `/blog/[slug]/[...somethingElse]`,
|
|
2008
|
+
* {
|
|
2009
|
+
* slug: 'hello-world',
|
|
2010
|
+
* somethingElse: 'something/else'
|
|
2011
|
+
* }
|
|
2012
|
+
* ); // `/blog/hello-world/something/else`
|
|
2013
|
+
* ```
|
|
2014
|
+
* */
|
|
2015
|
+
export function resolveRoute(id: string, params: Record<string, string | undefined>): string;
|
|
2000
2016
|
}
|
|
2001
2017
|
|
|
2002
2018
|
declare module '$app/stores' {
|
package/types/index.d.ts.map
CHANGED
|
@@ -99,6 +99,7 @@
|
|
|
99
99
|
"beforeNavigate",
|
|
100
100
|
"onNavigate",
|
|
101
101
|
"afterNavigate",
|
|
102
|
+
"resolveRoute",
|
|
102
103
|
"getStores",
|
|
103
104
|
"page",
|
|
104
105
|
"navigating",
|
|
@@ -118,6 +119,7 @@
|
|
|
118
119
|
"../src/runtime/app/environment.js",
|
|
119
120
|
"../src/runtime/app/forms.js",
|
|
120
121
|
"../src/runtime/app/navigation.js",
|
|
122
|
+
"../src/runtime/app/paths.js",
|
|
121
123
|
"../src/runtime/app/stores.js"
|
|
122
124
|
],
|
|
123
125
|
"sourcesContent": [
|
|
@@ -134,7 +136,8 @@
|
|
|
134
136
|
null,
|
|
135
137
|
null,
|
|
136
138
|
null,
|
|
139
|
+
null,
|
|
137
140
|
null
|
|
138
141
|
],
|
|
139
|
-
"mappings": "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
|
|
142
|
+
"mappings": "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"
|
|
140
143
|
}
|