From 2987c97b0fb033da03479230a01bdfc844e1f18d Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Thu, 14 Aug 2025 15:48:59 -0600 Subject: [PATCH 01/11] feat: Blog post for Observability launch --- ...8-14-sveltekit-integrated-observability.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md diff --git a/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md b/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md new file mode 100644 index 0000000000..a95dcb1747 --- /dev/null +++ b/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md @@ -0,0 +1,75 @@ +--- +title: 'Introducing integrated observability in SvelteKit' +description: 'SvelteKit apps can now emit OpenTelemetry traces and reliably set up observability instrumentation using instrumentation.server.ts' +author: Elliott Johnson +authorURL: https://bsky.app/profile/gruntled.bsky.social +--- + +"Observability" is one of those buzzwords that is commonly thrown around as something essential to all good apps + +SvelteKit is proud to announce two new experimental features geared towards making observing and debugging your app as easy as possible. + +## First-party OpenTelemetry traces + +SvelteKit can now emit [OpenTelemetry](https://opentelemetry.io) traces for the following: + +- [`handle`](/docs/kit/hooks#Server-hooks-handle) hook (`handle` functions running in a [`sequence`](/docs/kit/@sveltejs-kit-hooks#sequence) will show up as children of each other and the root handle hook) +- [`load`](/docs/kit/load) functions (includes universal `load` functions when they're run on the server) +- [Form actions](docs/kit/form-actions) +- [Remote functions](/docs/kit/remote-functions) + +To enable trace emission, add the following to `svelte.config.js`: + +```js +/// file: svelte.config.js +export default { + kit: { + +++experimental: { + tracing: { + server: true + } + }+++ + } +}; +``` + +If there are additional attributes you think might be useful, please file an issue on the [SvelteKit Github issue tracker](https://github.com/sveltejs/kit/issues). + +## A convenient home for all of your instrumentation + +Emitting traces alone is not enough: You also need to collect them and send them somewhere. Under normal circumstances, this can be a bit challenging. Because of the nature of observability instrumentation, it needs to be loaded prior to loading any of the code from your app. To aid in this, SvelteKit now supports a `src/instrumentation.server.ts` file which, assuming your adapter supports it, is guaranteed to be loaded prior to your application code. In Node, your instrumentation might look something like this: + +```ts +import { NodeSDK } from '@opentelemetry/sdk-node'; +import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node'; +import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto'; +import { createAddHookMessageChannel } from 'import-in-the-middle'; +import { register } from 'module'; + +const { registerOptions } = createAddHookMessageChannel(); +register('import-in-the-middle/hook.mjs', import.meta.url, registerOptions); + +const sdk = new NodeSDK({ + serviceName: 'test-sveltekit-tracing', + traceExporter: new OTLPTraceExporter(), + instrumentations: [getNodeAutoInstrumentations()] +}); + +sdk.start(); +``` + +...and on Vercel, it would look something like this: + +```ts +import { registerOTel } from '@vercel/otel'; + +registerOTel({ + serviceName: 'test-sveltekit-tracing' +}); +``` + +Consult your platform's documentation for specific instrumentation instructions. As of now, all of the official SvelteKit adapters with a server component (sorry, `adapter-static`) support `instrumentation.server.ts`. + +## Acknowledgements + +A huge thank-you to Lukas Stracke, who kicked us off on this adventure with his excellent [talk at Svelte Summit 2025](https://www.youtube.com/watch?v=hFVmFAyB_YA) and his initial draft PR for `instrumentation.server.ts`. Another thank-you to [Sentry](https://sentry.io/welcome/) for allowing him to spend his working hours reviewing and testing our work. From cdf5f13c67b6b20babf784cff82512d3bb3a50cb Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Thu, 14 Aug 2025 15:55:00 -0600 Subject: [PATCH 02/11] fix --- .../blog/2025-08-14-sveltekit-integrated-observability.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md b/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md index a95dcb1747..9d2ecaf848 100644 --- a/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md +++ b/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md @@ -15,7 +15,7 @@ SvelteKit can now emit [OpenTelemetry](https://opentelemetry.io) traces for the - [`handle`](/docs/kit/hooks#Server-hooks-handle) hook (`handle` functions running in a [`sequence`](/docs/kit/@sveltejs-kit-hooks#sequence) will show up as children of each other and the root handle hook) - [`load`](/docs/kit/load) functions (includes universal `load` functions when they're run on the server) -- [Form actions](docs/kit/form-actions) +- [Form actions](/docs/kit/form-actions) - [Remote functions](/docs/kit/remote-functions) To enable trace emission, add the following to `svelte.config.js`: From 1edb8d48501936b5aa8849ab2273603beacd3611 Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Fri, 15 Aug 2025 09:21:29 -0600 Subject: [PATCH 03/11] oops --- ...8-14-sveltekit-integrated-observability.md | 19 ++- apps/svelte.dev/package.json | 2 +- pnpm-lock.yaml | 149 +++++++++++++----- 3 files changed, 128 insertions(+), 42 deletions(-) diff --git a/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md b/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md index 9d2ecaf848..01c52677b7 100644 --- a/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md +++ b/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md @@ -37,7 +37,24 @@ If there are additional attributes you think might be useful, please file an iss ## A convenient home for all of your instrumentation -Emitting traces alone is not enough: You also need to collect them and send them somewhere. Under normal circumstances, this can be a bit challenging. Because of the nature of observability instrumentation, it needs to be loaded prior to loading any of the code from your app. To aid in this, SvelteKit now supports a `src/instrumentation.server.ts` file which, assuming your adapter supports it, is guaranteed to be loaded prior to your application code. In Node, your instrumentation might look something like this: +Emitting traces alone is not enough: You also need to collect them and send them somewhere. Under normal circumstances, this can be a bit challenging. Because of the nature of observability instrumentation, it needs to be loaded prior to loading any of the code from your app. To aid in this, SvelteKit now supports a `src/instrumentation.server.ts` file which, assuming your adapter supports it, is guaranteed to be loaded prior to your application code. + +To enable `instrumentation.server.ts`, add the following to your `svelte.config.js`: + +```js +/// file: svelte.config.js +export default { + kit: { + +++experimental: { + instrumentation: { + server: true + } + }+++ + } +}; +``` + +In Node, your instrumentation might look something like this: ```ts import { NodeSDK } from '@opentelemetry/sdk-node'; diff --git a/apps/svelte.dev/package.json b/apps/svelte.dev/package.json index 4983e9a15f..e89e9e2ade 100644 --- a/apps/svelte.dev/package.json +++ b/apps/svelte.dev/package.json @@ -72,7 +72,7 @@ "satori": "^0.10.13", "satori-html": "^0.3.2", "sv": "^0.6.8", - "svelte": "^5.35.5", + "svelte": "link:../../../svelte/packages/svelte", "svelte-check": "^4.1.1", "svelte-preprocess": "^6.0.3", "tiny-glob": "^0.2.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6484b39d63..7e568719d2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,10 +28,10 @@ importers: version: 1.4.1 '@rich_harris/svelte-split-pane': specifier: ^2.0.0 - version: 2.0.0(svelte@5.35.5) + version: 2.0.0(svelte@svelte+packages+svelte) '@sveltejs/amp': specifier: ^1.1.4 - version: 1.1.4(@sveltejs/kit@2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0))) + version: 1.1.4(@sveltejs/kit@2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))) '@sveltejs/repl': specifier: workspace:* version: link:../../packages/repl @@ -40,7 +40,7 @@ importers: version: 10.4.0 '@testing-library/svelte': specifier: ^5.2.3 - version: 5.2.3(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0))(vitest@3.2.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) + version: 5.2.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))(vitest@2.1.9(@types/node@20.14.2)(lightningcss@1.25.1)) '@testing-library/user-event': specifier: ^14.5.2 version: 14.5.2(@testing-library/dom@10.4.0) @@ -52,7 +52,7 @@ importers: version: 1.3.2 '@vercel/speed-insights': specifier: ^1.1.0 - version: 1.1.0(@sveltejs/kit@2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5) + version: 1.1.0(@sveltejs/kit@2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte) '@webcontainer/api': specifier: ^1.1.5 version: 1.1.9 @@ -112,20 +112,20 @@ importers: specifier: ^2.43.4 version: 2.43.4 '@sveltejs/adapter-vercel': - specifier: ^5.7.2 - version: 5.7.2(@sveltejs/kit@2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(rollup@4.44.2) + specifier: ^5.7.0 + version: 5.7.0(@sveltejs/kit@2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(rollup@4.21.2) '@sveltejs/enhanced-img': specifier: ^0.4.3 - version: 0.4.3(rollup@4.44.2)(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) + version: 0.4.3(rollup@4.21.2)(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) '@sveltejs/kit': - specifier: ^2.28.0 - version: 2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) + specifier: ^2.20.0 + version: 2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) '@sveltejs/site-kit': specifier: workspace:* version: link:../../packages/site-kit '@sveltejs/vite-plugin-svelte': - specifier: ^6.0.0 - version: 6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) + specifier: 4.0.3 + version: 4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) '@types/cookie': specifier: ^0.6.0 version: 0.6.0 @@ -167,7 +167,7 @@ importers: version: 3.3.2 prettier-plugin-svelte: specifier: ^3.3.2 - version: 3.3.2(prettier@3.3.2)(svelte@5.35.5) + version: 3.3.2(prettier@3.3.2)(svelte@svelte+packages+svelte) satori: specifier: ^0.10.13 version: 0.10.13 @@ -178,14 +178,14 @@ importers: specifier: ^0.6.8 version: 0.6.8 svelte: - specifier: ^5.35.5 - version: 5.35.5 + specifier: link:../../../svelte/packages/svelte + version: link:../../../svelte/packages/svelte svelte-check: specifier: ^4.1.1 - version: 4.1.1(picomatch@4.0.2)(svelte@5.35.5)(typescript@5.8.2) + version: 4.1.1(picomatch@4.0.2)(svelte@svelte+packages+svelte)(typescript@5.5.4) svelte-preprocess: specifier: ^6.0.3 - version: 6.0.3(postcss@8.5.6)(svelte@5.35.5)(typescript@5.8.2) + version: 6.0.3(postcss@8.4.45)(svelte@svelte+packages+svelte)(typescript@5.5.4) tiny-glob: specifier: ^0.2.9 version: 0.2.9 @@ -4094,7 +4094,11 @@ snapshots: dependencies: svelte: 5.35.5 - '@rollup/browser@4.44.2': + '@rich_harris/svelte-split-pane@2.0.0(svelte@svelte+packages+svelte)': + dependencies: + svelte: link:../svelte/packages/svelte + + '@rollup/browser@4.17.2': dependencies: '@types/estree': 1.0.8 @@ -4266,28 +4270,28 @@ snapshots: '@sveltejs/kit': 2.22.5(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) import-meta-resolve: 4.1.0 - '@sveltejs/adapter-vercel@5.7.2(@sveltejs/kit@2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(rollup@4.44.2)': + '@sveltejs/adapter-vercel@5.7.0(@sveltejs/kit@2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(rollup@4.21.2)': dependencies: - '@sveltejs/kit': 2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) - '@vercel/nft': 0.29.2(rollup@4.44.2) - esbuild: 0.25.6 + '@sveltejs/kit': 2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) + '@vercel/nft': 0.29.2(rollup@4.21.2) + esbuild: 0.24.0 transitivePeerDependencies: - encoding - rollup - supports-color - '@sveltejs/amp@1.1.4(@sveltejs/kit@2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))': + '@sveltejs/amp@1.1.4(@sveltejs/kit@2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))': dependencies: - '@sveltejs/kit': 2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) + '@sveltejs/kit': 2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) - '@sveltejs/enhanced-img@0.4.3(rollup@4.44.2)(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0))': + '@sveltejs/enhanced-img@0.4.3(rollup@4.21.2)(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))': dependencies: magic-string: 0.30.17 sharp: 0.33.5 - svelte: 5.35.5 - svelte-parse-markup: 0.1.5(svelte@5.35.5) - vite: 7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0) - vite-imagetools: 7.0.4(rollup@4.44.2) + svelte: link:../svelte/packages/svelte + svelte-parse-markup: 0.1.5(svelte@svelte+packages+svelte) + vite: 5.4.11(@types/node@20.14.2)(lightningcss@1.25.1) + vite-imagetools: 7.0.4(rollup@4.21.2) zimmerframe: 1.1.2 transitivePeerDependencies: - rollup @@ -4329,7 +4333,24 @@ snapshots: svelte: 5.35.5 vite: 7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0) - '@sveltejs/package@2.3.1(svelte@5.35.5)(typescript@5.8.2)': + '@sveltejs/kit@2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))': + dependencies: + '@sveltejs/vite-plugin-svelte': 4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) + '@types/cookie': 0.6.0 + cookie: 0.6.0 + devalue: 5.1.1 + esm-env: 1.2.2 + import-meta-resolve: 4.1.0 + kleur: 4.1.5 + magic-string: 0.30.12 + mrmime: 2.0.0 + sade: 1.8.1 + set-cookie-parser: 2.7.1 + sirv: 3.0.0 + svelte: link:../svelte/packages/svelte + vite: 5.4.11(@types/node@20.14.2)(lightningcss@1.25.1) + + '@sveltejs/package@2.3.1(svelte@5.23.0)(typescript@5.5.4)': dependencies: chokidar: 3.6.0 kleur: 4.1.5 @@ -4355,8 +4376,26 @@ snapshots: '@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 5.0.0-next.1(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) - debug: 4.4.1 + '@sveltejs/vite-plugin-svelte': 4.0.3(svelte@5.23.0)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) + debug: 4.4.0 + svelte: 5.23.0 + vite: 5.4.11(@types/node@20.14.2)(lightningcss@1.25.1) + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte-inspector@3.0.0-next.2(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))': + dependencies: + '@sveltejs/vite-plugin-svelte': 4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) + debug: 4.4.0 + svelte: link:../svelte/packages/svelte + vite: 5.4.11(@types/node@20.14.2)(lightningcss@1.25.1) + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.23.0)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 3.0.0-next.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.23.0)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@5.23.0)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) + debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 @@ -4366,6 +4405,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 3.0.0-next.2(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) + debug: 4.4.0 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.12 + svelte: link:../svelte/packages/svelte + vite: 5.4.11(@types/node@20.14.2)(lightningcss@1.25.1) + vitefu: 1.0.3(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) + transitivePeerDependencies: + - supports-color + '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.25.7 @@ -4377,10 +4429,10 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/svelte@5.2.3(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0))(vitest@3.2.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0))': + '@testing-library/svelte@5.2.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))(vitest@2.1.9(@types/node@20.14.2)(lightningcss@1.25.1))': dependencies: '@testing-library/dom': 10.4.0 - svelte: 5.35.5 + svelte: link:../svelte/packages/svelte optionalDependencies: vite: 7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0) vitest: 3.2.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0) @@ -4465,10 +4517,10 @@ snapshots: - rollup - supports-color - '@vercel/speed-insights@1.1.0(@sveltejs/kit@2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)': + '@vercel/speed-insights@1.1.0(@sveltejs/kit@2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)': optionalDependencies: - '@sveltejs/kit': 2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) - svelte: 5.35.5 + '@sveltejs/kit': 2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) + svelte: link:../svelte/packages/svelte '@vitest/expect@3.2.4': dependencies: @@ -5422,6 +5474,11 @@ snapshots: prettier: 3.3.2 svelte: 5.35.5 + prettier-plugin-svelte@3.3.2(prettier@3.3.2)(svelte@svelte+packages+svelte): + dependencies: + prettier: 3.3.2 + svelte: link:../svelte/packages/svelte + prettier@2.8.8: {} prettier@3.3.2: {} @@ -5694,13 +5751,25 @@ snapshots: transitivePeerDependencies: - picomatch - svelte-parse-markup@0.1.5(svelte@5.35.5): + svelte-check@4.1.1(picomatch@4.0.2)(svelte@svelte+packages+svelte)(typescript@5.5.4): dependencies: - svelte: 5.35.5 + '@jridgewell/trace-mapping': 0.3.25 + chokidar: 4.0.1 + fdir: 6.4.2(picomatch@4.0.2) + picocolors: 1.1.1 + sade: 1.8.1 + svelte: link:../svelte/packages/svelte + typescript: 5.5.4 + transitivePeerDependencies: + - picomatch - svelte-preprocess@6.0.3(postcss@8.5.6)(svelte@5.35.5)(typescript@5.8.2): + svelte-parse-markup@0.1.5(svelte@svelte+packages+svelte): dependencies: - svelte: 5.35.5 + svelte: link:../svelte/packages/svelte + + svelte-preprocess@6.0.3(postcss@8.4.45)(svelte@svelte+packages+svelte)(typescript@5.5.4): + dependencies: + svelte: link:../svelte/packages/svelte optionalDependencies: postcss: 8.5.6 typescript: 5.8.2 From ecff0792b00a153302251ead1315aa9ce1cd45ef Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Fri, 15 Aug 2025 09:22:44 -0600 Subject: [PATCH 04/11] oops --- apps/svelte.dev/package.json | 2 +- pnpm-lock.yaml | 149 ++++++++++------------------------- 2 files changed, 41 insertions(+), 110 deletions(-) diff --git a/apps/svelte.dev/package.json b/apps/svelte.dev/package.json index e89e9e2ade..4983e9a15f 100644 --- a/apps/svelte.dev/package.json +++ b/apps/svelte.dev/package.json @@ -72,7 +72,7 @@ "satori": "^0.10.13", "satori-html": "^0.3.2", "sv": "^0.6.8", - "svelte": "link:../../../svelte/packages/svelte", + "svelte": "^5.35.5", "svelte-check": "^4.1.1", "svelte-preprocess": "^6.0.3", "tiny-glob": "^0.2.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7e568719d2..6484b39d63 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,10 +28,10 @@ importers: version: 1.4.1 '@rich_harris/svelte-split-pane': specifier: ^2.0.0 - version: 2.0.0(svelte@svelte+packages+svelte) + version: 2.0.0(svelte@5.35.5) '@sveltejs/amp': specifier: ^1.1.4 - version: 1.1.4(@sveltejs/kit@2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))) + version: 1.1.4(@sveltejs/kit@2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0))) '@sveltejs/repl': specifier: workspace:* version: link:../../packages/repl @@ -40,7 +40,7 @@ importers: version: 10.4.0 '@testing-library/svelte': specifier: ^5.2.3 - version: 5.2.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))(vitest@2.1.9(@types/node@20.14.2)(lightningcss@1.25.1)) + version: 5.2.3(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0))(vitest@3.2.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) '@testing-library/user-event': specifier: ^14.5.2 version: 14.5.2(@testing-library/dom@10.4.0) @@ -52,7 +52,7 @@ importers: version: 1.3.2 '@vercel/speed-insights': specifier: ^1.1.0 - version: 1.1.0(@sveltejs/kit@2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte) + version: 1.1.0(@sveltejs/kit@2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5) '@webcontainer/api': specifier: ^1.1.5 version: 1.1.9 @@ -112,20 +112,20 @@ importers: specifier: ^2.43.4 version: 2.43.4 '@sveltejs/adapter-vercel': - specifier: ^5.7.0 - version: 5.7.0(@sveltejs/kit@2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(rollup@4.21.2) + specifier: ^5.7.2 + version: 5.7.2(@sveltejs/kit@2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(rollup@4.44.2) '@sveltejs/enhanced-img': specifier: ^0.4.3 - version: 0.4.3(rollup@4.21.2)(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) + version: 0.4.3(rollup@4.44.2)(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) '@sveltejs/kit': - specifier: ^2.20.0 - version: 2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) + specifier: ^2.28.0 + version: 2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) '@sveltejs/site-kit': specifier: workspace:* version: link:../../packages/site-kit '@sveltejs/vite-plugin-svelte': - specifier: 4.0.3 - version: 4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) + specifier: ^6.0.0 + version: 6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) '@types/cookie': specifier: ^0.6.0 version: 0.6.0 @@ -167,7 +167,7 @@ importers: version: 3.3.2 prettier-plugin-svelte: specifier: ^3.3.2 - version: 3.3.2(prettier@3.3.2)(svelte@svelte+packages+svelte) + version: 3.3.2(prettier@3.3.2)(svelte@5.35.5) satori: specifier: ^0.10.13 version: 0.10.13 @@ -178,14 +178,14 @@ importers: specifier: ^0.6.8 version: 0.6.8 svelte: - specifier: link:../../../svelte/packages/svelte - version: link:../../../svelte/packages/svelte + specifier: ^5.35.5 + version: 5.35.5 svelte-check: specifier: ^4.1.1 - version: 4.1.1(picomatch@4.0.2)(svelte@svelte+packages+svelte)(typescript@5.5.4) + version: 4.1.1(picomatch@4.0.2)(svelte@5.35.5)(typescript@5.8.2) svelte-preprocess: specifier: ^6.0.3 - version: 6.0.3(postcss@8.4.45)(svelte@svelte+packages+svelte)(typescript@5.5.4) + version: 6.0.3(postcss@8.5.6)(svelte@5.35.5)(typescript@5.8.2) tiny-glob: specifier: ^0.2.9 version: 0.2.9 @@ -4094,11 +4094,7 @@ snapshots: dependencies: svelte: 5.35.5 - '@rich_harris/svelte-split-pane@2.0.0(svelte@svelte+packages+svelte)': - dependencies: - svelte: link:../svelte/packages/svelte - - '@rollup/browser@4.17.2': + '@rollup/browser@4.44.2': dependencies: '@types/estree': 1.0.8 @@ -4270,28 +4266,28 @@ snapshots: '@sveltejs/kit': 2.22.5(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) import-meta-resolve: 4.1.0 - '@sveltejs/adapter-vercel@5.7.0(@sveltejs/kit@2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(rollup@4.21.2)': + '@sveltejs/adapter-vercel@5.7.2(@sveltejs/kit@2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(rollup@4.44.2)': dependencies: - '@sveltejs/kit': 2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) - '@vercel/nft': 0.29.2(rollup@4.21.2) - esbuild: 0.24.0 + '@sveltejs/kit': 2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) + '@vercel/nft': 0.29.2(rollup@4.44.2) + esbuild: 0.25.6 transitivePeerDependencies: - encoding - rollup - supports-color - '@sveltejs/amp@1.1.4(@sveltejs/kit@2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))': + '@sveltejs/amp@1.1.4(@sveltejs/kit@2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))': dependencies: - '@sveltejs/kit': 2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) + '@sveltejs/kit': 2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) - '@sveltejs/enhanced-img@0.4.3(rollup@4.21.2)(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))': + '@sveltejs/enhanced-img@0.4.3(rollup@4.44.2)(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0))': dependencies: magic-string: 0.30.17 sharp: 0.33.5 - svelte: link:../svelte/packages/svelte - svelte-parse-markup: 0.1.5(svelte@svelte+packages+svelte) - vite: 5.4.11(@types/node@20.14.2)(lightningcss@1.25.1) - vite-imagetools: 7.0.4(rollup@4.21.2) + svelte: 5.35.5 + svelte-parse-markup: 0.1.5(svelte@5.35.5) + vite: 7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0) + vite-imagetools: 7.0.4(rollup@4.44.2) zimmerframe: 1.1.2 transitivePeerDependencies: - rollup @@ -4333,24 +4329,7 @@ snapshots: svelte: 5.35.5 vite: 7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0) - '@sveltejs/kit@2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))': - dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) - '@types/cookie': 0.6.0 - cookie: 0.6.0 - devalue: 5.1.1 - esm-env: 1.2.2 - import-meta-resolve: 4.1.0 - kleur: 4.1.5 - magic-string: 0.30.12 - mrmime: 2.0.0 - sade: 1.8.1 - set-cookie-parser: 2.7.1 - sirv: 3.0.0 - svelte: link:../svelte/packages/svelte - vite: 5.4.11(@types/node@20.14.2)(lightningcss@1.25.1) - - '@sveltejs/package@2.3.1(svelte@5.23.0)(typescript@5.5.4)': + '@sveltejs/package@2.3.1(svelte@5.35.5)(typescript@5.8.2)': dependencies: chokidar: 3.6.0 kleur: 4.1.5 @@ -4376,26 +4355,8 @@ snapshots: '@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.3(svelte@5.23.0)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) - debug: 4.4.0 - svelte: 5.23.0 - vite: 5.4.11(@types/node@20.14.2)(lightningcss@1.25.1) - transitivePeerDependencies: - - supports-color - - '@sveltejs/vite-plugin-svelte-inspector@3.0.0-next.2(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))': - dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) - debug: 4.4.0 - svelte: link:../svelte/packages/svelte - vite: 5.4.11(@types/node@20.14.2)(lightningcss@1.25.1) - transitivePeerDependencies: - - supports-color - - '@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.23.0)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))': - dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 3.0.0-next.2(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.23.0)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@5.23.0)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) - debug: 4.4.0 + '@sveltejs/vite-plugin-svelte-inspector': 5.0.0-next.1(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) + debug: 4.4.1 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 @@ -4405,19 +4366,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))': - dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 3.0.0-next.2(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) - debug: 4.4.0 - deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.12 - svelte: link:../svelte/packages/svelte - vite: 5.4.11(@types/node@20.14.2)(lightningcss@1.25.1) - vitefu: 1.0.3(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) - transitivePeerDependencies: - - supports-color - '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.25.7 @@ -4429,10 +4377,10 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/svelte@5.2.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1))(vitest@2.1.9(@types/node@20.14.2)(lightningcss@1.25.1))': + '@testing-library/svelte@5.2.3(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0))(vitest@3.2.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0))': dependencies: '@testing-library/dom': 10.4.0 - svelte: link:../svelte/packages/svelte + svelte: 5.35.5 optionalDependencies: vite: 7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0) vitest: 3.2.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0) @@ -4517,10 +4465,10 @@ snapshots: - rollup - supports-color - '@vercel/speed-insights@1.1.0(@sveltejs/kit@2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)': + '@vercel/speed-insights@1.1.0(@sveltejs/kit@2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)': optionalDependencies: - '@sveltejs/kit': 2.20.0(@sveltejs/vite-plugin-svelte@4.0.3(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)))(svelte@svelte+packages+svelte)(vite@5.4.11(@types/node@20.14.2)(lightningcss@1.25.1)) - svelte: link:../svelte/packages/svelte + '@sveltejs/kit': 2.28.0(@sveltejs/vite-plugin-svelte@6.0.0(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)))(svelte@5.35.5)(vite@7.0.4(@types/node@20.19.6)(lightningcss@1.25.1)(tsx@4.19.0)) + svelte: 5.35.5 '@vitest/expect@3.2.4': dependencies: @@ -5474,11 +5422,6 @@ snapshots: prettier: 3.3.2 svelte: 5.35.5 - prettier-plugin-svelte@3.3.2(prettier@3.3.2)(svelte@svelte+packages+svelte): - dependencies: - prettier: 3.3.2 - svelte: link:../svelte/packages/svelte - prettier@2.8.8: {} prettier@3.3.2: {} @@ -5751,25 +5694,13 @@ snapshots: transitivePeerDependencies: - picomatch - svelte-check@4.1.1(picomatch@4.0.2)(svelte@svelte+packages+svelte)(typescript@5.5.4): + svelte-parse-markup@0.1.5(svelte@5.35.5): dependencies: - '@jridgewell/trace-mapping': 0.3.25 - chokidar: 4.0.1 - fdir: 6.4.2(picomatch@4.0.2) - picocolors: 1.1.1 - sade: 1.8.1 - svelte: link:../svelte/packages/svelte - typescript: 5.5.4 - transitivePeerDependencies: - - picomatch - - svelte-parse-markup@0.1.5(svelte@svelte+packages+svelte): - dependencies: - svelte: link:../svelte/packages/svelte + svelte: 5.35.5 - svelte-preprocess@6.0.3(postcss@8.4.45)(svelte@svelte+packages+svelte)(typescript@5.5.4): + svelte-preprocess@6.0.3(postcss@8.5.6)(svelte@5.35.5)(typescript@5.8.2): dependencies: - svelte: link:../svelte/packages/svelte + svelte: 5.35.5 optionalDependencies: postcss: 8.5.6 typescript: 5.8.2 From de32dfab1a2fe6d064e304a754449e705ffdf89d Mon Sep 17 00:00:00 2001 From: Elliott Johnson Date: Fri, 15 Aug 2025 10:46:20 -0600 Subject: [PATCH 05/11] Update apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md Co-authored-by: Conduitry --- .../blog/2025-08-14-sveltekit-integrated-observability.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md b/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md index 01c52677b7..99d427343e 100644 --- a/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md +++ b/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md @@ -33,7 +33,7 @@ export default { }; ``` -If there are additional attributes you think might be useful, please file an issue on the [SvelteKit Github issue tracker](https://github.com/sveltejs/kit/issues). +If there are additional attributes you think might be useful, please file an issue on the [SvelteKit GitHub issue tracker](https://github.com/sveltejs/kit/issues). ## A convenient home for all of your instrumentation From b58ce46e468a62c2a9fcc53d4bb5465fe1a54a59 Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Fri, 15 Aug 2025 11:18:07 -0600 Subject: [PATCH 06/11] paragraph --- .../blog/2025-08-14-sveltekit-integrated-observability.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md b/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md index 01c52677b7..5abfcc6510 100644 --- a/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md +++ b/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md @@ -5,9 +5,7 @@ author: Elliott Johnson authorURL: https://bsky.app/profile/gruntled.bsky.social --- -"Observability" is one of those buzzwords that is commonly thrown around as something essential to all good apps - -SvelteKit is proud to announce two new experimental features geared towards making observing and debugging your app as easy as possible. +Understanding how your SvelteKit application behaves in production -- from request flows to performance bottlenecks -- is crucial for building reliable user experiences. We're excited to introduce two new experimental features that bring integrated observability directly into SvelteKit: built-in OpenTelemetry tracing and a dedicated instrumentation setup file that ensures your monitoring tools work seamlessly from day one. ## First-party OpenTelemetry traces From a18549f1766738a7a7b7b3566e91cd9bcfd60556 Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Fri, 15 Aug 2025 11:35:06 -0600 Subject: [PATCH 07/11] change file --- ...bility.md => 2025-18-14-sveltekit-integrated-observability.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename apps/svelte.dev/content/blog/{2025-08-14-sveltekit-integrated-observability.md => 2025-18-14-sveltekit-integrated-observability.md} (100%) diff --git a/apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md b/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md similarity index 100% rename from apps/svelte.dev/content/blog/2025-08-14-sveltekit-integrated-observability.md rename to apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md From e0e6616aed46e4ae02bdfd07d8e4112b777b71b3 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 18 Aug 2025 11:56:06 -0400 Subject: [PATCH 08/11] em dashes --- .../blog/2025-18-14-sveltekit-integrated-observability.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md b/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md index 6f13217c19..151e4d87bf 100644 --- a/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md +++ b/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md @@ -5,7 +5,7 @@ author: Elliott Johnson authorURL: https://bsky.app/profile/gruntled.bsky.social --- -Understanding how your SvelteKit application behaves in production -- from request flows to performance bottlenecks -- is crucial for building reliable user experiences. We're excited to introduce two new experimental features that bring integrated observability directly into SvelteKit: built-in OpenTelemetry tracing and a dedicated instrumentation setup file that ensures your monitoring tools work seamlessly from day one. +Understanding how your SvelteKit application behaves in production — from request flows to performance bottlenecks — is crucial for building reliable user experiences. We're excited to introduce two new experimental features that bring integrated observability directly into SvelteKit: built-in OpenTelemetry tracing and a dedicated instrumentation setup file that ensures your monitoring tools work seamlessly from day one. ## First-party OpenTelemetry traces From a0a7c009c5f0142ed744273507cb90b7417d80c6 Mon Sep 17 00:00:00 2001 From: Elliott Johnson Date: Mon, 18 Aug 2025 10:16:18 -0600 Subject: [PATCH 09/11] Apply suggestions from code review Co-authored-by: Rich Harris --- .../blog/2025-18-14-sveltekit-integrated-observability.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md b/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md index 151e4d87bf..11d233e937 100644 --- a/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md +++ b/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md @@ -5,14 +5,14 @@ author: Elliott Johnson authorURL: https://bsky.app/profile/gruntled.bsky.social --- -Understanding how your SvelteKit application behaves in production — from request flows to performance bottlenecks — is crucial for building reliable user experiences. We're excited to introduce two new experimental features that bring integrated observability directly into SvelteKit: built-in OpenTelemetry tracing and a dedicated instrumentation setup file that ensures your monitoring tools work seamlessly from day one. +Understanding how your SvelteKit application behaves in production — from request flows to performance bottlenecks — is crucial for building reliable user experiences. SvelteKit now has first-class support for observability: built-in [OpenTelemetry](https://opentelemetry.io/) tracing, and a dedicated instrumentation setup file that ensures your monitoring tools work seamlessly. ## First-party OpenTelemetry traces SvelteKit can now emit [OpenTelemetry](https://opentelemetry.io) traces for the following: - [`handle`](/docs/kit/hooks#Server-hooks-handle) hook (`handle` functions running in a [`sequence`](/docs/kit/@sveltejs-kit-hooks#sequence) will show up as children of each other and the root handle hook) -- [`load`](/docs/kit/load) functions (includes universal `load` functions when they're run on the server) +- [`load`](/docs/kit/load) functions (includes universal `load` functions when they run on the server) - [Form actions](/docs/kit/form-actions) - [Remote functions](/docs/kit/remote-functions) From 5e13df9e661aa620a401256476d61201371d08ad Mon Sep 17 00:00:00 2001 From: Elliott Johnson Date: Mon, 18 Aug 2025 10:20:11 -0600 Subject: [PATCH 10/11] Apply suggestions from code review Co-authored-by: Rich Harris --- .../blog/2025-18-14-sveltekit-integrated-observability.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md b/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md index 11d233e937..658eadcac5 100644 --- a/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md +++ b/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md @@ -73,13 +73,13 @@ const sdk = new NodeSDK({ sdk.start(); ``` -...and on Vercel, it would look something like this: +If you're deploying to Vercel, it would look something like this: ```ts import { registerOTel } from '@vercel/otel'; registerOTel({ - serviceName: 'test-sveltekit-tracing' + serviceName: 'my-sveltekit-app' }); ``` From 4284efcf77eaacca2f3128762677a11a815787d4 Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Mon, 18 Aug 2025 12:09:48 -0600 Subject: [PATCH 11/11] fixes --- ...8-14-sveltekit-integrated-observability.md | 46 +++++++------------ 1 file changed, 17 insertions(+), 29 deletions(-) diff --git a/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md b/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md index 658eadcac5..55b01b0a42 100644 --- a/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md +++ b/apps/svelte.dev/content/blog/2025-18-14-sveltekit-integrated-observability.md @@ -7,50 +7,38 @@ authorURL: https://bsky.app/profile/gruntled.bsky.social Understanding how your SvelteKit application behaves in production — from request flows to performance bottlenecks — is crucial for building reliable user experiences. SvelteKit now has first-class support for observability: built-in [OpenTelemetry](https://opentelemetry.io/) tracing, and a dedicated instrumentation setup file that ensures your monitoring tools work seamlessly. -## First-party OpenTelemetry traces - -SvelteKit can now emit [OpenTelemetry](https://opentelemetry.io) traces for the following: - -- [`handle`](/docs/kit/hooks#Server-hooks-handle) hook (`handle` functions running in a [`sequence`](/docs/kit/@sveltejs-kit-hooks#sequence) will show up as children of each other and the root handle hook) -- [`load`](/docs/kit/load) functions (includes universal `load` functions when they run on the server) -- [Form actions](/docs/kit/form-actions) -- [Remote functions](/docs/kit/remote-functions) - -To enable trace emission, add the following to `svelte.config.js`: +To opt in, upgrade SvelteKit and your adapter and add the following to your `svelte.config.js`: ```js /// file: svelte.config.js export default { kit: { - +++experimental: { + experimental: { tracing: { server: true + }, + instrumentation: { + server: true } - }+++ + } } }; ``` -If there are additional attributes you think might be useful, please file an issue on the [SvelteKit GitHub issue tracker](https://github.com/sveltejs/kit/issues). +## First-party OpenTelemetry traces -## A convenient home for all of your instrumentation +SvelteKit can now emit [OpenTelemetry](https://opentelemetry.io) traces for the following: -Emitting traces alone is not enough: You also need to collect them and send them somewhere. Under normal circumstances, this can be a bit challenging. Because of the nature of observability instrumentation, it needs to be loaded prior to loading any of the code from your app. To aid in this, SvelteKit now supports a `src/instrumentation.server.ts` file which, assuming your adapter supports it, is guaranteed to be loaded prior to your application code. +- [`handle`](/docs/kit/hooks#Server-hooks-handle) hook (`handle` functions running in a [`sequence`](/docs/kit/@sveltejs-kit-hooks#sequence) will show up as children of each other and the root handle hook) +- [`load`](/docs/kit/load) functions (includes universal `load` functions when they run on the server) +- [Form actions](/docs/kit/form-actions) +- [Remote functions](/docs/kit/remote-functions) -To enable `instrumentation.server.ts`, add the following to your `svelte.config.js`: +The emitted spans include attributes describing the current request, such as `http.route`, and surrounding context, such as the `+page` or `+layout` file associated with a `load` function. If there are additional attributes you think might be useful, please file an issue on the [SvelteKit GitHub issue tracker](https://github.com/sveltejs/kit/issues). -```js -/// file: svelte.config.js -export default { - kit: { - +++experimental: { - instrumentation: { - server: true - } - }+++ - } -}; -``` +## A convenient home for all of your instrumentation + +Emitting traces alone is not enough: You also need to collect them and send them somewhere. Under normal circumstances, this can be a bit challenging. Because of the nature of observability instrumentation, it needs to be loaded prior to loading any of the code from your app. To aid in this, SvelteKit now supports a `src/instrumentation.server.ts` file which, assuming your adapter supports it, is guaranteed to be loaded prior to your application code. In Node, your instrumentation might look something like this: @@ -65,7 +53,7 @@ const { registerOptions } = createAddHookMessageChannel(); register('import-in-the-middle/hook.mjs', import.meta.url, registerOptions); const sdk = new NodeSDK({ - serviceName: 'test-sveltekit-tracing', + serviceName: 'my-sveltekit-app', traceExporter: new OTLPTraceExporter(), instrumentations: [getNodeAutoInstrumentations()] });