Repository: sveltejs/kit
Pull request #8206 (2022-12-17 20:55:21)

[docs] fix route example in 10-advanced-routing.md
`src/routes/[[a]]/foo/+page.svelte` doesn't match the route `/foo-abc` , and there aren't any cases with parameter matcher, so I propose using `src/routes/[[a=string]]/+page.svelte` instead.

### Please don't delete this checklist! Before submitting the PR, please make sure you do the following:
- [x] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
- [x] This message body should clearly illustrate what problems it solves.
- [ ] Ideally, include a test that fails without this PR but passes with it.

### Tests
- [ ] Run the tests with `pnpm test` and lint the project with `pnpm lint` and `pnpm check`

### Changesets
- [ ] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running `pnpm changeset` and following the prompts. All changesets should be `patch` until SvelteKit 1.0


changeset-bot[bot]: ###  ⚠️  No Changeset found

Latest commit: 66d9febd7d655ff597b45bbdae12c3f352e19a2b

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. **If these changes should result in a version bump, you need to add a changeset.**

<details><summary>This PR includes no changesets</summary>

  When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

</details>

[Click here to learn what changesets are, and how to add one](https://github.com/changesets/changesets/blob/master/docs/adding-a-changeset.md).

[Click here if you're a maintainer who wants to add a changeset to this PR](https://github.com/gooodev/sveltejs-kit/new/master?filename=.changeset/healthy-kiwis-invite.md&value=---%0A%0A---%0A%0A%5Bdocs%5D%20fix%20route%20example%20in%2010-advanced-routing.md%0A)


vercel[bot]: @gooodev is attempting to deploy a commit to the **Svelte** Team on [Vercel](https://vercel.com).

A member of the Team first needs to [authorize it](https://vercel.com/git/authorize?team=Svelte&type=github&job=%7B%22headInfo%22%3A%7B%22sha%22%3A%2266d9febd7d655ff597b45bbdae12c3f352e19a2b%22%7D%2C%22id%22%3A%22QmWy5oEsSjN8fFF59C1HZHqpiCRuePmVqXuS2Y19GFxDm8%22%2C%22org%22%3A%22sveltejs%22%2C%22prId%22%3A8206%2C%22repo%22%3A%22kit%22%7D).


vercel[bot]: **The latest updates on your projects**. Learn more about [Vercel for Git ↗︎](https://vercel.link/github-learn-more)

| Name | Status | Preview | Updated |
| :--- | :----- | :------ | :------ |
| **kit** | 🔄 Building ([Inspect](https://vercel.com/svelte/kit/8X9Vw9NN56ZhKyvBpy52wGzHPp42)) |  | Dec 17, 2022 at 8:55PM (UTC) |



Patch:
diff --git a/documentation/docs/10-getting-started/10-introduction.md b/documentation/docs/10-getting-started/10-introduction.md
index a6a447628..613adbab9 100644
--- a/documentation/docs/10-getting-started/10-introduction.md
+++ b/documentation/docs/10-getting-started/10-introduction.md
@@ -10,10 +10,16 @@ title: Introduction
 
 ## What is SvelteKit?
 
-SvelteKit is a framework for rapid development of robust, performant web applications.
+SvelteKit is a framework for rapidly developing robust, performant web applications using [Svelte](https://svelte.dev/).
 
-Building an app with all the modern best practices is fiendishly complicated. Those practices include [build optimizations](https://vitejs.dev/guide/features.html#build-optimizations), so that you load only the minimal required code; [offline support](/docs/service-workers); [preloading](/docs/link-options#data-sveltekit-preload-data) pages before the user initiates navigation; [configurable rendering](/docs/page-options) that allows you to render your app [on the server](/docs/glossary#ssr) or [in the browser](/docs/glossary#csr-and-spa) at runtime or [at build-time](/docs/glossary#prerendering); and many other things. SvelteKit does all the boring stuff for you so that you can get on with the creative part.
+## What is Svelte?
 
-It uses [Vite](https://vitejs.dev/) with a [Svelte plugin](https://github.com/sveltejs/vite-plugin-svelte) to provide a lightning-fast and feature-rich development experience with [Hot Module Replacement (HMR)](https://github.com/sveltejs/vite-plugin-svelte/blob/main/docs/config.md#hot), where changes to your code are reflected in the browser instantly.
+In short, Svelte is a way of writing user interface components — like a navigation bar, comment section, or contact form — that users see and interact with in their browsers. The Svelte compiler converts your components to JavaScript that can be run to render the HTML for the page and to CSS that styles the page. You don't need to know Svelte to understand the rest of this guide, but it will help. If you'd like to learn more, check out [the Svelte tutorial](https://svelte.dev/tutorial).
+
+## What does SvelteKit provide on top of Svelte?
+
+Svelte renders UI components. You can compose these components and render an entire page with just Svelte, but you need more than just Svelte to write an entire app.
 
-You don't need to know Svelte to understand the rest of this guide, but it will help. In short, it's a UI framework that compiles your components to highly optimized vanilla JavaScript. Read the [introduction to Svelte blog post](https://svelte.dev/blog/svelte-3-rethinking-reactivity) and the [Svelte tutorial](https://svelte.dev/tutorial) to learn more.
+SvelteKit provides basic functionality like a [router](/docs/glossary#routing) — which updates the UI when a link is clicked — and [server-side rendering (SSR)](/docs/glossary#ssr). But beyond that, building an app with all the modern best practices is fiendishly complicated. Those practices include [build optimizations](https://vitejs.dev/guide/features.html#build-optimizations), so that you load only the minimal required code; [offline support](/docs/service-workers); [preloading](/docs/link-options#data-sveltekit-preload-data) pages before the user initiates navigation; [configurable rendering](/docs/page-options) that allows you to render different parts of your app on the server with [SSR](/docs/glossary#ssr), in the browser [client-side rendering](/docs/glossary#csr-and-spa), or at build-time with [prerendering](/docs/glossary#prerendering); and many other things. SvelteKit does all the boring stuff for you so that you can get on with the creative part.
+
+It uses [Vite](https://vitejs.dev/) with a [Svelte plugin](https://github.com/sveltejs/vite-plugin-svelte) to provide a lightning-fast and feature-rich development experience with [Hot Module Replacement (HMR)](https://github.com/sveltejs/vite-plugin-svelte/blob/main/docs/config.md#hot), where changes to your code are reflected in the browser instantly.
diff --git a/documentation/docs/20-core-concepts/10-routing.md b/documentation/docs/20-core-concepts/10-routing.md
index 0387089c1..1646886d8 100644
--- a/documentation/docs/20-core-concepts/10-routing.md
+++ b/documentation/docs/20-core-concepts/10-routing.md
@@ -127,7 +127,7 @@ If an error occurs during `load`, SvelteKit will render a default error page. Yo
 <h1>{$page.status}: {$page.error.message}</h1>
 ```
 
-SvelteKit will 'walk up the tree' looking for the closest error boundary — if the file above didn't exist it would try `src/routes/blog/+error.svelte` and `src/routes/+error.svelte` before rendering the default error page. If _that_ fails (or if the error was thrown from the `load` function of the root `+layout`, which sits 'above' the root `+error`), SvelteKit will bail out and render a static fallback error page, which you can customise by creating a `src/error.html` file.
+SvelteKit will 'walk up the tree' looking for the closest error boundary — if the file above didn't exist it would try `src/routes/blog/+error.svelte` and then `src/routes/+error.svelte` before rendering the default error page. If _that_ fails (or if the error was thrown from the `load` function of the root `+layout`, which sits 'above' the root `+error`), SvelteKit will bail out and render a static fallback error page, which you can customise by creating a `src/error.html` file.
 
 > `+error.svelte` is _not_ used when an error occurs inside [`handle`](/docs/hooks#server-hooks-handle) or a [+server.js](#server) request handler.
 
@@ -201,7 +201,7 @@ We can create a layout that only applies to pages below `/settings` (while inher
 <slot></slot>
 ```
 
-By default, each layout inherits the next layout above it. Sometimes that isn't what you want - in this case, [advanced layouts](/docs/advanced-routing#advanced-layouts) can help you.
+By default, each layout inherits the layout above it. Sometimes that isn't what you want - in this case, [advanced layouts](/docs/advanced-routing#advanced-layouts) can help you.
 
 ### +layout.js
 
diff --git a/documentation/docs/20-core-concepts/20-load.md b/documentation/docs/20-core-concepts/20-load.md
index 91d244c16..97c9c5f37 100644
--- a/documentation/docs/20-core-concepts/20-load.md
+++ b/documentation/docs/20-core-concepts/20-load.md
@@ -34,7 +34,7 @@ export function load({ params }) {
 
 Thanks to the generated `$types` module, we get full type safety.
 
-A `load` function in a `+page.js` file runs both on the server and in the browser. If your `load` function should _always_ run on the server (because it uses private environment variables, for example, or accesses a database) then you can put it in a `+page.server.js` instead.
+A `load` function in a `+page.js` file runs both on the server and in the browser. If your `load` function should _always_ run on the server (because it uses private environment variables, for example, or accesses a database) then it would go in a `+page.server.js` instead.
 
 A more realistic version of your blog post's `load` function, that only runs on the server and pulls data from a database, might look like this:
 
@@ -421,7 +421,7 @@ export function load({ locals }) {
 Top-level promises will be awaited, which makes it easy to return multiple promises without creating a waterfall:
 
 ```js
-/// file: src/routes/+page.server.js
+/// file: src/routes/+page.js
 /** @type {import('./$types').PageServerLoad} */
 export function load() {
 	return {
diff --git a/documentation/docs/30-advanced/10-advanced-routing.md b/documentation/docs/30-advanced/10-advanced-routing.md
index f703d1719..e227edfac 100644
--- a/documentation/docs/30-advanced/10-advanced-routing.md
+++ b/documentation/docs/30-advanced/10-advanced-routing.md
@@ -98,7 +98,7 @@ It's possible for multiple routes to match a given path. For example each of the
 
 ```bash
 src/routes/[...catchall]/+page.svelte
-src/routes/[[a]]/foo/+page.svelte
+src/routes/[[a=x]]/+page.svelte
 src/routes/[b]/+page.svelte
 src/routes/foo-[c]/+page.svelte
 src/routes/foo-abc/+page.svelte
@@ -116,7 +116,7 @@ SvelteKit needs to know which route is being requested. To do so, it sorts them
 ```bash
 src/routes/foo-abc/+page.svelte
 src/routes/foo-[c]/+page.svelte
-src/routes/[[a]]/foo/+page.svelte
+src/routes/[[a=x]]/+page.svelte
 src/routes/[b]/+page.svelte
 src/routes/[...catchall]/+page.svelte
 ```
diff --git a/documentation/docs/30-advanced/20-hooks.md b/documentation/docs/30-advanced/20-hooks.md
index 2f7b0b2e8..1e9d50e92 100644
--- a/documentation/docs/30-advanced/20-hooks.md
+++ b/documentation/docs/30-advanced/20-hooks.md
@@ -66,7 +66,7 @@ export async function handle({ event, resolve }) {
 }
 ```
 
-You can add call multiple `handle` functions with [the `sequence` helper function](/docs/modules#sveltejs-kit-hooks).
+You can define multiple `handle` functions and execute them with [the `sequence` helper function](/docs/modules#sveltejs-kit-hooks).
 
 `resolve` also supports a second, optional parameter that gives you more control over how the response will be rendered. That parameter is an object that can have the following fields:
 
@@ -99,7 +99,7 @@ Or your `load` function might make a request to a public URL like `https://api.y
 ```js
 /// file: src/hooks.server.js
 /** @type {import('@sveltejs/kit').HandleFetch} */
-export async function handleFetch({ request, fetch }) {
+export function handleFetch({ request, fetch }) {
 	if (request.url.startsWith('https://api.yourapp.com/')) {
 		// clone the original request, but change the URL
 		request = new Request(
@@ -124,7 +124,7 @@ If your app and your API are on sibling subdomains — `www.my-domain.com` and `
 /// file: src/hooks.server.js
 // @errors: 2345
 /** @type {import('@sveltejs/kit').HandleFetch} */
-export async function handleFetch({ event, request, fetch }) {
+export function handleFetch({ event, request, fetch }) {
 	if (request.url.startsWith('https://api.my-domain.com/')) {
 		request.headers.set('cookie', event.request.headers.get('cookie'));
 	}
@@ -160,12 +160,18 @@ declare namespace App {
 /// file: src/hooks.server.js
 // @errors: 2322
 // @filename: ambient.d.ts
-const Sentry: any;
+declare module '@sentry/node' {
+	export const init: (opts: any) => void;
+	export const captureException: (error: any, opts: any) => void;
+}
 
 // @filename: index.js
 // ---cut---
+import * as Sentry from '@sentry/node';
 import crypto from 'crypto';
 
+Sentry.init({/*...*/})
+
 /** @type {import('@sveltejs/kit').HandleServerError} */
 export function handleError({ error, event }) {
 	const errorId = crypto.randomUUID();
@@ -183,10 +189,17 @@ export function handleError({ error, event }) {
 /// file: src/hooks.client.js
 // @errors: 2322
 // @filename: ambient.d.ts
-const Sentry: any;
+declare module '@sentry/svelte' {
+	export const init: (opts: any) => void;
+	export const captureException: (error: any, opts: any) => void;
+}
 
 // @filename: index.js
 // ---cut---
+import * as Sentry from '@sentry/svelte';
+
+Sentry.init({/*...*/})
+
 /** @type {import('@sveltejs/kit').HandleClientError} */
 export function handleError({ error, event }) {
 	const errorId = crypto.randomUUID();
diff --git a/documentation/docs/30-advanced/25-errors.md b/documentation/docs/30-advanced/25-errors.md
index 331a992d3..40ac2269e 100644
--- a/documentation/docs/30-advanced/25-errors.md
+++ b/documentation/docs/30-advanced/25-errors.md
@@ -8,7 +8,7 @@ Errors are an inevitable fact of software development. SvelteKit handles errors
 
 SvelteKit distinguishes between expected and unexpected errors, both of which are represented as simple `{ message: string }` objects by default.
 
-You can add additional properties, like a `code` or a tracking `id`, as shown below.
+You can add additional properties, like a `code` or a tracking `id`, as shown in the examples below. (When using TypeScript this requires you to redefine the `Error` type as described in  [type safety](/docs/errors#type-safety)).
 
 ## Expected errors
 
@@ -83,10 +83,17 @@ Unexpected errors will go through the [`handleError`](/docs/hooks#shared-hooks-h
 /// file: src/hooks.server.js
 // @errors: 2322 1360 2571 2339
 // @filename: ambient.d.ts
-const Sentry: any;
+declare module '@sentry/node' {
+	export const init: (opts: any) => void;
+	export const captureException: (error: any, opts: any) => void;
+}
 
 // @filename: index.js
 // ---cut---
+import * as Sentry from '@sentry/node';
+
+Sentry.init({/*...*/})
+
 /** @type {import('@sveltejs/kit').HandleServerError} */
 export function handleError({ error, event }) {
 	// example integration with https://sentry.io/
@@ -140,4 +147,4 @@ declare namespace App {
 }
 ```
 
-This interface always includes a `message: string` property.
\ No newline at end of file
+This interface always includes a `message: string` property.
diff --git a/documentation/docs/60-appendix/10-migrating.md b/documentation/docs/60-appendix/10-migrating.md
index e74a7badc..759bec196 100644
--- a/documentation/docs/60-appendix/10-migrating.md
+++ b/documentation/docs/60-appendix/10-migrating.md
@@ -187,7 +187,7 @@ export async function handle({ event, resolve }) {
 
 	return resolve(event, {
 		transformPageChunk: ({ html, done }) => {
-			html += page;
+			page += html;
 			if (done) {
 				return building ? minify(page, minification_options) : page;
 			}
diff --git a/documentation/faq/70-packages.md b/documentation/faq/70-packages.md
index 6c7a1fd9c..1eebf3f4a 100644
--- a/documentation/faq/70-packages.md
+++ b/documentation/faq/70-packages.md
@@ -2,15 +2,15 @@
 title: How do I fix the error I'm getting trying to include a package?
 ---
 
-Vite's SSR support has become fairly stable since Vite 2.7. Most issues related to including a library are due to incorrect packaging.
+Most issues related to including a library are due to incorrect packaging. You can check if a library's packaging is compatible with Node.js by entering it into [the publint website](https://publint.dev/).
 
-Libraries work best with Vite when they distribute an ESM version and you may wish to suggest this to library authors. Here are a few things to keep in mind when checking if a library is packaged correctly:
+Here are a few things to keep in mind when checking if a library is packaged correctly:
 
 - `exports` takes precedence over the other entry point fields such as `main` and `module`. Adding an `exports` field may not be backwards-compatible as it prevents deep imports.
 - ESM files should end with `.mjs` unless `"type": "module"` is set in which any case CommonJS files should end with `.cjs`.
 - `main` should be defined if `exports` is not. It should be either a CommonJS or ESM file and adhere to the previous bullet. If a `module` field is defined, it should refer to an ESM file.
-- Svelte components should be distributed entirely as ESM and have a `svelte` field defining the entry point.
+- Svelte components should be distributed as uncompiled `.svelte` files with any JS in the package written as ESM only. Custom script and style languages, like TypeScript and SCSS, should be preprocessed as vanilla JS and CSS respectively. We recommend using [`svelte-package`](/docs/packaging) for packaging Svelte libraries, which will do this for you.
 
-It is encouraged to make sure the dependencies of external Svelte components provide an ESM version. However, in order to handle CommonJS dependencies [`vite-plugin-svelte` will look for any CJS dependencies of external Svelte components](https://github.com/sveltejs/vite-plugin-svelte/blob/main/docs/faq.md#what-is-going-on-with-vite-and-pre-bundling-dependencies) and ask Vite to pre-bundle them by automatically adding them to Vite's `optimizeDeps.include` which will use `esbuild` to convert them to ESM. A side effect of this approach is that it takes longer to load the initial page. If this becomes noticeable, try setting [experimental.prebundleSvelteLibraries: true](https://github.com/sveltejs/vite-plugin-svelte/blob/main/docs/config.md#prebundlesveltelibraries) in `svelte.config.js`. Note that this option is experimental.
+Libraries work best in the browser with Vite when they distribute an ESM version, especially if they are dependencies of a Svelte component library. You may wish to suggest to library authors that they provide an ESM version. However, CommonJS (CJS) dependencies should work as well since, by default, [`vite-plugin-svelte` will ask Vite to pre-bundle them](https://github.com/sveltejs/vite-plugin-svelte/blob/main/docs/faq.md#what-is-going-on-with-vite-and-pre-bundling-dependencies) using `esbuild` to convert them to ESM.
 
-If you are still encountering issues we recommend checking [the list of known Vite issues most commonly affecting SvelteKit users](https://github.com/sveltejs/kit/issues/2086) and searching both [the Vite issue tracker](https://github.com/vitejs/vite/issues) and the issue tracker of the library in question. Sometimes issues can be worked around by fiddling with the [`optimizeDeps`](https://vitejs.dev/config/#dep-optimization-options) or [`ssr`](https://vitejs.dev/config/#ssr-options) config values.
+If you are still encountering issues we recommend searching both [the Vite issue tracker](https://github.com/vitejs/vite/issues) and the issue tracker of the library in question. Sometimes issues can be worked around by fiddling with the [`optimizeDeps`](https://vitejs.dev/config/#dep-optimization-options) or [`ssr`](https://vitejs.dev/config/#ssr-options) config values though we recommend this as only a short-term workaround in favor of fixing the library in question.
diff --git a/package.json b/package.json
index 02a774658..955239522 100644
--- a/package.json
+++ b/package.json
@@ -24,19 +24,19 @@
 	"homepage": "https://github.com/sveltejs/kit#readme",
 	"devDependencies": {
 		"@changesets/cli": "^2.25.2",
-		"@rollup/plugin-commonjs": "^23.0.3",
-		"@rollup/plugin-json": "^5.0.2",
+		"@rollup/plugin-commonjs": "^24.0.0",
+		"@rollup/plugin-json": "^6.0.0",
 		"@rollup/plugin-node-resolve": "^15.0.1",
 		"@svitejs/changesets-changelog-github-compact": "^1.0.0",
 		"playwright": "^1.28.1",
 		"prettier": "^2.8.0",
 		"rollup": "^3.7.0",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"tiny-glob": "^0.2.9",
 		"turbo": "^1.6.3",
-		"typescript": "^4.9.3"
+		"typescript": "^4.9.4"
 	},
-	"packageManager": "pnpm@7.18.2",
+	"packageManager": "pnpm@7.22.0",
 	"engines": {
 		"pnpm": "^7.0.0"
 	},
diff --git a/packages/adapter-auto/package.json b/packages/adapter-auto/package.json
index 368efd548..22ee8a13e 100644
--- a/packages/adapter-auto/package.json
+++ b/packages/adapter-auto/package.json
@@ -32,7 +32,7 @@
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
 		"@types/node": "^16.18.6",
-		"typescript": "^4.9.3"
+		"typescript": "^4.9.4"
 	},
 	"dependencies": {
 		"import-meta-resolve": "^2.2.0"
diff --git a/packages/adapter-cloudflare-workers/CHANGELOG.md b/packages/adapter-cloudflare-workers/CHANGELOG.md
index 08157eb56..852ee63c0 100644
--- a/packages/adapter-cloudflare-workers/CHANGELOG.md
+++ b/packages/adapter-cloudflare-workers/CHANGELOG.md
@@ -1,5 +1,14 @@
 # @sveltejs/adapter-cloudflare-workers
 
+## 1.0.1
+
+### Patch Changes
+
+- [chore] update @cloudflare/kv-asset-handler ([`30e1130e`](https://github.com/sveltejs/kit/commit/30e1130ef84e56a77be5cb1136d5c53edef6e5f9))
+
+- Updated dependencies [[`fab0de4f`](https://github.com/sveltejs/kit/commit/fab0de4f06ac5b1e9b049e106889b193975c1c29), [`89b8d94b`](https://github.com/sveltejs/kit/commit/89b8d94b1b20d586e1ca525c30d07587c3f2d8f2)]:
+  - @sveltejs/kit@1.0.2
+
 ## 1.0.0
 
 ### Major Changes
diff --git a/packages/adapter-cloudflare-workers/package.json b/packages/adapter-cloudflare-workers/package.json
index 315f67647..0c30adeae 100644
--- a/packages/adapter-cloudflare-workers/package.json
+++ b/packages/adapter-cloudflare-workers/package.json
@@ -1,6 +1,6 @@
 {
 	"name": "@sveltejs/adapter-cloudflare-workers",
-	"version": "1.0.0",
+	"version": "1.0.1",
 	"repository": {
 		"type": "git",
 		"url": "https://github.com/sveltejs/kit",
@@ -34,9 +34,9 @@
 		"esbuild": "^0.16.3"
 	},
 	"devDependencies": {
-		"@cloudflare/kv-asset-handler": "^0.2.0",
+		"@cloudflare/kv-asset-handler": "^0.3.0",
 		"@types/node": "^16.18.6",
-		"typescript": "^4.9.3"
+		"typescript": "^4.9.4"
 	},
 	"peerDependencies": {
 		"@sveltejs/kit": "^1.0.0"
diff --git a/packages/adapter-cloudflare/package.json b/packages/adapter-cloudflare/package.json
index 3887c25c0..7318ed75f 100644
--- a/packages/adapter-cloudflare/package.json
+++ b/packages/adapter-cloudflare/package.json
@@ -39,7 +39,7 @@
 	"devDependencies": {
 		"@types/node": "^16.18.6",
 		"@types/ws": "^8.5.3",
-		"typescript": "^4.9.3"
+		"typescript": "^4.9.4"
 	},
 	"peerDependencies": {
 		"@sveltejs/kit": "^1.0.0"
diff --git a/packages/adapter-netlify/package.json b/packages/adapter-netlify/package.json
index ecdff5d46..13cd02a73 100644
--- a/packages/adapter-netlify/package.json
+++ b/packages/adapter-netlify/package.json
@@ -38,15 +38,15 @@
 	},
 	"devDependencies": {
 		"@netlify/functions": "^1.3.0",
-		"@rollup/plugin-commonjs": "^23.0.3",
-		"@rollup/plugin-json": "^5.0.2",
+		"@rollup/plugin-commonjs": "^24.0.0",
+		"@rollup/plugin-json": "^6.0.0",
 		"@rollup/plugin-node-resolve": "^15.0.1",
 		"@sveltejs/kit": "workspace:^",
 		"@types/node": "^16.18.6",
 		"@types/set-cookie-parser": "^2.4.2",
 		"rimraf": "^3.0.2",
 		"rollup": "^3.7.0",
-		"typescript": "^4.9.3",
+		"typescript": "^4.9.4",
 		"uvu": "^0.5.6"
 	},
 	"peerDependencies": {
diff --git a/packages/adapter-node/CHANGELOG.md b/packages/adapter-node/CHANGELOG.md
index 80ca82f61..3842b7886 100644
--- a/packages/adapter-node/CHANGELOG.md
+++ b/packages/adapter-node/CHANGELOG.md
@@ -1,5 +1,18 @@
 # @sveltejs/adapter-node
 
+## 1.0.1
+
+### Patch Changes
+
+- Update dependency @rollup/plugin-json to v6 ([#8204](https://github.com/sveltejs/kit/pull/8204))
+
+  Note: plugin-json v6 fails your build for parse errors that only logged a warning with v5. We consider this a bugfix as only healthy input should result in a successful build.
+
+- chore(deps): update dependency @rollup/plugin-commonjs to v24 ([#8216](https://github.com/sveltejs/kit/pull/8216))
+
+- Updated dependencies [[`fab0de4f`](https://github.com/sveltejs/kit/commit/fab0de4f06ac5b1e9b049e106889b193975c1c29), [`89b8d94b`](https://github.com/sveltejs/kit/commit/89b8d94b1b20d586e1ca525c30d07587c3f2d8f2)]:
+  - @sveltejs/kit@1.0.2
+
 ## 1.0.0
 
 ### Major Changes
diff --git a/packages/adapter-node/package.json b/packages/adapter-node/package.json
index 009b727dc..969a9b2ab 100644
--- a/packages/adapter-node/package.json
+++ b/packages/adapter-node/package.json
@@ -1,6 +1,6 @@
 {
 	"name": "@sveltejs/adapter-node",
-	"version": "1.0.0",
+	"version": "1.0.1",
 	"repository": {
 		"type": "git",
 		"url": "https://github.com/sveltejs/kit",
@@ -38,12 +38,12 @@
 		"polka": "^1.0.0-next.22",
 		"rimraf": "^3.0.2",
 		"sirv": "^2.0.2",
-		"typescript": "^4.9.3",
+		"typescript": "^4.9.4",
 		"uvu": "^0.5.6"
 	},
 	"dependencies": {
-		"@rollup/plugin-commonjs": "^23.0.2",
-		"@rollup/plugin-json": "^5.0.1",
+		"@rollup/plugin-commonjs": "^24.0.0",
+		"@rollup/plugin-json": "^6.0.0",
 		"@rollup/plugin-node-resolve": "^15.0.1",
 		"rollup": "^3.7.0"
 	},
diff --git a/packages/adapter-static/package.json b/packages/adapter-static/package.json
index 74d3cab60..20f917c54 100644
--- a/packages/adapter-static/package.json
+++ b/packages/adapter-static/package.json
@@ -28,10 +28,10 @@
 		"@sveltejs/kit": "workspace:^",
 		"@types/node": "^16.18.6",
 		"sirv": "^2.0.2",
-		"svelte": "^3.54.0",
-		"typescript": "^4.9.3",
+		"svelte": "^3.55.0",
+		"typescript": "^4.9.4",
 		"uvu": "^0.5.6",
-		"vite": "^4.0.0"
+		"vite": "^4.0.4"
 	},
 	"peerDependencies": {
 		"@sveltejs/kit": "^1.0.0"
diff --git a/packages/adapter-vercel/package.json b/packages/adapter-vercel/package.json
index 1563842e9..68fce47b2 100644
--- a/packages/adapter-vercel/package.json
+++ b/packages/adapter-vercel/package.json
@@ -34,7 +34,7 @@
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
 		"@types/node": "^16.18.6",
-		"typescript": "^4.9.3"
+		"typescript": "^4.9.4"
 	},
 	"peerDependencies": {
 		"@sveltejs/kit": "^1.0.0"
diff --git a/packages/create-svelte/CHANGELOG.md b/packages/create-svelte/CHANGELOG.md
index 3f74ac1d2..6b4d4a3a7 100644
--- a/packages/create-svelte/CHANGELOG.md
+++ b/packages/create-svelte/CHANGELOG.md
@@ -1,5 +1,11 @@
 # create-svelte
 
+## 2.0.2
+
+### Patch Changes
+
+- [fix] address flakiness in playwright test ([#8162](https://github.com/sveltejs/kit/pull/8162))
+
 ## 2.0.1
 
 ### Patch Changes
diff --git a/packages/create-svelte/package.json b/packages/create-svelte/package.json
index 68151f7bf..f3ba2889d 100644
--- a/packages/create-svelte/package.json
+++ b/packages/create-svelte/package.json
@@ -1,6 +1,6 @@
 {
 	"name": "create-svelte",
-	"version": "2.0.1",
+	"version": "2.0.2",
 	"repository": {
 		"type": "git",
 		"url": "https://github.com/sveltejs/kit",
@@ -23,7 +23,7 @@
 		"prettier": "^2.8.0",
 		"prettier-plugin-svelte": "^2.8.1",
 		"sucrase": "^3.29.0",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"tiny-glob": "^0.2.9",
 		"uvu": "^0.5.6"
 	},
diff --git a/packages/create-svelte/templates/default/package.json b/packages/create-svelte/templates/default/package.json
index f9e6f7903..3b62800ad 100644
--- a/packages/create-svelte/templates/default/package.json
+++ b/packages/create-svelte/templates/default/package.json
@@ -11,8 +11,8 @@
 		"@neoconfetti/svelte": "^1.0.0",
 		"@sveltejs/adapter-auto": "workspace:*",
 		"@sveltejs/kit": "workspace:*",
-		"svelte": "^3.54.0",
-		"typescript": "^4.9.3",
+		"svelte": "^3.55.0",
+		"typescript": "^4.9.4",
 		"vite": "^4.0.0"
 	},
 	"type": "module",
diff --git a/packages/kit/CHANGELOG.md b/packages/kit/CHANGELOG.md
index e1a361713..f9b25fde6 100644
--- a/packages/kit/CHANGELOG.md
+++ b/packages/kit/CHANGELOG.md
@@ -1,5 +1,13 @@
 # @sveltejs/kit
 
+## 1.0.2
+
+### Patch Changes
+
+- Fix filterSerializedResponseHeaders error message ([#8348](https://github.com/sveltejs/kit/pull/8348))
+
+- Fix form action redirect status code ([#8210](https://github.com/sveltejs/kit/pull/8210))
+
 ## 1.0.1
 
 ### Patch Changes
diff --git a/packages/kit/package.json b/packages/kit/package.json
index e9c821120..1418c0e3d 100644
--- a/packages/kit/package.json
+++ b/packages/kit/package.json
@@ -1,6 +1,6 @@
 {
 	"name": "@sveltejs/kit",
-	"version": "1.0.1",
+	"version": "1.0.2",
 	"repository": {
 		"type": "git",
 		"url": "https://github.com/sveltejs/kit",
@@ -34,11 +34,11 @@
 		"@types/set-cookie-parser": "^2.4.2",
 		"marked": "^4.2.3",
 		"rollup": "^3.7.0",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-preprocess": "^5.0.0",
-		"typescript": "^4.9.3",
+		"typescript": "^4.9.4",
 		"uvu": "^0.5.6",
-		"vite": "^4.0.0"
+		"vite": "^4.0.4"
 	},
 	"peerDependencies": {
 		"svelte": "^3.54.0",
diff --git a/packages/kit/src/runtime/server/page/index.js b/packages/kit/src/runtime/server/page/index.js
index 84c712d4f..463e72d01 100644
--- a/packages/kit/src/runtime/server/page/index.js
+++ b/packages/kit/src/runtime/server/page/index.js
@@ -62,7 +62,7 @@ export async function render_page(event, route, page, options, state, resolve_op
 			// (this also determines status code)
 			action_result = await handle_action_request(event, leaf_node.server);
 			if (action_result?.type === 'redirect') {
-				return redirect_response(303, action_result.location);
+				return redirect_response(action_result.status, action_result.location);
 			}
 			if (action_result?.type === 'error') {
 				const error = action_result.error;
diff --git a/packages/kit/src/runtime/server/page/load_data.js b/packages/kit/src/runtime/server/page/load_data.js
index 99735c2e4..f5f20c44f 100644
--- a/packages/kit/src/runtime/server/page/load_data.js
+++ b/packages/kit/src/runtime/server/page/load_data.js
@@ -211,7 +211,7 @@ export async function load_data({
 						const included = resolve_opts.filterSerializedResponseHeaders(lower, value);
 						if (!included) {
 							throw new Error(
-								`Failed to get response header "${lower}" — it must be included by the \`filterSerializedResponseHeaders\` option: https://kit.svelte.dev/docs/hooks#server-hooks-handle (at ${event.route})`
+								`Failed to get response header "${lower}" — it must be included by the \`filterSerializedResponseHeaders\` option: https://kit.svelte.dev/docs/hooks#server-hooks-handle (at ${event.route.id})`
 							);
 						}
 					}
diff --git a/packages/migrate/package.json b/packages/migrate/package.json
index 685072c85..bc5536c86 100644
--- a/packages/migrate/package.json
+++ b/packages/migrate/package.json
@@ -24,7 +24,7 @@
 		"magic-string": "^0.27.0",
 		"prompts": "^2.4.2",
 		"tiny-glob": "^0.2.9",
-		"typescript": "^4.9.3"
+		"typescript": "^4.9.4"
 	},
 	"devDependencies": {
 		"@types/prompts": "^2.4.1",
diff --git a/packages/package/CHANGELOG.md b/packages/package/CHANGELOG.md
index 20101aaed..0a941c823 100644
--- a/packages/package/CHANGELOG.md
+++ b/packages/package/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @sveltejs/package
 
+## 1.0.2
+
+### Patch Changes
+
+- [chore] update svelte2tsx ([`50a3c5a6`](https://github.com/sveltejs/kit/commit/50a3c5a6d1282c64422e80fe19b352c14e41c853))
+
 ## 1.0.1
 
 ### Patch Changes
diff --git a/packages/package/package.json b/packages/package/package.json
index 919b10f46..5d3ef3783 100644
--- a/packages/package/package.json
+++ b/packages/package/package.json
@@ -1,6 +1,6 @@
 {
 	"name": "@sveltejs/package",
-	"version": "1.0.1",
+	"version": "1.0.2",
 	"repository": {
 		"type": "git",
 		"url": "https://github.com/sveltejs/kit",
@@ -13,13 +13,13 @@
 		"chokidar": "^3.5.3",
 		"kleur": "^4.1.5",
 		"sade": "^1.8.1",
-		"svelte2tsx": "~0.5.20"
+		"svelte2tsx": "~0.6.0"
 	},
 	"devDependencies": {
 		"@types/node": "^16.18.6",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-preprocess": "^5.0.0",
-		"typescript": "^4.9.3",
+		"typescript": "^4.9.4",
 		"uvu": "^0.5.6"
 	},
 	"peerDependencies": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c86f1bf06..ec26cfaae 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -5,43 +5,43 @@ importers:
   .:
     specifiers:
       '@changesets/cli': ^2.25.2
-      '@rollup/plugin-commonjs': ^23.0.3
-      '@rollup/plugin-json': ^5.0.2
+      '@rollup/plugin-commonjs': ^24.0.0
+      '@rollup/plugin-json': ^6.0.0
       '@rollup/plugin-node-resolve': ^15.0.1
       '@svitejs/changesets-changelog-github-compact': ^1.0.0
       playwright: ^1.28.1
       prettier: ^2.8.0
       rollup: ^3.7.0
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       tiny-glob: ^0.2.9
       turbo: ^1.6.3
-      typescript: ^4.9.3
+      typescript: ^4.9.4
     devDependencies:
       '@changesets/cli': 2.25.2
-      '@rollup/plugin-commonjs': 23.0.3_rollup@3.7.0
-      '@rollup/plugin-json': 5.0.2_rollup@3.7.0
+      '@rollup/plugin-commonjs': 24.0.0_rollup@3.7.0
+      '@rollup/plugin-json': 6.0.0_rollup@3.7.0
       '@rollup/plugin-node-resolve': 15.0.1_rollup@3.7.0
       '@svitejs/changesets-changelog-github-compact': 1.0.0
       playwright: 1.28.1
       prettier: 2.8.0
       rollup: 3.7.0
-      svelte: 3.54.0
+      svelte: 3.55.0
       tiny-glob: 0.2.9
       turbo: 1.6.3
-      typescript: 4.9.3
+      typescript: 4.9.4
 
   packages/adapter-auto:
     specifiers:
       '@sveltejs/kit': workspace:^
       '@types/node': ^16.18.6
       import-meta-resolve: ^2.2.0
-      typescript: ^4.9.3
+      typescript: ^4.9.4
     dependencies:
       import-meta-resolve: 2.2.0
     devDependencies:
       '@sveltejs/kit': link:../kit
       '@types/node': 16.18.6
-      typescript: 4.9.3
+      typescript: 4.9.4
 
   packages/adapter-cloudflare:
     specifiers:
@@ -49,7 +49,7 @@ importers:
       '@types/node': ^16.18.6
       '@types/ws': ^8.5.3
       esbuild: ^0.16.3
-      typescript: ^4.9.3
+      typescript: ^4.9.4
       worktop: 0.8.0-next.14
     dependencies:
       '@cloudflare/workers-types': 4.20221111.1
@@ -58,31 +58,31 @@ importers:
     devDependencies:
       '@types/node': 16.18.6
       '@types/ws': 8.5.3
-      typescript: 4.9.3
+      typescript: 4.9.4
 
   packages/adapter-cloudflare-workers:
     specifiers:
-      '@cloudflare/kv-asset-handler': ^0.2.0
+      '@cloudflare/kv-asset-handler': ^0.3.0
       '@cloudflare/workers-types': ^4.20221111.1
       '@iarna/toml': ^2.2.5
       '@types/node': ^16.18.6
       esbuild: ^0.16.3
-      typescript: ^4.9.3
+      typescript: ^4.9.4
     dependencies:
       '@cloudflare/workers-types': 4.20221111.1
       '@iarna/toml': 2.2.5
       esbuild: 0.16.3
     devDependencies:
-      '@cloudflare/kv-asset-handler': 0.2.0
+      '@cloudflare/kv-asset-handler': 0.3.0
       '@types/node': 16.18.6
-      typescript: 4.9.3
+      typescript: 4.9.4
 
   packages/adapter-netlify:
     specifiers:
       '@iarna/toml': ^2.2.5
       '@netlify/functions': ^1.3.0
-      '@rollup/plugin-commonjs': ^23.0.3
-      '@rollup/plugin-json': ^5.0.2
+      '@rollup/plugin-commonjs': ^24.0.0
+      '@rollup/plugin-json': ^6.0.0
       '@rollup/plugin-node-resolve': ^15.0.1
       '@sveltejs/kit': workspace:^
       '@types/node': ^16.18.6
@@ -91,7 +91,7 @@ importers:
       rimraf: ^3.0.2
       rollup: ^3.7.0
       set-cookie-parser: ^2.5.1
-      typescript: ^4.9.3
+      typescript: ^4.9.4
       uvu: ^0.5.6
     dependencies:
       '@iarna/toml': 2.2.5
@@ -99,21 +99,21 @@ importers:
       set-cookie-parser: 2.5.1
     devDependencies:
       '@netlify/functions': 1.3.0
-      '@rollup/plugin-commonjs': 23.0.3_rollup@3.7.0
-      '@rollup/plugin-json': 5.0.2_rollup@3.7.0
+      '@rollup/plugin-commonjs': 24.0.0_rollup@3.7.0
+      '@rollup/plugin-json': 6.0.0_rollup@3.7.0
       '@rollup/plugin-node-resolve': 15.0.1_rollup@3.7.0
       '@sveltejs/kit': link:../kit
       '@types/node': 16.18.6
       '@types/set-cookie-parser': 2.4.2
       rimraf: 3.0.2
       rollup: 3.7.0
-      typescript: 4.9.3
+      typescript: 4.9.4
       uvu: 0.5.6
 
   packages/adapter-node:
     specifiers:
-      '@rollup/plugin-commonjs': ^23.0.2
-      '@rollup/plugin-json': ^5.0.1
+      '@rollup/plugin-commonjs': ^24.0.0
+      '@rollup/plugin-json': ^6.0.0
       '@rollup/plugin-node-resolve': ^15.0.1
       '@sveltejs/kit': workspace:^
       '@types/node': ^16.18.6
@@ -122,11 +122,11 @@ importers:
       rimraf: ^3.0.2
       rollup: ^3.7.0
       sirv: ^2.0.2
-      typescript: ^4.9.3
+      typescript: ^4.9.4
       uvu: ^0.5.6
     dependencies:
-      '@rollup/plugin-commonjs': 23.0.2_rollup@3.7.0
-      '@rollup/plugin-json': 5.0.1_rollup@3.7.0
+      '@rollup/plugin-commonjs': 24.0.0_rollup@3.7.0
+      '@rollup/plugin-json': 6.0.0_rollup@3.7.0
       '@rollup/plugin-node-resolve': 15.0.1_rollup@3.7.0
       rollup: 3.7.0
     devDependencies:
@@ -136,7 +136,7 @@ importers:
       polka: 1.0.0-next.22
       rimraf: 3.0.2
       sirv: 2.0.2
-      typescript: 4.9.3
+      typescript: 4.9.4
       uvu: 0.5.6
 
   packages/adapter-static:
@@ -144,42 +144,42 @@ importers:
       '@sveltejs/kit': workspace:^
       '@types/node': ^16.18.6
       sirv: ^2.0.2
-      svelte: ^3.54.0
-      typescript: ^4.9.3
+      svelte: ^3.55.0
+      typescript: ^4.9.4
       uvu: ^0.5.6
-      vite: ^4.0.0
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../kit
       '@types/node': 16.18.6
       sirv: 2.0.2
-      svelte: 3.54.0
-      typescript: 4.9.3
+      svelte: 3.55.0
+      typescript: 4.9.4
       uvu: 0.5.6
-      vite: 4.0.0_@types+node@16.18.6
+      vite: 4.0.4_@types+node@16.18.6
 
   packages/adapter-static/test/apps/prerendered:
     specifiers:
       '@sveltejs/kit': workspace:^
-      svelte: ^3.54.0
-      vite: ^4.0.0
+      svelte: ^3.55.0
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../../../kit
-      svelte: 3.54.0
-      vite: 4.0.0
+      svelte: 3.55.0
+      vite: 4.0.4
 
   packages/adapter-static/test/apps/spa:
     specifiers:
       '@sveltejs/adapter-node': workspace:^
       '@sveltejs/kit': workspace:^
       sirv-cli: ^2.0.2
-      svelte: ^3.54.0
-      vite: ^4.0.0
+      svelte: ^3.55.0
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/adapter-node': link:../../../../adapter-node
       '@sveltejs/kit': link:../../../../kit
       sirv-cli: 2.0.2
-      svelte: 3.54.0
-      vite: 4.0.0
+      svelte: 3.55.0
+      vite: 4.0.4
 
   packages/adapter-vercel:
     specifiers:
@@ -187,14 +187,14 @@ importers:
       '@types/node': ^16.18.6
       '@vercel/nft': ^0.22.1
       esbuild: ^0.16.3
-      typescript: ^4.9.3
+      typescript: ^4.9.4
     dependencies:
       '@vercel/nft': 0.22.1
       esbuild: 0.16.3
     devDependencies:
       '@sveltejs/kit': link:../kit
       '@types/node': 16.18.6
-      typescript: 4.9.3
+      typescript: 4.9.4
 
   packages/amp:
     specifiers: {}
@@ -211,7 +211,7 @@ importers:
       prettier-plugin-svelte: ^2.8.1
       prompts: ^2.4.2
       sucrase: ^3.29.0
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       tiny-glob: ^0.2.9
       uvu: ^0.5.6
     dependencies:
@@ -224,9 +224,9 @@ importers:
       '@types/prompts': 2.4.1
       gitignore-parser: 0.0.2
       prettier: 2.8.0
-      prettier-plugin-svelte: 2.8.1_kaioqtfwjumrsfopsgfoca65re
+      prettier-plugin-svelte: 2.8.1_nxhwyzrlb2jiv2xtis3ad534qu
       sucrase: 3.29.0
-      svelte: 3.54.0
+      svelte: 3.55.0
       tiny-glob: 0.2.9
       uvu: 0.5.6
 
@@ -236,8 +236,8 @@ importers:
       '@neoconfetti/svelte': ^1.0.0
       '@sveltejs/adapter-auto': workspace:*
       '@sveltejs/kit': workspace:*
-      svelte: ^3.54.0
-      typescript: ^4.9.3
+      svelte: ^3.55.0
+      typescript: ^4.9.4
       vite: ^4.0.0
     dependencies:
       '@fontsource/fira-mono': 4.5.10
@@ -245,9 +245,9 @@ importers:
       '@neoconfetti/svelte': 1.0.0
       '@sveltejs/adapter-auto': link:../../../adapter-auto
       '@sveltejs/kit': link:../../../kit
-      svelte: 3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/create-svelte/templates/skeleton:
     specifiers:
@@ -277,15 +277,15 @@ importers:
       sade: ^1.8.1
       set-cookie-parser: ^2.5.1
       sirv: ^2.0.2
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-preprocess: ^5.0.0
       tiny-glob: ^0.2.9
-      typescript: ^4.9.3
+      typescript: ^4.9.4
       undici: 5.14.0
       uvu: ^0.5.6
-      vite: ^4.0.0
+      vite: ^4.0.4
     dependencies:
-      '@sveltejs/vite-plugin-svelte': 2.0.0_svelte@3.54.0+vite@4.0.0
+      '@sveltejs/vite-plugin-svelte': 2.0.0_svelte@3.55.0+vite@4.0.4
       '@types/cookie': 0.5.1
       cookie: 0.5.0
       devalue: 4.2.0
@@ -308,11 +308,11 @@ importers:
       '@types/set-cookie-parser': 2.4.2
       marked: 4.2.3
       rollup: 3.7.0
-      svelte: 3.54.0
-      svelte-preprocess: 5.0.0_gf4dcx76vtk2o62ixxeqx7chra
-      typescript: 4.9.3
+      svelte: 3.55.0
+      svelte-preprocess: 5.0.0_niwyv7xychq2ag6arq5eqxbomm
+      typescript: 4.9.4
       uvu: 0.5.6
-      vite: 4.0.0_@types+node@16.18.6
+      vite: 4.0.4_@types+node@16.18.6
 
   packages/kit/test/apps/amp:
     specifiers:
@@ -320,107 +320,107 @@ importers:
       '@sveltejs/kit': workspace:^
       cross-env: ^7.0.3
       purify-css: ^1.2.5
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/amp': link:../../../../amp
       '@sveltejs/kit': link:../../..
       cross-env: 7.0.3
       purify-css: 1.2.5
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/apps/basics:
     specifiers:
       '@sveltejs/kit': workspace:^
       cross-env: ^7.0.3
       rimraf: ^3.0.2
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../..
       cross-env: 7.0.3
       rimraf: 3.0.2
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/apps/dev-only:
     specifiers:
       '@sveltejs/kit': workspace:^
       cross-env: ^7.0.3
       rimraf: ^3.0.2
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../..
       cross-env: 7.0.3
       rimraf: 3.0.2
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/apps/options:
     specifiers:
       '@sveltejs/kit': workspace:^
       cross-env: ^7.0.3
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../..
       cross-env: 7.0.3
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/apps/options-2:
     specifiers:
       '@sveltejs/adapter-node': workspace:^
       '@sveltejs/kit': workspace:^
       cross-env: ^7.0.3
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/adapter-node': link:../../../../adapter-node
       '@sveltejs/kit': link:../../..
       cross-env: 7.0.3
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/apps/writes:
     specifiers:
       '@sveltejs/kit': workspace:^
       cross-env: ^7.0.3
       rimraf: ^3.0.2
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../..
       cross-env: 7.0.3
       rimraf: 3.0.2
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/build-errors:
     specifiers:
@@ -432,211 +432,211 @@ importers:
     specifiers:
       '@sveltejs/adapter-auto': workspace:^
       '@sveltejs/kit': workspace:^
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.7.1
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/adapter-auto': link:../../../../../adapter-auto
       '@sveltejs/kit': link:../../../..
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/build-errors/apps/prerenderable-not-prerendered:
     specifiers:
       '@sveltejs/adapter-auto': workspace:^
       '@sveltejs/kit': workspace:^
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/adapter-auto': link:../../../../../adapter-auto
       '@sveltejs/kit': link:../../../..
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/build-errors/apps/private-dynamic-env:
     specifiers:
       '@sveltejs/kit': workspace:^
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../../..
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/build-errors/apps/private-dynamic-env-dynamic-import:
     specifiers:
       '@sveltejs/kit': workspace:^
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../../..
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/build-errors/apps/private-static-env:
     specifiers:
       '@sveltejs/kit': workspace:^
       cross-env: ^7.0.3
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../../..
       cross-env: 7.0.3
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/build-errors/apps/private-static-env-dynamic-import:
     specifiers:
       '@sveltejs/kit': workspace:^
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../../..
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/build-errors/apps/server-only-folder:
     specifiers:
       '@sveltejs/kit': workspace:^
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../../..
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/build-errors/apps/server-only-folder-dynamic-import:
     specifiers:
       '@sveltejs/kit': workspace:^
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../../..
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/build-errors/apps/server-only-module:
     specifiers:
       '@sveltejs/kit': workspace:^
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../../..
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/build-errors/apps/server-only-module-dynamic-import:
     specifiers:
       '@sveltejs/kit': workspace:^
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
-      vite: ^4.0.0
+      typescript: ^4.9.4
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../../..
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
-      vite: 4.0.0
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
+      vite: 4.0.4
 
   packages/kit/test/prerendering/basics:
     specifiers:
       '@sveltejs/kit': workspace:^
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
+      typescript: ^4.9.4
       uvu: ^0.5.6
-      vite: ^4.0.0
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../..
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
       uvu: 0.5.6
-      vite: 4.0.0
+      vite: 4.0.4
 
   packages/kit/test/prerendering/options:
     specifiers:
       '@sveltejs/kit': workspace:^
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
+      typescript: ^4.9.4
       uvu: ^0.5.6
-      vite: ^4.0.0
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../..
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
       uvu: 0.5.6
-      vite: 4.0.0
+      vite: 4.0.4
 
   packages/kit/test/prerendering/paths-base:
     specifiers:
       '@sveltejs/kit': workspace:^
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
+      typescript: ^4.9.4
       uvu: ^0.5.6
-      vite: ^4.0.0
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../..
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
       uvu: 0.5.6
-      vite: 4.0.0
+      vite: 4.0.4
 
   packages/kit/test/prerendering/ssr-false:
     specifiers:
       '@sveltejs/kit': workspace:^
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-check: ^2.9.2
-      typescript: ^4.9.3
+      typescript: ^4.9.4
       uvu: ^0.5.6
-      vite: ^4.0.0
+      vite: ^4.0.4
     devDependencies:
       '@sveltejs/kit': link:../../..
-      svelte: 3.54.0
-      svelte-check: 2.9.2_svelte@3.54.0
-      typescript: 4.9.3
+      svelte: 3.55.0
+      svelte-check: 2.9.2_svelte@3.55.0
+      typescript: 4.9.4
       uvu: 0.5.6
-      vite: 4.0.0
+      vite: 4.0.4
 
   packages/migrate:
     specifiers:
@@ -646,14 +646,14 @@ importers:
       prettier: ^2.8.0
       prompts: ^2.4.2
       tiny-glob: ^0.2.9
-      typescript: ^4.9.3
+      typescript: ^4.9.4
       uvu: ^0.5.6
     dependencies:
       kleur: 4.1.5
       magic-string: 0.27.0
       prompts: 2.4.2
       tiny-glob: 0.2.9
-      typescript: 4.9.3
+      typescript: 4.9.4
     devDependencies:
       '@types/prompts': 2.4.1
       prettier: 2.8.0
@@ -665,21 +665,21 @@ importers:
       chokidar: ^3.5.3
       kleur: ^4.1.5
       sade: ^1.8.1
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       svelte-preprocess: ^5.0.0
-      svelte2tsx: ~0.5.20
-      typescript: ^4.9.3
+      svelte2tsx: ~0.6.0
+      typescript: ^4.9.4
       uvu: ^0.5.6
     dependencies:
       chokidar: 3.5.3
       kleur: 4.1.5
       sade: 1.8.1
-      svelte2tsx: 0.5.20_gf4dcx76vtk2o62ixxeqx7chra
+      svelte2tsx: 0.6.0_niwyv7xychq2ag6arq5eqxbomm
     devDependencies:
       '@types/node': 16.18.6
-      svelte: 3.54.0
-      svelte-preprocess: 5.0.0_gf4dcx76vtk2o62ixxeqx7chra
-      typescript: 4.9.3
+      svelte: 3.55.0
+      svelte-preprocess: 5.0.0_niwyv7xychq2ag6arq5eqxbomm
+      typescript: 4.9.4
       uvu: 0.5.6
 
   sites/kit.svelte.dev:
@@ -691,7 +691,6 @@ importers:
       '@sveltejs/site-kit': ^3.0.3
       '@types/d3-geo': ^3.0.2
       '@types/node': ^16.18.6
-      '@vercel/edge': ^0.1.2
       d3-geo: ^3.0.1
       d3-geo-projection: ^4.0.0
       flexsearch: ^0.7.31
@@ -700,15 +699,14 @@ importers:
       prism-svelte: ^0.5.0
       prismjs: ^1.29.0
       shiki-twoslash: ^3.1.0
-      svelte: ^3.54.0
+      svelte: ^3.55.0
       tiny-glob: ^0.2.9
       topojson-client: ^3.1.0
-      typescript: ^4.9.3
+      typescript: ^4.9.4
       uvu: ^0.5.6
-      vite: ^4.0.0
-      vite-imagetools: ^4.0.11
+      vite: ^4.0.4
+      vite-imagetools: ^4.0.13
     dependencies:
-      '@vercel/edge': 0.1.2
       d3-geo: 3.0.1
       d3-geo-projection: 4.0.0
       topojson-client: 3.1.0
@@ -726,12 +724,12 @@ importers:
       prism-svelte: 0.5.0
       prismjs: 1.29.0
       shiki-twoslash: 3.1.0
-      svelte: 3.54.0
+      svelte: 3.55.0
       tiny-glob: 0.2.9
-      typescript: 4.9.3
+      typescript: 4.9.4
       uvu: 0.5.6
-      vite: 4.0.0_@types+node@16.18.6
-      vite-imagetools: 4.0.11
+      vite: 4.0.4_@types+node@16.18.6
+      vite-imagetools: 4.0.13
 
 packages:
 
@@ -959,8 +957,8 @@ packages:
       prettier: 2.8.0
     dev: true
 
-  /@cloudflare/kv-asset-handler/0.2.0:
-    resolution: {integrity: sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==}
+  /@cloudflare/kv-asset-handler/0.3.0:
+    resolution: {integrity: sha512-9CB/MKf/wdvbfkUdfrj+OkEwZ5b7rws0eogJ4293h+7b6KX5toPwym+VQKmILafNB9YiehqY0DlNrDcDhdWHSQ==}
     dependencies:
       mime: 3.0.0
     dev: true
@@ -1255,8 +1253,8 @@ packages:
   /@polka/url/1.0.0-next.21:
     resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
 
-  /@rollup/plugin-commonjs/23.0.2_rollup@3.7.0:
-    resolution: {integrity: sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg==}
+  /@rollup/plugin-commonjs/24.0.0_rollup@3.7.0:
+    resolution: {integrity: sha512-0w0wyykzdyRRPHOb0cQt14mIBLujfAv6GgP6g8nvg/iBxEm112t3YPPq+Buqe2+imvElTka+bjNlJ/gB56TD8g==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
       rollup: ^2.68.0||^3.0.0
@@ -1269,43 +1267,11 @@ packages:
       estree-walker: 2.0.2
       glob: 8.0.3
       is-reference: 1.2.1
-      magic-string: 0.26.7
-      rollup: 3.7.0
-    dev: false
-
-  /@rollup/plugin-commonjs/23.0.3_rollup@3.7.0:
-    resolution: {integrity: sha512-31HxrT5emGfTyIfAs1lDQHj6EfYxTXcwtX5pIIhq+B/xZBNIqQ179d/CkYxlpYmFCxT78AeU4M8aL8Iv/IBxFA==}
-    engines: {node: '>=14.0.0'}
-    peerDependencies:
-      rollup: ^2.68.0||^3.0.0
-    peerDependenciesMeta:
-      rollup:
-        optional: true
-    dependencies:
-      '@rollup/pluginutils': 5.0.2_rollup@3.7.0
-      commondir: 1.0.1
-      estree-walker: 2.0.2
-      glob: 8.0.3
-      is-reference: 1.2.1
-      magic-string: 0.26.7
-      rollup: 3.7.0
-    dev: true
-
-  /@rollup/plugin-json/5.0.1_rollup@3.7.0:
-    resolution: {integrity: sha512-QCwhZZLvM8nRcTHyR1vOgyTMiAnjiNj1ebD/BMRvbO1oc/z14lZH6PfxXeegee2B6mky/u9fia4fxRM4TqrUaw==}
-    engines: {node: '>=14.0.0'}
-    peerDependencies:
-      rollup: ^1.20.0||^2.0.0||^3.0.0
-    peerDependenciesMeta:
-      rollup:
-        optional: true
-    dependencies:
-      '@rollup/pluginutils': 5.0.2_rollup@3.7.0
+      magic-string: 0.27.0
       rollup: 3.7.0
-    dev: false
 
-  /@rollup/plugin-json/5.0.2_rollup@3.7.0:
-    resolution: {integrity: sha512-D1CoOT2wPvadWLhVcmpkDnesTzjhNIQRWLsc3fA49IFOP2Y84cFOOJ+nKGYedvXHKUsPeq07HR4hXpBBr+CHlA==}
+  /@rollup/plugin-json/6.0.0_rollup@3.7.0:
+    resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
       rollup: ^1.20.0||^2.0.0||^3.0.0
@@ -1315,7 +1281,6 @@ packages:
     dependencies:
       '@rollup/pluginutils': 5.0.2_rollup@3.7.0
       rollup: 3.7.0
-    dev: true
 
   /@rollup/plugin-node-resolve/15.0.1_rollup@3.7.0:
     resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==}
@@ -1366,7 +1331,7 @@ packages:
     resolution: {integrity: sha512-zetnU9jGOu+DYcwqpgK9uSUv3qrGrL7JagMN7M8B4bQRoBq1lAPnCvBXtlfQckvkQLtH453JJTIX6ULqL1xtpA==}
     dev: true
 
-  /@sveltejs/vite-plugin-svelte/2.0.0_svelte@3.54.0+vite@4.0.0:
+  /@sveltejs/vite-plugin-svelte/2.0.0_svelte@3.55.0+vite@4.0.4:
     resolution: {integrity: sha512-oUFrYQarRv4fppmxdrv00qw3wX8Ycdj0uv33MfpRZyR8K67dyxiOcHnqkB0zSy5sDJA8RC/2aNtYhXJ8NINVHQ==}
     engines: {node: ^14.18.0 || >= 16}
     peerDependencies:
@@ -1377,10 +1342,10 @@ packages:
       deepmerge: 4.2.2
       kleur: 4.1.5
       magic-string: 0.27.0
-      svelte: 3.54.0
-      svelte-hmr: 0.15.1_svelte@3.54.0
-      vite: 4.0.0_@types+node@16.18.6
-      vitefu: 0.2.3_vite@4.0.0
+      svelte: 3.55.0
+      svelte-hmr: 0.15.1_svelte@3.55.0
+      vite: 4.0.4_@types+node@16.18.6
+      vitefu: 0.2.3_vite@4.0.4
     transitivePeerDependencies:
       - supports-color
     dev: false
@@ -1534,10 +1499,6 @@ packages:
       - supports-color
     dev: true
 
-  /@vercel/edge/0.1.2:
-    resolution: {integrity: sha512-NmoJ4JvF2/LxU8e8fRJcxaMrO9A8a2WmW6CO9GEomlDltlREyQTUWMk13BuCDDpXUPcSBDrZ2TJIoWiFQEI4sg==}
-    dev: false
-
   /@vercel/nft/0.22.1:
     resolution: {integrity: sha512-lYYZIoxRurqDOSoVIdBicGnpUIpfyaS5qVjdPq+EfI285WqtZK3NK/dyCkiyBul+X2U2OEhRyeMdXPCHGJbohw==}
     hasBin: true
@@ -2657,7 +2618,7 @@ packages:
     resolution: {integrity: sha512-YbZhedg/zja34yV6iRDhfo4cmAYSwxaErkuzc/RpMMAELgszpDKf3MLH6VlsR+QkenPUEGkGAVpJAM2GbUls9Q==}
     engines: {node: '>=12.0.0'}
     dependencies:
-      sharp: 0.31.2
+      sharp: 0.31.3
     dev: true
 
   /import-fresh/3.3.0:
@@ -3035,12 +2996,6 @@ packages:
       sourcemap-codec: 1.4.8
     dev: true
 
-  /magic-string/0.26.7:
-    resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==}
-    engines: {node: '>=12'}
-    dependencies:
-      sourcemap-codec: 1.4.8
-
   /magic-string/0.27.0:
     resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
     engines: {node: '>=12'}
@@ -3221,8 +3176,8 @@ packages:
       tslib: 2.4.1
     dev: false
 
-  /node-abi/3.28.0:
-    resolution: {integrity: sha512-fRlDb4I0eLcQeUvGq7IY3xHrSb0c9ummdvDSYWfT9+LKP+3jCKw/tKoqaM7r1BAoiAC6GtwyjaGnOz6B3OtF+A==}
+  /node-abi/3.30.0:
+    resolution: {integrity: sha512-qWO5l3SCqbwQavymOmtTVuCWZE23++S+rxyoHjXqUmPyzRcaoI4lA2gO55/drddGnedAyjA7sk76SfQ5lfUMnw==}
     engines: {node: '>=10'}
     dependencies:
       semver: 7.3.8
@@ -3527,8 +3482,8 @@ packages:
       trouter: 3.2.0
     dev: true
 
-  /postcss/8.4.19:
-    resolution: {integrity: sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==}
+  /postcss/8.4.20:
+    resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==}
     engines: {node: ^10 || ^12 || >=14}
     dependencies:
       nanoid: 3.3.4
@@ -3546,7 +3501,7 @@ packages:
       minimist: 1.2.7
       mkdirp-classic: 0.5.3
       napi-build-utils: 1.0.2
-      node-abi: 3.28.0
+      node-abi: 3.30.0
       pump: 3.0.0
       rc: 1.2.8
       simple-get: 4.0.1
@@ -3564,14 +3519,14 @@ packages:
       which-pm: 2.0.0
     dev: true
 
-  /prettier-plugin-svelte/2.8.1_kaioqtfwjumrsfopsgfoca65re:
+  /prettier-plugin-svelte/2.8.1_nxhwyzrlb2jiv2xtis3ad534qu:
     resolution: {integrity: sha512-KA3K1J3/wKDnCxW7ZDRA/QL2Q67N7Xs3gOERqJ5X1qFjq1DdnN3K1R29scSKwh+kA8FF67pXbYytUpvN/i3iQw==}
     peerDependencies:
       prettier: ^1.16.4 || ^2.0.0
       svelte: ^3.2.0
     dependencies:
       prettier: 2.8.0
-      svelte: 3.54.0
+      svelte: 3.55.0
     dev: true
 
   /prettier/2.8.0:
@@ -3866,8 +3821,8 @@ packages:
     resolution: {integrity: sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==}
     dev: false
 
-  /sharp/0.31.2:
-    resolution: {integrity: sha512-DUdNVEXgS5A97cTagSLIIp8dUZ/lZtk78iNVZgHdHbx1qnQR7JAHY0BnXnwwH39Iw+VKhO08CTYhIg0p98vQ5Q==}
+  /sharp/0.31.3:
+    resolution: {integrity: sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg==}
     engines: {node: '>=14.15.0'}
     requiresBuild: true
     dependencies:
@@ -3911,7 +3866,7 @@ packages:
       '@typescript/twoslash': 3.1.0
       '@typescript/vfs': 1.3.4
       shiki: 0.10.1
-      typescript: 4.9.3
+      typescript: 4.9.4
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -4036,6 +3991,7 @@ packages:
   /sourcemap-codec/1.4.8:
     resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
     deprecated: Please use @jridgewell/sourcemap-codec instead
+    dev: true
 
   /spawndamnit/2.0.0:
     resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==}
@@ -4200,7 +4156,7 @@ packages:
     resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
     engines: {node: '>= 0.4'}
 
-  /svelte-check/2.9.2_svelte@3.54.0:
+  /svelte-check/2.9.2_svelte@3.55.0:
     resolution: {integrity: sha512-DRi8HhnCiqiGR2YF9ervPGvtoYrheE09cXieCTEqeTPOTJzfoa54Py8rovIBv4bH4n5HgZYIyTQ3DDLHQLl2uQ==}
     hasBin: true
     peerDependencies:
@@ -4212,9 +4168,9 @@ packages:
       import-fresh: 3.3.0
       picocolors: 1.0.0
       sade: 1.8.1
-      svelte: 3.54.0
-      svelte-preprocess: 4.10.7_gf4dcx76vtk2o62ixxeqx7chra
-      typescript: 4.9.3
+      svelte: 3.55.0
+      svelte-preprocess: 4.10.7_niwyv7xychq2ag6arq5eqxbomm
+      typescript: 4.9.4
     transitivePeerDependencies:
       - '@babel/core'
       - coffeescript
@@ -4228,16 +4184,16 @@ packages:
       - sugarss
     dev: true
 
-  /svelte-hmr/0.15.1_svelte@3.54.0:
+  /svelte-hmr/0.15.1_svelte@3.55.0:
     resolution: {integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==}
     engines: {node: ^12.20 || ^14.13.1 || >= 16}
     peerDependencies:
       svelte: '>=3.19.0'
     dependencies:
-      svelte: 3.54.0
+      svelte: 3.55.0
     dev: false
 
-  /svelte-preprocess/4.10.7_gf4dcx76vtk2o62ixxeqx7chra:
+  /svelte-preprocess/4.10.7_niwyv7xychq2ag6arq5eqxbomm:
     resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==}
     engines: {node: '>= 9.11.2'}
     requiresBuild: true
@@ -4284,11 +4240,11 @@ packages:
       magic-string: 0.25.9
       sorcery: 0.10.0
       strip-indent: 3.0.0
-      svelte: 3.54.0
-      typescript: 4.9.3
+      svelte: 3.55.0
+      typescript: 4.9.4
     dev: true
 
-  /svelte-preprocess/5.0.0_gf4dcx76vtk2o62ixxeqx7chra:
+  /svelte-preprocess/5.0.0_niwyv7xychq2ag6arq5eqxbomm:
     resolution: {integrity: sha512-q7lpa7i2FBu8Pa+G0MmuQQWETBwCKgsGmuq1Sf6n8q4uaG9ZLcLP0Y+etC6bF4sE6EbLxfiI38zV6RfPe3RSfg==}
     engines: {node: '>= 14.10.0'}
     requiresBuild: true
@@ -4332,24 +4288,24 @@ packages:
       magic-string: 0.27.0
       sorcery: 0.10.0
       strip-indent: 3.0.0
-      svelte: 3.54.0
-      typescript: 4.9.3
+      svelte: 3.55.0
+      typescript: 4.9.4
     dev: true
 
-  /svelte/3.54.0:
-    resolution: {integrity: sha512-tdrgeJU0hob0ZWAMoKXkhcxXA7dpTg6lZGxUeko5YqvPdJBiyRspGsCwV27kIrbrqPP2WUoSV9ca0gnLlw8YzQ==}
+  /svelte/3.55.0:
+    resolution: {integrity: sha512-uGu2FVMlOuey4JoKHKrpZFkoYyj0VLjJdz47zX5+gVK5odxHM40RVhar9/iK2YFRVxvfg9FkhfVlR0sjeIrOiA==}
     engines: {node: '>= 8'}
 
-  /svelte2tsx/0.5.20_gf4dcx76vtk2o62ixxeqx7chra:
-    resolution: {integrity: sha512-yNHmN/uoAnJ7d1XqVohiNA6TMFOxibHyEddUAHVt1PiLXtbwAJF3WaGYlg8QbOdoXzOVsVNCAlqRUIdULUm+OA==}
+  /svelte2tsx/0.6.0_niwyv7xychq2ag6arq5eqxbomm:
+    resolution: {integrity: sha512-TrxfQkO7CKi8Pu2eC/FyteDCdk3OOeQV5u6z7OjYAsOhsd0ClzAKqxJdvp6xxNQLrbFzf/XvCi9Fy8MQ1MleFA==}
     peerDependencies:
-      svelte: ^3.24
-      typescript: ^4.1.2
+      svelte: ^3.55
+      typescript: ^4.9.4
     dependencies:
       dedent-js: 1.0.1
       pascal-case: 3.1.2
-      svelte: 3.54.0
-      typescript: 4.9.3
+      svelte: 3.55.0
+      typescript: 4.9.4
     dev: false
 
   /tar-fs/2.1.1:
@@ -4565,8 +4521,8 @@ packages:
     engines: {node: '>=8'}
     dev: true
 
-  /typescript/4.9.3:
-    resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==}
+  /typescript/4.9.4:
+    resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==}
     engines: {node: '>=4.2.0'}
     hasBin: true
 
@@ -4632,8 +4588,8 @@ packages:
       spdx-expression-parse: 3.0.1
     dev: true
 
-  /vite-imagetools/4.0.11:
-    resolution: {integrity: sha512-S6+vzsd/6kSBdPIdjJFGeZ4+UV/aIK09V7oLb/Z9soV3jNwKh60WBi6jF+RnKtY7F9FMU3W6xPbln+VPHI0icA==}
+  /vite-imagetools/4.0.13:
+    resolution: {integrity: sha512-DeMAhDwvWATzBa5Qu9Fv6rtOuHZFONrv5Z5a95jd/oBDDCdyTKYVqxIurS5ox9A/sH8bhVF7r++Yww0DKpjKFQ==}
     engines: {node: '>=12.0.0'}
     dependencies:
       '@rollup/pluginutils': 5.0.2
@@ -4642,8 +4598,8 @@ packages:
       - rollup
     dev: true
 
-  /vite/4.0.0:
-    resolution: {integrity: sha512-ynad+4kYs8Jcnn8J7SacS9vAbk7eMy0xWg6E7bAhS1s79TK+D7tVFGXVZ55S7RNLRROU1rxoKlvZ/qjaB41DGA==}
+  /vite/4.0.4:
+    resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==}
     engines: {node: ^14.18.0 || >=16.0.0}
     hasBin: true
     peerDependencies:
@@ -4668,15 +4624,15 @@ packages:
         optional: true
     dependencies:
       esbuild: 0.16.3
-      postcss: 8.4.19
+      postcss: 8.4.20
       resolve: 1.22.1
       rollup: 3.7.0
     optionalDependencies:
       fsevents: 2.3.2
     dev: true
 
-  /vite/4.0.0_@types+node@16.18.6:
-    resolution: {integrity: sha512-ynad+4kYs8Jcnn8J7SacS9vAbk7eMy0xWg6E7bAhS1s79TK+D7tVFGXVZ55S7RNLRROU1rxoKlvZ/qjaB41DGA==}
+  /vite/4.0.4_@types+node@16.18.6:
+    resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==}
     engines: {node: ^14.18.0 || >=16.0.0}
     hasBin: true
     peerDependencies:
@@ -4702,13 +4658,13 @@ packages:
     dependencies:
       '@types/node': 16.18.6
       esbuild: 0.16.3
-      postcss: 8.4.19
+      postcss: 8.4.20
       resolve: 1.22.1
       rollup: 3.7.0
     optionalDependencies:
       fsevents: 2.3.2
 
-  /vitefu/0.2.3_vite@4.0.0:
+  /vitefu/0.2.3_vite@4.0.4:
     resolution: {integrity: sha512-75l7TTuU8isAhz1QFtNKjDkqjxvndfMC1AfIMjJ0ZQ59ZD0Ow9QOIsJJX16Wv9PS8f+zMzp6fHy5cCbKG/yVUQ==}
     peerDependencies:
       vite: ^3.0.0 || ^4.0.0
@@ -4716,7 +4672,7 @@ packages:
       vite:
         optional: true
     dependencies:
-      vite: 4.0.0_@types+node@16.18.6
+      vite: 4.0.4_@types+node@16.18.6
     dev: false
 
   /vscode-oniguruma/1.6.2:
diff --git a/sites/kit.svelte.dev/package.json b/sites/kit.svelte.dev/package.json
index 69aa30b8e..a9ccf95ed 100644
--- a/sites/kit.svelte.dev/package.json
+++ b/sites/kit.svelte.dev/package.json
@@ -23,16 +23,15 @@
 		"prism-svelte": "^0.5.0",
 		"prismjs": "^1.29.0",
 		"shiki-twoslash": "^3.1.0",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"tiny-glob": "^0.2.9",
-		"typescript": "^4.9.3",
+		"typescript": "^4.9.4",
 		"uvu": "^0.5.6",
-		"vite": "^4.0.0",
-		"vite-imagetools": "^4.0.11"
+		"vite": "^4.0.4",
+		"vite-imagetools": "^4.0.13"
 	},
 	"type": "module",
 	"dependencies": {
-		"@vercel/edge": "^0.1.2",
 		"d3-geo": "^3.0.1",
 		"d3-geo-projection": "^4.0.0",
 		"topojson-client": "^3.1.0"
diff --git a/sites/kit.svelte.dev/src/lib/Image.svelte b/sites/kit.svelte.dev/src/lib/Image.svelte
index cb921e759..0c01919cd 100644
--- a/sites/kit.svelte.dev/src/lib/Image.svelte
+++ b/sites/kit.svelte.dev/src/lib/Image.svelte
@@ -1,5 +1,5 @@
 <script>
-	/* @type {string | import('vite-imagetools').Picture} */
+	/** @type {string | import('vite-imagetools').Picture} */
 	export let src;
 
 	/** @type {string} */
diff --git a/sites/kit.svelte.dev/src/routes/home/Svelte.svelte b/sites/kit.svelte.dev/src/routes/home/Svelte.svelte
index fa07bcb5e..7f0b44d4c 100644
--- a/sites/kit.svelte.dev/src/routes/home/Svelte.svelte
+++ b/sites/kit.svelte.dev/src/routes/home/Svelte.svelte
@@ -28,9 +28,7 @@
 			<p>
 				SvelteKit is built on Svelte, a UI framework that uses a compiler to let you write
 				breathtakingly concise components that do minimal work in the browser, using languages you
-				already know — HTML, CSS and JavaScript. <strong style="color: var(--sk-theme-2)"
-					>It's a love letter to web development.</strong
-				>
+				already know — HTML, CSS and JavaScript. <strong>It's a love letter to web development.</strong>
 			</p>
 
 			<p>
diff --git a/sites/kit.svelte.dev/vite.config.js b/sites/kit.svelte.dev/vite.config.js
index d0088f261..174e60bd8 100644
--- a/sites/kit.svelte.dev/vite.config.js
+++ b/sites/kit.svelte.dev/vite.config.js
@@ -16,7 +16,7 @@ const config = {
 				const extension = path.extname(url.pathname);
 				if (supportedExtensions.includes(extension)) {
 					return new URLSearchParams({
-						format: 'avif;webp;' + extension,
+						format: 'avif;webp;' + extension.slice(1),
 						picture: true
 					});
 				}


Test patch:
diff --git a/packages/adapter-static/test/apps/prerendered/package.json b/packages/adapter-static/test/apps/prerendered/package.json
index dc1169106..7c5843545 100644
--- a/packages/adapter-static/test/apps/prerendered/package.json
+++ b/packages/adapter-static/test/apps/prerendered/package.json
@@ -9,8 +9,8 @@
 	},
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
-		"svelte": "^3.54.0",
-		"vite": "^4.0.0"
+		"svelte": "^3.55.0",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/adapter-static/test/apps/spa/package.json b/packages/adapter-static/test/apps/spa/package.json
index 5ae5f3629..0df014e58 100644
--- a/packages/adapter-static/test/apps/spa/package.json
+++ b/packages/adapter-static/test/apps/spa/package.json
@@ -11,8 +11,8 @@
 		"@sveltejs/adapter-node": "workspace:^",
 		"@sveltejs/kit": "workspace:^",
 		"sirv-cli": "^2.0.2",
-		"svelte": "^3.54.0",
-		"vite": "^4.0.0"
+		"svelte": "^3.55.0",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/create-svelte/shared/+playwright+default/tests/test.ts b/packages/create-svelte/shared/+playwright+default/tests/test.ts
index c104fe8eb..38b7f95bd 100644
--- a/packages/create-svelte/shared/+playwright+default/tests/test.ts
+++ b/packages/create-svelte/shared/+playwright+default/tests/test.ts
@@ -2,5 +2,5 @@ import { expect, test } from '@playwright/test';
 
 test('about page has expected h1', async ({ page }) => {
 	await page.goto('/about');
-	expect(await page.textContent('h1')).toBe('About this app');
+	await expect(page.locator('h1')).toHaveText('About this app');
 });
diff --git a/packages/kit/test/apps/amp/package.json b/packages/kit/test/apps/amp/package.json
index d773dadb7..62c624171 100644
--- a/packages/kit/test/apps/amp/package.json
+++ b/packages/kit/test/apps/amp/package.json
@@ -16,10 +16,10 @@
 		"@sveltejs/kit": "workspace:^",
 		"cross-env": "^7.0.3",
 		"purify-css": "^1.2.5",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/apps/basics/package.json b/packages/kit/test/apps/basics/package.json
index a6fc6901d..a3a9ed08a 100644
--- a/packages/kit/test/apps/basics/package.json
+++ b/packages/kit/test/apps/basics/package.json
@@ -15,10 +15,10 @@
 		"@sveltejs/kit": "workspace:^",
 		"cross-env": "^7.0.3",
 		"rimraf": "^3.0.2",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/apps/basics/test/test.js b/packages/kit/test/apps/basics/test/test.js
index 0193fbbad..0a8476d16 100644
--- a/packages/kit/test/apps/basics/test/test.js
+++ b/packages/kit/test/apps/basics/test/test.js
@@ -2010,12 +2010,25 @@ test.describe('Actions', () => {
 		);
 	});
 
-	test('redirect', async ({ page }) => {
+	test('redirect', async ({ page, javaScriptEnabled }) => {
 		await page.goto('/actions/redirect');
 
 		page.click('button');
 
-		await Promise.all([page.waitForResponse('/actions/redirect'), page.waitForNavigation()]);
+		const [redirect] = await Promise.all([
+			page.waitForResponse('/actions/redirect'),
+			page.waitForNavigation()
+		]);
+		if (javaScriptEnabled) {
+			expect(await redirect.json()).toEqual({
+				type: 'redirect',
+				location: '/actions/enhance',
+				status: 303
+			});
+		} else {
+			expect(redirect.status()).toBe(303);
+			expect(redirect.headers()['location']).toBe('/actions/enhance');
+		}
 
 		expect(page.url()).toContain('/actions/enhance');
 	});
diff --git a/packages/kit/test/apps/dev-only/package.json b/packages/kit/test/apps/dev-only/package.json
index 90daab97b..17201325b 100644
--- a/packages/kit/test/apps/dev-only/package.json
+++ b/packages/kit/test/apps/dev-only/package.json
@@ -13,10 +13,10 @@
 		"@sveltejs/kit": "workspace:^",
 		"cross-env": "^7.0.3",
 		"rimraf": "^3.0.2",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/apps/options-2/package.json b/packages/kit/test/apps/options-2/package.json
index 91d83ae3f..94ff1c399 100644
--- a/packages/kit/test/apps/options-2/package.json
+++ b/packages/kit/test/apps/options-2/package.json
@@ -15,10 +15,10 @@
 		"@sveltejs/adapter-node": "workspace:^",
 		"@sveltejs/kit": "workspace:^",
 		"cross-env": "^7.0.3",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/apps/options/package.json b/packages/kit/test/apps/options/package.json
index a463aa0ad..6f46501d6 100644
--- a/packages/kit/test/apps/options/package.json
+++ b/packages/kit/test/apps/options/package.json
@@ -14,10 +14,10 @@
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
 		"cross-env": "^7.0.3",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/apps/writes/package.json b/packages/kit/test/apps/writes/package.json
index 951dba079..69f7119e1 100644
--- a/packages/kit/test/apps/writes/package.json
+++ b/packages/kit/test/apps/writes/package.json
@@ -15,10 +15,10 @@
 		"@sveltejs/kit": "workspace:^",
 		"cross-env": "^7.0.3",
 		"rimraf": "^3.0.2",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/build-errors/apps/prerenderable-incorrect-fragment/package.json b/packages/kit/test/build-errors/apps/prerenderable-incorrect-fragment/package.json
index bcd1756b4..75d94af4a 100644
--- a/packages/kit/test/build-errors/apps/prerenderable-incorrect-fragment/package.json
+++ b/packages/kit/test/build-errors/apps/prerenderable-incorrect-fragment/package.json
@@ -11,10 +11,10 @@
 	"devDependencies": {
 		"@sveltejs/adapter-auto": "workspace:^",
 		"@sveltejs/kit": "workspace:^",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.7.1",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/build-errors/apps/prerenderable-not-prerendered/package.json b/packages/kit/test/build-errors/apps/prerenderable-not-prerendered/package.json
index 6121a2070..d532d6cc4 100644
--- a/packages/kit/test/build-errors/apps/prerenderable-not-prerendered/package.json
+++ b/packages/kit/test/build-errors/apps/prerenderable-not-prerendered/package.json
@@ -11,10 +11,10 @@
 	"devDependencies": {
 		"@sveltejs/adapter-auto": "workspace:^",
 		"@sveltejs/kit": "workspace:^",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/build-errors/apps/private-dynamic-env-dynamic-import/package.json b/packages/kit/test/build-errors/apps/private-dynamic-env-dynamic-import/package.json
index 854ebd023..60ea0bd0e 100644
--- a/packages/kit/test/build-errors/apps/private-dynamic-env-dynamic-import/package.json
+++ b/packages/kit/test/build-errors/apps/private-dynamic-env-dynamic-import/package.json
@@ -11,10 +11,10 @@
 	},
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/build-errors/apps/private-dynamic-env/package.json b/packages/kit/test/build-errors/apps/private-dynamic-env/package.json
index e334da656..32749ab37 100644
--- a/packages/kit/test/build-errors/apps/private-dynamic-env/package.json
+++ b/packages/kit/test/build-errors/apps/private-dynamic-env/package.json
@@ -11,10 +11,10 @@
 	},
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/build-errors/apps/private-static-env-dynamic-import/package.json b/packages/kit/test/build-errors/apps/private-static-env-dynamic-import/package.json
index 44a2e5a5a..748f99f82 100644
--- a/packages/kit/test/build-errors/apps/private-static-env-dynamic-import/package.json
+++ b/packages/kit/test/build-errors/apps/private-static-env-dynamic-import/package.json
@@ -11,10 +11,10 @@
 	},
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/build-errors/apps/private-static-env/package.json b/packages/kit/test/build-errors/apps/private-static-env/package.json
index 6591bb197..7f2a65275 100644
--- a/packages/kit/test/build-errors/apps/private-static-env/package.json
+++ b/packages/kit/test/build-errors/apps/private-static-env/package.json
@@ -12,10 +12,10 @@
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
 		"cross-env": "^7.0.3",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/build-errors/apps/server-only-folder-dynamic-import/package.json b/packages/kit/test/build-errors/apps/server-only-folder-dynamic-import/package.json
index b3f83571c..c52f86587 100644
--- a/packages/kit/test/build-errors/apps/server-only-folder-dynamic-import/package.json
+++ b/packages/kit/test/build-errors/apps/server-only-folder-dynamic-import/package.json
@@ -11,10 +11,10 @@
 	},
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/build-errors/apps/server-only-folder/package.json b/packages/kit/test/build-errors/apps/server-only-folder/package.json
index 310dd2dc7..b53e6a11f 100644
--- a/packages/kit/test/build-errors/apps/server-only-folder/package.json
+++ b/packages/kit/test/build-errors/apps/server-only-folder/package.json
@@ -11,10 +11,10 @@
 	},
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/build-errors/apps/server-only-module-dynamic-import/package.json b/packages/kit/test/build-errors/apps/server-only-module-dynamic-import/package.json
index 016624edf..83beb5209 100644
--- a/packages/kit/test/build-errors/apps/server-only-module-dynamic-import/package.json
+++ b/packages/kit/test/build-errors/apps/server-only-module-dynamic-import/package.json
@@ -11,10 +11,10 @@
 	},
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/build-errors/apps/server-only-module/package.json b/packages/kit/test/build-errors/apps/server-only-module/package.json
index 91a9e216a..f48ee067f 100644
--- a/packages/kit/test/build-errors/apps/server-only-module/package.json
+++ b/packages/kit/test/build-errors/apps/server-only-module/package.json
@@ -11,10 +11,10 @@
 	},
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
-		"vite": "^4.0.0"
+		"typescript": "^4.9.4",
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/prerendering/basics/package.json b/packages/kit/test/prerendering/basics/package.json
index 216d7accb..51d48dfa7 100644
--- a/packages/kit/test/prerendering/basics/package.json
+++ b/packages/kit/test/prerendering/basics/package.json
@@ -11,11 +11,11 @@
 	},
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
+		"typescript": "^4.9.4",
 		"uvu": "^0.5.6",
-		"vite": "^4.0.0"
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/prerendering/options/package.json b/packages/kit/test/prerendering/options/package.json
index f0667f467..bd53a85b1 100644
--- a/packages/kit/test/prerendering/options/package.json
+++ b/packages/kit/test/prerendering/options/package.json
@@ -11,11 +11,11 @@
 	},
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
+		"typescript": "^4.9.4",
 		"uvu": "^0.5.6",
-		"vite": "^4.0.0"
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/prerendering/paths-base/package.json b/packages/kit/test/prerendering/paths-base/package.json
index bf75751d4..c33592538 100644
--- a/packages/kit/test/prerendering/paths-base/package.json
+++ b/packages/kit/test/prerendering/paths-base/package.json
@@ -11,11 +11,11 @@
 	},
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
+		"typescript": "^4.9.4",
 		"uvu": "^0.5.6",
-		"vite": "^4.0.0"
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/kit/test/prerendering/ssr-false/package.json b/packages/kit/test/prerendering/ssr-false/package.json
index 5075166c6..52fb1d80d 100644
--- a/packages/kit/test/prerendering/ssr-false/package.json
+++ b/packages/kit/test/prerendering/ssr-false/package.json
@@ -11,11 +11,11 @@
 	},
 	"devDependencies": {
 		"@sveltejs/kit": "workspace:^",
-		"svelte": "^3.54.0",
+		"svelte": "^3.55.0",
 		"svelte-check": "^2.9.2",
-		"typescript": "^4.9.3",
+		"typescript": "^4.9.4",
 		"uvu": "^0.5.6",
-		"vite": "^4.0.0"
+		"vite": "^4.0.4"
 	},
 	"type": "module"
 }
diff --git a/packages/package/test/fixtures/exports-merge/expected/internal/_Private.svelte.d.ts b/packages/package/test/fixtures/exports-merge/expected/internal/_Private.svelte.d.ts
index 6bd4c091a..55647e2f8 100644
--- a/packages/package/test/fixtures/exports-merge/expected/internal/_Private.svelte.d.ts
+++ b/packages/package/test/fixtures/exports-merge/expected/internal/_Private.svelte.d.ts
@@ -1,7 +1,10 @@
 /** @typedef {typeof __propDef.props}  PrivateProps */
 /** @typedef {typeof __propDef.events}  PrivateEvents */
 /** @typedef {typeof __propDef.slots}  PrivateSlots */
-export default class Private extends SvelteComponentTyped<{}, {
+export default class Private extends SvelteComponentTyped<
+{
+	[x:string]: never;
+}, {
 	[evt: string]: CustomEvent<any>;
 },
 {}
@@ -12,7 +15,9 @@ export type PrivateEvents = typeof __propDef.events;
 export type PrivateSlots = typeof __propDef.slots;
 import { SvelteComponentTyped } from "svelte";
 declare const __propDef: {
-	props: {};
+	props: {
+		[x:string]: never;
+	};
 	events: {
 		[evt: string]: CustomEvent<any>;
 	};