@sveltejs/kit 2.63.1 → 2.65.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.
Files changed (33) hide show
  1. package/package.json +2 -2
  2. package/src/core/postbuild/analyse.js +0 -5
  3. package/src/core/postbuild/prerender.js +2 -0
  4. package/src/exports/public.d.ts +1 -1
  5. package/src/exports/vite/build/build_server.js +47 -57
  6. package/src/exports/vite/build/utils.js +0 -8
  7. package/src/exports/vite/index.js +226 -178
  8. package/src/runtime/app/server/remote/command.js +0 -3
  9. package/src/runtime/app/server/remote/form.js +18 -13
  10. package/src/runtime/app/server/remote/prerender.js +28 -34
  11. package/src/runtime/app/server/remote/query.js +105 -94
  12. package/src/runtime/app/server/remote/requested.js +14 -10
  13. package/src/runtime/app/server/remote/shared.js +25 -18
  14. package/src/runtime/client/client.js +19 -13
  15. package/src/runtime/client/remote-functions/command.svelte.js +7 -32
  16. package/src/runtime/client/remote-functions/form.svelte.js +62 -82
  17. package/src/runtime/client/remote-functions/prerender.svelte.js +14 -6
  18. package/src/runtime/client/remote-functions/query/index.js +6 -14
  19. package/src/runtime/client/remote-functions/query/instance.svelte.js +20 -0
  20. package/src/runtime/client/remote-functions/query/proxy.js +3 -3
  21. package/src/runtime/client/remote-functions/query-batch.svelte.js +59 -68
  22. package/src/runtime/client/remote-functions/query-live/instance.svelte.js +20 -6
  23. package/src/runtime/client/remote-functions/shared.svelte.js +76 -59
  24. package/src/runtime/server/page/render.js +20 -80
  25. package/src/runtime/server/page/server_routing.js +20 -15
  26. package/src/runtime/server/remote.js +296 -204
  27. package/src/runtime/server/respond.js +4 -2
  28. package/src/runtime/shared.js +83 -28
  29. package/src/types/global-private.d.ts +3 -3
  30. package/src/types/internal.d.ts +53 -34
  31. package/src/version.js +1 -1
  32. package/types/index.d.ts +4 -4
  33. package/types/index.d.ts.map +1 -1
@@ -1,7 +1,6 @@
1
1
  /** @import { Transport } from '@sveltejs/kit' */
2
2
  import * as devalue from 'devalue';
3
3
  import { base64_decode, base64_encode, text_encoder } from './utils.js';
4
- import * as svelte from 'svelte';
5
4
 
6
5
  /**
7
6
  * @param {string} route_id
@@ -97,6 +96,8 @@ function to_sorted(value, clones) {
97
96
  const remote_object = '__skrao';
98
97
  const remote_map = '__skram';
99
98
  const remote_set = '__skras';
99
+ const remote_file = '__skraf';
100
+ const remote_promise_guard = '__skrap';
100
101
  const remote_regex_guard = '__skrag';
101
102
  const remote_arg_marker = Symbol(remote_object);
102
103
 
@@ -108,13 +109,12 @@ const remote_arg_marker = Symbol(remote_object);
108
109
  function create_remote_arg_reducers(transport, sort, remote_arg_clones) {
109
110
  /** @type {Record<string, (value: unknown) => unknown>} */
110
111
  const remote_fns_reducers = {
111
- [remote_regex_guard]:
112
- /** @type {(value: unknown) => void} */
113
- (value) => {
114
- if (value instanceof RegExp) {
115
- throw new Error('Regular expressions are not valid remote function arguments');
116
- }
112
+ /** @param {unknown} value */
113
+ [remote_regex_guard]: (value) => {
114
+ if (value instanceof RegExp) {
115
+ throw new Error('Regular expressions are not valid remote function arguments');
117
116
  }
117
+ }
118
118
  };
119
119
 
120
120
  if (sort) {
@@ -230,6 +230,24 @@ function create_remote_arg_revivers(transport) {
230
230
  }
231
231
 
232
232
  return set;
233
+ },
234
+ /** @type {(value: any) => File} */
235
+ [remote_file]: (value) => {
236
+ if (
237
+ !value ||
238
+ typeof value !== 'object' ||
239
+ typeof value.name !== 'string' ||
240
+ typeof value.type !== 'string' ||
241
+ typeof value.size !== 'number' ||
242
+ typeof value.lastModified !== 'number' ||
243
+ !(value.data instanceof ArrayBuffer)
244
+ ) {
245
+ throw new Error('Invalid data for File reviver');
246
+ }
247
+
248
+ const { data, name, ...meta } = value;
249
+
250
+ return new File([data], name, meta);
233
251
  }
234
252
  };
235
253
 
@@ -250,18 +268,69 @@ function create_remote_arg_revivers(transport) {
250
268
  * it is both a valid URL and a valid file name (necessary for prerendering).
251
269
  * @param {any} value
252
270
  * @param {Transport} transport
253
- * @param {boolean} [sort]
254
271
  */
255
- export function stringify_remote_arg(value, transport, sort = true) {
272
+ export function stringify_remote_arg(value, transport) {
256
273
  if (value === undefined) return '';
257
274
 
258
275
  // If people hit file/url size limits, we can look into using something like compress_and_encode_text from svelte.dev beyond a certain size
259
- const json_string = devalue.stringify(
260
- value,
261
- create_remote_arg_reducers(transport, sort, new Map())
262
- );
276
+ const json = devalue.stringify(value, create_remote_arg_reducers(transport, true, new Map()));
277
+
278
+ return url_friendly_base64_encode(json);
279
+ }
280
+
281
+ /**
282
+ * Stringifies command arguments, including `File` objects.
283
+ * @param {any} value
284
+ * @param {Transport} transport
285
+ */
286
+ export async function stringify_command_arg(value, transport) {
287
+ if (value === undefined) return '';
288
+
289
+ const reducers = create_remote_arg_reducers(transport, false, new Map());
290
+
291
+ /** @type {Set<Promise<any>>} */
292
+ const allowed_promises = new Set();
293
+
294
+ /** @param {any} value */
295
+ reducers[remote_file] = (value) => {
296
+ if (value instanceof File) {
297
+ const promise = value.arrayBuffer().then((data) => ({
298
+ data,
299
+ lastModified: value.lastModified,
300
+ name: value.name,
301
+ size: value.size,
302
+ type: value.type
303
+ }));
304
+
305
+ allowed_promises.add(promise);
263
306
 
264
- const bytes = text_encoder.encode(json_string);
307
+ return promise;
308
+ }
309
+ };
310
+
311
+ // we don't want to allow arbitrary promises, because they won't
312
+ // show up as promises on the other side. this is something
313
+ // we could potentially change in future. stringifyAsync
314
+ // will await them, so we need to explicitly deny them
315
+ /** @param {unknown} value */
316
+ reducers[remote_promise_guard] = (value) => {
317
+ if (value instanceof Promise && !allowed_promises.has(value)) {
318
+ throw new Error('Promises are not valid remote function arguments');
319
+ }
320
+ };
321
+
322
+ const json = await devalue.stringifyAsync(value, reducers);
323
+
324
+ return url_friendly_base64_encode(json);
325
+ }
326
+
327
+ /**
328
+ * Base64-encodes `string` in such a way that the result is safe to use
329
+ * as both a URI component and a filename
330
+ * @param {string} string
331
+ */
332
+ function url_friendly_base64_encode(string) {
333
+ const bytes = text_encoder.encode(string);
265
334
  return base64_encode(bytes).replaceAll('=', '').replaceAll('+', '-').replaceAll('/', '_');
266
335
  }
267
336
 
@@ -305,17 +374,3 @@ export function split_remote_key(key) {
305
374
  payload: key.slice(i + 1)
306
375
  };
307
376
  }
308
-
309
- /**
310
- * @template T
311
- * @param {string} key
312
- * @param {() => T} fn
313
- * @returns {T}
314
- * @deprecated TODO remove in SvelteKit 3.0
315
- */
316
- export function unfriendly_hydratable(key, fn) {
317
- if (!svelte.hydratable) {
318
- throw new Error('Remote functions require Svelte 5.44.0 or later');
319
- }
320
- return svelte.hydratable(key, fn);
321
- }
@@ -1,3 +1,5 @@
1
+ import { RemoteFunctionData } from 'types';
2
+
1
3
  declare global {
2
4
  const __SVELTEKIT_ADAPTER_NAME__: string;
3
5
  const __SVELTEKIT_APP_DIR__: string;
@@ -40,9 +42,7 @@ declare global {
40
42
  /** Public environment variables */
41
43
  env?: Record<string, string>;
42
44
  /** Serialized data from query/form/command functions */
43
- query?: Record<string, any>;
44
- /** Serialized data from prerender functions */
45
- prerender?: Record<string, any>;
45
+ data?: RemoteFunctionData;
46
46
  /** Create a placeholder promise */
47
47
  defer?: (id: number) => Promise<any>;
48
48
  /** Resolve a placeholder promise */
@@ -238,10 +238,7 @@ export interface PrerenderOptions {
238
238
  cache?: string; // including this here is a bit of a hack, but it makes it easy to add <meta http-equiv>
239
239
  fallback?: boolean;
240
240
  dependencies: Map<string, PrerenderDependency>;
241
- /**
242
- * For each key the (possibly still pending) result of a prerendered remote function.
243
- * Used to deduplicate requests to the same remote function with the same arguments.
244
- */
241
+ /** Results of remote `prerender` functions, shared across the whole prerender run so that each only executes once */
245
242
  remote_responses: Map<string, Promise<any>>;
246
243
  /** True for the duration of a call to the `reroute` hook */
247
244
  inside_reroute?: boolean;
@@ -309,38 +306,42 @@ export type ServerNodesResponse = {
309
306
  nodes: Array<ServerDataNode | ServerDataSkippedNode | ServerErrorNode | null>;
310
307
  };
311
308
 
309
+ export type RemoteFunctionDataNode = {
310
+ /** value */
311
+ v?: any;
312
+ /** error */
313
+ e?: [status: number, error: any];
314
+ };
315
+
316
+ export type RemoteFunctionData = {
317
+ /** The result of a command/form invocation */
318
+ _?: any;
319
+ /** `prerender` data that was accessed during the request */
320
+ p?: Record<string, RemoteFunctionDataNode>;
321
+ /** `query` or `query.batch` data that was accessed during the request */
322
+ q?: Record<string, RemoteFunctionDataNode>;
323
+ /** `query.live` data that was accessed during the request */
324
+ l?: Record<string, RemoteFunctionDataNode>;
325
+ /** `form` outputs (result/issues/input) from a non-enhanced submission, keyed by the client-side action id */
326
+ f?: Record<string, RemoteFunctionDataNode>;
327
+ /** Whether there were any refreshes/reconnects during the request */
328
+ r?: true;
329
+ /** The redirect location, if any */
330
+ redirect?: string;
331
+ };
332
+
312
333
  export type RemoteFunctionResponse =
313
334
  | (ServerRedirectNode & {
314
- /** devalue'd Record<string, any> */
315
- refreshes?: string;
316
- /** devalue'd Record<string, any> */
317
- reconnects?: string;
335
+ /** stringified RemoteFunctionData */
336
+ data: string;
318
337
  })
319
338
  | ServerErrorNode
320
339
  | {
321
340
  type: 'result';
322
- result: string;
323
- /** devalue'd Record<string, any> */
324
- refreshes: string | undefined;
325
- /** devalue'd Record<string, any> */
326
- reconnects: string | undefined;
341
+ /** stringified RemoteFunctionData */
342
+ data: string;
327
343
  };
328
344
 
329
- export type RemoteSingleflightResult = {
330
- type: 'result';
331
- data: any;
332
- };
333
-
334
- export type RemoteSingleflightError = {
335
- type: 'error';
336
- status?: number;
337
- error: App.Error;
338
- };
339
-
340
- export type RemoteSingleflightEntry = RemoteSingleflightResult | RemoteSingleflightError;
341
-
342
- export type RemoteSingleflightMap = Record<string, RemoteSingleflightEntry>;
343
-
344
345
  export type RemoteLiveQueryUserFunctionReturnType<Output> = MaybePromise<
345
346
  | AsyncGenerator<Output>
346
347
  | AsyncIterator<Output>
@@ -668,6 +669,11 @@ export interface RemoteCommandInternals extends BaseRemoteInternals {
668
669
 
669
670
  export interface RemoteFormInternals extends BaseRemoteInternals {
670
671
  type: 'form';
672
+ /**
673
+ * For keyed (`form.for(key)`) instances: the id as the client computes it
674
+ * (the key is JSON-stringified but not URI-encoded, unlike `id`)
675
+ */
676
+ action_id?: string;
671
677
  fn(body: Record<string, any>, meta: BinaryFormMeta, form_data: FormData | null): Promise<any>;
672
678
  }
673
679
 
@@ -713,15 +719,26 @@ export interface RequestState {
713
719
  record_span: RecordSpan;
714
720
  };
715
721
  readonly remote: {
716
- data: null | Map<
717
- RemoteInternals,
718
- Record<string, { serialize: boolean; data: MaybePromise<any> }>
722
+ /** Resolved query/prerender data, populated by `await myQuery()` or `myQuery.set(...)` */
723
+ data: null | Map<RemoteInternals, Record<string, MaybePromise<any>>>;
724
+ /**
725
+ * Data that is implicitly included because it was awaited during render.
726
+ * This is serialized during SSR if the promise already resolved
727
+ */
728
+ implicit: null | Map<RemoteInternals, Record<string, () => MaybePromise<any>>>;
729
+ /**
730
+ * Data that is explicitly included because of a `set(...)` or `refresh()`.
731
+ * This is always awaited
732
+ */
733
+ explicit: null | Map<
734
+ string,
735
+ {
736
+ internals: RemoteInternals;
737
+ promise: Promise<any>;
738
+ }
719
739
  >;
720
740
  /** Instances created via `myForm.for(...)` */
721
741
  forms: null | Map<string, any>;
722
- /** A map of remote function key to corresponding single-flight-mutation promise */
723
- refreshes: null | Map<string, Promise<any>>;
724
- reconnects: null | Map<string, Promise<void>>;
725
742
  /** A map of remote function ID to payloads requested for refreshing by the client */
726
743
  requested: null | Map<string, string[]>;
727
744
  /** A map of query.batch ID to payloads requested for that batch within the same macrotask */
@@ -744,6 +761,8 @@ export interface RequestState {
744
761
  live_iterators: null | Map<string, SharedIterator<any>>;
745
762
  };
746
763
  readonly is_in_remote_function: boolean;
764
+ readonly is_in_remote_form_or_command: boolean;
765
+ readonly is_in_remote_query: boolean;
747
766
  readonly is_in_render: boolean;
748
767
  readonly is_in_universal_load: boolean;
749
768
  }
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.63.1';
4
+ export const VERSION = '2.65.0';
package/types/index.d.ts CHANGED
@@ -1670,7 +1670,7 @@ declare module '@sveltejs/kit' {
1670
1670
 
1671
1671
  /** private fields */
1672
1672
  _: {
1673
- client: NonNullable<BuildData['client']>;
1673
+ client: BuildData['client'];
1674
1674
  nodes: SSRNodeLoader[];
1675
1675
  /** hashed filename -> import to that file */
1676
1676
  remotes: Record<string, () => Promise<any>>;
@@ -2824,7 +2824,7 @@ declare module '@sveltejs/kit' {
2824
2824
  * @throws {HttpError} This error instructs SvelteKit to initiate HTTP error handling.
2825
2825
  * @throws {Error} If the provided status is invalid (not between 400 and 599).
2826
2826
  */
2827
- export function error(status: number, body: App.Error): never;
2827
+ function error_1(status: number, body: App.Error): never;
2828
2828
  /**
2829
2829
  * Throws an error with a HTTP status code and an optional message.
2830
2830
  * When called during request handling, this will cause SvelteKit to
@@ -2835,7 +2835,7 @@ declare module '@sveltejs/kit' {
2835
2835
  * @throws {HttpError} This error instructs SvelteKit to initiate HTTP error handling.
2836
2836
  * @throws {Error} If the provided status is invalid (not between 400 and 599).
2837
2837
  */
2838
- export function error(status: number, body?: {
2838
+ function error_1(status: number, body?: {
2839
2839
  message: string;
2840
2840
  } extends App.Error ? App.Error | string | undefined : never): never;
2841
2841
  /**
@@ -2976,7 +2976,7 @@ declare module '@sveltejs/kit' {
2976
2976
  }
2977
2977
  const valid_page_options_array: readonly ["ssr", "prerender", "csr", "trailingSlash", "config", "entries", "load"];
2978
2978
 
2979
- export {};
2979
+ export { error_1 as error };
2980
2980
  }
2981
2981
 
2982
2982
  declare module '@sveltejs/kit/hooks' {
@@ -246,6 +246,6 @@
246
246
  null,
247
247
  null
248
248
  ],
249
- "mappings": "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",
249
+ "mappings": "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",
250
250
  "ignoreList": []
251
251
  }