-
fix(adapter-cloudflare): use
--checkflag for wrangler types in check/build scripts (#1057) -
fix(cli): deprecated file warnings no longer trigger on object spread (#1060)
-
feat: decouple sv / sv-utils, explicit public API, deprecation pass (#1046)
@sveltejs/sv-utils- Rename file helpers:
readFile->loadFile,writeFile->saveFile,getPackageJson->loadPackageJson - Add
pnpm.onlyBuiltDependencies()transform forpnpm-workspace.yaml - Export
YamlDocumenttype from parsers - Remove
commonFilePaths,installPackages(moved internal tosv)
svcreate()signature changed tocreate({ cwd, ...options }). The oldcreate(cwd, options)is deprecated and will be removed in the next major release.sv.pnpmBuildDependency()is deprecated and will be removed in the next major release. Usesv.file()withpnpm.onlyBuiltDependencies()from@sveltejs/sv-utilsinstead.workspace.file.prettierignore,.prettierrc,.eslintConfig,.vscodeSettings,.vscodeExtensionsare deprecated and will be removed in the next major release. Use the raw strings directly (e.g.'.prettierignore').- Add
workspace.file.findUp()to locate files by walking up the directory tree. - Add
api-surface.mdsnapshots (auto-generated on build) to track the public API ofsvand@sveltejs/sv-utils. - Remove
setup,createProject,startPreview,addPnpmBuildDependenciesfromsv/testingexports. - Make type exports explicit (no more
export type *). Removed types that were never part of the intended public API:PackageDefinition,Scripts,TestDefinition.
- Rename file helpers:
-
remove:
devtools-jsonadd-on as SvelteKit will silently 404 Chrome DevTools workspaces request. You can still addvite-plugin-devtools-jsonmanually if needed. (#1047) -
feat: replace
sv.pnpmBuildDependencywithsv.file+pnpm.onlyBuiltDependencieshelper andfile.findUp(#1037)
-
feat(sv): bump all templates to use vite 8 (#1005)
-
fix(paraglide): type and lint errors (#1049)
-
feat(sv): bump all templates to use typescript 6 (#1055)
-
chore(cli): bump defaults versions (#1056)
-
Updated dependencies [
baba23f,37a701e,aead922]:- @sveltejs/sv-utils@0.2.0
-
chore: simplify
runesoption (#1039) -
fix(playwright): auto-install Playwright browsers via
preparescript (#1041)
- feat: community add-ons are now experimental (#1020)
- Updated dependencies [
c0e5831]:- @sveltejs/sv-utils@0.1.0
-
fix(sv):
nextStepwill conform to depedencies (#1025) -
feat(sv-utils): all semantic colors now accept
string | string[](#1024) -
fix(drizzle): add missing closing parenthesis in D1 getDb function (#1022)
-
fix(eslint): properly handle configs that doesn't use
defineConfig(#994) -
Updated dependencies [
dd9c2f8]:- @sveltejs/sv-utils@0.0.5
-
feat(paraglide): add a type annotation for the reroute hooks (#1009)
-
api: rename
filestofile,kittoisKit&directory(#999) -
refactor: move files utilities to
@sveltejs/sv-utils(#1002) -
chore: add text-scale meta in html (#1011)
-
Updated dependencies [
83601df,504bce9]:- @sveltejs/sv-utils@0.0.4
- feat(drizzle): add cloudflare
D1database (#976)
-
fix(sv): stricter logic for rune mode (#991)
-
feat(mdsvex): enable .svx .md extensions by default in config (#998)
-
chore(sv): bump ESLint to v10 and update related dependencies (#989)
-
feat(cli): refactor help to give better hints for humans & ai (#966)
-
Updated dependencies [
669b322]:- @sveltejs/sv-utils@0.0.3
-
fix(sv): don't dictate rune mode for
node_modules(#984) -
fix(sv): fix Sverdle demo shake animation not replaying on consecutive bad guesses (#979)
-
chore(cli): bump
vitestto^4.1(#985)
-
feat(vitest): better real world vitest examples (#960)
-
feat(playwright): use dedicated demo page for e2e tests (#978)
-
feat(mcp): move opencode config to
.opencode/folder and generatesvelte.jsonplugin config (#977) -
feat(playwright): use
**/*.e2e.{ts,js}files by default (#919) -
fix(sv): remove spread operator from ESLint config generation (#971)
-
fix: default to rune mode (#952)
- fix(better-auth): resolve
auth:schemafailure on fresh installs (#968)
- revert(paraglide): remove
disableAsyncLocalStoragefor serverless environments (#958)
-
fix(paraglide): add text-direction support (#948)
-
feat: add vscode extension recommendations (#953)
-
feat(paraglide): disable
AsyncLocalStoragein serverless environments (#957) -
fix: install
@better-auth/clias a dev dependency (#950) -
Updated dependencies [
142c719,cf12320]:- @sveltejs/sv-utils@0.0.2
-
chore(cli): bump svelte to
5.51to fix formating issues (#915) -
fix(cloudflare): remove commented out
Platformplaceholder when adding Cloudflare types (#925) -
fix(better-auth): Update imports to use
better-auth/minimal(#920) -
fix(cli): improve
addHooksHandlerobustness (#929)
-
fix(drizzle): default .env with turso is now using
file:local.db(#908) -
fix(cli): work also with
svelte.config.ts(#912)
- remove:
luciafrom official addons in favor ofbetter-auth(#898)
-
feat(add):
better-authis now an official addon (#898) -
fix(cli): unified package manager detection (#900)
-
fix(cli): raw copy of binary files (#905)
-
chore(cli): bump defaults versions (#907)
-
chore(eslint): bump
@eslint/compatto^2.0.1(#895) -
fix(prettier): in
lintstep, prettier will always be first (#889) -
chore(cli): remove
picocolorsforstyleTextofnode:util(#882) -
chore(cli): bump defaults versions (#896)
-
chore: bump
esrapfor better formatted output (#879) -
chore: bump
globalsas major version increment does not impact us (#894) -
fix(cli): better management of logs during install (#888)
-
fix(cloudflare): don't generate types on install, use the dedicated script (#877)
-
feat(eslint): with
dbaeumer.vscode-eslint@3.0.20ESLint extension, we don't need to seteslint.validateanymore (#871) -
chore(cli): remove
vitePreprocessin all default templates (#876) -
feat(cli): Add promptless command to
README.mdonsv create(#864)
-
fix(cloudflare): use a relative path for worker-configuration type in the tsconfig.json file (#866)
-
fix(cloudflare): local preview is now using port
4173so that it works with the Playwright test command (#866)
- fix(adapter-cloudflare): sanitize wrangler project name to comply with Cloudflare naming requirements (#861)
- feat(cloudflare): able to fully setup cloudflare adapter for workers/pages (#851)
-
fix(paraglide): git ignore cache of inlang project (#844)
-
fix(paraglide): multi language when prerendering is now working by default (#844)
-
fix(prettier):
prettier-plugin-tailwindcssplugin is now last in the list (#845)
- fix(add): storybook is back to using
@latestversion (#833)
- fix(cli): files will be formatted after create (#827)
-
fix(cli): reload workspace before executing each addon (#823)
-
chore(create): remove
esModuleInteropfrom library template (#822) -
fix(create): correctly detect executing package manager (#823)
- fix(cli):
dependencyVersionis now properly populated duringsv create(#819)
-
fix(cli): fix
svelte.config.jsdetection during create (#817) -
fix(cli):
kitprojects were detected incorrectly (#810)
-
fix(cli): printed args now also display path used during directory prompt (#805)
-
fix(mcp): use consistent wording for setup question (#806)
- fix(cli): avoid printing duplicated
--no-installflag (#803)
- feat(cli):
npx sv createnow supports a new argument--addto add add-ons to the project in the same command. (#695)
- feat(cli): show args used so that you can run the cli without any prompt next time (#695)
-
fix(tailwind): update vscode setting
files.associationstotailwindcss(#796) -
feat(cli): add
--no-dir-checkoption tosv create. With this flag, even if the folder is not empty, no prompt will be shown (#785) -
feat(mcp): include an
AGENTS.mdor similar when using themcpaddon (#777) -
feat(vitest): when
add vitestis used within a project that uses vitest@3, the addon will display some next steps to finalize the migration to vitest@4 (#797) -
fix(demo): rewrite relative import extensions to JavaScript equivalents (
tsconfig.jsonupdate) (#801)
-
feat(tailwind): add vscode setting for tailwind (#780)
-
feat(cli): wrap links with
resolve()function to follow best practices (#754) -
feat(create): co-locate css file from usage (
layout.css&+layout.svelte) (#780) -
fix(mcp): Add schema definition for Gemini MCP configuration. (#774)
-
chore(create): add div with
display: contentsto library template (#773) -
fix(mcp): generate valid
mcplocal configuration foropencode(#769) -
feat(demo): include file extensions for local imports (#757)
-
feat(vitest): update to vitest
4.0(#760)- removing
@vitest/browserin favor of@vitest/browser-playwright - run browser tests in headless mode
- removing
-
fix(cli): Check existing conditions for specified options (#771)
-
fix(prettier): add tailwindcss plugin to prettier config if tailwindcss is installed (#756)
-
fix(cli): generating closing </script> tags now works correctly (#763)
-
chore(cli): bump defaults versions (#744)
-
feat(drizzle): update docker pgdata volume for postgres 18 (#749)
-
feat(cli): workspace now gives
filesobject withviteConfigandsvelteConfigpaths to be used in add-ons (#755) -
fix(cli):
+layout.sveltedoesn't use optional chaining now (#753)
-
fix(drizzle):
--cwdoption inaddcommand is now taken into account (#738) -
feat(drizzle): Docker Compose file is now stored in
compose.yamlinstead ofdocker-compose.yml(#738) -
fix(add): include monorepo root in dependency detection (#740)
-
feat(cli): add new add-on
mcpto configure your project (#735) -
feat(cli):
--from-playgroundwill now bring a PlaygroundLayout to get a more consistent experience with the online playground (#731)
-
fix(tailwindcss): add
@tailwindcss/oxideto approve-builds inpnpm(#717) -
feat(drizzle): user ID is now a string to ease migration to auth (#733)
-
feat(cli): pnpm config will now be stored in
pnpm-workspace.yaml(e.g.onlyBuiltDependencies) (#717)
-
fix(cli): export types (#719)
-
chore(cli): improve
typescriptdetection (#710) -
chore(cli): bump defaults versions (#722)
-
fix(cli):
--from-playgroundwill create projects withexperimental.asyncenabled (if svelte version allows it) (#729) -
fix(cli):
--from-playgroundoption now works correctly from node 20 (#720)
- fix(vitest): now import
defineConfigfromvitest/config(#703)
-
feat(cli): create projects from the svelte playground with
npx sv create --from-playground <url>(#662) -
chore(cli): speedup internal tests (#698)
-
chore(core): streamline object helpers (#685)
-
fix(eslint): update eslint to
^9.22.0and usedefineConfigfromeslint/config(to fix a deprecation warning) (#712) -
fix(eslint): add
@types/nodein devDependencies (#711)
-
chore(addons): change some dependencies to devDependencies (#682)
-
fix(add): allow passing add-on as argument that depends on another add-on (#691)
-
fix: improve add-on option types (#692)
-
chore(core): change
defineAddonOptions({ /*config */ })todefineAddonOptions().add('key', { /*config */ }).build()in order to provide better type safety. (#686) -
fix(migrate): allow
migrateto run without specifying a migration arg (#676) -
fix(add): improve robustness of add-on args parsing (#681)
- fix(cli):
vite.config.*file detection works for both .js and .ts variants (#673)
-
chore(create): recommend the
kit.typescript.configsetting instead of copying from the generated config (#668) -
chore(devtools-json): update
vite-plugin-devtools-json(#667)
-
feat(cli): rework preconditions: (#650)
- remove
--no-preconditionsoption fromsv add - add
--no-git-checkoption tosv add. With this flag, even if some files are dirty, no prompt will be shown
- remove
- fix(create): update library docs to reflect proper
packcommand (#655)
-
feat:
vitestrequire assertions (#647) -
fix: handle
satisfieskeyword forvite.addPlugin(#653) -
chore: remove
git initnext step when creating a new project (#645) -
feat: improve minimal template (#643)
- move
favicon.svgtosrc/lib/assetsfolder (to show inline/immutable assets) - add
static/robots.txt(to keep static folder) - add
routes/+layout.svelte(to show layout)
- move
-
feat(drizzle): add
db:generatescript topackage.json(#648)
-
fix: align project steps (#644)
-
chore: allow passing an array of import names to imports.addNamed (#639)
-
feat: add
vite.addPluginto simplify adding a plugin on various vite config styles (#633)
-
feat: combine next steps prompt for
create(#637) -
chore: use
create-storybookinstead ofstorybook init(#638) -
feat: print warning if using Node.js version below 18.3 (#625)
-
fix(tailwindcss): ensure
tailwindStylesheetis added to.prettierrc, when applicable (#636)
- feat: update templates to vite 7 and vite-plugin-svelte 6 (#629)
-
fix(add): add
/drizzle/folder to.prettierignoreifprettieris installed when addingdrizzleaddon (#623) -
fix: update
static/to/static/in.prettierignore(#624)
- fix: resolve to
taskinstead ofrunin addon instructions fordeno(#599)
- fix: preserve comments when parsing JS AST (#609)
- chore: don't select
devtools-jsonby default (#598)
- feat(vitest): support vite browser mode (#588)
-
fix(eslint): generated import order are now sorted alphabetically (#592)
-
feat: add
devtools-jsonaddon (usingvite-plugin-devtools-json) (#581)
- chore: update lucia template (#586)
- fix(vitest): unpin vitest to ^3.2.3 after it fixed a regression (#587)
- fix(vitest):
mount(...)not available (#584)
-
fix: removed unused import in
drizzleschema to fix lint (#571) -
fix: add null check for
kitin thedrizzleadd-on's setup (#574)
- fix: account for Node
currentreleases with even majors when resolving@types/nodeversion (#565)
- fix: directory selection placeholder value was taken as folder path (#564)
-
fix: lucia require user redirect moved to auth guard function (#558)
-
feat: expose
runsAfterto add-ons (#554)
-
fix: always add
storybookafter all other add-ons (#547) -
security: upgrade vite to avoid CVE-2025-32395 (#548)
-
fix: rename Cloudflare adapter option from
cloudflare-pagestocloudflare(#545) -
chore: update
adapter-auto(#542) -
fix: add
@types/nodeas a dev dependency to thedrizzleandstorybookadd-ons (#541) -
fix: use connection pool when using mysql2 with
drizzle(#537)
-
feat: adds
--install <package-manager>flag tocreateandadd(#531) -
fix: warn on an unparsable
.prettierrcconfig file (#527) -
chore: remove redundant
ignoresproperty ineslintconfig (#533)
- feat: remove
adapter-cloudflare-workersand upgrade other adapters (#520)
-
security: Upgrade Vite to avoid CVE-2025-31125 (#517)
-
security: upgrade vite to avoid CVE-2025-31486 (#522)
- chore: added GitHub official logo to demo template (#508)
- fix: package manager detection in non interactive environments (#503)
-
feat: enhanced code generation for more intuitive formatting (#380)
-
chore: switch to
estreecompatible ast tooling (#380)
-
chore: use writable derived in sverdle
demoproject (#500) -
chore: disable
no-undefESLint rule in TypeScript project (#483) -
chore: replace
create-sveltein library template readme (#499)
-
chore: updates the paraglide-js addon to setup v2 of paraglide-js (#461)
-
fix: add bun lockfiles to
.prettierignore(#492) -
fix: add volumes to docker compose files generated by
drizzle(#475)
-
fix: insert the
tailwindcssvite plugin at the start of the plugin array (#478) -
chore: add keywords to library template (#473)
-
chore: detect package manager asynchronously (#465)
-
chore: add keys to
{#each}blocks (#466) -
fix: pass
schematodrizzleclient for better type generation (#459) -
fix: addons executed in the wrong order in certain circumstances (#462)
-
fix: use 'prettier' instead of ['flat/prettier'] (#467)
-
fix: properly add tailwind plugins on subsequent add-on executions (#456)
- fix: use
eslint-plugin-sveltev3 (#455)
-
fix: make
drizzlenext steps more precise (#447) -
chore: update addon dependencies (#450)
-
fix: allow selecting adapter auto (#446)
-
feat: update
eslint-plugin-sveltev3 (#453) -
fix: re-add
tailwindcssplugins (#448)
- feat:
vitestuse client and server side testing forkit(#311)
-
Remove comment about adapter-auto once a specific sveltekit adapter is chosen (#436)
-
fix:
onlyBuiltDependenciesnot added on new projects (#439) -
fix: generate correct table defintion for
tursoinluciademo (#433)
- fix:
checkjslibrary template (#428)
-
fix: properly pass through arguments to
sv check(#420) -
chore: use
rolldowninstead ofrollup(#371)
- fix: ensure Sverdle keyboard events modify game state without a trip to the server if client-side JavaScript is enabled (#416)
- chore: add prepare script to run
svelte-kit sync(#409)
-
chore: update
vite@6and related packages (#410) -
fix: forward exit code of external package commands (#412)
- chore: update
adapter-autoandadapter-cloudflare(#401)
-
fix: git detection inside preconditions failed (#394)
-
chore: update addon dependencies (#357)
-
chore: utilize prepack lifecycle script (#396)
-
chore: improve cli help menu (#294)
-
fix: use modern
SpringandMediaQueryimplementation (#361) -
fix: tailwind plugins as dev dependencies (#400)
-
fix: correctly resolve package manager commands in
create's next-steps (#360) -
fix: don't generate sourcemaps for release (#373)
-
chore: update-dependencies (#356)
-
fix: make
luciavalidation error messages more descriptive (#363)
- fix: use
vite@5again due to compatability issues withvitest@2(#341) (#353)
- feat: add
sveltekit-adapteradd-on (#346)
-
fix: updated jsdoc type for
paraglidedemo (#337) -
feat: set app templates to
privateby default (#343) -
chore: upgrade
package-manager-detectorto add Deno support (#313)
-
feat: respect
.gitignoreineslintadd-on (#335) -
feat: update
createtemplates to Vite 6 (#340) -
fix: add paraglide output directory to
.gitignore(#338) -
chore: replace svelte-5-preview link (#327)
-
chore: remove
@types/eslintpackage fromeslintadd-on (#323) -
chore: remove
aspect-ratioplugin fromtailwindcssadd-on (#322) -
feat: add short descriptions for each add-on (#299)
- fix: limit window height of dependency install's output (#307)
-
feat: display package manager output during dependency installs (#305)
-
chore: rename
addertoadd-on(#303)
-
fix: ignore path prompt if user provided path in
create(#292) -
feat: add
jsconfig.jsonto the 'no type checking' template (#290) -
fix: disable add-on preconditions during
create(#288)
- fix: use base32 IDs in lucia add-on (#262)
-
chore: remove routify (#252)
-
feat: rename
--check-types <typescript|checkjs|none>to--types <ts|js>with a--no-typesflag (#249)
- fix: update lucia add-on (#254)
- fix: revert logging dependency install errors (#244)
-
chore: replace mention of
create-sveltein newly createdREADME.md(#235) -
fix: log error when dependency installs fail (#235)
-
fix: use
satisfiesinstead ofasintailwindcssconfig (#235)
-
fix:
tailwindcssimport insertions and execution order (#221) -
fix: adjusted next steps instructions for
create(#222)
-
fix: quotes in
cdoutput if necessary (#207) -
chore: update documentation url hash (#208)
-
chore: clarify cli instructions (#212)
- fix: improve package manager detection (#178)
- chore: use
svelte@5full release (#174)
-
feat: create
/demopage (#171) -
chore: remove auto-installing dependencies (#164)
-
feat: add
--versionflag (#160) -
chore: update
silver-fleece(#169) -
fix: adjust ordering of "next steps" in
create(#166) -
chore: ensure stack trace is logged (#172)
-
chore: move paraglide demo into seperate page (#149)
-
chore: improve unsupported environment message (#152)
-
feat: tailwindcss plugins (#127)
-
fix: ensure
lang="ts"is added inparaglidedemo (#145) -
fix: rename
authhandler tohandleAuthforlucia(#145) -
chore: log the external command being executed (#145)
-
fix: always add new handlers for hooks (#145)
-
fix: better prompt for paraglide langs (#130)
-
chore(lucia): update demo to use svelte 5 syntax (#141)
-
fix: improve formatting on new script files (#96)
-
fix: dont check preconditions if no add-on selected (#125)
-
feat: improved homescreen for adding or creating projects (#112)
-
fix: ignore hidden directories in empty directory detection (#126)
-
fix: prompt to install dependencies in
sv create(#117)
- feat: paraglide add-on (#67)