@sveltejs/kit 3.0.0-next.2 → 3.0.0-next.21
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 +62 -36
- package/src/cli.js +15 -12
- package/src/constants.js +6 -1
- package/src/core/adapt/builder.js +66 -72
- package/src/core/adapt/index.js +17 -6
- package/src/core/config/index.js +134 -80
- package/src/core/config/options.js +295 -273
- package/src/core/config/types.d.ts +1 -1
- package/src/core/env.js +146 -16
- package/src/core/generate_manifest/index.js +18 -15
- package/src/core/postbuild/analyse.js +8 -20
- package/src/core/postbuild/crawl.js +22 -6
- package/src/core/postbuild/entities.js +8 -2
- package/src/core/postbuild/fallback.js +4 -2
- package/src/core/postbuild/prerender.js +222 -70
- package/src/core/postbuild/queue.js +2 -1
- package/src/core/sync/create_manifest_data/conflict.js +1 -1
- package/src/core/sync/create_manifest_data/index.js +82 -62
- package/src/core/sync/sync.js +40 -31
- package/src/core/sync/ts.js +1 -1
- package/src/core/sync/utils.js +22 -2
- package/src/core/sync/{write_non_ambient.js → write_app_types.js} +107 -58
- package/src/core/sync/write_client_manifest.js +14 -29
- package/src/core/sync/write_env.js +7 -5
- package/src/core/sync/write_server.js +37 -45
- package/src/core/sync/write_tsconfig/index.js +274 -0
- package/src/core/sync/write_tsconfig/test-app/package.json +7 -0
- package/src/core/sync/write_tsconfig/utils.js +77 -0
- package/src/core/sync/write_tsconfig/validate.js +128 -0
- package/src/core/sync/write_types/index.js +127 -123
- package/src/core/utils.js +30 -5
- package/src/exports/env/index.js +77 -0
- package/src/exports/env/public.d.ts +55 -0
- package/src/exports/hooks/index.js +3 -9
- package/src/exports/hooks/public.d.ts +195 -0
- package/src/exports/hooks/sequence.js +9 -6
- package/src/exports/index.js +52 -29
- package/src/exports/internal/client.js +5 -0
- package/src/exports/internal/env.js +8 -5
- package/src/exports/internal/index.js +1 -90
- package/src/exports/internal/{event.js → server/event.js} +2 -3
- package/src/exports/internal/server/index.js +37 -0
- package/src/exports/internal/server/telemetry.js +95 -0
- package/src/exports/internal/shared.js +90 -0
- package/src/exports/node/index.js +64 -22
- package/src/exports/params/index.js +70 -0
- package/src/exports/params/public.d.ts +63 -0
- package/src/exports/public.d.ts +50 -1733
- package/src/exports/remote/index.js +11 -0
- package/src/exports/remote/public.d.ts +519 -0
- package/src/exports/url.js +86 -0
- package/src/exports/vite/build/build_server.js +54 -65
- package/src/exports/vite/build/remote.js +24 -19
- package/src/exports/vite/build/utils.js +0 -8
- package/src/exports/vite/dev/index.js +218 -146
- package/src/exports/vite/index.js +1590 -858
- package/src/exports/vite/module_ids.js +2 -2
- package/src/exports/vite/preview/index.js +40 -32
- package/src/exports/vite/public.d.ts +588 -0
- package/src/exports/vite/utils.js +84 -46
- package/src/pathname.js +55 -0
- package/src/runner.js +15 -0
- package/src/runtime/app/env/internal.js +4 -4
- package/src/runtime/app/env/types.d.ts +1 -1
- package/src/runtime/app/environment/index.js +3 -3
- package/src/runtime/app/{forms.js → forms/index.js} +73 -42
- package/src/runtime/app/forms/public.d.ts +2 -0
- package/src/runtime/app/forms/types.d.ts +56 -0
- package/src/runtime/app/internal/transport.js +53 -0
- package/src/runtime/app/manifest/index.js +1 -0
- package/src/runtime/app/{navigation.js → navigation/index.js} +2 -1
- package/src/runtime/app/navigation/public.d.ts +237 -0
- package/src/runtime/app/paths/client.js +37 -37
- package/src/runtime/app/paths/index.js +1 -1
- package/src/runtime/app/paths/internal/client.js +34 -2
- package/src/runtime/app/paths/internal/server.js +6 -23
- package/src/runtime/app/paths/internal.d.ts +3 -0
- package/src/runtime/app/paths/public.d.ts +1 -29
- package/src/runtime/app/paths/server.js +36 -17
- package/src/runtime/app/paths/types.d.ts +11 -19
- package/src/runtime/app/server/index.js +2 -2
- package/src/runtime/app/server/public.d.ts +201 -0
- package/src/runtime/app/server/remote/command.js +13 -11
- package/src/runtime/app/server/remote/form.js +61 -39
- package/src/runtime/app/server/remote/prerender.js +45 -45
- package/src/runtime/app/server/remote/query.js +106 -108
- package/src/runtime/app/server/remote/requested.js +27 -19
- package/src/runtime/app/server/remote/shared.js +76 -76
- package/src/runtime/app/service-worker/index.js +24 -0
- package/src/runtime/app/state/client.js +4 -2
- package/src/runtime/app/state/index.js +7 -5
- package/src/runtime/app/state/public.d.ts +72 -0
- package/src/runtime/app/state/server.js +3 -0
- package/src/runtime/app/stores.js +15 -78
- package/src/runtime/client/bundle.js +1 -1
- package/src/runtime/client/client-entry.js +3 -0
- package/src/runtime/client/client.js +1336 -648
- package/src/runtime/client/constants.js +3 -6
- package/src/runtime/client/entry.js +24 -3
- package/src/runtime/client/fetcher.js +25 -25
- package/src/runtime/client/ndjson.js +1 -1
- package/src/runtime/client/parse.js +1 -1
- package/src/runtime/client/payload.js +17 -0
- package/src/runtime/client/remote-functions/cache.svelte.js +3 -1
- package/src/runtime/client/remote-functions/command.svelte.js +37 -61
- package/src/runtime/client/remote-functions/form.svelte.js +267 -178
- package/src/runtime/client/remote-functions/prerender.svelte.js +32 -11
- package/src/runtime/client/remote-functions/query/index.js +10 -17
- package/src/runtime/client/remote-functions/query/instance.svelte.js +64 -18
- package/src/runtime/client/remote-functions/query/proxy.js +5 -5
- package/src/runtime/client/remote-functions/query-batch.svelte.js +61 -70
- package/src/runtime/client/remote-functions/query-live/index.js +1 -1
- package/src/runtime/client/remote-functions/query-live/instance.svelte.js +63 -21
- package/src/runtime/client/remote-functions/query-live/iterator.js +15 -12
- package/src/runtime/client/remote-functions/query-live/proxy.js +2 -12
- package/src/runtime/client/remote-functions/shared.svelte.js +90 -65
- package/src/runtime/client/snapshots.js +147 -0
- package/src/runtime/client/state.svelte.js +94 -55
- package/src/runtime/client/stream.js +3 -2
- package/src/runtime/client/types.d.ts +13 -9
- package/src/runtime/client/utils.js +22 -110
- package/src/runtime/components/root.svelte +56 -0
- package/src/runtime/env/dynamic/private.js +7 -0
- package/src/runtime/env/dynamic/public.js +7 -0
- package/src/runtime/env/static/private.js +6 -0
- package/src/runtime/env/static/public.js +6 -0
- package/src/runtime/form-utils.js +172 -61
- package/src/runtime/pathname.js +20 -32
- package/src/runtime/props.svelte.js +72 -0
- package/src/runtime/server/constants.js +0 -3
- package/src/runtime/server/cookie.js +72 -55
- package/src/runtime/server/csrf.js +65 -0
- package/src/runtime/server/data/index.js +49 -53
- package/src/runtime/server/dev.js +22 -0
- package/src/runtime/server/endpoint.js +6 -7
- package/src/runtime/server/env_module.js +0 -5
- package/src/runtime/server/errors.js +160 -0
- package/src/runtime/server/fetch.js +32 -39
- package/src/runtime/server/index.js +90 -64
- package/src/runtime/server/internal.js +71 -0
- package/src/runtime/server/page/actions.js +85 -64
- package/src/runtime/server/page/crypto.js +2 -2
- package/src/runtime/server/page/csp.js +88 -104
- package/src/runtime/server/page/data_serializer.js +24 -25
- package/src/runtime/server/page/index.js +36 -53
- package/src/runtime/server/page/load_data.js +50 -57
- package/src/runtime/server/page/render.js +173 -239
- package/src/runtime/server/page/respond_with_error.js +17 -31
- package/src/runtime/server/page/serialize_data.js +2 -13
- package/src/runtime/server/page/server_routing.js +85 -26
- package/src/runtime/server/remote-functions.js +640 -0
- package/src/runtime/server/respond.js +190 -131
- package/src/runtime/server/sourcemaps.js +183 -0
- package/src/runtime/server/state.js +53 -0
- package/src/runtime/server/utils.js +13 -155
- package/src/runtime/shared.js +20 -40
- package/src/runtime/utils.js +3 -0
- package/src/types/ambient-private.d.ts +11 -1
- package/src/types/ambient.d.ts +87 -36
- package/src/types/global-private.d.ts +25 -25
- package/src/types/internal.d.ts +163 -157
- package/src/types/private.d.ts +41 -1
- package/src/utils/error.js +28 -4
- package/src/utils/escape.js +9 -25
- package/src/utils/features.js +1 -1
- package/src/utils/filesystem.js +1 -23
- package/src/utils/fork.js +7 -2
- package/src/utils/hash.js +21 -0
- package/src/utils/http.js +8 -7
- package/src/utils/import.js +9 -2
- package/src/utils/imports.js +83 -0
- package/src/utils/mime.js +9 -0
- package/src/utils/page_nodes.js +6 -7
- package/src/utils/params.js +67 -0
- package/src/utils/regex.js +9 -0
- package/src/utils/routing.js +145 -73
- package/src/utils/shared-iterator.js +5 -0
- package/src/utils/streaming.js +14 -4
- package/src/utils/url.js +33 -2
- package/src/version.js +1 -1
- package/types/index.d.ts +2616 -2433
- package/types/index.d.ts.map +120 -106
- package/src/core/sync/write_ambient.js +0 -18
- package/src/core/sync/write_root.js +0 -148
- package/src/core/sync/write_tsconfig.js +0 -250
- package/src/exports/internal/server.js +0 -22
- package/src/exports/node/polyfills.js +0 -30
- package/src/runtime/server/app.js +0 -9
- package/src/runtime/server/remote.js +0 -457
- package/src/runtime/shared-server.js +0 -7
- package/src/runtime/telemetry/otel.js +0 -21
- package/src/runtime/telemetry/record_span.js +0 -65
- package/src/types/synthetic/$lib.md +0 -5
- /package/src/exports/internal/{remote-functions.js → server/remote-functions.js} +0 -0
- /package/src/{runtime/telemetry/noop.js → telemetry.js} +0 -0
|
@@ -6,10 +6,10 @@ export const sveltekit_env_public_client = '\0virtual:__sveltekit/env/public/cli
|
|
|
6
6
|
export const sveltekit_env_public_server = '\0virtual:__sveltekit/env/public/server';
|
|
7
7
|
export const sveltekit_env_private = '\0virtual:__sveltekit/env/private';
|
|
8
8
|
export const sveltekit_env_service_worker = '\0virtual:__sveltekit/env/service-worker';
|
|
9
|
-
|
|
9
|
+
export const sveltekit_server = '\0virtual:__sveltekit/server';
|
|
10
10
|
export const service_worker = '\0virtual:service-worker';
|
|
11
11
|
|
|
12
|
-
export const
|
|
12
|
+
export const sveltekit_manifest_data = '\0virtual:__sveltekit/manifest-data';
|
|
13
13
|
|
|
14
14
|
export const app_server = posixify(
|
|
15
15
|
fileURLToPath(new URL('../../runtime/app/server/index.js', import.meta.url))
|
|
@@ -1,25 +1,24 @@
|
|
|
1
|
+
/** @import { NextHandleFunction } from 'connect' */
|
|
2
|
+
/** @import { PreviewServer, ResolvedConfig } from 'vite' */
|
|
3
|
+
/** @import { ValidatedConfig, ServerInternalModule, ServerModule } from 'types' */
|
|
1
4
|
import fs from 'node:fs';
|
|
2
5
|
import { join } from 'node:path';
|
|
3
6
|
import { pathToFileURL } from 'node:url';
|
|
4
|
-
import { lookup } from '
|
|
7
|
+
import { lookup } from '../../../utils/mime.js';
|
|
5
8
|
import sirv from 'sirv';
|
|
6
9
|
import { loadEnv, normalizePath } from 'vite';
|
|
7
10
|
import { createReadableStream, getRequest, setResponse } from '../../../exports/node/index.js';
|
|
8
11
|
import { SVELTE_KIT_ASSETS } from '../../../constants.js';
|
|
9
12
|
import { is_chrome_devtools_request, not_found } from '../utils.js';
|
|
10
|
-
|
|
11
|
-
/** @typedef {import('http').IncomingMessage} Req */
|
|
12
|
-
/** @typedef {import('http').ServerResponse} Res */
|
|
13
|
-
/** @typedef {(req: Req, res: Res, next: () => void) => void} Handler */
|
|
13
|
+
import { stackless } from '../../../utils/error.js';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
* @param {
|
|
17
|
-
* @param {
|
|
18
|
-
* @param {
|
|
19
|
-
* @param {import('@sveltejs/kit').Adapter | undefined} adapter
|
|
16
|
+
* @param {PreviewServer} vite
|
|
17
|
+
* @param {ResolvedConfig} vite_config
|
|
18
|
+
* @param {ValidatedConfig} svelte_config
|
|
20
19
|
*/
|
|
21
|
-
export async function preview(vite, vite_config, svelte_config
|
|
22
|
-
const { paths } = svelte_config
|
|
20
|
+
export async function preview(vite, vite_config, svelte_config) {
|
|
21
|
+
const { paths } = svelte_config;
|
|
23
22
|
const base = paths.base;
|
|
24
23
|
const assets = paths.assets ? SVELTE_KIT_ASSETS : paths.base;
|
|
25
24
|
|
|
@@ -27,10 +26,10 @@ export async function preview(vite, vite_config, svelte_config, adapter) {
|
|
|
27
26
|
|
|
28
27
|
const etag = `"${Date.now()}"`;
|
|
29
28
|
|
|
30
|
-
const dir = join(svelte_config.
|
|
29
|
+
const dir = join(svelte_config.outDir, 'output/server');
|
|
31
30
|
|
|
32
|
-
if (!fs.existsSync(dir)) {
|
|
33
|
-
throw
|
|
31
|
+
if (!fs.existsSync(`${dir}/manifest.js`)) {
|
|
32
|
+
throw stackless(`Server files not found at ${dir}, did you run \`build\` first?`);
|
|
34
33
|
}
|
|
35
34
|
|
|
36
35
|
const instrumentation = join(dir, 'instrumentation.server.js');
|
|
@@ -38,10 +37,10 @@ export async function preview(vite, vite_config, svelte_config, adapter) {
|
|
|
38
37
|
await import(pathToFileURL(instrumentation).href);
|
|
39
38
|
}
|
|
40
39
|
|
|
41
|
-
/** @type {
|
|
40
|
+
/** @type {ServerInternalModule} */
|
|
42
41
|
const { set_assets } = await import(pathToFileURL(join(dir, 'internal.js')).href);
|
|
43
42
|
|
|
44
|
-
/** @type {
|
|
43
|
+
/** @type {ServerModule} */
|
|
45
44
|
const { Server } = await import(pathToFileURL(join(dir, 'index.js')).href);
|
|
46
45
|
|
|
47
46
|
const { manifest } = await import(pathToFileURL(join(dir, 'manifest.js')).href);
|
|
@@ -49,12 +48,21 @@ export async function preview(vite, vite_config, svelte_config, adapter) {
|
|
|
49
48
|
set_assets(assets);
|
|
50
49
|
|
|
51
50
|
const server = new Server(manifest);
|
|
52
|
-
await server.init({
|
|
53
|
-
env: loadEnv(vite_config.mode, svelte_config.kit.env.dir, ''),
|
|
54
|
-
read: (file) => createReadableStream(`${dir}/${file}`)
|
|
55
|
-
});
|
|
56
51
|
|
|
57
|
-
|
|
52
|
+
try {
|
|
53
|
+
await server.init({
|
|
54
|
+
env: loadEnv(vite_config.mode, svelte_config.env.dir, ''),
|
|
55
|
+
read: (file) => createReadableStream(`${dir}/${file}`)
|
|
56
|
+
});
|
|
57
|
+
} catch (error) {
|
|
58
|
+
// Vite erases the error message when starting the preview server so we store
|
|
59
|
+
// it in the stack instead. This ensures errors thrown using `stackless`
|
|
60
|
+
// are still readable
|
|
61
|
+
if (error instanceof Error) error.stack = error.message;
|
|
62
|
+
throw error;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const emulator = await svelte_config.adapter?.emulate?.();
|
|
58
66
|
|
|
59
67
|
return () => {
|
|
60
68
|
// Remove the base middleware. It screws with the URL.
|
|
@@ -73,10 +81,10 @@ export async function preview(vite, vite_config, svelte_config, adapter) {
|
|
|
73
81
|
vite.middlewares.use(
|
|
74
82
|
scoped(
|
|
75
83
|
assets,
|
|
76
|
-
sirv(join(svelte_config.
|
|
84
|
+
sirv(join(svelte_config.outDir, 'output/client'), {
|
|
77
85
|
setHeaders: (res, pathname) => {
|
|
78
86
|
// only apply to immutable directory, not e.g. version.json
|
|
79
|
-
if (pathname.startsWith(`/${svelte_config.
|
|
87
|
+
if (pathname.startsWith(`/${svelte_config.appDir}/immutable`)) {
|
|
80
88
|
res.setHeader('cache-control', 'public,max-age=31536000,immutable');
|
|
81
89
|
}
|
|
82
90
|
}
|
|
@@ -114,7 +122,7 @@ export async function preview(vite, vite_config, svelte_config, adapter) {
|
|
|
114
122
|
|
|
115
123
|
// prerendered dependencies
|
|
116
124
|
vite.middlewares.use(
|
|
117
|
-
scoped(base, mutable(join(svelte_config.
|
|
125
|
+
scoped(base, mutable(join(svelte_config.outDir, 'output/prerendered/dependencies')))
|
|
118
126
|
);
|
|
119
127
|
|
|
120
128
|
// prerendered pages (we can't just use sirv because we need to
|
|
@@ -135,10 +143,10 @@ export async function preview(vite, vite_config, svelte_config, adapter) {
|
|
|
135
143
|
|
|
136
144
|
const { pathname, search } = new URL(/** @type {string} */ (req.url), 'http://dummy');
|
|
137
145
|
|
|
138
|
-
const dir = pathname.startsWith(`/${svelte_config.
|
|
146
|
+
const dir = pathname.startsWith(`/${svelte_config.appDir}/remote/`) ? 'data' : 'pages';
|
|
139
147
|
|
|
140
148
|
let filename = normalizePath(
|
|
141
|
-
join(svelte_config.
|
|
149
|
+
join(svelte_config.outDir, `output/prerendered/${dir}` + pathname)
|
|
142
150
|
);
|
|
143
151
|
|
|
144
152
|
try {
|
|
@@ -196,12 +204,12 @@ export async function preview(vite, vite_config, svelte_config, adapter) {
|
|
|
196
204
|
vite.middlewares.use(async (req, res) => {
|
|
197
205
|
const host = req.headers[':authority'] || req.headers.host;
|
|
198
206
|
|
|
199
|
-
const request =
|
|
207
|
+
const request = getRequest({
|
|
200
208
|
base: `${protocol}://${host}`,
|
|
201
209
|
request: req
|
|
202
210
|
});
|
|
203
211
|
|
|
204
|
-
|
|
212
|
+
setResponse(
|
|
205
213
|
res,
|
|
206
214
|
await server.respond(request, {
|
|
207
215
|
getClientAddress: () => {
|
|
@@ -214,7 +222,7 @@ export async function preview(vite, vite_config, svelte_config, adapter) {
|
|
|
214
222
|
return fs.readFileSync(join(dir, file));
|
|
215
223
|
}
|
|
216
224
|
|
|
217
|
-
return fs.readFileSync(join(svelte_config.
|
|
225
|
+
return fs.readFileSync(join(svelte_config.files.assets, file));
|
|
218
226
|
},
|
|
219
227
|
emulator
|
|
220
228
|
})
|
|
@@ -225,7 +233,7 @@ export async function preview(vite, vite_config, svelte_config, adapter) {
|
|
|
225
233
|
|
|
226
234
|
/**
|
|
227
235
|
* @param {string} dir
|
|
228
|
-
* @returns {
|
|
236
|
+
* @returns {NextHandleFunction}
|
|
229
237
|
*/
|
|
230
238
|
const mutable = (dir) =>
|
|
231
239
|
fs.existsSync(dir)
|
|
@@ -237,8 +245,8 @@ const mutable = (dir) =>
|
|
|
237
245
|
|
|
238
246
|
/**
|
|
239
247
|
* @param {string} scope
|
|
240
|
-
* @param {
|
|
241
|
-
* @returns {
|
|
248
|
+
* @param {NextHandleFunction} handler
|
|
249
|
+
* @returns {NextHandleFunction}
|
|
242
250
|
*/
|
|
243
251
|
function scoped(scope, handler) {
|
|
244
252
|
if (scope === '') return handler;
|