@sveltejs/kit 3.0.0-next.1 → 3.0.0-next.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.
Files changed (45) hide show
  1. package/package.json +2 -2
  2. package/src/core/postbuild/analyse.js +0 -8
  3. package/src/core/postbuild/prerender.js +2 -0
  4. package/src/core/sync/create_manifest_data/index.js +24 -1
  5. package/src/core/sync/write_env.js +2 -1
  6. package/src/exports/internal/env.js +1 -1
  7. package/src/exports/public.d.ts +1 -1
  8. package/src/exports/vite/build/build_server.js +47 -58
  9. package/src/exports/vite/build/remote.js +18 -11
  10. package/src/exports/vite/build/utils.js +0 -8
  11. package/src/exports/vite/index.js +221 -217
  12. package/src/exports/vite/static_analysis/index.js +2 -4
  13. package/src/exports/vite/static_analysis/types.d.ts +14 -0
  14. package/src/exports/vite/utils.js +1 -12
  15. package/src/runtime/app/server/remote/command.js +0 -3
  16. package/src/runtime/app/server/remote/form.js +18 -13
  17. package/src/runtime/app/server/remote/prerender.js +28 -34
  18. package/src/runtime/app/server/remote/query.js +105 -94
  19. package/src/runtime/app/server/remote/requested.js +14 -10
  20. package/src/runtime/app/server/remote/shared.js +25 -19
  21. package/src/runtime/client/client.js +19 -13
  22. package/src/runtime/client/ndjson.js +6 -33
  23. package/src/runtime/client/remote-functions/command.svelte.js +7 -32
  24. package/src/runtime/client/remote-functions/form.svelte.js +62 -82
  25. package/src/runtime/client/remote-functions/prerender.svelte.js +14 -6
  26. package/src/runtime/client/remote-functions/query/index.js +6 -14
  27. package/src/runtime/client/remote-functions/query/instance.svelte.js +20 -0
  28. package/src/runtime/client/remote-functions/query/proxy.js +3 -3
  29. package/src/runtime/client/remote-functions/query-batch.svelte.js +59 -68
  30. package/src/runtime/client/remote-functions/query-live/instance.svelte.js +21 -6
  31. package/src/runtime/client/remote-functions/query-live/iterator.js +36 -55
  32. package/src/runtime/client/remote-functions/shared.svelte.js +76 -59
  33. package/src/runtime/client/sse.js +32 -0
  34. package/src/runtime/client/stream.js +38 -0
  35. package/src/runtime/server/page/render.js +23 -80
  36. package/src/runtime/server/page/server_routing.js +20 -15
  37. package/src/runtime/server/remote.js +296 -204
  38. package/src/runtime/server/respond.js +4 -2
  39. package/src/runtime/shared.js +83 -13
  40. package/src/types/global-private.d.ts +3 -3
  41. package/src/types/internal.d.ts +54 -35
  42. package/src/utils/error.js +12 -0
  43. package/src/version.js +1 -1
  44. package/types/index.d.ts +17 -7
  45. package/types/index.d.ts.map +5 -3
@@ -96,6 +96,8 @@ function to_sorted(value, clones) {
96
96
  const remote_object = '__skrao';
97
97
  const remote_map = '__skram';
98
98
  const remote_set = '__skras';
99
+ const remote_file = '__skraf';
100
+ const remote_promise_guard = '__skrap';
99
101
  const remote_regex_guard = '__skrag';
100
102
  const remote_arg_marker = Symbol(remote_object);
101
103
 
@@ -107,13 +109,12 @@ const remote_arg_marker = Symbol(remote_object);
107
109
  function create_remote_arg_reducers(transport, sort, remote_arg_clones) {
108
110
  /** @type {Record<string, (value: unknown) => unknown>} */
109
111
  const remote_fns_reducers = {
110
- [remote_regex_guard]:
111
- /** @type {(value: unknown) => void} */
112
- (value) => {
113
- if (value instanceof RegExp) {
114
- throw new Error('Regular expressions are not valid remote function arguments');
115
- }
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');
116
116
  }
117
+ }
117
118
  };
118
119
 
119
120
  if (sort) {
@@ -229,6 +230,24 @@ function create_remote_arg_revivers(transport) {
229
230
  }
230
231
 
231
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);
232
251
  }
233
252
  };
234
253
 
@@ -249,18 +268,69 @@ function create_remote_arg_revivers(transport) {
249
268
  * it is both a valid URL and a valid file name (necessary for prerendering).
250
269
  * @param {any} value
251
270
  * @param {Transport} transport
252
- * @param {boolean} [sort]
253
271
  */
254
- export function stringify_remote_arg(value, transport, sort = true) {
272
+ export function stringify_remote_arg(value, transport) {
255
273
  if (value === undefined) return '';
256
274
 
257
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
258
- const json_string = devalue.stringify(
259
- value,
260
- create_remote_arg_reducers(transport, sort, new Map())
261
- );
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());
262
290
 
263
- const bytes = text_encoder.encode(json_string);
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);
306
+
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);
264
334
  return base64_encode(bytes).replaceAll('=', '').replaceAll('+', '-').replaceAll('/', '_');
265
335
  }
266
336
 
@@ -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 */
@@ -34,7 +34,7 @@ import {
34
34
  TrailingSlash
35
35
  } from './private.js';
36
36
  import { Span } from '@opentelemetry/api';
37
- import type { PageOptions } from '../exports/vite/static_analysis/index.js';
37
+ import { PageOptions } from '../exports/vite/static_analysis/types.js';
38
38
  import { SharedIterator } from '../utils/shared-iterator.js';
39
39
 
40
40
  export interface ServerModule {
@@ -236,10 +236,7 @@ export interface PrerenderOptions {
236
236
  cache?: string; // including this here is a bit of a hack, but it makes it easy to add <meta http-equiv>
237
237
  fallback?: boolean;
238
238
  dependencies: Map<string, PrerenderDependency>;
239
- /**
240
- * For each key the (possibly still pending) result of a prerendered remote function.
241
- * Used to deduplicate requests to the same remote function with the same arguments.
242
- */
239
+ /** Results of remote `prerender` functions, shared across the whole prerender run so that each only executes once */
243
240
  remote_responses: Map<string, Promise<any>>;
244
241
  /** True for the duration of a call to the `reroute` hook */
245
242
  inside_reroute?: boolean;
@@ -307,38 +304,42 @@ export type ServerNodesResponse = {
307
304
  nodes: Array<ServerDataNode | ServerDataSkippedNode | ServerErrorNode | null>;
308
305
  };
309
306
 
307
+ export type RemoteFunctionDataNode = {
308
+ /** value */
309
+ v?: any;
310
+ /** error */
311
+ e?: [status: number, error: any];
312
+ };
313
+
314
+ export type RemoteFunctionData = {
315
+ /** The result of a command/form invocation */
316
+ _?: any;
317
+ /** `prerender` data that was accessed during the request */
318
+ p?: Record<string, RemoteFunctionDataNode>;
319
+ /** `query` or `query.batch` data that was accessed during the request */
320
+ q?: Record<string, RemoteFunctionDataNode>;
321
+ /** `query.live` data that was accessed during the request */
322
+ l?: Record<string, RemoteFunctionDataNode>;
323
+ /** `form` outputs (result/issues/input) from a non-enhanced submission, keyed by the client-side action id */
324
+ f?: Record<string, RemoteFunctionDataNode>;
325
+ /** Whether there were any refreshes/reconnects during the request */
326
+ r?: true;
327
+ /** The redirect location, if any */
328
+ redirect?: string;
329
+ };
330
+
310
331
  export type RemoteFunctionResponse =
311
332
  | (ServerRedirectNode & {
312
- /** devalue'd Record<string, any> */
313
- refreshes?: string;
314
- /** devalue'd Record<string, any> */
315
- reconnects?: string;
333
+ /** stringified RemoteFunctionData */
334
+ data: string;
316
335
  })
317
336
  | ServerErrorNode
318
337
  | {
319
338
  type: 'result';
320
- result: string;
321
- /** devalue'd Record<string, any> */
322
- refreshes: string | undefined;
323
- /** devalue'd Record<string, any> */
324
- reconnects: string | undefined;
339
+ /** stringified RemoteFunctionData */
340
+ data: string;
325
341
  };
326
342
 
327
- export type RemoteSingleflightResult = {
328
- type: 'result';
329
- data: any;
330
- };
331
-
332
- export type RemoteSingleflightError = {
333
- type: 'error';
334
- status?: number;
335
- error: App.Error;
336
- };
337
-
338
- export type RemoteSingleflightEntry = RemoteSingleflightResult | RemoteSingleflightError;
339
-
340
- export type RemoteSingleflightMap = Record<string, RemoteSingleflightEntry>;
341
-
342
343
  export type RemoteLiveQueryUserFunctionReturnType<Output> = MaybePromise<
343
344
  | AsyncGenerator<Output>
344
345
  | AsyncIterator<Output>
@@ -663,6 +664,11 @@ export interface RemoteCommandInternals extends BaseRemoteInternals {
663
664
 
664
665
  export interface RemoteFormInternals extends BaseRemoteInternals {
665
666
  type: 'form';
667
+ /**
668
+ * For keyed (`form.for(key)`) instances: the id as the client computes it
669
+ * (the key is JSON-stringified but not URI-encoded, unlike `id`)
670
+ */
671
+ action_id?: string;
666
672
  fn(body: Record<string, any>, meta: BinaryFormMeta, form_data: FormData | null): Promise<any>;
667
673
  }
668
674
 
@@ -708,15 +714,26 @@ export interface RequestState {
708
714
  record_span: RecordSpan;
709
715
  };
710
716
  readonly remote: {
711
- data: null | Map<
712
- RemoteInternals,
713
- Record<string, { serialize: boolean; data: MaybePromise<any> }>
717
+ /** Resolved query/prerender data, populated by `await myQuery()` or `myQuery.set(...)` */
718
+ data: null | Map<RemoteInternals, Record<string, MaybePromise<any>>>;
719
+ /**
720
+ * Data that is implicitly included because it was awaited during render.
721
+ * This is serialized during SSR if the promise already resolved
722
+ */
723
+ implicit: null | Map<RemoteInternals, Record<string, () => MaybePromise<any>>>;
724
+ /**
725
+ * Data that is explicitly included because of a `set(...)` or `refresh()`.
726
+ * This is always awaited
727
+ */
728
+ explicit: null | Map<
729
+ string,
730
+ {
731
+ internals: RemoteInternals;
732
+ promise: Promise<any>;
733
+ }
714
734
  >;
715
735
  /** Instances created via `myForm.for(...)` */
716
736
  forms: null | Map<string, any>;
717
- /** A map of remote function key to corresponding single-flight-mutation promise */
718
- refreshes: null | Map<string, Promise<any>>;
719
- reconnects: null | Map<string, Promise<void>>;
720
737
  /** A map of remote function ID to payloads requested for refreshing by the client */
721
738
  requested: null | Map<string, string[]>;
722
739
  /** A map of query.batch ID to payloads requested for that batch within the same macrotask */
@@ -739,6 +756,8 @@ export interface RequestState {
739
756
  live_iterators: null | Map<string, SharedIterator<any>>;
740
757
  };
741
758
  readonly is_in_remote_function: boolean;
759
+ readonly is_in_remote_form_or_command: boolean;
760
+ readonly is_in_remote_query: boolean;
742
761
  readonly is_in_render: boolean;
743
762
  readonly is_in_universal_load: boolean;
744
763
  }
@@ -1,5 +1,17 @@
1
1
  import { HttpError, SvelteKitError } from '@sveltejs/kit/internal';
2
2
 
3
+ /**
4
+ * For times when you need to throw an error, but without
5
+ * displaying a useless stack trace (since the developer
6
+ * can't do anything useful with it)
7
+ * @param {string} message
8
+ */
9
+ export function stackless(message) {
10
+ const error = new Error(message);
11
+ error.stack = '';
12
+ return error;
13
+ }
14
+
3
15
  /**
4
16
  * @param {unknown} err
5
17
  * @return {Error}
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 = '3.0.0-next.1';
4
+ export const VERSION = '3.0.0-next.3';
package/types/index.d.ts CHANGED
@@ -1629,7 +1629,7 @@ declare module '@sveltejs/kit' {
1629
1629
 
1630
1630
  /** private fields */
1631
1631
  _: {
1632
- client: NonNullable<BuildData['client']>;
1632
+ client: BuildData['client'];
1633
1633
  nodes: SSRNodeLoader[];
1634
1634
  /** hashed filename -> import to that file */
1635
1635
  remotes: Record<string, () => Promise<any>>;
@@ -2782,7 +2782,7 @@ declare module '@sveltejs/kit' {
2782
2782
  * @throws {import('./public.js').HttpError} This error instructs SvelteKit to initiate HTTP error handling.
2783
2783
  * @throws {Error} If the provided status is invalid (not between 400 and 599).
2784
2784
  */
2785
- export function error(status: number, body: App.Error): never;
2785
+ function error_1(status: number, body: App.Error): never;
2786
2786
  /**
2787
2787
  * Throws an error with a HTTP status code and an optional message.
2788
2788
  * When called during request handling, this will cause SvelteKit to
@@ -2793,7 +2793,7 @@ declare module '@sveltejs/kit' {
2793
2793
  * @throws {import('./public.js').HttpError} This error instructs SvelteKit to initiate HTTP error handling.
2794
2794
  * @throws {Error} If the provided status is invalid (not between 400 and 599).
2795
2795
  */
2796
- export function error(status: number, body?: {
2796
+ function error_1(status: number, body?: {
2797
2797
  message: string;
2798
2798
  } extends App.Error ? App.Error | string | undefined : never): never;
2799
2799
  /**
@@ -2906,11 +2906,20 @@ declare module '@sveltejs/kit' {
2906
2906
  denormalize: (url?: string | URL) => URL;
2907
2907
  };
2908
2908
  type ValidPageOption = (typeof valid_page_options_array)[number];
2909
- type PageOptions = Partial<Record<ValidPageOption, any>>;
2910
- const valid_page_options_array: readonly ["ssr", "prerender", "csr", "trailingSlash", "config", "entries", "load"];
2909
+
2910
+ type PageOptions = Partial<{
2911
+ [K in ValidPageOption]: K extends 'ssr' | 'csr'
2912
+ ? boolean
2913
+ : K extends 'prerender'
2914
+ ? PrerenderOption
2915
+ : K extends 'trailingSlash'
2916
+ ? TrailingSlash
2917
+ : any;
2918
+ }>;
2911
2919
  export const VERSION: string;
2920
+ const valid_page_options_array: readonly ["ssr", "prerender", "csr", "trailingSlash", "config", "entries", "load"];
2912
2921
 
2913
- export {};
2922
+ export { error_1 as error };
2914
2923
  }
2915
2924
 
2916
2925
  declare module '@sveltejs/kit/hooks' {
@@ -3013,13 +3022,14 @@ declare module '@sveltejs/kit/node' {
3013
3022
  }
3014
3023
 
3015
3024
  declare module '@sveltejs/kit/vite' {
3025
+ import type { KitConfig } from '@sveltejs/kit';
3016
3026
  import type { SvelteConfig } from '@sveltejs/vite-plugin-svelte';
3017
3027
  import type { Plugin } from 'vite';
3018
3028
  /**
3019
3029
  * Returns the SvelteKit Vite plugins.
3020
3030
  * Since version 2.62.0 you can pass [configuration](configuration) directly, in which case `svelte.config.js` is ignored.
3021
3031
  * */
3022
- export function sveltekit(config?: import("@sveltejs/kit").KitConfig & Omit<SvelteConfig, "onwarn">): Promise<Plugin[]>;
3032
+ export function sveltekit(config?: KitConfig & Omit<SvelteConfig, "onwarn">): Promise<Plugin[]>;
3023
3033
 
3024
3034
  export {};
3025
3035
  }
@@ -149,8 +149,8 @@
149
149
  "normalizeUrl",
150
150
  "ValidPageOption",
151
151
  "PageOptions",
152
- "valid_page_options_array",
153
152
  "VERSION",
153
+ "valid_page_options_array",
154
154
  "defineEnvVars",
155
155
  "sequence",
156
156
  "getRequest",
@@ -198,8 +198,9 @@
198
198
  "../src/types/private.d.ts",
199
199
  "../src/types/internal.d.ts",
200
200
  "../src/exports/index.js",
201
- "../src/exports/vite/static_analysis/index.js",
201
+ "../src/exports/vite/static_analysis/types.d.ts",
202
202
  "../src/version.js",
203
+ "../src/exports/vite/static_analysis/index.js",
203
204
  "../src/exports/hooks/index.js",
204
205
  "../src/exports/hooks/sequence.js",
205
206
  "../src/exports/node/index.js",
@@ -235,8 +236,9 @@
235
236
  null,
236
237
  null,
237
238
  null,
239
+ null,
238
240
  null
239
241
  ],
240
- "mappings": "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",
242
+ "mappings": "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",
241
243
  "ignoreList": []
242
244
  }