@sveltejs/kit 2.63.0 → 2.63.1
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/core/sync/create_manifest_data/index.js +24 -1
- package/src/core/sync/write_env.js +2 -1
- package/src/exports/internal/env.js +1 -1
- package/src/exports/public.d.ts +1 -1
- package/src/exports/vite/index.js +2 -7
- package/src/exports/vite/static_analysis/index.js +2 -4
- package/src/exports/vite/static_analysis/types.d.ts +14 -0
- package/src/exports/vite/utils.js +1 -12
- package/src/runtime/app/environment/index.js +4 -6
- package/src/runtime/client/ndjson.js +6 -33
- package/src/runtime/client/remote-functions/query-live/iterator.js +36 -55
- package/src/runtime/client/sse.js +32 -0
- package/src/runtime/client/stream.js +38 -0
- package/src/runtime/server/page/render.js +3 -0
- package/src/runtime/server/remote.js +2 -2
- package/src/types/internal.d.ts +1 -1
- package/src/utils/error.js +12 -0
- package/src/version.js +1 -1
- package/types/index.d.ts +12 -3
- package/types/index.d.ts.map +5 -3
package/package.json
CHANGED
|
@@ -33,6 +33,7 @@ export default function create_manifest_data({
|
|
|
33
33
|
const matchers = create_matchers(config, cwd);
|
|
34
34
|
const { nodes, routes } = create_routes_and_nodes(cwd, config, fallback);
|
|
35
35
|
|
|
36
|
+
// validate matcher names used in parameterised routes
|
|
36
37
|
for (const route of routes) {
|
|
37
38
|
for (const param of route.params) {
|
|
38
39
|
if (param.matcher && !matchers[param.matcher]) {
|
|
@@ -51,6 +52,7 @@ export default function create_manifest_data({
|
|
|
51
52
|
}
|
|
52
53
|
|
|
53
54
|
/**
|
|
55
|
+
* Returns a list of files in the `static` directory.
|
|
54
56
|
* @param {import('types').ValidatedConfig} config
|
|
55
57
|
*/
|
|
56
58
|
export function create_assets(config) {
|
|
@@ -131,6 +133,7 @@ function create_routes_and_nodes(cwd, config, fallback) {
|
|
|
131
133
|
/** @type {import('types').PageNode[]} */
|
|
132
134
|
const nodes = [];
|
|
133
135
|
|
|
136
|
+
// create route data by processing files in `src/routes`
|
|
134
137
|
if (fs.existsSync(config.kit.files.routes)) {
|
|
135
138
|
/**
|
|
136
139
|
* @param {number} depth
|
|
@@ -390,6 +393,7 @@ function create_routes_and_nodes(cwd, config, fallback) {
|
|
|
390
393
|
|
|
391
394
|
prevent_conflicts(routes);
|
|
392
395
|
|
|
396
|
+
// fallback root layout and root error components
|
|
393
397
|
const root = routes[0];
|
|
394
398
|
|
|
395
399
|
if (!root.layout?.component) {
|
|
@@ -398,10 +402,11 @@ function create_routes_and_nodes(cwd, config, fallback) {
|
|
|
398
402
|
}
|
|
399
403
|
|
|
400
404
|
if (!root.error?.component) {
|
|
401
|
-
if (!root.error) root.error = { depth: 0 };
|
|
405
|
+
if (!root.error) root.error = { depth: 0, parent: root.layout };
|
|
402
406
|
root.error.component = posixify(path.relative(cwd, `${fallback}/error.svelte`));
|
|
403
407
|
}
|
|
404
408
|
|
|
409
|
+
// populate the page nodes list
|
|
405
410
|
// we do layouts/errors first as they are more likely to be reused,
|
|
406
411
|
// and smaller indexes take fewer bytes. also, this guarantees that
|
|
407
412
|
// the default error/layout are 0/1
|
|
@@ -423,6 +428,7 @@ function create_routes_and_nodes(cwd, config, fallback) {
|
|
|
423
428
|
|
|
424
429
|
const node_analyser = create_node_analyser();
|
|
425
430
|
|
|
431
|
+
// add the related layout, page, and error nodes for a route
|
|
426
432
|
for (const route of routes) {
|
|
427
433
|
if (!route.leaf) continue;
|
|
428
434
|
|
|
@@ -467,6 +473,22 @@ function create_routes_and_nodes(cwd, config, fallback) {
|
|
|
467
473
|
}
|
|
468
474
|
}
|
|
469
475
|
|
|
476
|
+
// add parents to error nodes so that we can compute which page options apply to them
|
|
477
|
+
for (const route of routes) {
|
|
478
|
+
if (!route.error) continue;
|
|
479
|
+
|
|
480
|
+
/** @type {import('types').RouteData | null} */
|
|
481
|
+
let current_route = route;
|
|
482
|
+
while (current_route) {
|
|
483
|
+
if (current_route.layout) {
|
|
484
|
+
route.error.parent = current_route.layout;
|
|
485
|
+
break;
|
|
486
|
+
}
|
|
487
|
+
current_route = current_route.parent;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
// compute the final page options for each page node
|
|
470
492
|
for (const node of nodes) {
|
|
471
493
|
node.page_options = node_analyser.get_page_options(node);
|
|
472
494
|
}
|
|
@@ -484,6 +506,7 @@ function create_routes_and_nodes(cwd, config, fallback) {
|
|
|
484
506
|
}
|
|
485
507
|
|
|
486
508
|
/**
|
|
509
|
+
* Determine if and how the file is relevant to the routing system.
|
|
487
510
|
* @param {string} project_relative
|
|
488
511
|
* @param {string} file
|
|
489
512
|
* @param {string[]} component_extensions
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** @import { EnvVarConfig } from '@sveltejs/kit' */
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { create_explicit_env_types } from '../env.js';
|
|
4
|
+
import { posixify } from '../../utils/filesystem.js';
|
|
4
5
|
import { write_if_changed } from './utils.js';
|
|
5
6
|
|
|
6
7
|
const DOCS = '// See https://svelte.dev/docs/kit/environment-variables for more information';
|
|
@@ -18,7 +19,7 @@ export function write_env(kit, entry, env_config) {
|
|
|
18
19
|
const out = path.join(kit.outDir, 'env.d.ts');
|
|
19
20
|
|
|
20
21
|
if (entry && env_config) {
|
|
21
|
-
const relative = path.relative(kit.outDir, entry);
|
|
22
|
+
const relative = posixify(path.relative(kit.outDir, entry));
|
|
22
23
|
content.push(
|
|
23
24
|
`// This file is generated from ${relative}.\n${DOCS}`,
|
|
24
25
|
create_explicit_env_types(env_config, relative, 'private'),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** @import { StandardSchemaV1 } from '@standard-schema/spec' */
|
|
2
2
|
/** @import { EnvVarConfig } from '@sveltejs/kit' */
|
|
3
3
|
|
|
4
|
-
import { stackless } from '
|
|
4
|
+
import { stackless } from '../../utils/error.js';
|
|
5
5
|
|
|
6
6
|
const MISSING = {
|
|
7
7
|
message: `Value is missing. If it is optional, add a Standard Schema validator declaring it as such.`
|
package/src/exports/public.d.ts
CHANGED
|
@@ -478,7 +478,7 @@ export interface KitConfig {
|
|
|
478
478
|
experimental?: {
|
|
479
479
|
/**
|
|
480
480
|
* Whether to enable explicit environment variables using `src/env.js` or `src/env.ts`.
|
|
481
|
-
* @since 2.
|
|
481
|
+
* @since 2.63.0
|
|
482
482
|
* @default false
|
|
483
483
|
*/
|
|
484
484
|
explicitEnvironmentVariables?: boolean;
|
|
@@ -29,13 +29,8 @@ import { build_service_worker } from './build/build_service_worker.js';
|
|
|
29
29
|
import { assets_base, find_deps, resolve_symlinks } from './build/utils.js';
|
|
30
30
|
import { dev } from './dev/index.js';
|
|
31
31
|
import { preview } from './preview/index.js';
|
|
32
|
-
import {
|
|
33
|
-
|
|
34
|
-
get_config_aliases,
|
|
35
|
-
get_env,
|
|
36
|
-
normalize_id,
|
|
37
|
-
stackless
|
|
38
|
-
} from './utils.js';
|
|
32
|
+
import { error_for_missing_config, get_config_aliases, get_env, normalize_id } from './utils.js';
|
|
33
|
+
import { stackless } from '../../utils/error.js';
|
|
39
34
|
import { write_client_manifest } from '../../core/sync/write_client_manifest.js';
|
|
40
35
|
import prerender from '../../core/postbuild/prerender.js';
|
|
41
36
|
import analyse from '../../core/postbuild/analyse.js';
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
/** @import { PageOptions } from './types.js' */
|
|
1
2
|
import { tsPlugin } from '@sveltejs/acorn-typescript';
|
|
2
3
|
import { Parser } from 'acorn';
|
|
3
4
|
import { read } from '../../../utils/filesystem.js';
|
|
4
5
|
|
|
5
|
-
const valid_page_options_array = /** @type {const} */ ([
|
|
6
|
+
export const valid_page_options_array = /** @type {const} */ ([
|
|
6
7
|
'ssr',
|
|
7
8
|
'prerender',
|
|
8
9
|
'csr',
|
|
@@ -15,9 +16,6 @@ const valid_page_options_array = /** @type {const} */ ([
|
|
|
15
16
|
/** @type {Set<string>} */
|
|
16
17
|
const valid_page_options = new Set(valid_page_options_array);
|
|
17
18
|
|
|
18
|
-
/** @typedef {typeof valid_page_options_array[number]} ValidPageOption */
|
|
19
|
-
/** @typedef {Partial<Record<ValidPageOption, any>>} PageOptions */
|
|
20
|
-
|
|
21
19
|
const skip_parsing_regex = new RegExp(
|
|
22
20
|
`${Array.from(valid_page_options).join('|')}|(?:export[\\s\\n]+\\*[\\s\\n]+from)`
|
|
23
21
|
);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PrerenderOption, TrailingSlash } from 'types';
|
|
2
|
+
import type { valid_page_options_array } from './index.js';
|
|
3
|
+
|
|
4
|
+
type ValidPageOption = (typeof valid_page_options_array)[number];
|
|
5
|
+
|
|
6
|
+
export type PageOptions = Partial<{
|
|
7
|
+
[K in ValidPageOption]: K extends 'ssr' | 'csr'
|
|
8
|
+
? boolean
|
|
9
|
+
: K extends 'prerender'
|
|
10
|
+
? PrerenderOption
|
|
11
|
+
: K extends 'trailingSlash'
|
|
12
|
+
? TrailingSlash
|
|
13
|
+
: any;
|
|
14
|
+
}>;
|
|
@@ -4,6 +4,7 @@ import { posixify } from '../../utils/filesystem.js';
|
|
|
4
4
|
import { negotiate } from '../../utils/http.js';
|
|
5
5
|
import { filter_env } from '../../utils/env.js';
|
|
6
6
|
import { escape_html } from '../../utils/escape.js';
|
|
7
|
+
import { stackless } from '../../utils/error.js';
|
|
7
8
|
import { dedent } from '../../core/sync/utils.js';
|
|
8
9
|
import {
|
|
9
10
|
app_server,
|
|
@@ -184,18 +185,6 @@ export function normalize_id(id, lib, cwd) {
|
|
|
184
185
|
return posixify(id);
|
|
185
186
|
}
|
|
186
187
|
|
|
187
|
-
/**
|
|
188
|
-
* For times when you need to throw an error, but without
|
|
189
|
-
* displaying a useless stack trace (since the developer
|
|
190
|
-
* can't do anything useful with it)
|
|
191
|
-
* @param {string} message
|
|
192
|
-
*/
|
|
193
|
-
export function stackless(message) {
|
|
194
|
-
const error = new Error(message);
|
|
195
|
-
error.stack = '';
|
|
196
|
-
return error;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
188
|
export const strip_virtual_prefix = /** @param {string} id */ (id) => id.replace('\0virtual:', '');
|
|
200
189
|
|
|
201
190
|
/**
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
+
import { dev } from '../env/index.js';
|
|
1
2
|
export * from '../env/index.js';
|
|
2
3
|
|
|
3
|
-
if (__SVELTEKIT_EXPERIMENTAL_EXPLICIT_ENVIRONMENT_VARIABLES__) {
|
|
4
|
-
|
|
5
|
-
'
|
|
4
|
+
if (dev && __SVELTEKIT_EXPERIMENTAL_EXPLICIT_ENVIRONMENT_VARIABLES__) {
|
|
5
|
+
console.warn(
|
|
6
|
+
'Use `$app/env` instead of `$app/environment` when `experimental.explicitEnvironmentVariables` is enabled'
|
|
6
7
|
);
|
|
7
8
|
}
|
|
8
|
-
|
|
9
|
-
// force the Vite client to load, so that defines are definitely defined
|
|
10
|
-
import.meta.hot;
|
|
@@ -1,42 +1,15 @@
|
|
|
1
|
+
import { read_stream } from './stream.js';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Yields parsed JSON objects from a ReadableStream of newline-delimited JSON.
|
|
3
5
|
* Each yielded value is the raw `JSON.parse`'d object — callers handle deserialization.
|
|
4
6
|
* @param {ReadableStreamDefaultReader<Uint8Array>} reader
|
|
5
7
|
*/
|
|
6
8
|
export async function* read_ndjson(reader) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
while (true) {
|
|
12
|
-
let split = buffer.indexOf('\n');
|
|
13
|
-
while (split !== -1) {
|
|
14
|
-
const line = buffer.slice(0, split).trim();
|
|
15
|
-
buffer = buffer.slice(split + 1);
|
|
16
|
-
|
|
17
|
-
if (line) {
|
|
18
|
-
yield JSON.parse(line);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
split = buffer.indexOf('\n');
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (done) {
|
|
25
|
-
const line = buffer.trim();
|
|
26
|
-
if (line) {
|
|
27
|
-
yield JSON.parse(line);
|
|
28
|
-
}
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const chunk = await reader.read();
|
|
33
|
-
done = chunk.done;
|
|
34
|
-
if (chunk.value) {
|
|
35
|
-
buffer += decoder.decode(chunk.value, { stream: true });
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if (done) {
|
|
39
|
-
buffer += decoder.decode();
|
|
9
|
+
for await (const block of read_stream(reader, '\n')) {
|
|
10
|
+
const line = block.trim();
|
|
11
|
+
if (line) {
|
|
12
|
+
yield JSON.parse(line);
|
|
40
13
|
}
|
|
41
14
|
}
|
|
42
15
|
}
|
|
@@ -4,21 +4,28 @@ import { get_remote_request_headers, handle_side_channel_response } from '../sha
|
|
|
4
4
|
import * as devalue from 'devalue';
|
|
5
5
|
import { HttpError } from '@sveltejs/kit/internal';
|
|
6
6
|
import { noop } from '../../../../utils/functions.js';
|
|
7
|
-
import {
|
|
7
|
+
import { read_sse } from '../../sse.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* @
|
|
11
|
-
* @
|
|
10
|
+
* @template T
|
|
11
|
+
* @param {string} id
|
|
12
|
+
* @param {string} payload
|
|
13
|
+
* @param {AbortController} [controller]
|
|
14
|
+
* @param {() => void} [on_connect]
|
|
15
|
+
* @returns {AsyncGenerator<T>}
|
|
12
16
|
*/
|
|
13
|
-
async function
|
|
14
|
-
|
|
17
|
+
export async function* create_live_iterator(
|
|
18
|
+
id,
|
|
19
|
+
payload,
|
|
20
|
+
controller = new AbortController(),
|
|
21
|
+
on_connect = noop
|
|
22
|
+
) {
|
|
23
|
+
const url = `${base}/${app_dir}/remote/${id}${payload ? `?payload=${payload}` : ''}`;
|
|
15
24
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
throw new HttpError(500, 'Invalid query.live response');
|
|
21
|
-
}
|
|
25
|
+
const response = await fetch(url, {
|
|
26
|
+
headers: get_remote_request_headers(),
|
|
27
|
+
signal: controller.signal
|
|
28
|
+
});
|
|
22
29
|
|
|
23
30
|
if (!response.ok) {
|
|
24
31
|
const result = await response.json().catch(() => ({
|
|
@@ -30,60 +37,34 @@ async function get_stream_reader(response) {
|
|
|
30
37
|
throw new HttpError(result.status ?? response.status ?? 500, result.error);
|
|
31
38
|
}
|
|
32
39
|
|
|
33
|
-
if (
|
|
34
|
-
|
|
40
|
+
if (response.headers.get('content-type')?.includes('application/json')) {
|
|
41
|
+
// we can end up here if we e.g. redirect in `handle`
|
|
42
|
+
const result = await response.json();
|
|
43
|
+
await handle_side_channel_response(result);
|
|
44
|
+
throw new HttpError(500, 'Invalid query.live response');
|
|
35
45
|
}
|
|
36
46
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Yields deserialized results from a ReadableStream of newline-delimited JSON
|
|
42
|
-
* @param {ReadableStreamDefaultReader<Uint8Array>} reader
|
|
43
|
-
*/
|
|
44
|
-
async function* read_live_ndjson(reader) {
|
|
45
|
-
for await (const node of read_ndjson(reader)) {
|
|
46
|
-
if (node.type === 'result') {
|
|
47
|
-
yield devalue.parse(node.result, app.decoders);
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
await handle_side_channel_response(node);
|
|
52
|
-
throw new HttpError(500, 'Invalid query.live response');
|
|
47
|
+
if (!response.body) {
|
|
48
|
+
throw new Error('Expected query.live response body to be a ReadableStream');
|
|
53
49
|
}
|
|
54
|
-
}
|
|
55
50
|
|
|
56
|
-
|
|
57
|
-
* @template T
|
|
58
|
-
* @param {string} id
|
|
59
|
-
* @param {string} payload
|
|
60
|
-
* @param {AbortController} [controller]
|
|
61
|
-
* @param {() => void} [on_connect]
|
|
62
|
-
* @returns {AsyncGenerator<T>}
|
|
63
|
-
*/
|
|
64
|
-
export async function* create_live_iterator(
|
|
65
|
-
id,
|
|
66
|
-
payload,
|
|
67
|
-
controller = new AbortController(),
|
|
68
|
-
on_connect = noop
|
|
69
|
-
) {
|
|
70
|
-
const url = `${base}/${app_dir}/remote/${id}${payload ? `?payload=${payload}` : ''}`;
|
|
71
|
-
/** @type {ReadableStreamDefaultReader<Uint8Array> | null} */
|
|
72
|
-
let reader = null;
|
|
51
|
+
const reader = response.body.getReader();
|
|
73
52
|
|
|
74
53
|
try {
|
|
75
|
-
const response = await fetch(url, {
|
|
76
|
-
headers: get_remote_request_headers(),
|
|
77
|
-
signal: controller.signal
|
|
78
|
-
});
|
|
79
|
-
reader = await get_stream_reader(response);
|
|
80
|
-
|
|
81
54
|
on_connect();
|
|
82
55
|
|
|
83
|
-
|
|
56
|
+
for await (const node of read_sse(reader)) {
|
|
57
|
+
if (node.type === 'result') {
|
|
58
|
+
yield devalue.parse(node.result, app.decoders);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
await handle_side_channel_response(node);
|
|
63
|
+
throw new HttpError(500, 'Invalid query.live response');
|
|
64
|
+
}
|
|
84
65
|
} finally {
|
|
85
66
|
try {
|
|
86
|
-
await reader
|
|
67
|
+
await reader.cancel();
|
|
87
68
|
} catch {
|
|
88
69
|
// already closed
|
|
89
70
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { read_stream } from './stream.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @param {string} block
|
|
5
|
+
* @returns {string | undefined}
|
|
6
|
+
*/
|
|
7
|
+
function parse_sse_event_data(block) {
|
|
8
|
+
const lines = block.split('\n');
|
|
9
|
+
let data = '';
|
|
10
|
+
|
|
11
|
+
for (const line of lines) {
|
|
12
|
+
if (line.startsWith('data:')) {
|
|
13
|
+
data += (data ? '\n' : '') + line.slice(5).trimStart();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return data || undefined;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Yields parsed JSON objects from a ReadableStream of Server-Sent Events.
|
|
22
|
+
* Each yielded value is the raw `JSON.parse`'d object from a `data:` field.
|
|
23
|
+
* @param {ReadableStreamDefaultReader<Uint8Array>} reader
|
|
24
|
+
*/
|
|
25
|
+
export async function* read_sse(reader) {
|
|
26
|
+
for await (const block of read_stream(reader, '\n\n')) {
|
|
27
|
+
const data = parse_sse_event_data(block);
|
|
28
|
+
if (data) {
|
|
29
|
+
yield JSON.parse(data);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reads from a stream, decoding it as text and yielding each block of content
|
|
3
|
+
* separated by `delimiter`. The trailing block (if any) is yielded once the
|
|
4
|
+
* stream closes.
|
|
5
|
+
* @param {ReadableStreamDefaultReader<Uint8Array>} reader
|
|
6
|
+
* @param {string} delimiter
|
|
7
|
+
*/
|
|
8
|
+
export async function* read_stream(reader, delimiter) {
|
|
9
|
+
let done = false;
|
|
10
|
+
let buffer = '';
|
|
11
|
+
const decoder = new TextDecoder();
|
|
12
|
+
|
|
13
|
+
while (true) {
|
|
14
|
+
let split = buffer.indexOf(delimiter);
|
|
15
|
+
while (split !== -1) {
|
|
16
|
+
yield buffer.slice(0, split);
|
|
17
|
+
buffer = buffer.slice(split + delimiter.length);
|
|
18
|
+
split = buffer.indexOf(delimiter);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (done) {
|
|
22
|
+
if (buffer) {
|
|
23
|
+
yield buffer;
|
|
24
|
+
}
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const chunk = await reader.read();
|
|
29
|
+
done = chunk.done;
|
|
30
|
+
if (chunk.value) {
|
|
31
|
+
buffer += decoder.decode(chunk.value, { stream: true });
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (done) {
|
|
35
|
+
buffer += decoder.decode();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -634,8 +634,11 @@ export async function render_response({
|
|
|
634
634
|
}`);
|
|
635
635
|
}
|
|
636
636
|
|
|
637
|
+
// we need to eagerly import the Vite client module in development to ensure
|
|
638
|
+
// that Vite global constant replacements are initialised before our code runs
|
|
637
639
|
const init_app = `
|
|
638
640
|
{
|
|
641
|
+
${DEV ? `import('${paths.base}/@vite/client')` : ''}
|
|
639
642
|
${blocks.join('\n\n\t\t\t\t\t')}
|
|
640
643
|
}
|
|
641
644
|
`;
|
|
@@ -170,7 +170,7 @@ async function handle_remote_call_internal(event, state, options, manifest, id)
|
|
|
170
170
|
* @param {any} payload
|
|
171
171
|
*/
|
|
172
172
|
function send(controller, payload) {
|
|
173
|
-
controller.enqueue(encoder.encode(JSON.stringify(payload) + '\n'));
|
|
173
|
+
controller.enqueue(encoder.encode('data: ' + JSON.stringify(payload) + '\n\n'));
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
let closed = false;
|
|
@@ -245,7 +245,7 @@ async function handle_remote_call_internal(event, state, options, manifest, id)
|
|
|
245
245
|
{
|
|
246
246
|
headers: {
|
|
247
247
|
'cache-control': 'private, no-store',
|
|
248
|
-
'content-type': '
|
|
248
|
+
'content-type': 'text/event-stream'
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
);
|
package/src/types/internal.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
TrailingSlash
|
|
35
35
|
} from './private.js';
|
|
36
36
|
import { Span } from '@opentelemetry/api';
|
|
37
|
-
import
|
|
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 {
|
package/src/utils/error.js
CHANGED
|
@@ -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
package/types/index.d.ts
CHANGED
|
@@ -452,7 +452,7 @@ declare module '@sveltejs/kit' {
|
|
|
452
452
|
experimental?: {
|
|
453
453
|
/**
|
|
454
454
|
* Whether to enable explicit environment variables using `src/env.js` or `src/env.ts`.
|
|
455
|
-
* @since 2.
|
|
455
|
+
* @since 2.63.0
|
|
456
456
|
* @default false
|
|
457
457
|
*/
|
|
458
458
|
explicitEnvironmentVariables?: boolean;
|
|
@@ -2948,8 +2948,16 @@ declare module '@sveltejs/kit' {
|
|
|
2948
2948
|
export type LessThan<TNumber extends number, TArray extends any[] = []> = TNumber extends TArray["length"] ? TArray[number] : LessThan<TNumber, [...TArray, TArray["length"]]>;
|
|
2949
2949
|
export type NumericRange<TStart extends number, TEnd extends number> = Exclude<TEnd | LessThan<TEnd>, LessThan<TStart>>;
|
|
2950
2950
|
type ValidPageOption = (typeof valid_page_options_array)[number];
|
|
2951
|
-
|
|
2952
|
-
|
|
2951
|
+
|
|
2952
|
+
type PageOptions = Partial<{
|
|
2953
|
+
[K in ValidPageOption]: K extends 'ssr' | 'csr'
|
|
2954
|
+
? boolean
|
|
2955
|
+
: K extends 'prerender'
|
|
2956
|
+
? PrerenderOption
|
|
2957
|
+
: K extends 'trailingSlash'
|
|
2958
|
+
? TrailingSlash
|
|
2959
|
+
: any;
|
|
2960
|
+
}>;
|
|
2953
2961
|
export const VERSION: string;
|
|
2954
2962
|
class HttpError_1 {
|
|
2955
2963
|
|
|
@@ -2966,6 +2974,7 @@ declare module '@sveltejs/kit' {
|
|
|
2966
2974
|
status: 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308;
|
|
2967
2975
|
location: string;
|
|
2968
2976
|
}
|
|
2977
|
+
const valid_page_options_array: readonly ["ssr", "prerender", "csr", "trailingSlash", "config", "entries", "load"];
|
|
2969
2978
|
|
|
2970
2979
|
export {};
|
|
2971
2980
|
}
|
package/types/index.d.ts.map
CHANGED
|
@@ -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",
|
|
@@ -200,8 +200,9 @@
|
|
|
200
200
|
"../src/types/private.d.ts",
|
|
201
201
|
"../src/types/internal.d.ts",
|
|
202
202
|
"../src/exports/index.js",
|
|
203
|
-
"../src/exports/vite/static_analysis/
|
|
203
|
+
"../src/exports/vite/static_analysis/types.d.ts",
|
|
204
204
|
"../src/version.js",
|
|
205
|
+
"../src/exports/vite/static_analysis/index.js",
|
|
205
206
|
"../src/exports/hooks/index.js",
|
|
206
207
|
"../src/exports/hooks/sequence.js",
|
|
207
208
|
"../src/exports/node/index.js",
|
|
@@ -242,8 +243,9 @@
|
|
|
242
243
|
null,
|
|
243
244
|
null,
|
|
244
245
|
null,
|
|
246
|
+
null,
|
|
245
247
|
null
|
|
246
248
|
],
|
|
247
|
-
"mappings": "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
|
|
249
|
+
"mappings": "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",
|
|
248
250
|
"ignoreList": []
|
|
249
251
|
}
|