From c66581b96160509150f3f4b362365362d50c41f9 Mon Sep 17 00:00:00 2001 From: jycouet Date: Tue, 23 Sep 2025 22:04:21 +0200 Subject: [PATCH 1/5] rename file --- scripts/{update-addon-dependencies.js => update-dependencies.js} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename scripts/{update-addon-dependencies.js => update-dependencies.js} (100%) diff --git a/scripts/update-addon-dependencies.js b/scripts/update-dependencies.js similarity index 100% rename from scripts/update-addon-dependencies.js rename to scripts/update-dependencies.js From 16dc7c90270b22a23d5fb44900305d644ec16232 Mon Sep 17 00:00:00 2001 From: jycouet Date: Tue, 23 Sep 2025 22:11:58 +0200 Subject: [PATCH 2/5] update script --- package.json | 2 +- scripts/update-dependencies.js | 82 ++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 82cbc963e..cddfeada0 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "lint": "pnpm --parallel lint && eslint --cache --cache-location node_modules/.eslintcache", "test": "vitest run --silent", "test:ui": "vitest --ui", - "update-addon-deps": "node ./scripts/update-addon-dependencies.js" + "update-deps": "node ./scripts/update-dependencies.js" }, "devDependencies": { "@changesets/cli": "^2.29.4", diff --git a/scripts/update-dependencies.js b/scripts/update-dependencies.js index 3396bf9a1..8061a7a2d 100644 --- a/scripts/update-dependencies.js +++ b/scripts/update-dependencies.js @@ -54,6 +54,82 @@ async function replaceDeps(content, matches) { return content; } +/** + * @param {string} basePath + * @param {string} fileName + * @param {string} type + */ +async function updatePackageFiles(basePath, fileName, type) { + const fullBasePath = path.resolve(basePath); + const folders = fs + .readdirSync(fullBasePath, { withFileTypes: true }) + .filter((item) => item.isDirectory()) + .map((item) => item.name); + + for (const folder of folders) { + const filePath = path.join(fullBasePath, folder, fileName); + if (!fs.existsSync(filePath)) continue; + + console.log(`Checking deps for ${styleText(['cyanBright', 'bold'], folder)} ${type}`); + + const content = fs.readFileSync(filePath, { encoding: 'utf8' }); + const packageJson = JSON.parse(content); + + let hasUpdates = false; + + // Check dependencies + if (packageJson.dependencies) { + for (const [packageName, currentVersion] of Object.entries(packageJson.dependencies)) { + // Skip if version doesn't start with ^ (not a caret range) + if (!currentVersion.startsWith('^')) continue; + + const latestVersion = await getLatestVersion(packageName); + const newVersion = `^${latestVersion}`; + + if (currentVersion !== newVersion) { + packageJson.dependencies[packageName] = newVersion; + hasUpdates = true; + console.log( + ` - ${styleText('blue', packageName + ':').padEnd(40)} ${styleText('red', currentVersion.padEnd(7))} -> ${styleText('green', newVersion)} (dependency)` + ); + } + } + } + + // Check devDependencies + if (packageJson.devDependencies) { + for (const [packageName, currentVersion] of Object.entries(packageJson.devDependencies)) { + // Skip if version doesn't start with ^ (not a caret range) + if (!currentVersion.startsWith('^')) continue; + + const latestVersion = await getLatestVersion(packageName); + const newVersion = `^${latestVersion}`; + + if (currentVersion !== newVersion) { + packageJson.devDependencies[packageName] = newVersion; + hasUpdates = true; + console.log( + ` - ${styleText('blue', packageName + ':').padEnd(40)} ${styleText('red', currentVersion.padEnd(7))} -> ${styleText('green', newVersion)} (devDependency)` + ); + } + } + } + + if (!packageJson.dependencies && !packageJson.devDependencies) { + console.log(` - No dependencies or devDependencies found in ${folder}`); + continue; + } + + if (hasUpdates) { + // Write back the updated package.json with proper formatting + const updatedContent = JSON.stringify(packageJson, null, '\t') + '\n'; + fs.writeFileSync(filePath, updatedContent); + } else { + console.log(` - All dependencies are up to date`); + } + } +} + /** * Gets the latest version of given package from the npm registry * @param {string} name @@ -66,3 +142,9 @@ async function getLatestVersion(name) { } await updateAddonDependencies(); + +// Update template package.template.json files +await updatePackageFiles('packages/create/templates', 'package.template.json', 'template'); + +// Update shared package.json files +await updatePackageFiles('packages/create/shared', 'package.json', 'shared'); From 67a0cf3f3ece32e62397c3e33f9638cd97c2ffa5 Mon Sep 17 00:00:00 2001 From: jycouet Date: Tue, 23 Sep 2025 22:24:50 +0200 Subject: [PATCH 3/5] scripts --- package.json | 2 +- scripts/update-dependencies.js | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/package.json b/package.json index cddfeada0..6a5df7f3d 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "lint": "pnpm --parallel lint && eslint --cache --cache-location node_modules/.eslintcache", "test": "vitest run --silent", "test:ui": "vitest --ui", - "update-deps": "node ./scripts/update-dependencies.js" + "update-deps": "node ./scripts/update-dependencies.js && pnpm format" }, "devDependencies": { "@changesets/cli": "^2.29.4", diff --git a/scripts/update-dependencies.js b/scripts/update-dependencies.js index 8061a7a2d..e558a5677 100644 --- a/scripts/update-dependencies.js +++ b/scripts/update-dependencies.js @@ -124,8 +124,6 @@ async function updatePackageFiles(basePath, fileName, type) { // Write back the updated package.json with proper formatting const updatedContent = JSON.stringify(packageJson, null, '\t') + '\n'; fs.writeFileSync(filePath, updatedContent); - } else { - console.log(` - All dependencies are up to date`); } } } From 7390f7ba1c01b6bf229045d42ef7d7b8a282d64f Mon Sep 17 00:00:00 2001 From: jycouet Date: Tue, 23 Sep 2025 22:24:56 +0200 Subject: [PATCH 4/5] doing the update --- packages/addons/drizzle/index.ts | 16 ++++++++-------- packages/addons/eslint/index.ts | 14 +++++++------- packages/addons/mdsvex/index.ts | 2 +- packages/addons/paraglide/index.ts | 2 +- packages/addons/playwright/index.ts | 2 +- packages/addons/prettier/index.ts | 6 +++--- packages/addons/sveltekit-adapter/index.ts | 12 ++++++------ packages/addons/tailwindcss/index.ts | 10 +++++----- packages/addons/vitest-addon/index.ts | 8 ++++---- packages/create/shared/+checkjs/package.json | 4 ++-- packages/create/shared/+typescript/package.json | 4 ++-- .../create/templates/demo/package.template.json | 14 +++++++------- .../templates/library/package.template.json | 16 ++++++++-------- .../templates/minimal/package.template.json | 10 +++++----- 14 files changed, 60 insertions(+), 60 deletions(-) diff --git a/packages/addons/drizzle/index.ts b/packages/addons/drizzle/index.ts index cdd44c3de..0fa7cdde7 100644 --- a/packages/addons/drizzle/index.ts +++ b/packages/addons/drizzle/index.ts @@ -97,27 +97,27 @@ export default defineAddon({ run: ({ sv, typescript, options, kit, dependencyVersion }) => { const ext = typescript ? 'ts' : 'js'; - sv.devDependency('drizzle-orm', '^0.40.0'); - sv.devDependency('drizzle-kit', '^0.30.2'); + sv.devDependency('drizzle-orm', '^0.44.5'); + sv.devDependency('drizzle-kit', '^0.31.4'); sv.devDependency('@types/node', getNodeTypesVersion()); // MySQL - if (options.mysql === 'mysql2') sv.dependency('mysql2', '^3.12.0'); + if (options.mysql === 'mysql2') sv.dependency('mysql2', '^3.15.0'); if (options.mysql === 'planetscale') sv.dependency('@planetscale/database', '^1.19.0'); // PostgreSQL - if (options.postgresql === 'neon') sv.dependency('@neondatabase/serverless', '^0.10.4'); - if (options.postgresql === 'postgres.js') sv.dependency('postgres', '^3.4.5'); + if (options.postgresql === 'neon') sv.dependency('@neondatabase/serverless', '^1.0.1'); + if (options.postgresql === 'postgres.js') sv.dependency('postgres', '^3.4.7'); // SQLite if (options.sqlite === 'better-sqlite3') { - sv.dependency('better-sqlite3', '^11.8.0'); - sv.devDependency('@types/better-sqlite3', '^7.6.12'); + sv.dependency('better-sqlite3', '^12.4.1'); + sv.devDependency('@types/better-sqlite3', '^7.6.13'); sv.pnpmBuildDependency('better-sqlite3'); } if (options.sqlite === 'libsql' || options.sqlite === 'turso') - sv.devDependency('@libsql/client', '^0.14.0'); + sv.devDependency('@libsql/client', '^0.15.15'); sv.file('.env', (content) => generateEnvFileContent(content, options)); sv.file('.env.example', (content) => generateEnvFileContent(content, options)); diff --git a/packages/addons/eslint/index.ts b/packages/addons/eslint/index.ts index 7d8ab02b5..2b544901a 100644 --- a/packages/addons/eslint/index.ts +++ b/packages/addons/eslint/index.ts @@ -20,16 +20,16 @@ export default defineAddon({ run: ({ sv, typescript, dependencyVersion }) => { const prettierInstalled = Boolean(dependencyVersion('prettier')); - sv.devDependency('eslint', '^9.22.0'); - sv.devDependency('@eslint/compat', '^1.2.5'); - sv.devDependency('eslint-plugin-svelte', '^3.0.0'); - sv.devDependency('globals', '^16.0.0'); - sv.devDependency('@eslint/js', '^9.22.0'); + sv.devDependency('eslint', '^9.36.0'); + sv.devDependency('@eslint/compat', '^1.4.0'); + sv.devDependency('eslint-plugin-svelte', '^3.12.4'); + sv.devDependency('globals', '^16.4.0'); + sv.devDependency('@eslint/js', '^9.36.0'); sv.devDependency('@types/node', getNodeTypesVersion()); - if (typescript) sv.devDependency('typescript-eslint', '^8.20.0'); + if (typescript) sv.devDependency('typescript-eslint', '^8.44.1'); - if (prettierInstalled) sv.devDependency('eslint-config-prettier', '^10.0.1'); + if (prettierInstalled) sv.devDependency('eslint-config-prettier', '^10.1.8'); sv.file('package.json', (content) => { const { data, generateCode } = parseJson(content); diff --git a/packages/addons/mdsvex/index.ts b/packages/addons/mdsvex/index.ts index 4831c426c..b82ad81ff 100644 --- a/packages/addons/mdsvex/index.ts +++ b/packages/addons/mdsvex/index.ts @@ -8,7 +8,7 @@ export default defineAddon({ homepage: 'https://mdsvex.pngwn.io', options: {}, run: ({ sv }) => { - sv.devDependency('mdsvex', '^0.12.3'); + sv.devDependency('mdsvex', '^0.12.6'); sv.file('svelte.config.js', (content) => { const { ast, generateCode } = parseScript(content); diff --git a/packages/addons/paraglide/index.ts b/packages/addons/paraglide/index.ts index 65782c223..41fdbbd4f 100644 --- a/packages/addons/paraglide/index.ts +++ b/packages/addons/paraglide/index.ts @@ -61,7 +61,7 @@ export default defineAddon({ const paraglideOutDir = 'src/lib/paraglide'; - sv.devDependency('@inlang/paraglide-js', '^2.0.0'); + sv.devDependency('@inlang/paraglide-js', '^2.3.2'); sv.file('project.inlang/settings.json', (content) => { if (content) return content; diff --git a/packages/addons/playwright/index.ts b/packages/addons/playwright/index.ts index 7930b2fdf..69b2cc736 100644 --- a/packages/addons/playwright/index.ts +++ b/packages/addons/playwright/index.ts @@ -10,7 +10,7 @@ export default defineAddon({ run: ({ sv, typescript }) => { const ext = typescript ? 'ts' : 'js'; - sv.devDependency('@playwright/test', '^1.49.1'); + sv.devDependency('@playwright/test', '^1.55.1'); sv.file('package.json', (content) => { const { data, generateCode } = parseJson(content); diff --git a/packages/addons/prettier/index.ts b/packages/addons/prettier/index.ts index 21e6cb205..19fb47869 100644 --- a/packages/addons/prettier/index.ts +++ b/packages/addons/prettier/index.ts @@ -8,8 +8,8 @@ export default defineAddon({ homepage: 'https://prettier.io', options: {}, run: ({ sv, dependencyVersion }) => { - sv.devDependency('prettier', '^3.4.2'); - sv.devDependency('prettier-plugin-svelte', '^3.3.3'); + sv.devDependency('prettier', '^3.6.2'); + sv.devDependency('prettier-plugin-svelte', '^3.4.0'); sv.file('.prettierignore', (content) => { if (content) return content; @@ -90,7 +90,7 @@ export default defineAddon({ } if (eslintInstalled) { - sv.devDependency('eslint-config-prettier', '^10.0.1'); + sv.devDependency('eslint-config-prettier', '^10.1.8'); sv.file('eslint.config.js', addEslintConfigPrettier); } } diff --git a/packages/addons/sveltekit-adapter/index.ts b/packages/addons/sveltekit-adapter/index.ts index c4d9e8b6b..2452bbf48 100644 --- a/packages/addons/sveltekit-adapter/index.ts +++ b/packages/addons/sveltekit-adapter/index.ts @@ -3,12 +3,12 @@ import { exports, functions, imports, object } from '@sveltejs/cli-core/js'; import { parseJson, parseScript } from '@sveltejs/cli-core/parsers'; const adapters = [ - { id: 'auto', package: '@sveltejs/adapter-auto', version: '^6.0.0' }, - { id: 'node', package: '@sveltejs/adapter-node', version: '^5.2.12' }, - { id: 'static', package: '@sveltejs/adapter-static', version: '^3.0.8' }, - { id: 'vercel', package: '@sveltejs/adapter-vercel', version: '^5.6.3' }, - { id: 'cloudflare', package: '@sveltejs/adapter-cloudflare', version: '^7.0.0' }, - { id: 'netlify', package: '@sveltejs/adapter-netlify', version: '^5.0.0' } + { id: 'auto', package: '@sveltejs/adapter-auto', version: '^6.1.0' }, + { id: 'node', package: '@sveltejs/adapter-node', version: '^5.3.2' }, + { id: 'static', package: '@sveltejs/adapter-static', version: '^3.0.9' }, + { id: 'vercel', package: '@sveltejs/adapter-vercel', version: '^5.10.2' }, + { id: 'cloudflare', package: '@sveltejs/adapter-cloudflare', version: '^7.2.3' }, + { id: 'netlify', package: '@sveltejs/adapter-netlify', version: '^5.2.3' } ] as const; const options = defineAddonOptions() diff --git a/packages/addons/tailwindcss/index.ts b/packages/addons/tailwindcss/index.ts index 022d8d815..1b3c621f7 100644 --- a/packages/addons/tailwindcss/index.ts +++ b/packages/addons/tailwindcss/index.ts @@ -7,12 +7,12 @@ const plugins = [ { id: 'typography', package: '@tailwindcss/typography', - version: '^0.5.15' + version: '^0.5.18' }, { id: 'forms', package: '@tailwindcss/forms', - version: '^0.5.9' + version: '^0.5.10' } ] as const; @@ -35,10 +35,10 @@ export default defineAddon({ run: ({ sv, options, viteConfigFile, typescript, kit, dependencyVersion }) => { const prettierInstalled = Boolean(dependencyVersion('prettier')); - sv.devDependency('tailwindcss', '^4.0.0'); - sv.devDependency('@tailwindcss/vite', '^4.0.0'); + sv.devDependency('tailwindcss', '^4.1.13'); + sv.devDependency('@tailwindcss/vite', '^4.1.13'); - if (prettierInstalled) sv.devDependency('prettier-plugin-tailwindcss', '^0.6.11'); + if (prettierInstalled) sv.devDependency('prettier-plugin-tailwindcss', '^0.6.14'); for (const plugin of plugins) { if (!options.plugins.includes(plugin.id)) continue; diff --git a/packages/addons/vitest-addon/index.ts b/packages/addons/vitest-addon/index.ts index 07180a677..d66d62549 100644 --- a/packages/addons/vitest-addon/index.ts +++ b/packages/addons/vitest-addon/index.ts @@ -25,12 +25,12 @@ export default defineAddon({ const unitTesting = options.usages.includes('unit'); const componentTesting = options.usages.includes('component'); - sv.devDependency('vitest', '^3.2.3'); + sv.devDependency('vitest', '^3.2.4'); if (componentTesting) { - sv.devDependency('@vitest/browser', '^3.2.3'); - sv.devDependency('vitest-browser-svelte', '^0.1.0'); - sv.devDependency('playwright', '^1.53.0'); + sv.devDependency('@vitest/browser', '^3.2.4'); + sv.devDependency('vitest-browser-svelte', '^1.1.0'); + sv.devDependency('playwright', '^1.55.1'); } sv.file('package.json', (content) => { diff --git a/packages/create/shared/+checkjs/package.json b/packages/create/shared/+checkjs/package.json index 2a6584860..1a8ec9f0c 100644 --- a/packages/create/shared/+checkjs/package.json +++ b/packages/create/shared/+checkjs/package.json @@ -4,7 +4,7 @@ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch" }, "devDependencies": { - "svelte-check": "^4.0.0", - "typescript": "^5.0.0" + "svelte-check": "^4.3.2", + "typescript": "^5.9.2" } } diff --git a/packages/create/shared/+typescript/package.json b/packages/create/shared/+typescript/package.json index 5a4b341a6..141557ee0 100644 --- a/packages/create/shared/+typescript/package.json +++ b/packages/create/shared/+typescript/package.json @@ -4,7 +4,7 @@ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" }, "devDependencies": { - "svelte-check": "^4.0.0", - "typescript": "^5.0.0" + "svelte-check": "^4.3.2", + "typescript": "^5.9.2" } } diff --git a/packages/create/templates/demo/package.template.json b/packages/create/templates/demo/package.template.json index f15a53337..ed3e08394 100644 --- a/packages/create/templates/demo/package.template.json +++ b/packages/create/templates/demo/package.template.json @@ -10,12 +10,12 @@ "prepare": "svelte-kit sync || echo ''" }, "devDependencies": { - "@fontsource/fira-mono": "^5.0.0", - "@neoconfetti/svelte": "^2.0.0", - "@sveltejs/adapter-auto": "^6.0.0", - "@sveltejs/kit": "^2.22.0", - "@sveltejs/vite-plugin-svelte": "^6.0.0", - "svelte": "^5.25.0", - "vite": "^7.0.4" + "@fontsource/fira-mono": "^5.2.7", + "@neoconfetti/svelte": "^2.2.2", + "@sveltejs/adapter-auto": "^6.1.0", + "@sveltejs/kit": "^2.43.2", + "@sveltejs/vite-plugin-svelte": "^6.2.0", + "svelte": "^5.39.5", + "vite": "^7.1.7" } } diff --git a/packages/create/templates/library/package.template.json b/packages/create/templates/library/package.template.json index 8784dadc9..218bdd97d 100644 --- a/packages/create/templates/library/package.template.json +++ b/packages/create/templates/library/package.template.json @@ -23,14 +23,14 @@ "svelte": "^5.0.0" }, "devDependencies": { - "@sveltejs/adapter-auto": "^6.0.0", - "@sveltejs/kit": "^2.22.0", - "@sveltejs/package": "^2.0.0", - "@sveltejs/vite-plugin-svelte": "^6.0.0", - "publint": "^0.3.2", - "svelte": "^5.0.0", - "typescript": "^5.3.2", - "vite": "^7.0.4" + "@sveltejs/adapter-auto": "^6.1.0", + "@sveltejs/kit": "^2.43.2", + "@sveltejs/package": "^2.5.4", + "@sveltejs/vite-plugin-svelte": "^6.2.0", + "publint": "^0.3.13", + "svelte": "^5.39.5", + "typescript": "^5.9.2", + "vite": "^7.1.7" }, "keywords": ["svelte"] } diff --git a/packages/create/templates/minimal/package.template.json b/packages/create/templates/minimal/package.template.json index 19ade13a0..dd2b92a59 100644 --- a/packages/create/templates/minimal/package.template.json +++ b/packages/create/templates/minimal/package.template.json @@ -10,10 +10,10 @@ "prepare": "svelte-kit sync || echo ''" }, "devDependencies": { - "@sveltejs/adapter-auto": "^6.0.0", - "@sveltejs/kit": "^2.22.0", - "@sveltejs/vite-plugin-svelte": "^6.0.0", - "svelte": "^5.0.0", - "vite": "^7.0.4" + "@sveltejs/adapter-auto": "^6.1.0", + "@sveltejs/kit": "^2.43.2", + "@sveltejs/vite-plugin-svelte": "^6.2.0", + "svelte": "^5.39.5", + "vite": "^7.1.7" } } From bc574b941b6ff8914e9d8fc674f73cecac1fd4ad Mon Sep 17 00:00:00 2001 From: jycouet Date: Tue, 23 Sep 2025 22:27:36 +0200 Subject: [PATCH 5/5] add changeset --- .changeset/slow-signs-send.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/slow-signs-send.md diff --git a/.changeset/slow-signs-send.md b/.changeset/slow-signs-send.md new file mode 100644 index 000000000..f22b4a4b9 --- /dev/null +++ b/.changeset/slow-signs-send.md @@ -0,0 +1,5 @@ +--- +'sv': patch +--- + +chore(cli): bump defaults versions