@sveltejs/kit 2.20.1 → 2.20.3

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.20.1",
3
+ "version": "2.20.3",
4
4
  "description": "SvelteKit is the fastest way to build Svelte apps",
5
5
  "keywords": [
6
6
  "framework",
@@ -38,7 +38,7 @@
38
38
  "@types/set-cookie-parser": "^2.4.7",
39
39
  "dts-buddy": "^0.5.5",
40
40
  "rollup": "^4.14.2",
41
- "svelte": "^5.2.9",
41
+ "svelte": "^5.23.1",
42
42
  "svelte-preprocess": "^6.0.0",
43
43
  "typescript": "^5.3.3",
44
44
  "vite": "^6.0.11",
@@ -1025,7 +1025,7 @@ export interface NavigationTarget {
1025
1025
  }
1026
1026
 
1027
1027
  /**
1028
- * - `enter`: The app has hydrated
1028
+ * - `enter`: The app has hydrated/started
1029
1029
  * - `form`: The user submitted a `<form>` with a GET method
1030
1030
  * - `leave`: The user is leaving the app by closing the tab or using the back/forward buttons to go to a different document
1031
1031
  * - `link`: Navigation was triggered by a link click
@@ -1101,7 +1101,7 @@ export interface OnNavigate extends Navigation {
1101
1101
  export interface AfterNavigate extends Omit<Navigation, 'type'> {
1102
1102
  /**
1103
1103
  * The type of navigation:
1104
- * - `enter`: The app has hydrated
1104
+ * - `enter`: The app has hydrated/started
1105
1105
  * - `form`: The user submitted a `<form>`
1106
1106
  * - `link`: Navigation was triggered by a link click
1107
1107
  * - `goto`: Navigation was triggered by a `goto(...)` call or a redirect
@@ -320,8 +320,10 @@ export async function start(_app, _target, hydrate) {
320
320
  if (hydrate) {
321
321
  await _hydrate(target, hydrate);
322
322
  } else {
323
- await goto(app.hash ? decode_hash(new URL(location.href)) : location.href, {
324
- replaceState: true
323
+ await navigate({
324
+ type: 'enter',
325
+ url: resolve_url(app.hash ? decode_hash(new URL(location.href)) : location.href),
326
+ replace_state: true
325
327
  });
326
328
  }
327
329
 
@@ -479,20 +481,22 @@ function initialize(result, target, hydrate) {
479
481
 
480
482
  restore_snapshot(current_navigation_index);
481
483
 
482
- /** @type {import('@sveltejs/kit').AfterNavigate} */
483
- const navigation = {
484
- from: null,
485
- to: {
486
- params: current.params,
487
- route: { id: current.route?.id ?? null },
488
- url: new URL(location.href)
489
- },
490
- willUnload: false,
491
- type: 'enter',
492
- complete: Promise.resolve()
493
- };
484
+ if (hydrate) {
485
+ /** @type {import('@sveltejs/kit').AfterNavigate} */
486
+ const navigation = {
487
+ from: null,
488
+ to: {
489
+ params: current.params,
490
+ route: { id: current.route?.id ?? null },
491
+ url: new URL(location.href)
492
+ },
493
+ willUnload: false,
494
+ type: 'enter',
495
+ complete: Promise.resolve()
496
+ };
494
497
 
495
- after_navigate_callbacks.forEach((fn) => fn(navigation));
498
+ after_navigate_callbacks.forEach((fn) => fn(navigation));
499
+ }
496
500
 
497
501
  started = true;
498
502
  }
@@ -1373,7 +1377,7 @@ function _before_navigate({ url, type, intent, delta }) {
1373
1377
 
1374
1378
  /**
1375
1379
  * @param {{
1376
- * type: import('@sveltejs/kit').Navigation["type"];
1380
+ * type: import('@sveltejs/kit').NavigationType;
1377
1381
  * url: URL;
1378
1382
  * popped?: {
1379
1383
  * state: Record<string, any>;
@@ -1407,7 +1411,10 @@ async function navigate({
1407
1411
  token = nav_token;
1408
1412
 
1409
1413
  const intent = await get_navigation_intent(url, false);
1410
- const nav = _before_navigate({ url, type, delta: popped?.delta, intent });
1414
+ const nav =
1415
+ type === 'enter'
1416
+ ? create_navigation(current, intent, url, type)
1417
+ : _before_navigate({ url, type, delta: popped?.delta, intent });
1411
1418
 
1412
1419
  if (!nav) {
1413
1420
  block();
@@ -1423,7 +1430,7 @@ async function navigate({
1423
1430
 
1424
1431
  is_navigating = true;
1425
1432
 
1426
- if (started) {
1433
+ if (started && nav.navigation.type !== 'enter') {
1427
1434
  stores.navigating.set((navigating.current = nav.navigation));
1428
1435
  }
1429
1436
 
@@ -2847,10 +2854,11 @@ function reset_focus() {
2847
2854
  }
2848
2855
 
2849
2856
  /**
2857
+ * @template {import('@sveltejs/kit').NavigationType} T
2850
2858
  * @param {import('./types.js').NavigationState} current
2851
2859
  * @param {import('./types.js').NavigationIntent | undefined} intent
2852
2860
  * @param {URL | null} url
2853
- * @param {Exclude<import('@sveltejs/kit').NavigationType, 'enter'>} type
2861
+ * @param {T} type
2854
2862
  */
2855
2863
  function create_navigation(current, intent, url, type) {
2856
2864
  /** @type {(value: any) => void} */
@@ -2867,7 +2875,7 @@ function create_navigation(current, intent, url, type) {
2867
2875
  // Handle any errors off-chain so that it doesn't show up as an unhandled rejection
2868
2876
  complete.catch(() => {});
2869
2877
 
2870
- /** @type {import('@sveltejs/kit').Navigation} */
2878
+ /** @type {Omit<import('@sveltejs/kit').Navigation, 'type'> & { type: T }} */
2871
2879
  const navigation = {
2872
2880
  from: {
2873
2881
  params: current.params,
@@ -29,7 +29,7 @@ export async function render_endpoint(event, mod, state) {
29
29
  throw new Error('Cannot prerender endpoints that have mutative methods');
30
30
  }
31
31
 
32
- if (state.prerendering && !prerender) {
32
+ if (state.prerendering && !state.prerendering.inside_reroute && !prerender) {
33
33
  if (state.depth > 0) {
34
34
  // if request came from a prerendered page, bail
35
35
  throw new Error(`${event.route.id} is not prerenderable`);
@@ -41,7 +41,7 @@ export async function render_endpoint(event, mod, state) {
41
41
  }
42
42
 
43
43
  try {
44
- let response = await with_event(event, () =>
44
+ const response = await with_event(event, () =>
45
45
  handler(/** @type {import('@sveltejs/kit').RequestEvent<Record<string, any>>} */ (event))
46
46
  );
47
47
 
@@ -51,15 +51,28 @@ export async function render_endpoint(event, mod, state) {
51
51
  );
52
52
  }
53
53
 
54
- if (state.prerendering) {
55
- // the returned Response might have immutable Headers
56
- // so we should clone them before trying to mutate them
57
- response = new Response(response.body, {
54
+ if (state.prerendering && (!state.prerendering.inside_reroute || prerender)) {
55
+ // The returned Response might have immutable Headers
56
+ // so we should clone them before trying to mutate them.
57
+ // We also need to clone the response body since it may be read twice during prerendering
58
+ const cloned = new Response(response.clone().body, {
58
59
  status: response.status,
59
60
  statusText: response.statusText,
60
61
  headers: new Headers(response.headers)
61
62
  });
62
- response.headers.set('x-sveltekit-prerender', String(prerender));
63
+ cloned.headers.set('x-sveltekit-prerender', String(prerender));
64
+
65
+ if (state.prerendering.inside_reroute && prerender) {
66
+ // Without this, the route wouldn't be recorded as prerendered,
67
+ // because there's nothing after reroute that would do that.
68
+ cloned.headers.set(
69
+ 'x-sveltekit-routeid',
70
+ encodeURI(/** @type {string} */ (event.route.id))
71
+ );
72
+ state.prerendering.dependencies.set(event.url.pathname, { response: cloned, body: null });
73
+ } else {
74
+ return cloned;
75
+ }
63
76
  }
64
77
 
65
78
  return response;
@@ -183,7 +183,12 @@ export async function respond(request, options, manifest, state) {
183
183
 
184
184
  let resolved_path;
185
185
 
186
+ const prerendering_reroute_state = state.prerendering?.inside_reroute;
186
187
  try {
188
+ // For the duration or a reroute, disable the prerendering state as reroute could call API endpoints
189
+ // which would end up in the wrong logic path if not disabled.
190
+ if (state.prerendering) state.prerendering.inside_reroute = true;
191
+
187
192
  // reroute could alter the given URL, so we pass a copy
188
193
  resolved_path =
189
194
  (await options.hooks.reroute({ url: new URL(url), fetch: event.fetch })) ?? url.pathname;
@@ -191,6 +196,8 @@ export async function respond(request, options, manifest, state) {
191
196
  return text('Internal Server Error', {
192
197
  status: 500
193
198
  });
199
+ } finally {
200
+ if (state.prerendering) state.prerendering.inside_reroute = prerendering_reroute_state;
194
201
  }
195
202
 
196
203
  try {
@@ -349,7 +356,9 @@ export async function respond(request, options, manifest, state) {
349
356
 
350
357
  set_trailing_slash(trailing_slash);
351
358
 
352
- if (state.prerendering && !state.prerendering.fallback) disable_search(url);
359
+ if (state.prerendering && !state.prerendering.fallback && !state.prerendering.inside_reroute) {
360
+ disable_search(url);
361
+ }
353
362
 
354
363
  const response = await with_event(event, () =>
355
364
  options.hooks.handle({
@@ -216,6 +216,8 @@ export interface PrerenderOptions {
216
216
  cache?: string; // including this here is a bit of a hack, but it makes it easy to add <meta http-equiv>
217
217
  fallback?: boolean;
218
218
  dependencies: Map<string, PrerenderDependency>;
219
+ /** True for the duration of a call to the `reroute` hook */
220
+ inside_reroute?: boolean;
219
221
  }
220
222
 
221
223
  export type RecursiveRequired<T> = {
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.20.1';
4
+ export const VERSION = '2.20.3';
package/types/index.d.ts CHANGED
@@ -1007,7 +1007,7 @@ declare module '@sveltejs/kit' {
1007
1007
  }
1008
1008
 
1009
1009
  /**
1010
- * - `enter`: The app has hydrated
1010
+ * - `enter`: The app has hydrated/started
1011
1011
  * - `form`: The user submitted a `<form>` with a GET method
1012
1012
  * - `leave`: The user is leaving the app by closing the tab or using the back/forward buttons to go to a different document
1013
1013
  * - `link`: Navigation was triggered by a link click
@@ -1083,7 +1083,7 @@ declare module '@sveltejs/kit' {
1083
1083
  export interface AfterNavigate extends Omit<Navigation, 'type'> {
1084
1084
  /**
1085
1085
  * The type of navigation:
1086
- * - `enter`: The app has hydrated
1086
+ * - `enter`: The app has hydrated/started
1087
1087
  * - `form`: The user submitted a `<form>`
1088
1088
  * - `link`: Navigation was triggered by a link click
1089
1089
  * - `goto`: Navigation was triggered by a `goto(...)` call or a redirect
@@ -166,6 +166,6 @@
166
166
  null,
167
167
  null
168
168
  ],
169
- "mappings": ";;;;;;;;;kBA2BiBA,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;aA2BZC,cAAcA;;;;;;aAMdC,cAAcA;;;;;;;;;;;;;;;kBAeTC,aAAaA;;;;;;;;;;;;;;;;;kBAiBbC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkGPC,MAAMA;;;;;;;;;;;;;;;;;;;;;kBAqBNC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4DPC,QAAQA;;;;;;;;kBAQRC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAiedC,MAAMA;;;;;;;;;;;aAWNC,iBAAiBA;;;;;;;;;;;;;aAajBC,iBAAiBA;;;;;;;;;;aAUjBC,WAAWA;;;;;;;;;;aAUXC,UAAUA;;;;;;aAMVC,UAAUA;;;;;;aAMVC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;aA0BPC,SAASA;;;;;kBAKJC,WAAWA;;;;;;;;;;;;aAYhBC,IAAIA;;;;;;;;;;;;kBAYCC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4GTC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0BfC,gBAAgBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6BrBC,cAAcA;;kBAETC,UAAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAoCVC,cAAcA;;;;;;;;;;kBAUdC,UAAUA;;;;;;;;;;;;;;;;;;kBAkBVC,aAAaA;;;;;;;;;;;;;;;;;;;kBAmBbC,IAAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA8CTC,YAAYA;;kBAEPC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA4FjBC,cAAcA;;;;;kBAKTC,cAAcA;;;;;;;;;;;;;;;;;;;;;;;kBAuBdC,eAAeA;;;;;;;;;;;;;;;cAenBC,MAAMA;;;;;;kBAMFC,iBAAiBA;;;;;;;kBAOjBC,WAAWA;;;;;;;;;;;;;;;;;;;;;;;aAuBhBC,UAAUA;;;;;;;kBAOLC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAqEpBC,MAAMA;;;;;;;;;;aAUNC,OAAOA;;;;;;;;;;;;;;;;aAgBPC,YAAYA;;;;;;;;;;;;kBCh6CXC,SAASA;;;;;;;;;;kBAqBTC,QAAQA;;;;;;;aDw6CTC,cAAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA6BTC,QAAQA;;;;WEp9CRC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAkDZC,GAAGA;;;;;;;;;;;;;;;;;;;;;WAqBHC,aAAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmElBC,UAAUA;;WAELC,MAAMA;;;;;;;;;MASXC,YAAYA;;WAEPC,WAAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAmCXC,yBAAyBA;;;;;;;;;;WAUzBC,yBAAyBA;;;;WAIzBC,sCAAsCA;;;;MAI3CC,8BAA8BA;MAC9BC,8BAA8BA;MAC9BC,2CAA2CA;;;;;;aAM3CC,eAAeA;;WAIVC,cAAcA;;;;;WAKdC,YAAYA;;;;;;MAMjBC,aAAaA;WCxLRC,KAAKA;;;;;;WAeLC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAsHTC,YAAYA;;;;;;;;;;;;;WAaZC,QAAQA;;;;;;;;;;;;;;MAyBbC,iBAAiBA;;;;;;;;;WAWZC,UAAUA;;;;;;;;;;;;;WAaVC,SAASA;;;;;;;;;;;;;;;;;;;;;;;WAyGTC,YAAYA;;;;;;;;;;;;;;;;MAgBjBC,kBAAkBA;;WAEbC,aAAaA;;;;;;;;;;WAUbC,UAAUA;;;;;;;;;;;WAWVC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;MAuBZC,aAAaA;;WA2BRC,eAAeA;;;;;;MAMpBC,uBAAuBA;;MAEvBC,WAAWA;;;;;;;;WAQNC,QAAQA;;;;;;;;;WASRC,cAAcA;;;;;;;;;MA+CnBC,eAAeA;;;;;MAKfC,kBAAkBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBC7adC,WAAWA;;;;;;;;;;;;;;;;;;;iBAsBXC,QAAQA;;;;;iBAiBRC,UAAUA;;;;;;iBASVC,IAAIA;;;;;;iBA8BJC,IAAIA;;;;;;;;;;;;;;;;iBAkDJC,eAAeA;;;;;;;;;;;;;;iBAmBfC,YAAYA;;;;;;;cCtOfC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCoEJC,QAAQA;;;;;;iBCoCFC,UAAUA;;;;;;iBAkCVC,WAAWA;;;;;iBAgFjBC,oBAAoBA;;;;;;;;;;;iBC3MpBC,gBAAgBA;;;;;;;;;iBCgHVC,SAASA;;;;;;;;;cC/HlBC,OAAOA;;;;;cAKPC,GAAGA;;;;;cAKHC,QAAQA;;;;;cAKRC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;iBCWJC,WAAWA;;;;;;;;;;;;;;;;;;;;;;;;iBA8CXC,OAAOA;;;;;;;iBCiiEDC,WAAWA;;;;;;;;;;;iBA/TjBC,aAAaA;;;;;;;;;;;;iBAiBbC,cAAcA;;;;;;;;;;iBAedC,UAAUA;;;;;iBASVC,qBAAqBA;;;;;;;;;;iBA8BrBC,IAAIA;;;;;;;;;;;;;;;;;;;;;;;;;iBAsCJC,UAAUA;;;;iBA0BVC,aAAaA;;;;;;;;;;;;iBAqBPC,WAAWA;;;;;;;;;;;;;;;;;;iBAoCXC,WAAWA;;;;;iBAsCjBC,SAASA;;;;;iBA+CTC,YAAYA;MVv6DhB/D,YAAYA;;;;;;;;;;;YWtJbgE,IAAIA;;;;;;;YAOJC,MAAMA;;;;;;;;;;;;;;;;;iBAiBDC,YAAYA;;;;;;;;;;;;;;;;;;;iBCVZC,IAAIA;;;;;;;iBCGJC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cC2BlBC,IAAIA;;;;;cAQJC,UAAUA;;;;;;;;;;;cAMVC,OAAOA;;;;;;;;;iBCrDPC,SAASA;;;;;;;;;;;;;;;cAyBTH,IAAIA;;;;;;;;;;cAiBJC,UAAUA;;;;;;;;cAeVC,OAAOA",
169
+ "mappings": "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",
170
170
  "ignoreList": []
171
171
  }