From c9a84b17a6fe278e26cc1c766996521b588de46e Mon Sep 17 00:00:00 2001 From: Manuel Serret Date: Fri, 6 Feb 2026 20:27:34 +0100 Subject: [PATCH 1/5] bump svelte --- packages/migrate/package.json | 2 +- .../sv/lib/create/templates/demo/package.json | 2 +- packages/sv/package.json | 2 +- pnpm-lock.yaml | 64 ++----------------- 4 files changed, 7 insertions(+), 63 deletions(-) diff --git a/packages/migrate/package.json b/packages/migrate/package.json index 863a91b01..08e903893 100644 --- a/packages/migrate/package.json +++ b/packages/migrate/package.json @@ -43,7 +43,7 @@ "@types/node": "^20.14.8", "@types/prompts": "^2.4.9", "@types/semver": "^7.7.1", - "svelte": "^5.45.10" + "svelte": "^5.48.0" }, "keywords": [ "migration", diff --git a/packages/sv/lib/create/templates/demo/package.json b/packages/sv/lib/create/templates/demo/package.json index 34430664b..f8d30cb86 100644 --- a/packages/sv/lib/create/templates/demo/package.json +++ b/packages/sv/lib/create/templates/demo/package.json @@ -14,7 +14,7 @@ "@sveltejs/adapter-auto": "^4.0.0", "@sveltejs/kit": "^2.22.0", "@sveltejs/vite-plugin-svelte": "^6.0.0", - "svelte": "^5.25.0", + "svelte": "^5.48.0", "typescript": "^5.3.3", "vite": "^7.0.4" } diff --git a/packages/sv/package.json b/packages/sv/package.json index a2900f4c2..c5b5e1ef9 100644 --- a/packages/sv/package.json +++ b/packages/sv/package.json @@ -52,7 +52,7 @@ "silver-fleece": "^1.2.1", "smol-toml": "^1.5.2", "sucrase": "^3.35.1", - "svelte": "^5.47.1", + "svelte": "^5.48.0", "tar-fs": "^3.1.1", "tiny-glob": "^0.2.9", "tinyexec": "^1.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d1b0b5508..c224a5955 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -109,8 +109,8 @@ importers: specifier: ^7.7.1 version: 7.7.1 svelte: - specifier: ^5.45.10 - version: 5.45.10 + specifier: ^5.48.0 + version: 5.49.1 packages/sv: devDependencies: @@ -169,8 +169,8 @@ importers: specifier: ^3.35.1 version: 3.35.1 svelte: - specifier: ^5.47.1 - version: 5.47.1 + specifier: ^5.48.0 + version: 5.49.1 tar-fs: specifier: ^3.1.1 version: 3.1.1 @@ -1295,9 +1295,6 @@ packages: resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - devalue@5.6.1: - resolution: {integrity: sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==} - devalue@5.6.2: resolution: {integrity: sha512-nPRkjWzzDQlsejL1WVifk5rvcFi/y1onBRxjaFMjZeR9mFpqu2gmAZ9xUB9/IEanEP/vBtGeGganC/GO1fmufg==} @@ -1420,9 +1417,6 @@ packages: resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} - esrap@2.2.1: - resolution: {integrity: sha512-GiYWG34AN/4CUyaWAgunGt0Rxvr1PTMlGC0vvEov/uOQYWne2bpN03Um+k8jT+q3op33mKouP2zeJ6OlM+qeUg==} - esrap@2.2.2: resolution: {integrity: sha512-zA6497ha+qKvoWIK+WM9NAh5ni17sKZKhbS5B3PoYbBvaYHZWoS33zmFybmyqpn07RLUxSmn+RCls2/XF+d0oQ==} @@ -2105,14 +2099,6 @@ packages: svelte: optional: true - svelte@5.45.10: - resolution: {integrity: sha512-GiWXq6akkEN3zVDMQ1BVlRolmks5JkEdzD/67mvXOz6drRfuddT5JwsGZjMGSnsTRv/PjAXX8fqBcOr2g2qc/Q==} - engines: {node: '>=18'} - - svelte@5.47.1: - resolution: {integrity: sha512-MhSWfWEpG5T57z0Oyfk9D1GhAz/KTZKZZlWtGEsy9zNk2fafpuU7sJQlXNSA8HtvwKxVC9XlDyl5YovXUXjjHA==} - engines: {node: '>=18'} - svelte@5.49.1: resolution: {integrity: sha512-jj95WnbKbXsXXngYj28a4zx8jeZx50CN/J4r0CEeax2pbfdsETv/J1K8V9Hbu3DCXnpHz5qAikICuxEooi7eNQ==} engines: {node: '>=18'} @@ -3398,8 +3384,6 @@ snapshots: detect-newline@4.0.1: {} - devalue@5.6.1: {} - devalue@5.6.2: {} dir-glob@3.0.1: @@ -3571,10 +3555,6 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@2.2.1: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - esrap@2.2.2: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -4215,42 +4195,6 @@ snapshots: optionalDependencies: svelte: 5.49.1 - svelte@5.45.10: - dependencies: - '@jridgewell/remapping': 2.3.5 - '@jridgewell/sourcemap-codec': 1.5.5 - '@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0) - '@types/estree': 1.0.8 - acorn: 8.15.0 - aria-query: 5.3.2 - axobject-query: 4.1.0 - clsx: 2.1.1 - devalue: 5.6.1 - esm-env: 1.2.2 - esrap: 2.2.1 - is-reference: 3.0.3 - locate-character: 3.0.0 - magic-string: 0.30.21 - zimmerframe: 1.1.4 - - svelte@5.47.1: - dependencies: - '@jridgewell/remapping': 2.3.5 - '@jridgewell/sourcemap-codec': 1.5.5 - '@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0) - '@types/estree': 1.0.8 - acorn: 8.15.0 - aria-query: 5.3.2 - axobject-query: 4.1.0 - clsx: 2.1.1 - devalue: 5.6.2 - esm-env: 1.2.2 - esrap: 2.2.2 - is-reference: 3.0.3 - locate-character: 3.0.0 - magic-string: 0.30.21 - zimmerframe: 1.1.4 - svelte@5.49.1: dependencies: '@jridgewell/remapping': 2.3.5 From 314319136289e21904f1a0d5d4877931bbb1b158 Mon Sep 17 00:00:00 2001 From: Manuel Serret Date: Fri, 6 Feb 2026 20:28:02 +0100 Subject: [PATCH 2/5] get rid of workaround --- packages/sv/lib/core/tooling/css/index.ts | 6 +++--- packages/sv/lib/core/tooling/index.ts | 14 +++++++++----- packages/sv/lib/core/tooling/parsers.ts | 2 +- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/packages/sv/lib/core/tooling/css/index.ts b/packages/sv/lib/core/tooling/css/index.ts index ec2a3b734..42d58a8d6 100644 --- a/packages/sv/lib/core/tooling/css/index.ts +++ b/packages/sv/lib/core/tooling/css/index.ts @@ -1,7 +1,7 @@ import type { SvelteAst } from '../index.ts'; export function addRule( - node: SvelteAst.CSS.StyleSheet, + node: Omit, options: { selector: string } ): SvelteAst.CSS.Rule { // we do not check for existing rules here, as the selector AST from svelte is really complex @@ -73,7 +73,7 @@ export function addDeclaration( } } -export function addImports(node: SvelteAst.CSS.StyleSheet, options: { imports: string[] }): void { +export function addImports(node: Omit, options: { imports: string[] }): void { let lastImportIndex = -1; // Find the last existing @import to insert after it @@ -113,7 +113,7 @@ export function addImports(node: SvelteAst.CSS.StyleSheet, options: { imports: s } export function addAtRule( - node: SvelteAst.CSS.StyleSheet, + node: Omit, options: { name: string; params: string; append: boolean } ): SvelteAst.CSS.Atrule { const atRules = node.children.filter((x) => x.type === 'Atrule'); diff --git a/packages/sv/lib/core/tooling/index.ts b/packages/sv/lib/core/tooling/index.ts index 7cd4e18a0..46d440529 100644 --- a/packages/sv/lib/core/tooling/index.ts +++ b/packages/sv/lib/core/tooling/index.ts @@ -2,7 +2,12 @@ import { print as esrapPrint } from 'esrap'; import ts from 'esrap/languages/ts'; import type { BaseNode } from 'estree'; import * as fleece from 'silver-fleece'; -import { type AST as SvelteAst, parse as svelteParse, print as sveltePrint } from 'svelte/compiler'; +import { + type AST as SvelteAst, + parse as svelteParse, + print as sveltePrint, + parseCss as svelteParseCss, +} from 'svelte/compiler'; import * as yaml from 'yaml'; import * as toml from 'smol-toml'; import { ensureScript } from './svelte/index.ts'; @@ -62,12 +67,11 @@ export function serializeScript( return code; } -export function parseCss(content: string): SvelteAst.CSS.StyleSheet { - const ast = parseSvelte(``); - return ast.css!; +export function parseCss(content: string): Omit { + return svelteParseCss(content); } -export function serializeCss(ast: SvelteAst.CSS.StyleSheet): string { +export function serializeCss(ast: Omit): string { // `svelte` can print the stylesheet directly. But this adds the style tags (