diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/.gitignore b/dev-packages/e2e-tests/test-applications/sveltekit/.gitignore
deleted file mode 100644
index 6635cf554275..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/.gitignore
+++ /dev/null
@@ -1,10 +0,0 @@
-.DS_Store
-node_modules
-/build
-/.svelte-kit
-/package
-.env
-.env.*
-!.env.example
-vite.config.js.timestamp-*
-vite.config.ts.timestamp-*
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/.npmrc b/dev-packages/e2e-tests/test-applications/sveltekit/.npmrc
deleted file mode 100644
index 070f80f05092..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/.npmrc
+++ /dev/null
@@ -1,2 +0,0 @@
-@sentry:registry=http://127.0.0.1:4873
-@sentry-internal:registry=http://127.0.0.1:4873
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/README.md b/dev-packages/e2e-tests/test-applications/sveltekit/README.md
deleted file mode 100644
index 7c0d9fbb26ab..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/README.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# create-svelte
-
-Everything you need to build a Svelte project, powered by
-[`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
-
-## Creating a project
-
-If you're seeing this, you've probably already done this step. Congrats!
-
-```bash
-# create a new project in the current directory
-npm create svelte@latest
-
-# create a new project in my-app
-npm create svelte@latest my-app
-```
-
-## Developing
-
-Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a
-development server:
-
-```bash
-npm run dev
-
-# or start the server and open the app in a new browser tab
-npm run dev -- --open
-```
-
-## Building
-
-To create a production version of your app:
-
-```bash
-npm run build
-```
-
-You can preview the production build with `npm run preview`.
-
-> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target
-> environment.
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/package.json b/dev-packages/e2e-tests/test-applications/sveltekit/package.json
deleted file mode 100644
index 369e1715adcb..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/package.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "name": "sveltekit",
- "version": "0.0.1",
- "private": true,
- "scripts": {
- "dev": "vite dev",
- "build": "vite build",
- "preview": "vite preview",
- "clean": "npx rimraf node_modules pnpm-lock.yaml",
- "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
- "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
- "test:prod": "TEST_ENV=production playwright test",
- "test:build": "pnpm install && pnpm build",
- "test:assert": "pnpm test:prod"
- },
- "dependencies": {
- "@sentry/sveltekit": "latest || *"
- },
- "devDependencies": {
- "@playwright/test": "^1.44.1",
- "@sentry-internal/test-utils": "link:../../../test-utils",
- "@sentry/core": "latest || *",
- "@sveltejs/adapter-auto": "^2.0.0",
- "@sveltejs/adapter-node": "^1.2.4",
- "@sveltejs/kit": "1.20.5",
- "svelte": "^3.54.0",
- "svelte-check": "^3.0.1",
- "typescript": "^5.0.0",
- "vite": "^4.5.2"
- },
- "type": "module"
-}
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/playwright.config.mjs b/dev-packages/e2e-tests/test-applications/sveltekit/playwright.config.mjs
deleted file mode 100644
index 222c54f87389..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/playwright.config.mjs
+++ /dev/null
@@ -1,14 +0,0 @@
-import { getPlaywrightConfig } from '@sentry-internal/test-utils';
-
-const testEnv = process.env.TEST_ENV;
-
-if (!testEnv) {
- throw new Error('No test env defined');
-}
-
-const config = getPlaywrightConfig({
- startCommand: testEnv === 'development' ? `pnpm dev --port 3030` : `pnpm preview --port 3030`,
- port: 3030,
-});
-
-export default config;
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/app.html b/dev-packages/e2e-tests/test-applications/sveltekit/src/app.html
deleted file mode 100644
index 435cf39f2268..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/app.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
- %sveltekit.head%
-
-
- %sveltekit.body%
-
-
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/hooks.client.ts b/dev-packages/e2e-tests/test-applications/sveltekit/src/hooks.client.ts
deleted file mode 100644
index b174e9671b8d..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/hooks.client.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { env } from '$env/dynamic/public';
-import * as Sentry from '@sentry/sveltekit';
-
-Sentry.init({
- environment: 'qa', // dynamic sampling bias to keep transactions
- dsn: env.PUBLIC_E2E_TEST_DSN,
- debug: !!env.PUBLIC_DEBUG,
- tunnel: `http://localhost:3031/`, // proxy server
- tracesSampleRate: 1.0,
-});
-
-const myErrorHandler = ({ error, event }: any) => {
- console.error('An error occurred on the client side:', error, event);
-};
-
-export const handleError = Sentry.handleErrorWithSentry(myErrorHandler);
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/hooks.server.ts b/dev-packages/e2e-tests/test-applications/sveltekit/src/hooks.server.ts
deleted file mode 100644
index aca7e1b75139..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/hooks.server.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { env } from '$env/dynamic/private';
-import * as Sentry from '@sentry/sveltekit';
-
-Sentry.init({
- environment: 'qa', // dynamic sampling bias to keep transactions
- dsn: env.E2E_TEST_DSN,
- debug: !!process.env.DEBUG,
- tunnel: `http://localhost:3031/`, // proxy server
- tracesSampleRate: 1.0,
-});
-
-// not logging anything to console to avoid noise in the test output
-const myErrorHandler = ({ error, event }: any) => {};
-
-export const handleError = Sentry.handleErrorWithSentry(myErrorHandler);
-
-export const handle = Sentry.sentryHandle();
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/+layout.svelte b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/+layout.svelte
deleted file mode 100644
index 8b7db6f720bf..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/+layout.svelte
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/+page.svelte b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/+page.svelte
deleted file mode 100644
index 31f6cb802950..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/+page.svelte
+++ /dev/null
@@ -1,32 +0,0 @@
-Welcome to SvelteKit
-Visit kit.svelte.dev to read the documentation
-
-
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/api/users/+server.ts b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/api/users/+server.ts
deleted file mode 100644
index d0e4371c594b..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/api/users/+server.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export const GET = () => {
- return new Response(JSON.stringify({ users: ['alice', 'bob', 'carol'] }));
-};
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/building/+page.server.ts b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/building/+page.server.ts
deleted file mode 100644
index b07376ba97c9..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/building/+page.server.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import type { PageServerLoad } from './$types';
-
-export const load = (async _event => {
- return { name: 'building (server)' };
-}) satisfies PageServerLoad;
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/building/+page.svelte b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/building/+page.svelte
deleted file mode 100644
index fde274c60705..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/building/+page.svelte
+++ /dev/null
@@ -1,6 +0,0 @@
-Check Build
-
-
- This route only exists to check that Typescript definitions
- and auto instrumentation are working when the project is built.
-
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/building/+page.ts b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/building/+page.ts
deleted file mode 100644
index 049acdc1fafa..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/building/+page.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import type { PageLoad } from './$types';
-
-export const load = (async _event => {
- return { name: 'building' };
-}) satisfies PageLoad;
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/client-error/+page.svelte b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/client-error/+page.svelte
deleted file mode 100644
index ba6b464e9324..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/client-error/+page.svelte
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-Client error
-
-
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/components/+page.svelte b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/components/+page.svelte
deleted file mode 100644
index eff3fa3f2e8d..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/components/+page.svelte
+++ /dev/null
@@ -1,15 +0,0 @@
-
-Demonstrating Component Tracking
-
-
-
-
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/components/Component1.svelte b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/components/Component1.svelte
deleted file mode 100644
index a675711e4b68..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/components/Component1.svelte
+++ /dev/null
@@ -1,10 +0,0 @@
-
-Howdy, I'm component 1
-
-
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/components/Component2.svelte b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/components/Component2.svelte
deleted file mode 100644
index 2b2f38308077..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/components/Component2.svelte
+++ /dev/null
@@ -1,9 +0,0 @@
-
-Howdy, I'm component 2
-
-
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/components/Component3.svelte b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/components/Component3.svelte
deleted file mode 100644
index 9b4e028f78e7..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/components/Component3.svelte
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-Howdy, I'm component 3
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-load-error/+page.server.ts b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-load-error/+page.server.ts
deleted file mode 100644
index 17dd53fb5bbb..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-load-error/+page.server.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export const load = async () => {
- throw new Error('Server Load Error');
- return {
- msg: 'Hello World',
- };
-};
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-load-error/+page.svelte b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-load-error/+page.svelte
deleted file mode 100644
index 3a0942971d06..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-load-error/+page.svelte
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-Server load error
-
-
- Message: {data.msg}
-
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-load-fetch/+page.server.ts b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-load-fetch/+page.server.ts
deleted file mode 100644
index 709e52bcf351..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-load-fetch/+page.server.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export const load = async ({ fetch }) => {
- const res = await fetch('/api/users');
- const data = await res.json();
- return { data };
-};
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-load-fetch/+page.svelte b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-load-fetch/+page.svelte
deleted file mode 100644
index f7f814d31b4d..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-load-fetch/+page.svelte
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- Server Load Fetch
- {JSON.stringify(data, null, 2)}
-
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-route-error/+page.svelte b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-route-error/+page.svelte
deleted file mode 100644
index 3d682e7e3462..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-route-error/+page.svelte
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-Server Route error
-
-
- Message: {data.msg}
-
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-route-error/+page.ts b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-route-error/+page.ts
deleted file mode 100644
index 298240827714..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-route-error/+page.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-export const load = async ({ fetch }) => {
- const res = await fetch('/server-route-error');
- const data = await res.json();
- return {
- msg: data,
- };
-};
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-route-error/+server.ts b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-route-error/+server.ts
deleted file mode 100644
index f1a4b94b7706..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/server-route-error/+server.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export const GET = async () => {
- throw new Error('Server Route Error');
- return {
- msg: 'Hello World',
- };
-};
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/universal-load-error/+page.svelte b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/universal-load-error/+page.svelte
deleted file mode 100644
index dc2d311a0ece..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/universal-load-error/+page.svelte
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-Universal load error
-
-
- To trigger from client: Load on another route, then navigate to this route.
-
-
-
- To trigger from server: Load on this route
-
-
-
- Message: {data.msg}
-
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/universal-load-error/+page.ts b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/universal-load-error/+page.ts
deleted file mode 100644
index 3d72bf4a890f..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/universal-load-error/+page.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { browser } from '$app/environment';
-
-export const load = async () => {
- throw new Error(`Universal Load Error (${browser ? 'browser' : 'server'})`);
- return {
- msg: 'Hello World',
- };
-};
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/universal-load-fetch/+page.svelte b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/universal-load-fetch/+page.svelte
deleted file mode 100644
index 563c51e8c850..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/universal-load-fetch/+page.svelte
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-Fetching in universal load
-
-Here's a list of a few users:
-
-
- {#each data.users as user}
- - {user}
- {/each}
-
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/universal-load-fetch/+page.ts b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/universal-load-fetch/+page.ts
deleted file mode 100644
index 63c1ee68e1cb..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/universal-load-fetch/+page.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export const load = async ({ fetch }) => {
- const usersRes = await fetch('/api/users');
- const data = await usersRes.json();
- return { users: data.users };
-};
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/users/+page.server.ts b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/users/+page.server.ts
deleted file mode 100644
index a34c5450f682..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/users/+page.server.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export const load = async () => {
- return {
- msg: 'Hi everyone!',
- };
-};
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/users/+page.svelte b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/users/+page.svelte
deleted file mode 100644
index aa804a4518fa..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/users/+page.svelte
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
- All Users:
-
-
-
- message: {data.msg}
-
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/users/[id]/+page.server.ts b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/users/[id]/+page.server.ts
deleted file mode 100644
index 9388f3927018..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/users/[id]/+page.server.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export const load = async ({ params }) => {
- return {
- msg: `This is a special message for user ${params.id}`,
- };
-};
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/users/[id]/+page.svelte b/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/users/[id]/+page.svelte
deleted file mode 100644
index d348a8c57dad..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/src/routes/users/[id]/+page.svelte
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-Route with dynamic params
-
-
- User id: {$page.params.id}
-
-
-
- Secret message for user: {data.msg}
-
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/start-event-proxy.mjs b/dev-packages/e2e-tests/test-applications/sveltekit/start-event-proxy.mjs
deleted file mode 100644
index db60ac582eb7..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/start-event-proxy.mjs
+++ /dev/null
@@ -1,6 +0,0 @@
-import { startEventProxyServer } from '@sentry-internal/test-utils';
-
-startEventProxyServer({
- port: 3031,
- proxyServerName: 'sveltekit',
-});
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/static/favicon.png b/dev-packages/e2e-tests/test-applications/sveltekit/static/favicon.png
deleted file mode 100644
index 825b9e65af7c..000000000000
Binary files a/dev-packages/e2e-tests/test-applications/sveltekit/static/favicon.png and /dev/null differ
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/svelte.config.js b/dev-packages/e2e-tests/test-applications/sveltekit/svelte.config.js
deleted file mode 100644
index ba3eb7ca4745..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/svelte.config.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import adapter from '@sveltejs/adapter-node';
-import { vitePreprocess } from '@sveltejs/kit/vite';
-
-/** @type {import('@sveltejs/kit').Config} */
-const config = {
- // Consult https://kit.svelte.dev/docs/integrations#preprocessors
- // for more information about preprocessors
- preprocess: vitePreprocess(),
-
- kit: {
- // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
- // If your environment is not supported or you settled on a specific environment, switch out the adapter.
- // See https://kit.svelte.dev/docs/adapters for more information about adapters.
- adapter: adapter(),
- },
-};
-
-export default config;
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/tests/errors.client.test.ts b/dev-packages/e2e-tests/test-applications/sveltekit/tests/errors.client.test.ts
deleted file mode 100644
index 2676a690a517..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/tests/errors.client.test.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import { expect, test } from '@playwright/test';
-import { waitForError } from '@sentry-internal/test-utils';
-import { waitForInitialPageload } from '../utils';
-
-test.describe('client-side errors', () => {
- test('captures error thrown on click', async ({ page }) => {
- await waitForInitialPageload(page, { route: '/client-error' });
-
- const errorEventPromise = waitForError('sveltekit', errorEvent => {
- return errorEvent?.exception?.values?.[0]?.value === 'Click Error';
- });
-
- await page.getByText('Throw error').click();
-
- await expect(errorEventPromise).resolves.toBeDefined();
-
- const errorEvent = await errorEventPromise;
-
- const errorEventFrames = errorEvent.exception?.values?.[0]?.stacktrace?.frames;
-
- expect(errorEventFrames?.[errorEventFrames?.length - 1]).toEqual(
- expect.objectContaining({
- function: expect.stringContaining('HTMLButtonElement'),
- lineno: 1,
- in_app: true,
- }),
- );
- });
-
- test('captures universal load error', async ({ page }) => {
- await waitForInitialPageload(page);
- await page.reload();
-
- const errorEventPromise = waitForError('sveltekit', errorEvent => {
- return errorEvent?.exception?.values?.[0]?.value === 'Universal Load Error (browser)';
- });
-
- // navigating triggers the error on the client
- await page.getByText('Universal Load error').click();
-
- const errorEvent = await errorEventPromise;
- const errorEventFrames = errorEvent.exception?.values?.[0]?.stacktrace?.frames;
-
- expect(errorEventFrames?.[errorEventFrames?.length - 1]).toEqual(
- expect.objectContaining({
- lineno: 1,
- in_app: true,
- }),
- );
- });
-});
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/tests/errors.server.test.ts b/dev-packages/e2e-tests/test-applications/sveltekit/tests/errors.server.test.ts
deleted file mode 100644
index fbf8cf6e673a..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/tests/errors.server.test.ts
+++ /dev/null
@@ -1,93 +0,0 @@
-import { expect, test } from '@playwright/test';
-import { waitForError } from '@sentry-internal/test-utils';
-
-test.describe('server-side errors', () => {
- test('captures universal load error', async ({ page }) => {
- const errorEventPromise = waitForError('sveltekit', errorEvent => {
- return errorEvent?.exception?.values?.[0]?.value === 'Universal Load Error (server)';
- });
-
- await page.goto('/universal-load-error');
-
- const errorEvent = await errorEventPromise;
- const errorEventFrames = errorEvent.exception?.values?.[0]?.stacktrace?.frames;
-
- expect(errorEventFrames?.[errorEventFrames?.length - 1]).toEqual(
- expect.objectContaining({
- function: 'load$1',
- lineno: 3,
- in_app: true,
- }),
- );
-
- expect(errorEvent.request).toEqual({
- cookies: {},
- headers: expect.objectContaining({
- accept: expect.any(String),
- 'user-agent': expect.any(String),
- }),
- method: 'GET',
- url: 'http://localhost:3030/universal-load-error',
- });
- });
-
- test('captures server load error', async ({ page }) => {
- const errorEventPromise = waitForError('sveltekit', errorEvent => {
- return errorEvent?.exception?.values?.[0]?.value === 'Server Load Error';
- });
-
- await page.goto('/server-load-error');
-
- const errorEvent = await errorEventPromise;
- const errorEventFrames = errorEvent.exception?.values?.[0]?.stacktrace?.frames;
-
- expect(errorEventFrames?.[errorEventFrames?.length - 1]).toEqual(
- expect.objectContaining({
- function: 'load$1',
- lineno: 3,
- in_app: true,
- }),
- );
-
- expect(errorEvent.request).toEqual({
- cookies: {},
- headers: expect.objectContaining({
- accept: expect.any(String),
- 'user-agent': expect.any(String),
- }),
- method: 'GET',
- url: 'http://localhost:3030/server-load-error',
- });
- });
-
- test('captures server route (GET) error', async ({ page }) => {
- const errorEventPromise = waitForError('sveltekit', errorEvent => {
- return errorEvent?.exception?.values?.[0]?.value === 'Server Route Error';
- });
-
- await page.goto('/server-route-error');
-
- const errorEvent = await errorEventPromise;
- const errorEventFrames = errorEvent.exception?.values?.[0]?.stacktrace?.frames;
-
- expect(errorEventFrames?.[errorEventFrames?.length - 1]).toEqual(
- expect.objectContaining({
- filename: 'app:///_server.ts.js',
- function: 'GET',
- lineno: 2,
- in_app: true,
- }),
- );
-
- expect(errorEvent.transaction).toEqual('GET /server-route-error');
-
- expect(errorEvent.request).toEqual({
- cookies: {},
- headers: expect.objectContaining({
- accept: expect.any(String),
- }),
- method: 'GET',
- url: 'http://localhost:3030/server-route-error',
- });
- });
-});
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/tests/performance.client.test.ts b/dev-packages/e2e-tests/test-applications/sveltekit/tests/performance.client.test.ts
deleted file mode 100644
index 33515a950d3c..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/tests/performance.client.test.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import { expect, test } from '@playwright/test';
-import { waitForTransaction } from '@sentry-internal/test-utils';
-import { waitForInitialPageload } from '../utils.js';
-
-test('records manually added component tracking spans', async ({ page }) => {
- const componentTxnEventPromise = waitForTransaction('sveltekit', txnEvent => {
- return txnEvent?.transaction === '/components';
- });
-
- await waitForInitialPageload(page);
-
- await page.getByText('Component Tracking').click();
-
- const componentTxnEvent = await componentTxnEventPromise;
-
- expect(componentTxnEvent.spans).toEqual(
- expect.arrayContaining([
- expect.objectContaining({
- data: { 'sentry.op': 'ui.svelte.init', 'sentry.origin': 'auto.ui.svelte' },
- description: '',
- op: 'ui.svelte.init',
- origin: 'auto.ui.svelte',
- }),
- expect.objectContaining({
- data: { 'sentry.op': 'ui.svelte.init', 'sentry.origin': 'auto.ui.svelte' },
- description: '',
- op: 'ui.svelte.init',
- origin: 'auto.ui.svelte',
- }),
- expect.objectContaining({
- data: { 'sentry.op': 'ui.svelte.init', 'sentry.origin': 'auto.ui.svelte' },
- description: '',
- op: 'ui.svelte.init',
- origin: 'auto.ui.svelte',
- }),
- expect.objectContaining({
- data: { 'sentry.op': 'ui.svelte.init', 'sentry.origin': 'auto.ui.svelte' },
- description: '',
- op: 'ui.svelte.init',
- origin: 'auto.ui.svelte',
- }),
- expect.objectContaining({
- data: { 'sentry.op': 'ui.svelte.update', 'sentry.origin': 'auto.ui.svelte' },
- description: '',
- op: 'ui.svelte.update',
- origin: 'auto.ui.svelte',
- }),
- expect.objectContaining({
- data: { 'sentry.op': 'ui.svelte.update', 'sentry.origin': 'auto.ui.svelte' },
- description: '',
- op: 'ui.svelte.update',
- origin: 'auto.ui.svelte',
- }),
- expect.objectContaining({
- data: { 'sentry.op': 'ui.svelte.update', 'sentry.origin': 'auto.ui.svelte' },
- description: '',
- op: 'ui.svelte.update',
- origin: 'auto.ui.svelte',
- }),
- expect.objectContaining({
- data: { 'sentry.op': 'ui.svelte.update', 'sentry.origin': 'auto.ui.svelte' },
- description: '',
- op: 'ui.svelte.update',
- origin: 'auto.ui.svelte',
- }),
- ]),
- );
-});
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/tests/performance.server.test.ts b/dev-packages/e2e-tests/test-applications/sveltekit/tests/performance.server.test.ts
deleted file mode 100644
index 5c3fd61e5467..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/tests/performance.server.test.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import { expect, test } from '@playwright/test';
-import { waitForTransaction } from '@sentry-internal/test-utils';
-
-test('server pageload request span has nested request span for sub request', async ({ page }) => {
- const serverTxnEventPromise = waitForTransaction('sveltekit', txnEvent => {
- return txnEvent?.transaction === 'GET /server-load-fetch';
- });
-
- await page.goto('/server-load-fetch');
-
- const serverTxnEvent = await serverTxnEventPromise;
- const spans = serverTxnEvent.spans;
-
- expect(serverTxnEvent).toMatchObject({
- transaction: 'GET /server-load-fetch',
- transaction_info: { source: 'route' },
- type: 'transaction',
- contexts: {
- trace: {
- op: 'http.server',
- origin: 'auto.http.sveltekit',
- },
- },
- });
-
- expect(spans).toEqual(
- expect.arrayContaining([
- // load span where the server load function initiates the sub request:
- expect.objectContaining({ op: 'function.sveltekit.server.load', description: '/server-load-fetch' }),
- // sub request span:
- expect.objectContaining({ op: 'http.server', description: 'GET /api/users' }),
- ]),
- );
-
- expect(serverTxnEvent.request).toEqual({
- cookies: {},
- headers: expect.objectContaining({
- accept: expect.any(String),
- 'user-agent': expect.any(String),
- }),
- method: 'GET',
- url: 'http://localhost:3030/server-load-fetch',
- });
-});
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/sveltekit/tests/performance.test.ts
deleted file mode 100644
index c452e1d48cb3..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/tests/performance.test.ts
+++ /dev/null
@@ -1,117 +0,0 @@
-import { expect, test } from '@playwright/test';
-import { waitForTransaction } from '@sentry-internal/test-utils';
-import { waitForInitialPageload } from '../utils.js';
-
-test('sends a pageload transaction', async ({ page }) => {
- const pageloadTransactionEventPromise = waitForTransaction('sveltekit', (transactionEvent: any) => {
- return transactionEvent?.contexts?.trace?.op === 'pageload' && transactionEvent?.transaction === '/';
- });
-
- await page.goto('/');
-
- const transactionEvent = await pageloadTransactionEventPromise;
-
- expect(transactionEvent).toMatchObject({
- transaction: '/',
- transaction_info: {
- source: 'route',
- },
- contexts: {
- trace: {
- op: 'pageload',
- origin: 'auto.pageload.sveltekit',
- },
- },
- });
-});
-
-test('captures a distributed pageload trace', async ({ page }) => {
- const clientTxnEventPromise = waitForTransaction('sveltekit', txnEvent => {
- return txnEvent?.transaction === '/users/[id]';
- });
-
- const serverTxnEventPromise = waitForTransaction('sveltekit', txnEvent => {
- return txnEvent?.transaction === 'GET /users/[id]';
- });
-
- await page.goto('/users/123xyz');
-
- const [clientTxnEvent, serverTxnEvent] = await Promise.all([clientTxnEventPromise, serverTxnEventPromise]);
-
- expect(clientTxnEvent).toMatchObject({
- transaction: '/users/[id]',
- transaction_info: { source: 'route' },
- type: 'transaction',
- contexts: {
- trace: {
- op: 'pageload',
- origin: 'auto.pageload.sveltekit',
- },
- },
- });
-
- expect(serverTxnEvent).toMatchObject({
- transaction: 'GET /users/[id]',
- transaction_info: { source: 'route' },
- type: 'transaction',
- contexts: {
- trace: {
- op: 'http.server',
- origin: 'auto.http.sveltekit',
- },
- },
- });
- // connected trace
- expect(clientTxnEvent.contexts?.trace?.trace_id).toBe(serverTxnEvent.contexts?.trace?.trace_id);
-
- // weird but server txn is parent of client txn
- expect(clientTxnEvent.contexts?.trace?.parent_span_id).toBe(serverTxnEvent.contexts?.trace?.span_id);
-});
-
-test('captures a distributed navigation trace', async ({ page }) => {
- const clientNavigationTxnEventPromise = waitForTransaction('sveltekit', txnEvent => {
- return txnEvent?.transaction === '/users/[id]';
- });
-
- const serverTxnEventPromise = waitForTransaction('sveltekit', txnEvent => {
- return txnEvent?.transaction === 'GET /users/[id]';
- });
-
- await waitForInitialPageload(page);
-
- // navigation to page
- const clickPromise = page.getByText('Route with Params').click();
-
- const [clientTxnEvent, serverTxnEvent, _1] = await Promise.all([
- clientNavigationTxnEventPromise,
- serverTxnEventPromise,
- clickPromise,
- ]);
-
- expect(clientTxnEvent).toMatchObject({
- transaction: '/users/[id]',
- transaction_info: { source: 'route' },
- type: 'transaction',
- contexts: {
- trace: {
- op: 'navigation',
- origin: 'auto.navigation.sveltekit',
- },
- },
- });
-
- expect(serverTxnEvent).toMatchObject({
- transaction: 'GET /users/[id]',
- transaction_info: { source: 'route' },
- type: 'transaction',
- contexts: {
- trace: {
- op: 'http.server',
- origin: 'auto.http.sveltekit',
- },
- },
- });
-
- // trace is connected
- expect(clientTxnEvent.contexts?.trace?.trace_id).toBe(serverTxnEvent.contexts?.trace?.trace_id);
-});
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/tsconfig.json b/dev-packages/e2e-tests/test-applications/sveltekit/tsconfig.json
deleted file mode 100644
index 115dd34bec96..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/tsconfig.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "extends": "./.svelte-kit/tsconfig.json",
- "compilerOptions": {
- "allowJs": true,
- "esModuleInterop": true,
- "forceConsistentCasingInFileNames": true,
- "resolveJsonModule": true,
- "skipLibCheck": true,
- "sourceMap": true,
- "strict": true,
- "allowImportingTsExtensions": true
- }
- // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
- //
- // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
- // from the referenced tsconfig.json - TypeScript does not merge them in
-}
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/utils.ts b/dev-packages/e2e-tests/test-applications/sveltekit/utils.ts
deleted file mode 100644
index 320d41aba389..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/utils.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import { Page } from '@playwright/test';
-import { waitForTransaction } from '@sentry-internal/test-utils';
-
-/**
- * Helper function that waits for the initial pageload to complete.
- *
- * This function
- * - loads the given route ("/" by default)
- * - waits for SvelteKit's hydration
- * - waits for the pageload transaction to be sent (doesn't assert on it though)
- *
- * Useful for tests that test outcomes of _navigations_ after an initial pageload.
- * Waiting on the pageload transaction excludes edge cases where navigations occur
- * so quickly that the pageload idle transaction is still active. This might lead
- * to cases where the routing span would be attached to the pageload transaction
- * and hence eliminates a lot of flakiness.
- *
- */
-export async function waitForInitialPageload(
- page: Page,
- opts?: { route?: string; parameterizedRoute?: string; debug?: boolean },
-) {
- const route = opts?.route ?? '/';
- const txnName = opts?.parameterizedRoute ?? route;
- const debug = opts?.debug ?? false;
-
- const clientPageloadTxnEventPromise = waitForTransaction('sveltekit', txnEvent => {
- debug &&
- console.log({
- txn: txnEvent?.transaction,
- op: txnEvent.contexts?.trace?.op,
- trace: txnEvent.contexts?.trace?.trace_id,
- span: txnEvent.contexts?.trace?.span_id,
- parent: txnEvent.contexts?.trace?.parent_span_id,
- });
-
- return txnEvent?.transaction === txnName && txnEvent.contexts?.trace?.op === 'pageload';
- });
-
- await Promise.all([
- page.goto(route),
- // the test app adds the "hydrated" class to the body when hydrating
- page.waitForSelector('body.hydrated'),
- // also waiting for the initial pageload txn so that later navigations don't interfere
- clientPageloadTxnEventPromise,
- ]);
-
- // let's add a buffer because it seems like the hydrated flag isn't enough :(
- // guess: The layout finishes hydration/mounting before the components within finish
- // await page.waitForTimeout(10_000);
-
- debug && console.log('hydrated');
-}
diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/vite.config.js b/dev-packages/e2e-tests/test-applications/sveltekit/vite.config.js
deleted file mode 100644
index 1a410bee7e11..000000000000
--- a/dev-packages/e2e-tests/test-applications/sveltekit/vite.config.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import { sentrySvelteKit } from '@sentry/sveltekit';
-import { sveltekit } from '@sveltejs/kit/vite';
-import { defineConfig } from 'vite';
-
-export default defineConfig({
- plugins: [
- sentrySvelteKit({
- autoUploadSourceMaps: false,
- }),
- sveltekit(),
- ],
-});
diff --git a/packages/sveltekit/package.json b/packages/sveltekit/package.json
index d5f79f099aed..caf46d50b3d7 100644
--- a/packages/sveltekit/package.json
+++ b/packages/sveltekit/package.json
@@ -31,7 +31,7 @@
"access": "public"
},
"peerDependencies": {
- "@sveltejs/kit": "1.x || 2.x",
+ "@sveltejs/kit": "2.x",
"vite": "*"
},
"peerDependenciesMeta": {