@sveltejs/kit 2.48.2 → 2.48.4

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.2",
3
+ "version": "2.48.4",
4
4
  "description": "SvelteKit is the fastest way to build Svelte apps",
5
5
  "keywords": [
6
6
  "framework",
@@ -121,6 +121,8 @@
121
121
  "test:cross-platform:build": "pnpm test:unit && pnpm -r --workspace-concurrency 1 --filter=\"./test/**\" test:cross-platform:build",
122
122
  "test:server-side-route-resolution:dev": "pnpm -r --workspace-concurrency 1 --filter=\"./test/**\" test:server-side-route-resolution:dev",
123
123
  "test:server-side-route-resolution:build": "pnpm test:unit && pnpm -r --workspace-concurrency 1 --filter=\"./test/**\" test:server-side-route-resolution:build",
124
+ "test:svelte-async:dev": "pnpm -r --workspace-concurrency 1 --filter=\"./test/**\" test:svelte-async:dev",
125
+ "test:svelte-async:build": "pnpm test:unit && pnpm -r --workspace-concurrency 1 --filter=\"./test/**\" test:svelte-async:build",
124
126
  "test:unit:dev": "vitest --config kit.vitest.config.js run",
125
127
  "test:unit:prod": "NODE_ENV=production vitest --config kit.vitest.config.js run csp.spec.js cookie.spec.js",
126
128
  "test:unit": "pnpm test:unit:dev && pnpm test:unit:prod",
@@ -171,6 +171,7 @@ export function write_client_manifest(kit, manifest_data, output, metadata) {
171
171
  };
172
172
 
173
173
  export const decoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.decode]));
174
+ export const encoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.encode]));
174
175
 
175
176
  export const hash = ${s(kit.router.type === 'hash')};
176
177
 
@@ -1911,12 +1911,12 @@ export type RemoteFormField<Value extends RemoteFormFieldValue> = RemoteFormFiel
1911
1911
 
1912
1912
  type RemoteFormFieldContainer<Value> = RemoteFormFieldMethods<Value> & {
1913
1913
  /** Validation issues belonging to this or any of the fields that belong to it, if any */
1914
- allIssues(): RemoteFormIssue[] | undefined;
1914
+ allIssues(): RemoteFormAllIssue[] | undefined;
1915
1915
  };
1916
1916
 
1917
1917
  type UnknownField<Value> = RemoteFormFieldMethods<Value> & {
1918
1918
  /** Validation issues belonging to this or any of the fields that belong to it, if any */
1919
- allIssues(): RemoteFormIssue[] | undefined;
1919
+ allIssues(): RemoteFormAllIssue[] | undefined;
1920
1920
  /**
1921
1921
  * Returns an object that can be spread onto an input element with the correct type attribute,
1922
1922
  * aria-invalid attribute if the field is invalid, and appropriate value/checked property getters/setters.
@@ -1965,6 +1965,10 @@ export interface RemoteFormIssue {
1965
1965
  message: string;
1966
1966
  }
1967
1967
 
1968
+ export interface RemoteFormAllIssue extends RemoteFormIssue {
1969
+ path: Array<string | number>;
1970
+ }
1971
+
1968
1972
  // If the schema specifies `id` as a string or number, ensure that `for(...)`
1969
1973
  // only accepts that type. Otherwise, accept `string | number`
1970
1974
  type ExtractId<Input> = Input extends { id: infer Id }
@@ -350,6 +350,7 @@ async function kit({ svelte_config }) {
350
350
  __SVELTEKIT_PATHS_BASE__: s(kit.paths.base),
351
351
  __SVELTEKIT_PATHS_RELATIVE__: s(kit.paths.relative),
352
352
  __SVELTEKIT_CLIENT_ROUTING__: s(kit.router.resolution === 'client'),
353
+ __SVELTEKIT_HASH_ROUTING__: s(kit.router.type === 'hash'),
353
354
  __SVELTEKIT_SERVER_TRACING_ENABLED__: s(kit.experimental.tracing.server)
354
355
  };
355
356
 
@@ -1,6 +1,6 @@
1
1
  /** @import { Asset, RouteId, Pathname, ResolvedPathname } from '$app/types' */
2
2
  /** @import { ResolveArgs } from './types.js' */
3
- import { base, assets } from './internal/client.js';
3
+ import { base, assets, hash_routing } from './internal/client.js';
4
4
  import { resolve_route } from '../../../utils/routing.js';
5
5
 
6
6
  /**
@@ -25,6 +25,8 @@ export function asset(file) {
25
25
  return (assets || base) + file;
26
26
  }
27
27
 
28
+ const pathname_prefix = hash_routing ? '#' : '';
29
+
28
30
  /**
29
31
  * Resolve a pathname by prefixing it with the base path, if any, or resolve a route ID by populating dynamic segments with parameters.
30
32
  *
@@ -51,7 +53,9 @@ export function asset(file) {
51
53
  export function resolve(...args) {
52
54
  // The type error is correct here, and if someone doesn't pass params when they should there's a runtime error,
53
55
  // but we don't want to adjust the internal resolve_route function to accept `undefined`, hence the type cast.
54
- return base + resolve_route(args[0], /** @type {Record<string, string>} */ (args[1]));
56
+ return (
57
+ base + pathname_prefix + resolve_route(args[0], /** @type {Record<string, string>} */ (args[1]))
58
+ );
55
59
  }
56
60
 
57
61
  export { base, assets, resolve as resolveRoute };
@@ -1,3 +1,4 @@
1
1
  export const base = __SVELTEKIT_PAYLOAD__?.base ?? __SVELTEKIT_PATHS_BASE__;
2
2
  export const assets = __SVELTEKIT_PAYLOAD__?.assets ?? base ?? __SVELTEKIT_PATHS_ASSETS__;
3
3
  export const app_dir = __SVELTEKIT_APP_DIR__;
4
+ export const hash_routing = __SVELTEKIT_HASH_ROUTING__;
@@ -153,7 +153,7 @@ export function form(validate_or_fn, maybe_fn) {
153
153
  const validated = await schema?.['~standard'].validate(data);
154
154
 
155
155
  if (validate_only) {
156
- return validated?.issues ?? [];
156
+ return validated?.issues?.map((issue) => normalize_issue(issue, true)) ?? [];
157
157
  }
158
158
 
159
159
  if (validated?.issues !== undefined) {
@@ -572,7 +572,7 @@ async function _preload_code(url) {
572
572
  * @param {HTMLElement} target
573
573
  * @param {boolean} hydrate
574
574
  */
575
- function initialize(result, target, hydrate) {
575
+ async function initialize(result, target, hydrate) {
576
576
  if (DEV && result.state.error && document.querySelector('vite-error-overlay')) return;
577
577
 
578
578
  current = result.state;
@@ -590,6 +590,10 @@ function initialize(result, target, hydrate) {
590
590
  sync: false
591
591
  });
592
592
 
593
+ // Wait for a microtask in case svelte experimental async is enabled,
594
+ // which causes component script blocks to run asynchronously
595
+ void (await Promise.resolve());
596
+
593
597
  restore_snapshot(current_navigation_index);
594
598
 
595
599
  if (hydrate) {
@@ -1737,7 +1741,7 @@ async function navigate({
1737
1741
 
1738
1742
  has_navigated = true;
1739
1743
  } else {
1740
- initialize(navigation_result, target, false);
1744
+ await initialize(navigation_result, target, false);
1741
1745
  }
1742
1746
 
1743
1747
  const { activeElement } = document;
@@ -2845,7 +2849,7 @@ async function _hydrate(
2845
2849
  result.props.page.state = {};
2846
2850
  }
2847
2851
 
2848
- initialize(result, target, hydrate);
2852
+ await initialize(result, target, hydrate);
2849
2853
  }
2850
2854
 
2851
2855
  /**
@@ -1,4 +1,3 @@
1
- /** @import { RemoteFunctionResponse } from 'types' */
2
1
  import { app_dir, base } from '$app/paths/internal/client';
3
2
  import { version } from '__sveltekit/environment';
4
3
  import * as devalue from 'devalue';
@@ -7,12 +6,12 @@ import { app, remote_responses } from '../client.js';
7
6
  import { create_remote_function, remote_request } from './shared.svelte.js';
8
7
 
9
8
  // Initialize Cache API for prerender functions
10
- const CACHE_NAME = `sveltekit:${version}`;
9
+ const CACHE_NAME = DEV ? `sveltekit:${Date.now()}` : `sveltekit:${version}`;
11
10
  /** @type {Cache | undefined} */
12
11
  let prerender_cache;
13
12
 
14
- void (async () => {
15
- if (!DEV && typeof caches !== 'undefined') {
13
+ const prerender_cache_ready = (async () => {
14
+ if (typeof caches !== 'undefined') {
16
15
  try {
17
16
  prerender_cache = await caches.open(CACHE_NAME);
18
17
 
@@ -111,53 +110,68 @@ class Prerender {
111
110
  }
112
111
  }
113
112
 
113
+ /**
114
+ * @param {string} url
115
+ * @param {string} encoded
116
+ */
117
+ function put(url, encoded) {
118
+ return /** @type {Cache} */ (prerender_cache)
119
+ .put(
120
+ url,
121
+ // We need to create a new response because the original response is already consumed
122
+ new Response(encoded, {
123
+ headers: {
124
+ 'Content-Type': 'application/json'
125
+ }
126
+ })
127
+ )
128
+ .catch(() => {
129
+ // Nothing we can do here
130
+ });
131
+ }
132
+
114
133
  /**
115
134
  * @param {string} id
116
135
  */
117
136
  export function prerender(id) {
118
137
  return create_remote_function(id, (cache_key, payload) => {
119
138
  return new Prerender(async () => {
120
- if (Object.hasOwn(remote_responses, cache_key)) {
121
- return remote_responses[cache_key];
122
- }
139
+ await prerender_cache_ready;
123
140
 
124
141
  const url = `${base}/${app_dir}/remote/${id}${payload ? `/${payload}` : ''}`;
125
142
 
143
+ if (Object.hasOwn(remote_responses, cache_key)) {
144
+ const data = remote_responses[cache_key];
145
+
146
+ if (prerender_cache) {
147
+ void put(url, devalue.stringify(data, app.encoders));
148
+ }
149
+
150
+ return data;
151
+ }
152
+
126
153
  // Check the Cache API first
127
154
  if (prerender_cache) {
128
155
  try {
129
156
  const cached_response = await prerender_cache.match(url);
157
+
130
158
  if (cached_response) {
131
- const cached_result = /** @type { RemoteFunctionResponse & { type: 'result' } } */ (
132
- await cached_response.json()
133
- );
134
- return devalue.parse(cached_result.result, app.decoders);
159
+ const cached_result = await cached_response.text();
160
+ return devalue.parse(cached_result, app.decoders);
135
161
  }
136
162
  } catch {
137
163
  // Nothing we can do here
138
164
  }
139
165
  }
140
166
 
141
- const result = await remote_request(url);
167
+ const encoded = await remote_request(url);
142
168
 
143
169
  // For successful prerender requests, save to cache
144
170
  if (prerender_cache) {
145
- try {
146
- await prerender_cache.put(
147
- url,
148
- // We need to create a new response because the original response is already consumed
149
- new Response(JSON.stringify(result), {
150
- headers: {
151
- 'Content-Type': 'application/json'
152
- }
153
- })
154
- );
155
- } catch {
156
- // Nothing we can do here
157
- }
171
+ void put(url, encoded);
158
172
  }
159
173
 
160
- return result;
174
+ return devalue.parse(encoded, app.decoders);
161
175
  });
162
176
  });
163
177
  }
@@ -31,7 +31,8 @@ export function query(id) {
31
31
 
32
32
  const url = `${base}/${app_dir}/remote/${id}${payload ? `?payload=${payload}` : ''}`;
33
33
 
34
- return await remote_request(url);
34
+ const result = await remote_request(url);
35
+ return devalue.parse(result, app.decoders);
35
36
  });
36
37
  });
37
38
  }
@@ -162,15 +163,19 @@ export class Query {
162
163
  const p = this.#promise;
163
164
  this.#overrides.length;
164
165
 
165
- return async (resolve, reject) => {
166
- try {
166
+ return (resolve, reject) => {
167
+ const result = (async () => {
167
168
  await p;
168
169
  // svelte-ignore await_reactivity_loss
169
170
  await tick();
170
- resolve?.(/** @type {T} */ (this.#current));
171
- } catch (error) {
172
- reject?.(error);
171
+ return /** @type {T} */ (this.#current);
172
+ })();
173
+
174
+ if (resolve || reject) {
175
+ return result.then(resolve, reject);
173
176
  }
177
+
178
+ return result;
174
179
  };
175
180
  });
176
181
 
@@ -250,8 +255,14 @@ export class Query {
250
255
  this.#then;
251
256
  return (/** @type {any} */ fn) => {
252
257
  return this.#then(
253
- () => fn(),
254
- () => fn()
258
+ (value) => {
259
+ fn();
260
+ return value;
261
+ },
262
+ (error) => {
263
+ fn();
264
+ throw error;
265
+ }
255
266
  );
256
267
  };
257
268
  }
@@ -37,7 +37,7 @@ export async function remote_request(url) {
37
37
  throw new HttpError(result.status ?? 500, result.error);
38
38
  }
39
39
 
40
- return devalue.parse(result.result, app.decoders);
40
+ return result.result;
41
41
  }
42
42
 
43
43
  /**
@@ -50,6 +50,7 @@ export interface SvelteKitApp {
50
50
  decode: (type: string, value: any) => any;
51
51
 
52
52
  decoders: Record<string, (data: any) => any>;
53
+ encoders: Record<string, (data: any) => any>;
53
54
 
54
55
  /**
55
56
  * Whether or not we're using hash-based routing
@@ -247,6 +247,7 @@ export function create_field_proxy(target, get_input, set_input, get_issues, pat
247
247
 
248
248
  if (prop === 'allIssues') {
249
249
  return all_issues?.map((issue) => ({
250
+ path: issue.path,
250
251
  message: issue.message
251
252
  }));
252
253
  }
@@ -13,6 +13,8 @@ declare global {
13
13
  const __SVELTEKIT_EXPERIMENTAL__REMOTE_FUNCTIONS__: boolean;
14
14
  /** True if `config.kit.router.resolution === 'client'` */
15
15
  const __SVELTEKIT_CLIENT_ROUTING__: boolean;
16
+ /** True if `config.kit.router.type === 'hash'` */
17
+ const __SVELTEKIT_HASH_ROUTING__: boolean;
16
18
  /**
17
19
  * True if any node in the manifest has a server load function.
18
20
  * Used for treeshaking server load code from client bundles when no server loads exist.
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.2';
4
+ export const VERSION = '2.48.4';
package/types/index.d.ts CHANGED
@@ -1887,12 +1887,12 @@ declare module '@sveltejs/kit' {
1887
1887
 
1888
1888
  type RemoteFormFieldContainer<Value> = RemoteFormFieldMethods<Value> & {
1889
1889
  /** Validation issues belonging to this or any of the fields that belong to it, if any */
1890
- allIssues(): RemoteFormIssue[] | undefined;
1890
+ allIssues(): RemoteFormAllIssue[] | undefined;
1891
1891
  };
1892
1892
 
1893
1893
  type UnknownField<Value> = RemoteFormFieldMethods<Value> & {
1894
1894
  /** Validation issues belonging to this or any of the fields that belong to it, if any */
1895
- allIssues(): RemoteFormIssue[] | undefined;
1895
+ allIssues(): RemoteFormAllIssue[] | undefined;
1896
1896
  /**
1897
1897
  * Returns an object that can be spread onto an input element with the correct type attribute,
1898
1898
  * aria-invalid attribute if the field is invalid, and appropriate value/checked property getters/setters.
@@ -1941,6 +1941,10 @@ declare module '@sveltejs/kit' {
1941
1941
  message: string;
1942
1942
  }
1943
1943
 
1944
+ export interface RemoteFormAllIssue extends RemoteFormIssue {
1945
+ path: Array<string | number>;
1946
+ }
1947
+
1944
1948
  // If the schema specifies `id` as a string or number, ensure that `for(...)`
1945
1949
  // only accepts that type. Otherwise, accept `string | number`
1946
1950
  type ExtractId<Input> = Input extends { id: infer Id }
@@ -72,6 +72,7 @@
72
72
  "MaybeArray",
73
73
  "RemoteFormInput",
74
74
  "RemoteFormIssue",
75
+ "RemoteFormAllIssue",
75
76
  "ExtractId",
76
77
  "InvalidField",
77
78
  "Invalid",
@@ -212,6 +213,6 @@
212
213
  null,
213
214
  null
214
215
  ],
215
- "mappings": "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",
216
+ "mappings": "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",
216
217
  "ignoreList": []
217
218
  }