From a77bde2ccfd088e023b149148061c8c894e770d4 Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Tue, 8 Jul 2025 13:52:59 -0600 Subject: [PATCH 01/19] chore --- packages/kit/src/exports/vite/index.js | 34 ++++++++++++++------------ 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index 1c90895bfe49..1db95b07859a 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -313,21 +313,25 @@ async function kit({ svelte_config }) { // that bundle later on from resolving the export conditions incorrectly // and for example include browser-only code in the server output // because they for example use esbuild.build with `platform: 'browser'` - 'esm-env', - // We need this for two reasons: - // 1. Without this, `@sveltejs/kit` imports are kept as-is in the server output, - // and that causes modules and therefore classes like `Redirect` to be imported twice - // under different IDs, which breaks a bunch of stuff because of failing instanceof checks. - // 2. Vitest bypasses Vite when loading external modules, so we bundle - // when it is detected to keep our virtual modules working. - // See https://github.com/sveltejs/kit/pull/9172 - // and https://vitest.dev/config/#deps-registernodeloader - '@sveltejs/kit', - // We need to bundle any packages depending on @sveltejs/kit so that - // everyone uses the same instances of classes such as `Redirect` - // which we use in `instanceof` checks - ...packages_depending_on_svelte_kit - ] + 'esm-env' + // // We need this for two reasons: + // // 1. Without this, `@sveltejs/kit` imports are kept as-is in the server output, + // // and that causes modules and therefore classes like `Redirect` to be imported twice + // // under different IDs, which breaks a bunch of stuff because of failing instanceof checks. + // // 2. Vitest bypasses Vite when loading external modules, so we bundle + // // when it is detected to keep our virtual modules working. + // // See https://github.com/sveltejs/kit/pull/9172 + // // and https://vitest.dev/config/#deps-registernodeloader + // '@sveltejs/kit', + // // We need to bundle any packages depending on @sveltejs/kit so that + // // everyone uses the same instances of classes such as `Redirect` + // // which we use in `instanceof` checks + // ...packages_depending_on_svelte_kit + ], + // `pnpm -F test-basics test` to run the peer dependency tests + // `pnpm -F prerendering-test-basics test` to run the prerendering tests + // both currently failing + external: ['@sveltejs/kit'] } }; From 0df6cbbb22eccb414f2c6b1c1bfb5f8e26fb9988 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 8 Jul 2025 16:33:39 -0400 Subject: [PATCH 02/19] WIP --- .../redirect-pkg/index.d.ts | 1 - .../redirect-pkg/package.json | 15 ---------- packages/kit/test/apps/basics/package.json | 2 +- .../routes/redirect/package/+page.server.js | 2 +- .../index.js | 3 ++ packages/test-redirect-importer/package.json | 12 ++++++++ pnpm-lock.yaml | 30 ++++++++----------- pnpm-workspace.yaml | 3 +- 8 files changed, 30 insertions(+), 38 deletions(-) delete mode 100644 packages/kit/test/apps/basics/_test_dependencies/redirect-pkg/index.d.ts delete mode 100644 packages/kit/test/apps/basics/_test_dependencies/redirect-pkg/package.json rename packages/{kit/test/apps/basics/_test_dependencies/redirect-pkg => test-redirect-importer}/index.js (55%) create mode 100644 packages/test-redirect-importer/package.json diff --git a/packages/kit/test/apps/basics/_test_dependencies/redirect-pkg/index.d.ts b/packages/kit/test/apps/basics/_test_dependencies/redirect-pkg/index.d.ts deleted file mode 100644 index 583653b211d3..000000000000 --- a/packages/kit/test/apps/basics/_test_dependencies/redirect-pkg/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export function authenticate(redirectUrl: string): never; diff --git a/packages/kit/test/apps/basics/_test_dependencies/redirect-pkg/package.json b/packages/kit/test/apps/basics/_test_dependencies/redirect-pkg/package.json deleted file mode 100644 index c9ef12f0be31..000000000000 --- a/packages/kit/test/apps/basics/_test_dependencies/redirect-pkg/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "redirect-pkg", - "private": true, - "version": "1.0.0", - "main": "index.js", - "types": "index.d.ts", - "files": [ - "index.js", - "index.d.ts" - ], - "type": "module", - "peerDependencies": { - "@sveltejs/kit": "workspace:*" - } -} diff --git a/packages/kit/test/apps/basics/package.json b/packages/kit/test/apps/basics/package.json index 4bcdd9c87f1b..2e741aabeaac 100644 --- a/packages/kit/test/apps/basics/package.json +++ b/packages/kit/test/apps/basics/package.json @@ -22,7 +22,7 @@ "cross-env": "catalog:", "svelte": "^5.23.1", "svelte-check": "^4.1.1", - "redirect-pkg": "file:./_test_dependencies/redirect-pkg", + "test-redirect-importer": "workspace:*", "typescript": "^5.5.4", "vite": "catalog:" }, diff --git a/packages/kit/test/apps/basics/src/routes/redirect/package/+page.server.js b/packages/kit/test/apps/basics/src/routes/redirect/package/+page.server.js index 36cbc83ac6c7..ebadf0415f09 100644 --- a/packages/kit/test/apps/basics/src/routes/redirect/package/+page.server.js +++ b/packages/kit/test/apps/basics/src/routes/redirect/package/+page.server.js @@ -1,4 +1,4 @@ -import { authenticate } from 'redirect-pkg'; +import { authenticate } from 'test-redirect-importer'; export function load() { authenticate('/redirect/c'); diff --git a/packages/kit/test/apps/basics/_test_dependencies/redirect-pkg/index.js b/packages/test-redirect-importer/index.js similarity index 55% rename from packages/kit/test/apps/basics/_test_dependencies/redirect-pkg/index.js rename to packages/test-redirect-importer/index.js index 08645a5209d5..6ef56c424795 100644 --- a/packages/kit/test/apps/basics/_test_dependencies/redirect-pkg/index.js +++ b/packages/test-redirect-importer/index.js @@ -1,5 +1,8 @@ import { redirect } from '@sveltejs/kit'; +// This exists to check that an external package importing `redirect` +// will get something that satisfies the relevant `instanceof` checks + /** * @param {string} redirectUrl * @returns {never} diff --git a/packages/test-redirect-importer/package.json b/packages/test-redirect-importer/package.json new file mode 100644 index 000000000000..b8cc3d4ed729 --- /dev/null +++ b/packages/test-redirect-importer/package.json @@ -0,0 +1,12 @@ +{ + "name": "test-redirect-importer", + "version": "0.0.1", + "private": true, + "type": "module", + "exports": { + ".": "./index.js" + }, + "dependencies": { + "@sveltejs/kit": "workspace:*" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 79fbf1aab031..fa2949a972c6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -494,15 +494,15 @@ importers: cross-env: specifier: 'catalog:' version: 7.0.3 - redirect-pkg: - specifier: file:./_test_dependencies/redirect-pkg - version: file:packages/kit/test/apps/basics/_test_dependencies/redirect-pkg(@sveltejs/kit@packages+kit) svelte: specifier: ^5.23.1 version: 5.23.1 svelte-check: specifier: ^4.1.1 version: 4.1.1(picomatch@4.0.2)(svelte@5.23.1)(typescript@5.6.3) + test-redirect-importer: + specifier: workspace:* + version: link:../../../../test-redirect-importer typescript: specifier: ^5.5.4 version: 5.6.3 @@ -510,12 +510,6 @@ importers: specifier: 'catalog:' version: 6.3.5(@types/node@18.19.50)(lightningcss@1.30.1) - packages/kit/test/apps/basics/_test_dependencies/redirect-pkg: - dependencies: - '@sveltejs/kit': - specifier: workspace:* - version: link:../../../../.. - packages/kit/test/apps/dev-only: devDependencies: '@sveltejs/kit': @@ -1171,6 +1165,12 @@ importers: specifier: ^0.5.6 version: 0.5.6 + packages/test-redirect-importer: + dependencies: + '@sveltejs/kit': + specifier: workspace:* + version: link:../kit + playgrounds/basic: devDependencies: '@sveltejs/adapter-auto': @@ -1221,6 +1221,9 @@ importers: svelte-check: specifier: ^4.1.1 version: 4.1.1(picomatch@4.0.2)(svelte@5.23.1)(typescript@5.6.3) + test-redirect-importer: + specifier: workspace:* + version: link:../../packages/test-redirect-importer typescript: specifier: ^5.5.0 version: 5.6.3 @@ -3972,11 +3975,6 @@ packages: resolution: {integrity: sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==} engines: {node: '>= 14.16.0'} - redirect-pkg@file:packages/kit/test/apps/basics/_test_dependencies/redirect-pkg: - resolution: {directory: packages/kit/test/apps/basics/_test_dependencies/redirect-pkg, type: directory} - peerDependencies: - '@sveltejs/kit': workspace:* - regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -7307,10 +7305,6 @@ snapshots: readdirp@4.0.1: {} - redirect-pkg@file:packages/kit/test/apps/basics/_test_dependencies/redirect-pkg(@sveltejs/kit@packages+kit): - dependencies: - '@sveltejs/kit': link:packages/kit - regenerator-runtime@0.14.1: {} regexparam@3.0.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 22100cc6619e..5ad4aae36e92 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,7 +3,6 @@ packages: - 'packages/adapter-cloudflare/test/apps/*' - 'packages/adapter-static/test/apps/*' - 'packages/kit/test/apps/*' - - 'packages/kit/test/apps/basics/_test_dependencies/redirect-pkg' - 'packages/kit/test/prerendering/*' - 'packages/kit/test/build-errors/**' - 'packages/kit/test/build-errors/apps/*' @@ -16,4 +15,4 @@ catalog: '@sveltejs/vite-plugin-svelte': '^6.0.0-next.0' 'cross-env': '^7.0.3' 'vitest': '^3.2.3' - 'vite': '^6.3.5' \ No newline at end of file + 'vite': '^6.3.5' From a162929bebc0535799d0728d2877636c8bda8d15 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 8 Jul 2025 18:24:14 -0400 Subject: [PATCH 03/19] WIP --- packages/kit/package.json | 4 ++++ packages/kit/src/exports/index.js | 2 +- .../{runtime/control.js => exports/internal/index.js} | 2 ++ packages/kit/src/exports/node/index.js | 2 +- packages/kit/src/exports/vite/index.js | 2 +- packages/kit/src/runtime/client/client.js | 2 +- packages/kit/src/runtime/server/cookie.spec.js | 2 +- packages/kit/src/runtime/server/data/index.js | 4 ++-- packages/kit/src/runtime/server/endpoint.js | 2 +- packages/kit/src/runtime/server/page/actions.js | 4 ++-- packages/kit/src/runtime/server/page/index.js | 4 ++-- packages/kit/src/runtime/server/page/render.js | 2 +- .../kit/src/runtime/server/page/respond_with_error.js | 2 +- packages/kit/src/runtime/server/page/server_routing.js | 2 +- packages/kit/src/runtime/server/respond.js | 4 ++-- packages/kit/src/runtime/server/utils.js | 5 +++-- packages/kit/src/utils/error.js | 4 ++-- .../basics/src/routes/redirect/package/+page.server.js | 10 +++++++++- playgrounds/basic/src/routes/a/+page.server.ts | 7 +++++++ playgrounds/basic/src/routes/error/+page.js | 7 +++++++ playgrounds/basic/src/routes/error/+page.svelte | 1 + pnpm-lock.yaml | 3 --- 22 files changed, 52 insertions(+), 25 deletions(-) rename packages/kit/src/{runtime/control.js => exports/internal/index.js} (94%) create mode 100644 playgrounds/basic/src/routes/a/+page.server.ts create mode 100644 playgrounds/basic/src/routes/error/+page.js create mode 100644 playgrounds/basic/src/routes/error/+page.svelte diff --git a/packages/kit/package.json b/packages/kit/package.json index dcd44554a043..8934de87f5a8 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -84,6 +84,10 @@ "types": "./types/index.d.ts", "import": "./src/exports/index.js" }, + "./internal": { + "types": "./types/index.d.ts", + "import": "./src/exports/internal/index.js" + }, "./node": { "types": "./types/index.d.ts", "import": "./src/exports/node/index.js" diff --git a/packages/kit/src/exports/index.js b/packages/kit/src/exports/index.js index e587ede88581..d11e011d6d76 100644 --- a/packages/kit/src/exports/index.js +++ b/packages/kit/src/exports/index.js @@ -1,4 +1,4 @@ -import { HttpError, Redirect, ActionFailure } from '../runtime/control.js'; +import { HttpError, Redirect, ActionFailure } from './internal/index.js'; import { BROWSER, DEV } from 'esm-env'; import { add_data_suffix, diff --git a/packages/kit/src/runtime/control.js b/packages/kit/src/exports/internal/index.js similarity index 94% rename from packages/kit/src/runtime/control.js rename to packages/kit/src/exports/internal/index.js index aa0b93f8965b..d769830a2c89 100644 --- a/packages/kit/src/runtime/control.js +++ b/packages/kit/src/exports/internal/index.js @@ -1,3 +1,5 @@ +console.log(`in @sveltejs/kit/internal`, import.meta.url, import.meta.env); + export class HttpError { /** * @param {number} status diff --git a/packages/kit/src/exports/node/index.js b/packages/kit/src/exports/node/index.js index a69b7ae6d906..e11cad1c12e7 100644 --- a/packages/kit/src/exports/node/index.js +++ b/packages/kit/src/exports/node/index.js @@ -1,7 +1,7 @@ import { createReadStream } from 'node:fs'; import { Readable } from 'node:stream'; import * as set_cookie_parser from 'set-cookie-parser'; -import { SvelteKitError } from '../../runtime/control.js'; +import { SvelteKitError } from '../internal/index.js'; /** * @param {import('http').IncomingMessage} req diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index 1db95b07859a..3615dcca392b 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -299,7 +299,7 @@ async function kit({ svelte_config }) { `!${kit.files.routes}/**/+*server.*` ], exclude: [ - '@sveltejs/kit', + // '@sveltejs/kit', // exclude kit features so that libraries using them work even when they are prebundled // this does not affect app code, just handling of imported libraries that use $app or $env '$app', diff --git a/packages/kit/src/runtime/client/client.js b/packages/kit/src/runtime/client/client.js index 7d07af6aa5a6..77fadd79deba 100644 --- a/packages/kit/src/runtime/client/client.js +++ b/packages/kit/src/runtime/client/client.js @@ -38,7 +38,7 @@ import { } from './constants.js'; import { validate_page_exports } from '../../utils/exports.js'; import { compact } from '../../utils/array.js'; -import { HttpError, Redirect, SvelteKitError } from '../control.js'; +import { HttpError, Redirect, SvelteKitError } from '@sveltejs/kit/internal'; import { INVALIDATED_PARAM, TRAILING_SLASH_PARAM, validate_depends } from '../shared.js'; import { get_message, get_status } from '../../utils/error.js'; import { writable } from 'svelte/store'; diff --git a/packages/kit/src/runtime/server/cookie.spec.js b/packages/kit/src/runtime/server/cookie.spec.js index e8f2cb08e623..8d98bcc3c283 100644 --- a/packages/kit/src/runtime/server/cookie.spec.js +++ b/packages/kit/src/runtime/server/cookie.spec.js @@ -1,6 +1,6 @@ import { assert, expect, test } from 'vitest'; import { domain_matches, path_matches, get_cookies } from './cookie.js'; -import { installPolyfills } from '../../exports/node/polyfills.js'; +import { installPolyfills } from '@sveltejs/kit/node/polyfills'; installPolyfills(); diff --git a/packages/kit/src/runtime/server/data/index.js b/packages/kit/src/runtime/server/data/index.js index 46150a987ae9..ca4a8ec8f364 100644 --- a/packages/kit/src/runtime/server/data/index.js +++ b/packages/kit/src/runtime/server/data/index.js @@ -1,10 +1,10 @@ -import { HttpError, SvelteKitError, Redirect } from '../../control.js'; +import { HttpError, SvelteKitError, Redirect } from '@sveltejs/kit/internal'; import { normalize_error } from '../../../utils/error.js'; import { once } from '../../../utils/functions.js'; import { load_server_data } from '../page/load_data.js'; import { clarify_devalue_error, handle_error_and_jsonify, serialize_uses } from '../utils.js'; import { normalize_path } from '../../../utils/url.js'; -import { text } from '../../../exports/index.js'; +import { text } from '@sveltejs/kit'; import * as devalue from 'devalue'; import { create_async_iterator } from '../../../utils/streaming.js'; diff --git a/packages/kit/src/runtime/server/endpoint.js b/packages/kit/src/runtime/server/endpoint.js index d480d344036b..c353c7ab96ed 100644 --- a/packages/kit/src/runtime/server/endpoint.js +++ b/packages/kit/src/runtime/server/endpoint.js @@ -1,7 +1,7 @@ import { ENDPOINT_METHODS, PAGE_METHODS } from '../../constants.js'; import { negotiate } from '../../utils/http.js'; import { with_event } from '../app/server/event.js'; -import { Redirect } from '../control.js'; +import { Redirect } from '@sveltejs/kit/internal'; import { method_not_allowed } from './utils.js'; /** diff --git a/packages/kit/src/runtime/server/page/actions.js b/packages/kit/src/runtime/server/page/actions.js index e7703359234e..7bcacffe796f 100644 --- a/packages/kit/src/runtime/server/page/actions.js +++ b/packages/kit/src/runtime/server/page/actions.js @@ -1,9 +1,9 @@ import * as devalue from 'devalue'; import { DEV } from 'esm-env'; -import { json } from '../../../exports/index.js'; +import { json } from '@sveltejs/kit'; import { get_status, normalize_error } from '../../../utils/error.js'; import { is_form_content_type, negotiate } from '../../../utils/http.js'; -import { HttpError, Redirect, ActionFailure, SvelteKitError } from '../../control.js'; +import { HttpError, Redirect, ActionFailure, SvelteKitError } from '@sveltejs/kit/internal'; import { handle_error_and_jsonify } from '../utils.js'; import { with_event } from '../../app/server/event.js'; diff --git a/packages/kit/src/runtime/server/page/index.js b/packages/kit/src/runtime/server/page/index.js index e7b462a74dda..4c1de1851d64 100644 --- a/packages/kit/src/runtime/server/page/index.js +++ b/packages/kit/src/runtime/server/page/index.js @@ -1,8 +1,8 @@ -import { text } from '../../../exports/index.js'; +import { text } from '@sveltejs/kit'; import { compact } from '../../../utils/array.js'; import { get_status, normalize_error } from '../../../utils/error.js'; import { add_data_suffix } from '../../pathname.js'; -import { Redirect } from '../../control.js'; +import { Redirect } from '@sveltejs/kit/internal'; import { redirect_response, static_error_page, handle_error_and_jsonify } from '../utils.js'; import { handle_action_json_request, diff --git a/packages/kit/src/runtime/server/page/render.js b/packages/kit/src/runtime/server/page/render.js index 13c07e8c10fd..df5fc93f7f4b 100644 --- a/packages/kit/src/runtime/server/page/render.js +++ b/packages/kit/src/runtime/server/page/render.js @@ -9,7 +9,7 @@ import { Csp } from './csp.js'; import { uneval_action_response } from './actions.js'; import { clarify_devalue_error, handle_error_and_jsonify, serialize_uses } from '../utils.js'; import { public_env, safe_public_env } from '../../shared-server.js'; -import { text } from '../../../exports/index.js'; +import { text } from '@sveltejs/kit'; import { create_async_iterator } from '../../../utils/streaming.js'; import { SVELTE_KIT_ASSETS } from '../../../constants.js'; import { SCHEME } from '../../../utils/url.js'; diff --git a/packages/kit/src/runtime/server/page/respond_with_error.js b/packages/kit/src/runtime/server/page/respond_with_error.js index f29e91329183..fcad8a1a7537 100644 --- a/packages/kit/src/runtime/server/page/respond_with_error.js +++ b/packages/kit/src/runtime/server/page/respond_with_error.js @@ -1,7 +1,7 @@ import { render_response } from './render.js'; import { load_data, load_server_data } from './load_data.js'; import { handle_error_and_jsonify, static_error_page, redirect_response } from '../utils.js'; -import { Redirect } from '../../control.js'; +import { Redirect } from '@sveltejs/kit/internal'; import { get_status } from '../../../utils/error.js'; import { PageNodes } from '../../../utils/page_nodes.js'; diff --git a/packages/kit/src/runtime/server/page/server_routing.js b/packages/kit/src/runtime/server/page/server_routing.js index 1228f0bfcb57..161e8e39f8f1 100644 --- a/packages/kit/src/runtime/server/page/server_routing.js +++ b/packages/kit/src/runtime/server/page/server_routing.js @@ -1,5 +1,5 @@ import { base, assets, relative } from '__sveltekit/paths'; -import { text } from '../../../exports/index.js'; +import { text } from '@sveltejs/kit'; import { s } from '../../../utils/misc.js'; import { exec } from '../../../utils/routing.js'; import { decode_params } from '../../../utils/url.js'; diff --git a/packages/kit/src/runtime/server/respond.js b/packages/kit/src/runtime/server/respond.js index 4ca265beab88..61effc2eac09 100644 --- a/packages/kit/src/runtime/server/respond.js +++ b/packages/kit/src/runtime/server/respond.js @@ -17,9 +17,9 @@ import { redirect_json_response, render_data } from './data/index.js'; import { add_cookies_to_headers, get_cookies } from './cookie.js'; import { create_fetch } from './fetch.js'; import { PageNodes } from '../../utils/page_nodes.js'; -import { HttpError, Redirect, SvelteKitError } from '../control.js'; +import { HttpError, Redirect, SvelteKitError } from '@sveltejs/kit/internal'; import { validate_server_exports } from '../../utils/exports.js'; -import { json, text } from '../../exports/index.js'; +import { json, text } from '@sveltejs/kit'; import { action_json_redirect, is_action_json_request } from './page/actions.js'; import { INVALIDATED_PARAM, TRAILING_SLASH_PARAM } from '../shared.js'; import { get_public_env } from './env_module.js'; diff --git a/packages/kit/src/runtime/server/utils.js b/packages/kit/src/runtime/server/utils.js index 880e966e99f1..ef8bb33ae158 100644 --- a/packages/kit/src/runtime/server/utils.js +++ b/packages/kit/src/runtime/server/utils.js @@ -1,8 +1,8 @@ import { DEV } from 'esm-env'; -import { json, text } from '../../exports/index.js'; +import { json, text } from '@sveltejs/kit'; import { coalesce_to_error, get_message, get_status } from '../../utils/error.js'; import { negotiate } from '../../utils/http.js'; -import { HttpError } from '../control.js'; +import { HttpError } from '@sveltejs/kit/internal'; import { fix_stack_trace } from '../shared-server.js'; import { ENDPOINT_METHODS } from '../../constants.js'; import { escape_html } from '../../utils/escape.js'; @@ -73,6 +73,7 @@ export function static_error_page(options, status, message) { export async function handle_fatal_error(event, options, error) { error = error instanceof HttpError ? error : coalesce_to_error(error); const status = get_status(error); + console.log({ status }); const body = await handle_error_and_jsonify(event, options, error); // ideally we'd use sec-fetch-dest instead, but Safari — quelle surprise — doesn't support it diff --git a/packages/kit/src/utils/error.js b/packages/kit/src/utils/error.js index 1247b94096aa..151ee7afc4d2 100644 --- a/packages/kit/src/utils/error.js +++ b/packages/kit/src/utils/error.js @@ -1,4 +1,4 @@ -import { HttpError, SvelteKitError } from '../runtime/control.js'; +import { HttpError, SvelteKitError } from '../exports/internal/index.js'; /** * @param {unknown} err @@ -18,7 +18,7 @@ export function coalesce_to_error(err) { * @param {unknown} error */ export function normalize_error(error) { - return /** @type {import('../runtime/control.js').Redirect | HttpError | SvelteKitError | Error} */ ( + return /** @type {import('../exports/internal/index.js').Redirect | HttpError | SvelteKitError | Error} */ ( error ); } diff --git a/packages/kit/test/apps/basics/src/routes/redirect/package/+page.server.js b/packages/kit/test/apps/basics/src/routes/redirect/package/+page.server.js index ebadf0415f09..df03321c3749 100644 --- a/packages/kit/test/apps/basics/src/routes/redirect/package/+page.server.js +++ b/packages/kit/test/apps/basics/src/routes/redirect/package/+page.server.js @@ -1,5 +1,13 @@ +import { isRedirect } from '@sveltejs/kit'; import { authenticate } from 'test-redirect-importer'; export function load() { - authenticate('/redirect/c'); + try { + authenticate('/redirect/c'); + } catch (e) { + console.error(isRedirect(e)); + console.error(import.meta.url); + console.error(e); + throw e; + } } diff --git a/playgrounds/basic/src/routes/a/+page.server.ts b/playgrounds/basic/src/routes/a/+page.server.ts new file mode 100644 index 000000000000..d4dbe6880666 --- /dev/null +++ b/playgrounds/basic/src/routes/a/+page.server.ts @@ -0,0 +1,7 @@ +import { redirect } from '@sveltejs/kit'; + +console.log(import.meta.url); + +export function load() { + redirect(307, '/b'); +} diff --git a/playgrounds/basic/src/routes/error/+page.js b/playgrounds/basic/src/routes/error/+page.js new file mode 100644 index 000000000000..3c6797360afb --- /dev/null +++ b/playgrounds/basic/src/routes/error/+page.js @@ -0,0 +1,7 @@ +import { error, redirect } from '@sveltejs/kit'; + +/** @type {import('@sveltejs/kit').Load} */ +export async function load() { + error(555, 'wtf'); + redirect(307, '/d'); +} diff --git a/playgrounds/basic/src/routes/error/+page.svelte b/playgrounds/basic/src/routes/error/+page.svelte new file mode 100644 index 000000000000..87551e2a6ea0 --- /dev/null +++ b/playgrounds/basic/src/routes/error/+page.svelte @@ -0,0 +1 @@ +

should not be visible

diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fa2949a972c6..49985882dc84 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1221,9 +1221,6 @@ importers: svelte-check: specifier: ^4.1.1 version: 4.1.1(picomatch@4.0.2)(svelte@5.23.1)(typescript@5.6.3) - test-redirect-importer: - specifier: workspace:* - version: link:../../packages/test-redirect-importer typescript: specifier: ^5.5.0 version: 5.6.3 From 275e7835290283956f6466ed2dd6c03583718c97 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 8 Jul 2025 19:14:54 -0400 Subject: [PATCH 04/19] fix --- packages/kit/src/utils/error.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kit/src/utils/error.js b/packages/kit/src/utils/error.js index 151ee7afc4d2..c12b98eff41c 100644 --- a/packages/kit/src/utils/error.js +++ b/packages/kit/src/utils/error.js @@ -1,4 +1,4 @@ -import { HttpError, SvelteKitError } from '../exports/internal/index.js'; +import { HttpError, SvelteKitError } from '@sveltejs/kit/internal'; /** * @param {unknown} err From bec98da334a17955fb517a3cd30b46bccc0fa6b3 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 8 Jul 2025 20:01:50 -0400 Subject: [PATCH 05/19] fix --- packages/kit/src/exports/internal/index.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/kit/src/exports/internal/index.js b/packages/kit/src/exports/internal/index.js index d769830a2c89..aa0b93f8965b 100644 --- a/packages/kit/src/exports/internal/index.js +++ b/packages/kit/src/exports/internal/index.js @@ -1,5 +1,3 @@ -console.log(`in @sveltejs/kit/internal`, import.meta.url, import.meta.env); - export class HttpError { /** * @param {number} status From 2fdc1837a5d20b9fb1eba6062aeddb4e06606ca6 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 8 Jul 2025 20:04:00 -0400 Subject: [PATCH 06/19] unused --- packages/kit/src/exports/vite/index.js | 34 +------------------------- 1 file changed, 1 insertion(+), 33 deletions(-) diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index 3615dcca392b..0f46e244350b 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -252,20 +252,6 @@ async function kit({ svelte_config }) { const generated = path.posix.join(kit.outDir, 'generated'); - const packages_depending_on_svelte_kit = ( - await crawlFrameworkPkgs({ - root: cwd, - isBuild: is_build, - viteUserConfig: config, - isSemiFrameworkPkgByJson: (pkg_json) => { - return ( - !!pkg_json.dependencies?.['@sveltejs/kit'] || - !!pkg_json.peerDependencies?.['@sveltejs/kit'] - ); - } - }) - ).ssr.noExternal; - // dev and preview config can be shared /** @type {import('vite').UserConfig} */ const new_config = { @@ -299,7 +285,6 @@ async function kit({ svelte_config }) { `!${kit.files.routes}/**/+*server.*` ], exclude: [ - // '@sveltejs/kit', // exclude kit features so that libraries using them work even when they are prebundled // this does not affect app code, just handling of imported libraries that use $app or $env '$app', @@ -314,24 +299,7 @@ async function kit({ svelte_config }) { // and for example include browser-only code in the server output // because they for example use esbuild.build with `platform: 'browser'` 'esm-env' - // // We need this for two reasons: - // // 1. Without this, `@sveltejs/kit` imports are kept as-is in the server output, - // // and that causes modules and therefore classes like `Redirect` to be imported twice - // // under different IDs, which breaks a bunch of stuff because of failing instanceof checks. - // // 2. Vitest bypasses Vite when loading external modules, so we bundle - // // when it is detected to keep our virtual modules working. - // // See https://github.com/sveltejs/kit/pull/9172 - // // and https://vitest.dev/config/#deps-registernodeloader - // '@sveltejs/kit', - // // We need to bundle any packages depending on @sveltejs/kit so that - // // everyone uses the same instances of classes such as `Redirect` - // // which we use in `instanceof` checks - // ...packages_depending_on_svelte_kit - ], - // `pnpm -F test-basics test` to run the peer dependency tests - // `pnpm -F prerendering-test-basics test` to run the prerendering tests - // both currently failing - external: ['@sveltejs/kit'] + ] } }; From f9144f2ca933997d52e5ea735595b6d1d6e39cc0 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 8 Jul 2025 20:09:09 -0400 Subject: [PATCH 07/19] tidy up --- packages/kit/src/runtime/client/client.js | 2 +- packages/kit/src/runtime/server/data/index.js | 2 +- packages/kit/src/runtime/server/endpoint.js | 2 +- packages/kit/src/runtime/server/page/actions.js | 2 +- packages/kit/src/runtime/server/page/index.js | 2 +- packages/kit/src/runtime/server/page/respond_with_error.js | 2 +- packages/kit/src/runtime/server/respond.js | 2 +- packages/kit/src/runtime/server/utils.js | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/kit/src/runtime/client/client.js b/packages/kit/src/runtime/client/client.js index 77fadd79deba..4a4ac7777ea2 100644 --- a/packages/kit/src/runtime/client/client.js +++ b/packages/kit/src/runtime/client/client.js @@ -1,5 +1,6 @@ import { BROWSER, DEV } from 'esm-env'; import * as svelte from 'svelte'; +import { HttpError, Redirect, SvelteKitError } from '@sveltejs/kit/internal'; const { onMount, tick } = svelte; // Svelte 4 and under don't have `untrack`, so we have to fallback if `untrack` is not exported const untrack = svelte.untrack ?? ((value) => value()); @@ -38,7 +39,6 @@ import { } from './constants.js'; import { validate_page_exports } from '../../utils/exports.js'; import { compact } from '../../utils/array.js'; -import { HttpError, Redirect, SvelteKitError } from '@sveltejs/kit/internal'; import { INVALIDATED_PARAM, TRAILING_SLASH_PARAM, validate_depends } from '../shared.js'; import { get_message, get_status } from '../../utils/error.js'; import { writable } from 'svelte/store'; diff --git a/packages/kit/src/runtime/server/data/index.js b/packages/kit/src/runtime/server/data/index.js index ca4a8ec8f364..0c5d8f1d0ecf 100644 --- a/packages/kit/src/runtime/server/data/index.js +++ b/packages/kit/src/runtime/server/data/index.js @@ -1,10 +1,10 @@ +import { text } from '@sveltejs/kit'; import { HttpError, SvelteKitError, Redirect } from '@sveltejs/kit/internal'; import { normalize_error } from '../../../utils/error.js'; import { once } from '../../../utils/functions.js'; import { load_server_data } from '../page/load_data.js'; import { clarify_devalue_error, handle_error_and_jsonify, serialize_uses } from '../utils.js'; import { normalize_path } from '../../../utils/url.js'; -import { text } from '@sveltejs/kit'; import * as devalue from 'devalue'; import { create_async_iterator } from '../../../utils/streaming.js'; diff --git a/packages/kit/src/runtime/server/endpoint.js b/packages/kit/src/runtime/server/endpoint.js index c353c7ab96ed..a88a9f4c5a70 100644 --- a/packages/kit/src/runtime/server/endpoint.js +++ b/packages/kit/src/runtime/server/endpoint.js @@ -1,7 +1,7 @@ +import { Redirect } from '@sveltejs/kit/internal'; import { ENDPOINT_METHODS, PAGE_METHODS } from '../../constants.js'; import { negotiate } from '../../utils/http.js'; import { with_event } from '../app/server/event.js'; -import { Redirect } from '@sveltejs/kit/internal'; import { method_not_allowed } from './utils.js'; /** diff --git a/packages/kit/src/runtime/server/page/actions.js b/packages/kit/src/runtime/server/page/actions.js index 7bcacffe796f..bd44060bfd2a 100644 --- a/packages/kit/src/runtime/server/page/actions.js +++ b/packages/kit/src/runtime/server/page/actions.js @@ -1,9 +1,9 @@ import * as devalue from 'devalue'; import { DEV } from 'esm-env'; import { json } from '@sveltejs/kit'; +import { HttpError, Redirect, ActionFailure, SvelteKitError } from '@sveltejs/kit/internal'; import { get_status, normalize_error } from '../../../utils/error.js'; import { is_form_content_type, negotiate } from '../../../utils/http.js'; -import { HttpError, Redirect, ActionFailure, SvelteKitError } from '@sveltejs/kit/internal'; import { handle_error_and_jsonify } from '../utils.js'; import { with_event } from '../../app/server/event.js'; diff --git a/packages/kit/src/runtime/server/page/index.js b/packages/kit/src/runtime/server/page/index.js index 4c1de1851d64..de17e7666b0d 100644 --- a/packages/kit/src/runtime/server/page/index.js +++ b/packages/kit/src/runtime/server/page/index.js @@ -1,8 +1,8 @@ import { text } from '@sveltejs/kit'; +import { Redirect } from '@sveltejs/kit/internal'; import { compact } from '../../../utils/array.js'; import { get_status, normalize_error } from '../../../utils/error.js'; import { add_data_suffix } from '../../pathname.js'; -import { Redirect } from '@sveltejs/kit/internal'; import { redirect_response, static_error_page, handle_error_and_jsonify } from '../utils.js'; import { handle_action_json_request, diff --git a/packages/kit/src/runtime/server/page/respond_with_error.js b/packages/kit/src/runtime/server/page/respond_with_error.js index fcad8a1a7537..bb3e99054507 100644 --- a/packages/kit/src/runtime/server/page/respond_with_error.js +++ b/packages/kit/src/runtime/server/page/respond_with_error.js @@ -1,7 +1,7 @@ +import { Redirect } from '@sveltejs/kit/internal'; import { render_response } from './render.js'; import { load_data, load_server_data } from './load_data.js'; import { handle_error_and_jsonify, static_error_page, redirect_response } from '../utils.js'; -import { Redirect } from '@sveltejs/kit/internal'; import { get_status } from '../../../utils/error.js'; import { PageNodes } from '../../../utils/page_nodes.js'; diff --git a/packages/kit/src/runtime/server/respond.js b/packages/kit/src/runtime/server/respond.js index 61effc2eac09..47352acda559 100644 --- a/packages/kit/src/runtime/server/respond.js +++ b/packages/kit/src/runtime/server/respond.js @@ -1,4 +1,5 @@ import { DEV } from 'esm-env'; +import { HttpError, Redirect, SvelteKitError } from '@sveltejs/kit/internal'; import { base, app_dir } from '__sveltekit/paths'; import { is_endpoint_request, render_endpoint } from './endpoint.js'; import { render_page } from './page/index.js'; @@ -17,7 +18,6 @@ import { redirect_json_response, render_data } from './data/index.js'; import { add_cookies_to_headers, get_cookies } from './cookie.js'; import { create_fetch } from './fetch.js'; import { PageNodes } from '../../utils/page_nodes.js'; -import { HttpError, Redirect, SvelteKitError } from '@sveltejs/kit/internal'; import { validate_server_exports } from '../../utils/exports.js'; import { json, text } from '@sveltejs/kit'; import { action_json_redirect, is_action_json_request } from './page/actions.js'; diff --git a/packages/kit/src/runtime/server/utils.js b/packages/kit/src/runtime/server/utils.js index ef8bb33ae158..27ce2966f3ec 100644 --- a/packages/kit/src/runtime/server/utils.js +++ b/packages/kit/src/runtime/server/utils.js @@ -1,8 +1,8 @@ import { DEV } from 'esm-env'; import { json, text } from '@sveltejs/kit'; +import { HttpError } from '@sveltejs/kit/internal'; import { coalesce_to_error, get_message, get_status } from '../../utils/error.js'; import { negotiate } from '../../utils/http.js'; -import { HttpError } from '@sveltejs/kit/internal'; import { fix_stack_trace } from '../shared-server.js'; import { ENDPOINT_METHODS } from '../../constants.js'; import { escape_html } from '../../utils/escape.js'; From 6dd38ad7f6314332358da65f6c02398feb573d53 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 8 Jul 2025 20:11:09 -0400 Subject: [PATCH 08/19] remove vitefu --- packages/kit/package.json | 3 +-- packages/kit/src/exports/vite/index.js | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index 8934de87f5a8..a1fb69b7c316 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -29,8 +29,7 @@ "mrmime": "^2.0.0", "sade": "^1.8.1", "set-cookie-parser": "^2.6.0", - "sirv": "^3.0.0", - "vitefu": "^1.0.6" + "sirv": "^3.0.0" }, "devDependencies": { "@playwright/test": "catalog:", diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index 0f46e244350b..c62086d0a959 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -36,7 +36,6 @@ import { } from './module_ids.js'; import { import_peer } from '../../utils/import.js'; import { compact } from '../../utils/array.js'; -import { crawlFrameworkPkgs } from 'vitefu'; const cwd = process.cwd(); From 4ea9a70f74169082a961f94b4c32988a46bf4a51 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 8 Jul 2025 20:11:19 -0400 Subject: [PATCH 09/19] fix types --- packages/kit/tsconfig.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/kit/tsconfig.json b/packages/kit/tsconfig.json index 154c2a7fbfa9..cf1e5973bccb 100644 --- a/packages/kit/tsconfig.json +++ b/packages/kit/tsconfig.json @@ -11,6 +11,7 @@ "paths": { "@sveltejs/kit": ["./src/exports/public.d.ts"], "@sveltejs/kit/node": ["./src/exports/node/index.js"], + "@sveltejs/kit/internal": ["./src/exports/internal/index.js"], // internal use only "types": ["./src/types/internal.d.ts"] }, From b9482642fa9db5deecf089f9e6cd20e66290450c Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 8 Jul 2025 20:12:30 -0400 Subject: [PATCH 10/19] changeset --- .changeset/pretty-beds-melt.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/pretty-beds-melt.md diff --git a/.changeset/pretty-beds-melt.md b/.changeset/pretty-beds-melt.md new file mode 100644 index 000000000000..cc9cb6bc5319 --- /dev/null +++ b/.changeset/pretty-beds-melt.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +fix: don't bundle `@sveltejs/kit` From 96d7a8d3ee5932aec894723d4de11b49d4c90959 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 8 Jul 2025 20:21:18 -0400 Subject: [PATCH 11/19] tidy up --- .../basics/src/routes/redirect/package/+page.server.js | 10 +--------- playgrounds/basic/src/routes/a/+page.server.ts | 7 ------- playgrounds/basic/src/routes/error/+page.js | 7 ------- playgrounds/basic/src/routes/error/+page.svelte | 1 - 4 files changed, 1 insertion(+), 24 deletions(-) delete mode 100644 playgrounds/basic/src/routes/a/+page.server.ts delete mode 100644 playgrounds/basic/src/routes/error/+page.js delete mode 100644 playgrounds/basic/src/routes/error/+page.svelte diff --git a/packages/kit/test/apps/basics/src/routes/redirect/package/+page.server.js b/packages/kit/test/apps/basics/src/routes/redirect/package/+page.server.js index df03321c3749..ebadf0415f09 100644 --- a/packages/kit/test/apps/basics/src/routes/redirect/package/+page.server.js +++ b/packages/kit/test/apps/basics/src/routes/redirect/package/+page.server.js @@ -1,13 +1,5 @@ -import { isRedirect } from '@sveltejs/kit'; import { authenticate } from 'test-redirect-importer'; export function load() { - try { - authenticate('/redirect/c'); - } catch (e) { - console.error(isRedirect(e)); - console.error(import.meta.url); - console.error(e); - throw e; - } + authenticate('/redirect/c'); } diff --git a/playgrounds/basic/src/routes/a/+page.server.ts b/playgrounds/basic/src/routes/a/+page.server.ts deleted file mode 100644 index d4dbe6880666..000000000000 --- a/playgrounds/basic/src/routes/a/+page.server.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { redirect } from '@sveltejs/kit'; - -console.log(import.meta.url); - -export function load() { - redirect(307, '/b'); -} diff --git a/playgrounds/basic/src/routes/error/+page.js b/playgrounds/basic/src/routes/error/+page.js deleted file mode 100644 index 3c6797360afb..000000000000 --- a/playgrounds/basic/src/routes/error/+page.js +++ /dev/null @@ -1,7 +0,0 @@ -import { error, redirect } from '@sveltejs/kit'; - -/** @type {import('@sveltejs/kit').Load} */ -export async function load() { - error(555, 'wtf'); - redirect(307, '/d'); -} diff --git a/playgrounds/basic/src/routes/error/+page.svelte b/playgrounds/basic/src/routes/error/+page.svelte deleted file mode 100644 index 87551e2a6ea0..000000000000 --- a/playgrounds/basic/src/routes/error/+page.svelte +++ /dev/null @@ -1 +0,0 @@ -

should not be visible

From c11bf0a6ba390158df0a07c76e37b9d64a4a5683 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 8 Jul 2025 20:21:46 -0400 Subject: [PATCH 12/19] tidy up --- packages/kit/src/runtime/server/utils.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/kit/src/runtime/server/utils.js b/packages/kit/src/runtime/server/utils.js index 27ce2966f3ec..57420e7404ce 100644 --- a/packages/kit/src/runtime/server/utils.js +++ b/packages/kit/src/runtime/server/utils.js @@ -73,7 +73,6 @@ export function static_error_page(options, status, message) { export async function handle_fatal_error(event, options, error) { error = error instanceof HttpError ? error : coalesce_to_error(error); const status = get_status(error); - console.log({ status }); const body = await handle_error_and_jsonify(event, options, error); // ideally we'd use sec-fetch-dest instead, but Safari — quelle surprise — doesn't support it From cc8bc7427cc82c0e30561955fff38fb2f554ddab Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 8 Jul 2025 20:22:09 -0400 Subject: [PATCH 13/19] tidy up --- packages/kit/src/runtime/server/respond.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kit/src/runtime/server/respond.js b/packages/kit/src/runtime/server/respond.js index 47352acda559..d37659cf899b 100644 --- a/packages/kit/src/runtime/server/respond.js +++ b/packages/kit/src/runtime/server/respond.js @@ -1,4 +1,5 @@ import { DEV } from 'esm-env'; +import { json, text } from '@sveltejs/kit'; import { HttpError, Redirect, SvelteKitError } from '@sveltejs/kit/internal'; import { base, app_dir } from '__sveltekit/paths'; import { is_endpoint_request, render_endpoint } from './endpoint.js'; @@ -19,7 +20,6 @@ import { add_cookies_to_headers, get_cookies } from './cookie.js'; import { create_fetch } from './fetch.js'; import { PageNodes } from '../../utils/page_nodes.js'; import { validate_server_exports } from '../../utils/exports.js'; -import { json, text } from '@sveltejs/kit'; import { action_json_redirect, is_action_json_request } from './page/actions.js'; import { INVALIDATED_PARAM, TRAILING_SLASH_PARAM } from '../shared.js'; import { get_public_env } from './env_module.js'; From 676fdf189ea3e27b5298f26a53a252c1d7c7b076 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 8 Jul 2025 20:25:15 -0400 Subject: [PATCH 14/19] tidy up --- packages/kit/src/runtime/server/page/render.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kit/src/runtime/server/page/render.js b/packages/kit/src/runtime/server/page/render.js index df5fc93f7f4b..853fb54cb0ac 100644 --- a/packages/kit/src/runtime/server/page/render.js +++ b/packages/kit/src/runtime/server/page/render.js @@ -1,6 +1,7 @@ import * as devalue from 'devalue'; import { readable, writable } from 'svelte/store'; import { DEV } from 'esm-env'; +import { text } from '@sveltejs/kit'; import * as paths from '__sveltekit/paths'; import { hash } from '../../hash.js'; import { serialize_data } from './serialize_data.js'; @@ -9,7 +10,6 @@ import { Csp } from './csp.js'; import { uneval_action_response } from './actions.js'; import { clarify_devalue_error, handle_error_and_jsonify, serialize_uses } from '../utils.js'; import { public_env, safe_public_env } from '../../shared-server.js'; -import { text } from '@sveltejs/kit'; import { create_async_iterator } from '../../../utils/streaming.js'; import { SVELTE_KIT_ASSETS } from '../../../constants.js'; import { SCHEME } from '../../../utils/url.js'; From 1f2599e188b1264b1ea4800e786101f602c09fa1 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 8 Jul 2025 20:27:47 -0400 Subject: [PATCH 15/19] lockfile --- pnpm-lock.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 49985882dc84..dc3b5400e2e4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -412,9 +412,6 @@ importers: sirv: specifier: ^3.0.0 version: 3.0.0 - vitefu: - specifier: ^1.0.6 - version: 1.0.6(vite@6.3.5(@types/node@18.19.50)(lightningcss@1.30.1)) devDependencies: '@playwright/test': specifier: 'catalog:' From 20f98fe195942e41291023547687cfcb8022f19a Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 8 Jul 2025 20:31:20 -0400 Subject: [PATCH 16/19] pacify eslint --- packages/kit/src/exports/vite/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index c62086d0a959..4abb640fe4fb 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -228,7 +228,7 @@ async function kit({ svelte_config }) { * Build the SvelteKit-provided Vite config to be merged with the user's vite.config.js file. * @see https://vitejs.dev/guide/api-plugin.html#config */ - async config(config, config_env) { + config(config, config_env) { initial_config = config; vite_config_env = config_env; is_build = config_env.command === 'build'; From d02248a441824f40f65867b2254841eab572b7d7 Mon Sep 17 00:00:00 2001 From: Chew Tee Ming Date: Wed, 9 Jul 2025 10:42:48 +0800 Subject: [PATCH 17/19] ignore test redirect importer for ts eslint --- eslint.config.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eslint.config.js b/eslint.config.js index 9bb8dd2a7156..365ddb46e517 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -41,7 +41,8 @@ export default [ 'packages/kit/test/build-errors/**/*', 'packages/kit/test/prerendering/**/*', 'packages/package/test/errors/**/*', - 'packages/package/test/fixtures/**/*' + 'packages/package/test/fixtures/**/*', + 'packages/test-redirect-importer/index.js' ] } ]; From 31543d12f18b7986fb3d0ed01f572f2e9874e4d9 Mon Sep 17 00:00:00 2001 From: Chew Tee Ming Date: Wed, 9 Jul 2025 11:43:30 +0800 Subject: [PATCH 18/19] don't use kit namespace import in test file --- packages/kit/src/runtime/server/cookie.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kit/src/runtime/server/cookie.spec.js b/packages/kit/src/runtime/server/cookie.spec.js index 8d98bcc3c283..e8f2cb08e623 100644 --- a/packages/kit/src/runtime/server/cookie.spec.js +++ b/packages/kit/src/runtime/server/cookie.spec.js @@ -1,6 +1,6 @@ import { assert, expect, test } from 'vitest'; import { domain_matches, path_matches, get_cookies } from './cookie.js'; -import { installPolyfills } from '@sveltejs/kit/node/polyfills'; +import { installPolyfills } from '../../exports/node/polyfills.js'; installPolyfills(); From fbf7871a198f46c86d7b8c860ee532b4a8b4d5c0 Mon Sep 17 00:00:00 2001 From: Chew Tee Ming Date: Wed, 9 Jul 2025 15:26:15 +0800 Subject: [PATCH 19/19] use ts paths instead --- packages/kit/src/runtime/server/cookie.spec.js | 2 +- packages/kit/tsconfig.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/kit/src/runtime/server/cookie.spec.js b/packages/kit/src/runtime/server/cookie.spec.js index e8f2cb08e623..8d98bcc3c283 100644 --- a/packages/kit/src/runtime/server/cookie.spec.js +++ b/packages/kit/src/runtime/server/cookie.spec.js @@ -1,6 +1,6 @@ import { assert, expect, test } from 'vitest'; import { domain_matches, path_matches, get_cookies } from './cookie.js'; -import { installPolyfills } from '../../exports/node/polyfills.js'; +import { installPolyfills } from '@sveltejs/kit/node/polyfills'; installPolyfills(); diff --git a/packages/kit/tsconfig.json b/packages/kit/tsconfig.json index cf1e5973bccb..155d34d9eaa9 100644 --- a/packages/kit/tsconfig.json +++ b/packages/kit/tsconfig.json @@ -11,6 +11,7 @@ "paths": { "@sveltejs/kit": ["./src/exports/public.d.ts"], "@sveltejs/kit/node": ["./src/exports/node/index.js"], + "@sveltejs/kit/node/polyfills": ["./src/exports/node/polyfills.js"], "@sveltejs/kit/internal": ["./src/exports/internal/index.js"], // internal use only "types": ["./src/types/internal.d.ts"]