From 59d05cb1b61ac3f63bf9a3891f557ca60a676a76 Mon Sep 17 00:00:00 2001 From: jycouet Date: Tue, 7 Apr 2026 14:04:39 +0200 Subject: [PATCH] feat(sv): bump all templates to use typescript 6 --- .changeset/petite-areas-yell.md | 5 + package.json | 2 +- packages/migrate/package.json | 2 +- packages/sv/src/addons/drizzle.ts | 18 +++ packages/sv/src/cli/tests/cli.ts | 20 +++ .../tests/snapshots/create-only/package.json | 2 +- .../create-with-all-addons/package.json | 2 +- .../create-with-all-addons/svelte.config.js | 10 +- .../src/create/shared/+checkjs/package.json | 2 +- .../create/shared/+typescript/package.json | 2 +- pnpm-lock.yaml | 122 +++++++++--------- 11 files changed, 119 insertions(+), 68 deletions(-) create mode 100644 .changeset/petite-areas-yell.md diff --git a/.changeset/petite-areas-yell.md b/.changeset/petite-areas-yell.md new file mode 100644 index 000000000..cd4ee6613 --- /dev/null +++ b/.changeset/petite-areas-yell.md @@ -0,0 +1,5 @@ +--- +'sv': patch +--- + +feat(sv): bump all templates to use typescript 6 diff --git a/package.json b/package.json index b9d98b03c..fddd6a550 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "sv": "workspace:*", "svelte": "^5.53.0", "tsdown": "^0.21.4", - "typescript": "^5.9.3", + "typescript": "^6.0.0", "typescript-eslint": "^8.57.0", "vitest": "4.1.0" }, diff --git a/packages/migrate/package.json b/packages/migrate/package.json index 9a136a460..30e45db6c 100644 --- a/packages/migrate/package.json +++ b/packages/migrate/package.json @@ -36,7 +36,7 @@ "semver": "^7.7.3", "tiny-glob": "^0.2.9", "ts-morph": "^24.0.0", - "typescript": "^5.9.3", + "typescript": "^6.0.0", "zimmerframe": "^1.1.4" }, "devDependencies": { diff --git a/packages/sv/src/addons/drizzle.ts b/packages/sv/src/addons/drizzle.ts index b710343b1..0dd218247 100644 --- a/packages/sv/src/addons/drizzle.ts +++ b/packages/sv/src/addons/drizzle.ts @@ -301,6 +301,24 @@ export default defineAddon({ }) ); + sv.file( + file.svelteConfig, + transforms.script(({ ast, js }) => { + const { value: config } = js.exports.createDefault(ast, { + fallback: js.object.create({}) + }); + js.object.overrideProperties(config, { + kit: { + typescript: { + config: js.common.parseExpression( + `(config) => ({ ...config, include: [...config.include, '../drizzle.config.${language}'] })` + ) + } + } + }); + }) + ); + sv.file( paths['database schema'], transforms.script(({ ast, js }) => { diff --git a/packages/sv/src/cli/tests/cli.ts b/packages/sv/src/cli/tests/cli.ts index f801dd534..ac743b2a0 100644 --- a/packages/sv/src/cli/tests/cli.ts +++ b/packages/sv/src/cli/tests/cli.ts @@ -1,6 +1,7 @@ import { parse } from '@sveltejs/sv-utils'; import fs from 'node:fs'; import path from 'node:path'; +import process from 'node:process'; import { exec } from 'tinyexec'; import { beforeAll, describe, expect, it } from 'vitest'; @@ -119,6 +120,25 @@ describe('cli', () => { ); } + if (projectName === 'create-with-all-addons' && process.platform !== 'win32') { + await exec('pnpm', ['install', '--no-frozen-lockfile'], { + nodeOptions: { stdio: 'pipe', cwd: testOutputPath } + }); + await exec('pnpm', ['build'], { + nodeOptions: { stdio: 'pipe', cwd: testOutputPath } + }); + await exec('pnpm', ['auth:schema'], { + nodeOptions: { stdio: 'pipe', cwd: testOutputPath } + }); + const check = await exec('pnpm', ['check'], { + nodeOptions: { stdio: 'pipe', cwd: testOutputPath } + }); + expect( + check.exitCode, + `svelte-check failed:\n stdout: ${check.stdout}\n stderr: ${check.stderr}` + ).toBe(0); + } + if (template === 'addon') { // replace sv and sv-utils versions in package.json for tests const packageJsonPath = path.resolve(testOutputPath, 'package.json'); diff --git a/packages/sv/src/cli/tests/snapshots/create-only/package.json b/packages/sv/src/cli/tests/snapshots/create-only/package.json index 7272273b5..6462a3edf 100644 --- a/packages/sv/src/cli/tests/snapshots/create-only/package.json +++ b/packages/sv/src/cli/tests/snapshots/create-only/package.json @@ -17,7 +17,7 @@ "@sveltejs/vite-plugin-svelte": "^6.2.4", "svelte": "^5.54.0", "svelte-check": "^4.4.2", - "typescript": "^5.9.3", + "typescript": "^6.0.0", "vite": "^7.3.1" } } diff --git a/packages/sv/src/cli/tests/snapshots/create-with-all-addons/package.json b/packages/sv/src/cli/tests/snapshots/create-with-all-addons/package.json index f30915e72..e59cb1401 100644 --- a/packages/sv/src/cli/tests/snapshots/create-with-all-addons/package.json +++ b/packages/sv/src/cli/tests/snapshots/create-with-all-addons/package.json @@ -50,7 +50,7 @@ "svelte": "^5.54.0", "svelte-check": "^4.4.2", "tailwindcss": "^4.1.18", - "typescript": "^5.9.3", + "typescript": "^6.0.0", "typescript-eslint": "^8.57.0", "vite": "^7.3.1", "vite-plugin-devtools-json": "^1.0.0", diff --git a/packages/sv/src/cli/tests/snapshots/create-with-all-addons/svelte.config.js b/packages/sv/src/cli/tests/snapshots/create-with-all-addons/svelte.config.js index 6479320f8..b3fc28efa 100644 --- a/packages/sv/src/cli/tests/snapshots/create-with-all-addons/svelte.config.js +++ b/packages/sv/src/cli/tests/snapshots/create-with-all-addons/svelte.config.js @@ -7,7 +7,15 @@ const config = { // Force runes mode for the project, except for libraries. Can be removed in svelte 6. runes: ({ filename }) => filename.split(/[/\\]/).includes('node_modules') ? undefined : true }, - kit: { adapter: adapter() }, + kit: { + adapter: adapter(), + typescript: { + config: (config) => ({ + ...config, + include: [...config.include, '../drizzle.config.ts'] + }) + } + }, preprocess: [mdsvex({ extensions: ['.svx', '.md'] })], extensions: ['.svelte', '.svx', '.md'] }; diff --git a/packages/sv/src/create/shared/+checkjs/package.json b/packages/sv/src/create/shared/+checkjs/package.json index a9c412978..930b0f5a2 100644 --- a/packages/sv/src/create/shared/+checkjs/package.json +++ b/packages/sv/src/create/shared/+checkjs/package.json @@ -5,6 +5,6 @@ }, "devDependencies": { "svelte-check": "^4.4.2", - "typescript": "^5.9.3" + "typescript": "^6.0.0" } } diff --git a/packages/sv/src/create/shared/+typescript/package.json b/packages/sv/src/create/shared/+typescript/package.json index 061d3320d..fcf25fa3a 100644 --- a/packages/sv/src/create/shared/+typescript/package.json +++ b/packages/sv/src/create/shared/+typescript/package.json @@ -5,6 +5,6 @@ }, "devDependencies": { "svelte-check": "^4.4.2", - "typescript": "^5.9.3" + "typescript": "^6.0.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7dce281eb..7d14b90c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: version: 1.58.2 '@sveltejs/eslint-config': specifier: ^9.0.0 - version: 9.0.0(@eslint/js@10.0.1(eslint@10.1.0))(@stylistic/eslint-plugin-js@4.4.1(eslint@10.1.0))(eslint-config-prettier@10.1.8(eslint@10.1.0))(eslint-plugin-n@17.24.0(eslint@10.1.0)(typescript@5.9.3))(eslint-plugin-svelte@3.15.2(eslint@10.1.0)(svelte@5.54.0))(eslint@10.1.0)(typescript-eslint@8.57.1(eslint@10.1.0)(typescript@5.9.3))(typescript@5.9.3) + version: 9.0.0(@eslint/js@10.0.1(eslint@10.1.0))(@stylistic/eslint-plugin-js@4.4.1(eslint@10.1.0))(eslint-config-prettier@10.1.8(eslint@10.1.0))(eslint-plugin-n@17.24.0(eslint@10.1.0)(typescript@6.0.2))(eslint-plugin-svelte@3.15.2(eslint@10.1.0)(svelte@5.54.0))(eslint@10.1.0)(typescript-eslint@8.57.1(eslint@10.1.0)(typescript@6.0.2))(typescript@6.0.2) '@svitejs/changesets-changelog-github-compact': specifier: ^1.2.0 version: 1.2.0 @@ -58,13 +58,13 @@ importers: version: 5.54.0 tsdown: specifier: ^0.21.4 - version: 0.21.4(@typescript/native-preview@7.0.0-dev.20251212.1)(typescript@5.9.3) + version: 0.21.4(@typescript/native-preview@7.0.0-dev.20251212.1)(typescript@6.0.2) typescript: - specifier: ^5.9.3 - version: 5.9.3 + specifier: ^6.0.0 + version: 6.0.2 typescript-eslint: specifier: ^8.57.0 - version: 8.57.1(eslint@10.1.0)(typescript@5.9.3) + version: 8.57.1(eslint@10.1.0)(typescript@6.0.2) vitest: specifier: 4.1.0 version: 4.1.0(@types/node@20.19.37)(@vitest/ui@4.1.0)(vite@8.0.1(@types/node@20.19.37)(yaml@2.8.2)) @@ -96,8 +96,8 @@ importers: specifier: ^24.0.0 version: 24.0.0 typescript: - specifier: ^5.9.3 - version: 5.9.3 + specifier: ^6.0.0 + version: 6.0.2 zimmerframe: specifier: ^1.1.4 version: 1.1.4 @@ -165,7 +165,7 @@ importers: version: 1.0.4 valibot: specifier: ^1.2.0 - version: 1.3.1(typescript@5.9.3) + version: 1.3.1(typescript@6.0.2) packages/sv-utils: devDependencies: @@ -2081,8 +2081,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + typescript@6.0.2: + resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==} engines: {node: '>=14.17'} hasBin: true @@ -2728,17 +2728,17 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/eslint-config@9.0.0(@eslint/js@10.0.1(eslint@10.1.0))(@stylistic/eslint-plugin-js@4.4.1(eslint@10.1.0))(eslint-config-prettier@10.1.8(eslint@10.1.0))(eslint-plugin-n@17.24.0(eslint@10.1.0)(typescript@5.9.3))(eslint-plugin-svelte@3.15.2(eslint@10.1.0)(svelte@5.54.0))(eslint@10.1.0)(typescript-eslint@8.57.1(eslint@10.1.0)(typescript@5.9.3))(typescript@5.9.3)': + '@sveltejs/eslint-config@9.0.0(@eslint/js@10.0.1(eslint@10.1.0))(@stylistic/eslint-plugin-js@4.4.1(eslint@10.1.0))(eslint-config-prettier@10.1.8(eslint@10.1.0))(eslint-plugin-n@17.24.0(eslint@10.1.0)(typescript@6.0.2))(eslint-plugin-svelte@3.15.2(eslint@10.1.0)(svelte@5.54.0))(eslint@10.1.0)(typescript-eslint@8.57.1(eslint@10.1.0)(typescript@6.0.2))(typescript@6.0.2)': dependencies: '@eslint/js': 10.0.1(eslint@10.1.0) '@stylistic/eslint-plugin-js': 4.4.1(eslint@10.1.0) eslint: 10.1.0 eslint-config-prettier: 10.1.8(eslint@10.1.0) - eslint-plugin-n: 17.24.0(eslint@10.1.0)(typescript@5.9.3) + eslint-plugin-n: 17.24.0(eslint@10.1.0)(typescript@6.0.2) eslint-plugin-svelte: 3.15.2(eslint@10.1.0)(svelte@5.54.0) globals: 17.4.0 - typescript: 5.9.3 - typescript-eslint: 8.57.1(eslint@10.1.0)(typescript@5.9.3) + typescript: 6.0.2 + typescript-eslint: 8.57.1(eslint@10.1.0)(typescript@6.0.2) '@svitejs/changesets-changelog-github-compact@1.2.0': dependencies: @@ -2818,40 +2818,40 @@ snapshots: '@types/trusted-types@2.0.7': {} - '@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.1.0)(typescript@5.9.3))(eslint@10.1.0)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.1.0)(typescript@6.0.2))(eslint@10.1.0)(typescript@6.0.2)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.57.1(eslint@10.1.0)(typescript@5.9.3) + '@typescript-eslint/parser': 8.57.1(eslint@10.1.0)(typescript@6.0.2) '@typescript-eslint/scope-manager': 8.57.1 - '@typescript-eslint/type-utils': 8.57.1(eslint@10.1.0)(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.1(eslint@10.1.0)(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.57.1(eslint@10.1.0)(typescript@6.0.2) + '@typescript-eslint/utils': 8.57.1(eslint@10.1.0)(typescript@6.0.2) '@typescript-eslint/visitor-keys': 8.57.1 eslint: 10.1.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 + ts-api-utils: 2.5.0(typescript@6.0.2) + typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.57.1(eslint@10.1.0)(typescript@5.9.3)': + '@typescript-eslint/parser@8.57.1(eslint@10.1.0)(typescript@6.0.2)': dependencies: '@typescript-eslint/scope-manager': 8.57.1 '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.57.1(typescript@6.0.2) '@typescript-eslint/visitor-keys': 8.57.1 debug: 4.4.3 eslint: 10.1.0 - typescript: 5.9.3 + typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.57.1(typescript@5.9.3)': + '@typescript-eslint/project-service@8.57.1(typescript@6.0.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@6.0.2) '@typescript-eslint/types': 8.57.1 debug: 4.4.3 - typescript: 5.9.3 + typescript: 6.0.2 transitivePeerDependencies: - supports-color @@ -2860,47 +2860,47 @@ snapshots: '@typescript-eslint/types': 8.57.1 '@typescript-eslint/visitor-keys': 8.57.1 - '@typescript-eslint/tsconfig-utils@8.57.1(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.57.1(typescript@6.0.2)': dependencies: - typescript: 5.9.3 + typescript: 6.0.2 - '@typescript-eslint/type-utils@8.57.1(eslint@10.1.0)(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.57.1(eslint@10.1.0)(typescript@6.0.2)': dependencies: '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.1(eslint@10.1.0)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.57.1(typescript@6.0.2) + '@typescript-eslint/utils': 8.57.1(eslint@10.1.0)(typescript@6.0.2) debug: 4.4.3 eslint: 10.1.0 - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 + ts-api-utils: 2.5.0(typescript@6.0.2) + typescript: 6.0.2 transitivePeerDependencies: - supports-color '@typescript-eslint/types@8.57.1': {} - '@typescript-eslint/typescript-estree@8.57.1(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.57.1(typescript@6.0.2)': dependencies: - '@typescript-eslint/project-service': 8.57.1(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3) + '@typescript-eslint/project-service': 8.57.1(typescript@6.0.2) + '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@6.0.2) '@typescript-eslint/types': 8.57.1 '@typescript-eslint/visitor-keys': 8.57.1 debug: 4.4.3 minimatch: 10.2.4 semver: 7.7.4 tinyglobby: 0.2.15 - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 + ts-api-utils: 2.5.0(typescript@6.0.2) + typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.57.1(eslint@10.1.0)(typescript@5.9.3)': + '@typescript-eslint/utils@8.57.1(eslint@10.1.0)(typescript@6.0.2)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0) '@typescript-eslint/scope-manager': 8.57.1 '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.57.1(typescript@6.0.2) eslint: 10.1.0 - typescript: 5.9.3 + typescript: 6.0.2 transitivePeerDependencies: - supports-color @@ -3186,7 +3186,7 @@ snapshots: eslint: 10.1.0 eslint-compat-utils: 0.5.1(eslint@10.1.0) - eslint-plugin-n@17.24.0(eslint@10.1.0)(typescript@5.9.3): + eslint-plugin-n@17.24.0(eslint@10.1.0)(typescript@6.0.2): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0) enhanced-resolve: 5.20.1 @@ -3197,7 +3197,7 @@ snapshots: globrex: 0.1.2 ignore: 5.3.2 semver: 7.7.4 - ts-declaration-location: 1.0.7(typescript@5.9.3) + ts-declaration-location: 1.0.7(typescript@6.0.2) transitivePeerDependencies: - typescript @@ -3785,7 +3785,7 @@ snapshots: reusify@1.1.0: {} - rolldown-plugin-dts@0.22.5(@typescript/native-preview@7.0.0-dev.20251212.1)(rolldown@1.0.0-rc.9)(typescript@5.9.3): + rolldown-plugin-dts@0.22.5(@typescript/native-preview@7.0.0-dev.20251212.1)(rolldown@1.0.0-rc.9)(typescript@6.0.2): dependencies: '@babel/generator': 8.0.0-rc.2 '@babel/helper-validator-identifier': 8.0.0-rc.2 @@ -3799,7 +3799,7 @@ snapshots: rolldown: 1.0.0-rc.9 optionalDependencies: '@typescript/native-preview': 7.0.0-dev.20251212.1 - typescript: 5.9.3 + typescript: 6.0.2 transitivePeerDependencies: - oxc-resolver @@ -4042,14 +4042,14 @@ snapshots: tree-kill@1.2.2: {} - ts-api-utils@2.5.0(typescript@5.9.3): + ts-api-utils@2.5.0(typescript@6.0.2): dependencies: - typescript: 5.9.3 + typescript: 6.0.2 - ts-declaration-location@1.0.7(typescript@5.9.3): + ts-declaration-location@1.0.7(typescript@6.0.2): dependencies: picomatch: 4.0.3 - typescript: 5.9.3 + typescript: 6.0.2 ts-interface-checker@0.1.13: {} @@ -4058,7 +4058,7 @@ snapshots: '@ts-morph/common': 0.25.0 code-block-writer: 13.0.3 - tsdown@0.21.4(@typescript/native-preview@7.0.0-dev.20251212.1)(typescript@5.9.3): + tsdown@0.21.4(@typescript/native-preview@7.0.0-dev.20251212.1)(typescript@6.0.2): dependencies: ansis: 4.2.0 cac: 7.0.0 @@ -4069,7 +4069,7 @@ snapshots: obug: 2.1.1 picomatch: 4.0.3 rolldown: 1.0.0-rc.9 - rolldown-plugin-dts: 0.22.5(@typescript/native-preview@7.0.0-dev.20251212.1)(rolldown@1.0.0-rc.9)(typescript@5.9.3) + rolldown-plugin-dts: 0.22.5(@typescript/native-preview@7.0.0-dev.20251212.1)(rolldown@1.0.0-rc.9)(typescript@6.0.2) semver: 7.7.4 tinyexec: 1.0.4 tinyglobby: 0.2.15 @@ -4077,7 +4077,7 @@ snapshots: unconfig-core: 7.5.0 unrun: 0.2.32 optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.2 transitivePeerDependencies: - '@ts-macro/tsc' - '@typescript/native-preview' @@ -4092,18 +4092,18 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.57.1(eslint@10.1.0)(typescript@5.9.3): + typescript-eslint@8.57.1(eslint@10.1.0)(typescript@6.0.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.1.0)(typescript@5.9.3))(eslint@10.1.0)(typescript@5.9.3) - '@typescript-eslint/parser': 8.57.1(eslint@10.1.0)(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.1(eslint@10.1.0)(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.1.0)(typescript@6.0.2))(eslint@10.1.0)(typescript@6.0.2) + '@typescript-eslint/parser': 8.57.1(eslint@10.1.0)(typescript@6.0.2) + '@typescript-eslint/typescript-estree': 8.57.1(typescript@6.0.2) + '@typescript-eslint/utils': 8.57.1(eslint@10.1.0)(typescript@6.0.2) eslint: 10.1.0 - typescript: 5.9.3 + typescript: 6.0.2 transitivePeerDependencies: - supports-color - typescript@5.9.3: {} + typescript@6.0.2: {} unconfig-core@7.5.0: dependencies: @@ -4124,9 +4124,9 @@ snapshots: util-deprecate@1.0.2: {} - valibot@1.3.1(typescript@5.9.3): + valibot@1.3.1(typescript@6.0.2): optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.2 vite@8.0.1(@types/node@20.19.37)(yaml@2.8.2): dependencies: