sv 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
- import { T as dist_dir, _ as defineAddon, pt as R, v as defineAddonOptions } from "./engine-S8UpCG24.mjs";
1
+ import { T as dist_dir, _ as defineAddon, pt as R, v as defineAddonOptions } from "./engine-B1nZjPzd.mjs";
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
- import { KIT3_TSCONFIG, Walker, coerceVersion, color, createPrinter, dedent, defineDemoPage, defineEnv, fileExists, isKit3, loadPackageJson, pnpm, resolveCommandArray, resolveLibPrefix, sanitizeName, svelteConfig, transforms } from "@sveltejs/sv-utils";
4
+ import { KIT3_TSCONFIG, Walker, coerceVersion, color, createPrinter, dedent, defineDemoPage, defineEnv, fileExists, isKit3, loadPackageJson, pnpm, resolveCommandArray, resolveHooksTypesFrom, resolveLibPrefix, sanitizeName, svelteConfig, transforms } from "@sveltejs/sv-utils";
5
5
  import V from "node:process";
6
6
  import crypto from "node:crypto";
7
7
  //#region src/addons/ids.ts
@@ -77,7 +77,6 @@ const CLIENTS = {
77
77
  opencode: {
78
78
  label: "OpenCode",
79
79
  pluginOnly: true,
80
- agentPath: "AGENTS.md",
81
80
  configPath: ".opencode/opencode.json",
82
81
  skillsPath: ".opencode/skills",
83
82
  alsoReadsSkillsFrom: [".agents/skills"],
@@ -91,7 +90,6 @@ const CLIENTS = {
91
90
  pi: {
92
91
  label: "Pi",
93
92
  pluginOnly: true,
94
- agentPath: "AGENTS.md",
95
93
  configPath: ".pi/settings.json",
96
94
  skillsPath: ".pi/skills",
97
95
  alsoReadsSkillsFrom: [".agents/skills"],
@@ -120,6 +118,7 @@ const CLIENTS = {
120
118
  const acceptsTools = (client) => Boolean(client && !client.pluginOnly && (client.skillsPath || client.agentsPath || client.configPath));
121
119
  const wantsLooseTools = (client, delivery) => acceptsTools(client) && (!client.pluginSettings || delivery !== "plugin");
122
120
  const wantsMcpConfig = (client, delivery) => Boolean(client?.mcpOptions) && wantsLooseTools(client, delivery);
121
+ const writesAgentFile = (client, delivery) => Boolean(client?.agentPath) && !(client.pluginSettings && delivery === "plugin");
123
122
  const TOOLS = {
124
123
  mcp: {
125
124
  label: "MCP server",
@@ -212,6 +211,11 @@ const options$8 = defineAddonOptions().add("ide", {
212
211
  hint: "will use a remote endpoint"
213
212
  }],
214
213
  condition: ({ ide, delivery, tools }) => (tools === void 0 || tools.includes("mcp")) && ide.some((i) => wantsMcpConfig(CLIENTS[i], delivery))
214
+ }).add("agentsMd", {
215
+ question: "Would you like to add an AGENTS.md (or similar) with instructions for agents?",
216
+ type: "boolean",
217
+ default: true,
218
+ condition: ({ ide, delivery }) => ide.some((i) => writesAgentFile(CLIENTS[i], delivery))
215
219
  }).add("optInSkills", optInSkillsQuestion()).build();
216
220
  const addon$8 = defineAddon({
217
221
  id: ADDON_IDS.aiTools,
@@ -228,6 +232,7 @@ const addon$8 = defineAddon({
228
232
  const selectedAgents = selected.filter((t) => TOOLS[t]?.kind === "agent");
229
233
  const wantsMcp = selected.includes("mcp");
230
234
  const selectedOptInSkills = (options.optInSkills ?? []).filter((s) => s in OPT_IN_SKILLS);
235
+ const wantsAgentFile = options.agentsMd !== false;
231
236
  const getLocalConfig = (o) => {
232
237
  return {
233
238
  ...o?.typeLocal ? { type: o.typeLocal } : {},
@@ -289,17 +294,18 @@ const addon$8 = defineAddon({
289
294
  }));
290
295
  continue;
291
296
  }
292
- if (!client.agentPath) continue;
293
297
  const { mcpOptions, agentPath, agentLink, configPath, skillsPath, agentsPath, agentExtension, schema, customData, extraFiles } = client;
294
- if (!filesAdded.includes(agentPath)) sv.file(agentPath, (content) => {
295
- if (content) {
296
- if (!filesExistingAlready.includes(agentPath)) filesExistingAlready.push(agentPath);
297
- return false;
298
- }
299
- filesAdded.push(agentPath);
300
- return agentFile?.contents ?? "";
301
- });
302
- if (agentLink) addFile(agentLink.path, agentLink.contents);
298
+ if (agentPath && wantsAgentFile) {
299
+ if (!filesAdded.includes(agentPath)) sv.file(agentPath, (content) => {
300
+ if (content) {
301
+ if (!filesExistingAlready.includes(agentPath)) filesExistingAlready.push(agentPath);
302
+ return false;
303
+ }
304
+ filesAdded.push(agentPath);
305
+ return agentFile?.contents ?? "";
306
+ });
307
+ if (agentLink) addFile(agentLink.path, agentLink.contents);
308
+ }
303
309
  const writeMcp = Boolean(mcpOptions) && wantsMcp;
304
310
  if (configPath && (writeMcp || customData)) sv.file(configPath, transforms.json(({ data }) => {
305
311
  if (schema) data["$schema"] = schema;
@@ -383,7 +389,8 @@ const addon$7 = defineAddon({
383
389
  runsAfter(ADDON_IDS.experimental);
384
390
  },
385
391
  run: ({ sv, cwd, language, options, directory, dependencyVersion, file }) => {
386
- const lib = resolveLibPrefix(dependencyVersion("@sveltejs/kit"));
392
+ const kitRange = dependencyVersion("@sveltejs/kit");
393
+ const lib = resolveLibPrefix(kitRange);
387
394
  const svelteVersion = dependencyVersion("svelte");
388
395
  const svelte5 = !!svelteVersion && coerceVersion(svelteVersion).major === 5;
389
396
  const [ts, s5] = createPrinter(language === "ts", svelte5);
@@ -577,7 +584,8 @@ const addon$7 = defineAddon({
577
584
  language,
578
585
  newHandleName: "handleBetterAuth",
579
586
  handleContent,
580
- comments
587
+ comments,
588
+ kitVersion: kitRange
581
589
  });
582
590
  }));
583
591
  if (hasDemo) {
@@ -1770,6 +1778,7 @@ const addon$4 = defineAddon({
1770
1778
  const kitRange = dependencyVersion("@sveltejs/kit");
1771
1779
  const lib = resolveLibPrefix(kitRange);
1772
1780
  const pathType = isKit3(kitRange) ? "Path" : "Pathname";
1781
+ const hooksTypesFrom = resolveHooksTypesFrom(kitRange);
1773
1782
  const paraglideOutDir = `${directory.lib}/paraglide`;
1774
1783
  sv.devDependency("@inlang/paraglide-js", "^2.18.2");
1775
1784
  sv.file(file.viteConfig, transforms.script(({ ast, js }) => {
@@ -1801,11 +1810,11 @@ const addon$4 = defineAddon({
1801
1810
  });
1802
1811
  if (existingExport.declaration !== rerouteIdentifier) R.warn("Adding the reroute hook automatically failed. Add it manually");
1803
1812
  if (language === "ts") js.imports.addNamed(ast, {
1804
- from: "@sveltejs/kit/hooks",
1813
+ from: hooksTypesFrom,
1805
1814
  imports: ["Reroute"],
1806
1815
  isType: true
1807
1816
  });
1808
- else js.common.addJsDocTypeComment(existingExport, comments, { type: "import('@sveltejs/kit/hooks').Reroute" });
1817
+ else js.common.addJsDocTypeComment(existingExport, comments, { type: `import('${hooksTypesFrom}').Reroute` });
1809
1818
  }));
1810
1819
  sv.file(`src/hooks.server.${language}`, transforms.script(({ ast, comments, js }) => {
1811
1820
  js.imports.addNamed(ast, {
@@ -1824,7 +1833,8 @@ const addon$4 = defineAddon({
1824
1833
  transformPageChunk: ({ html }) => html.replace('%paraglide.lang%', locale).replace('%paraglide.dir%', getTextDirection(locale))
1825
1834
  });
1826
1835
  });`,
1827
- comments
1836
+ comments,
1837
+ kitVersion: kitRange
1828
1838
  });
1829
1839
  }));
1830
1840
  sv.file("src/app.html", transforms.html(({ ast, html }) => {
package/dist/bin.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { $ as parse$1, A as cliOptions, B as runAndValidateVerifications, C as create$1, D as from, E as up$2, F as getPadding, G as UnsupportedError, H as updateAgent, I as helpConfig, J as array, K as name, L as isNodeError, M as filePaths, N as forwardExitCode, O as PackageJSONSchema, P as getHelpSections, Q as optional, R as normalizePosix, S as execSync, T as dist_dir, U as updateLibraryBuild, V as runCommand, W as updateReadme, X as literal, Y as boolean, Z as nonEmpty, _t as pe, a as setupAddons, at as string, b as NonZeroExitError, bt as R$1, c as AGENT_NAMES, ct as program, d as detectPackageManager, dt as Ce, et as picklist, f as installDependencies, ft as Ee, g as createLoadedAddon, gt as le, h as up$1, ht as ge, i as prepareSvApi, it as strictObject, j as errorAndExit, k as buildAndLogArgs, l as addAllowBuildsIfPnpm, lt as Command, m as packageManagerPrompt, mt as Re, n as applyAddons, nt as record, o as createWorkspace, ot as transform, p as installOption, pt as R, q as version, r as orderAddons, rt as safeParse, s as findWorkspaceRoot, st as union, tt as pipe, u as addEngineStrict, ut as Option, vt, w as templates, x as exec, y as getErrorHint, yt as we, z as parseAddonOptions } from "./engine-S8UpCG24.mjs";
3
- import { n as officialAddons$1, t as getAddonDetails } from "./addons-BCioxI2r.mjs";
2
+ import { $ as parse$1, A as cliOptions, B as runAndValidateVerifications, C as create$1, D as from, E as up$2, F as getPadding, G as UnsupportedError, H as updateAgent, I as helpConfig, J as array, K as name, L as isNodeError, M as filePaths, N as forwardExitCode, O as PackageJSONSchema, P as getHelpSections, Q as optional, R as normalizePosix, S as execSync, T as dist_dir, U as updateLibraryBuild, V as runCommand, W as updateReadme, X as literal, Y as boolean, Z as nonEmpty, _t as pe, a as setupAddons, at as string, b as NonZeroExitError, bt as R$1, c as AGENT_NAMES, ct as program, d as detectPackageManager, dt as Ce, et as picklist, f as installDependencies, ft as Ee, g as createLoadedAddon, gt as le, h as up$1, ht as ge, i as prepareSvApi, it as strictObject, j as errorAndExit, k as buildAndLogArgs, l as addAllowBuildsIfPnpm, lt as Command, m as packageManagerPrompt, mt as Re, n as applyAddons, nt as record, o as createWorkspace, ot as transform, p as installOption, pt as R, q as version, r as orderAddons, rt as safeParse, s as findWorkspaceRoot, st as union, tt as pipe, u as addEngineStrict, ut as Option, vt, w as templates, x as exec, y as getErrorHint, yt as we, z as parseAddonOptions } from "./engine-B1nZjPzd.mjs";
3
+ import { n as officialAddons$1, t as getAddonDetails } from "./addons-B9USH0bk.mjs";
4
4
  import * as fs$1 from "node:fs";
5
5
  import fs from "node:fs";
6
6
  import * as path$1 from "node:path";
@@ -1936,8 +1936,12 @@ const check = new Command("check").description("a CLI for checking your Svelte c
1936
1936
  });
1937
1937
  async function runCheck(cwd, args) {
1938
1938
  const pm = await detectPackageManager(cwd);
1939
- if (!from(cwd, "svelte-check", true)) {
1940
- console.error(`'svelte-check' is not installed locally. Install it with: ${color.command(resolveCommandArray(pm, "add", ["-D", "svelte-check"]))}`);
1939
+ const resolvedCwd = path.resolve(cwd);
1940
+ if (!up$1(path.join("node_modules", ".bin", "svelte-check"), {
1941
+ cwd: resolvedCwd,
1942
+ last: findWorkspaceRoot(resolvedCwd)
1943
+ })) {
1944
+ console.error(`'svelte-check' is not installed in your project. Install it with: ${color.command(resolveCommandArray(pm, "add", ["-D", "svelte-check"]))}`);
1941
1945
  V.exit(1);
1942
1946
  }
1943
1947
  if (args.includes("--help")) {
@@ -2226,10 +2230,11 @@ async function createProject(cwd, options) {
2226
2230
  },
2227
2231
  force: async ({ results: { directory } }) => {
2228
2232
  if (!options.dirCheck) return;
2233
+ if (!directory) return;
2229
2234
  if (!fs.existsSync(directory)) return;
2230
- if (!fs.readdirSync(directory).some((file) => !file.startsWith(".git"))) return;
2235
+ if (fs.readdirSync(directory).every((entry) => entry === ".git")) return;
2231
2236
  const force = await le({
2232
- message: "Directory not empty. Continue?",
2237
+ message: `Directory not empty:\n${color.path(path.resolve(directory))}\n\nContinue?`,
2233
2238
  initialValue: false
2234
2239
  });
2235
2240
  if (R$1(force) || !force) {
@@ -2795,6 +2800,16 @@ const migrationTasks = [
2795
2800
  instructions: "Import `version` from `$app/env`, application asset metadata from `$app/manifest`, and path helpers from `$app/paths`. Account for the new manifest value shapes rather than blindly renaming `build` or `files` imports.",
2796
2801
  links: guideLink("$service-worker-(removed)")
2797
2802
  },
2803
+ {
2804
+ title: "Remove `rewriteRelativeImportExtensions` from tsconfig.json",
2805
+ checks: [{
2806
+ include: "**/tsconfig.json",
2807
+ patterns: [/["']rewriteRelativeImportExtensions["']/]
2808
+ }],
2809
+ summary: "`rewriteRelativeImportExtensions` will flag subpath imports with `.ts` as type errors.",
2810
+ instructions: "Remove `rewriteRelativeImportExtensions` from tsconfig.json.",
2811
+ links: [...guideLink("$lib-is-now-lib"), ...guideLink("$app-tsconfig")]
2812
+ },
2798
2813
  {
2799
2814
  title: "Create a TypeScript project for the service worker",
2800
2815
  checks: [{
@@ -3846,7 +3861,7 @@ function libSubpathImports(libDir) {
3846
3861
  var lib_alias_default = defineMigrationTask({
3847
3862
  id: "lib-alias",
3848
3863
  description: "Replace the $lib alias with #lib subpath imports",
3849
- run: ({ sv, cwd, directory, dependencyVersion }) => {
3864
+ run: ({ sv, cwd, file, directory, dependencyVersion }) => {
3850
3865
  const isLibrary = Boolean(dependencyVersion("@sveltejs/package"));
3851
3866
  sv.file("package.json", transforms.json(({ data }) => {
3852
3867
  data.imports = {
@@ -3877,6 +3892,10 @@ var lib_alias_default = defineMigrationTask({
3877
3892
  });
3878
3893
  return rewritten === content ? false : rewritten;
3879
3894
  });
3895
+ if (file.typeConfig) sv.file(path.relative(cwd, file.typeConfig), (content) => {
3896
+ if (!content.includes("rewriteRelativeImportExtensions") || content.includes("@migration-task")) return false;
3897
+ return createMigrationTaskComment("remove `rewriteRelativeImportExtensions` - the `#lib/*.ts` subpath imports are not relative paths, but the flag errors with TS2877") + "\n" + content;
3898
+ });
3880
3899
  }
3881
3900
  });
3882
3901
  //#endregion
@@ -5020,7 +5020,7 @@ function safeParse(schema, input, config$1) {
5020
5020
  //#endregion
5021
5021
  //#region package.json
5022
5022
  var name = "sv";
5023
- var version = "1.3.0";
5023
+ var version = "1.4.0";
5024
5024
  //#endregion
5025
5025
  //#region src/core/errors.ts
5026
5026
  var UnsupportedError = class extends Error {
@@ -17,6 +17,7 @@ type AiToolsOptions = {
17
17
  delivery: "plugin" | "tools";
18
18
  tools: string[];
19
19
  mcpSetup: "local" | "remote";
20
+ agentsMd: boolean;
20
21
  optInSkills: string[];
21
22
  };
22
23
  //#endregion
@@ -1,3 +1,3 @@
1
- import { C as create, _ as defineAddon, t as add, v as defineAddonOptions } from "../engine-S8UpCG24.mjs";
2
- import { n as officialAddons } from "../addons-BCioxI2r.mjs";
1
+ import { C as create, _ as defineAddon, t as add, v as defineAddonOptions } from "../engine-B1nZjPzd.mjs";
2
+ import { n as officialAddons } from "../addons-B9USH0bk.mjs";
3
3
  export { add, create, defineAddon, defineAddonOptions, officialAddons };
@@ -1,4 +1,4 @@
1
- import { C as create, Ct as __toESM, S as execSync, St as __require, l as addAllowBuildsIfPnpm, t as add, x as exec, xt as __commonJSMin } from "../engine-S8UpCG24.mjs";
1
+ import { C as create, Ct as __toESM, S as execSync, St as __require, l as addAllowBuildsIfPnpm, t as add, x as exec, xt as __commonJSMin } from "../engine-B1nZjPzd.mjs";
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
4
  import V from "node:process";
@@ -5,6 +5,6 @@
5
5
  },
6
6
  {
7
7
  "name": "package.json",
8
- "contents": "{\n\t\"name\": \"$SV-NAME-TODO$\",\n\t\"version\": \"0.0.1\",\n\t\"description\": \"sv add-on for $SV-NAME-TODO$\",\n\t\"keywords\": [\n\t\t\"sv-add\",\n\t\t\"svelte\",\n\t\t\"sveltekit\"\n\t],\n\t\"license\": \"MIT\",\n\t\"files\": [\n\t\t\"dist\"\n\t],\n\t\"type\": \"module\",\n\t\"exports\": {\n\t\t\".\": {\n\t\t\t\"default\": \"./dist/index.mjs\"\n\t\t}\n\t},\n\t\"publishConfig\": {\n\t\t\"access\": \"public\"\n\t},\n\t\"scripts\": {\n\t\t\"demo-create\": \"sv create demo --types ts --template minimal --no-add-ons --no-install\",\n\t\t\"demo-add\": \"pnpm build && sv add file:../ --cwd demo --no-git-check --no-install\",\n\t\t\"demo-add:ci\": \"pnpm build && sv add file:../=who:you --cwd demo --no-git-check --no-download-check --no-install\",\n\t\t\"build\": \"tsdown\",\n\t\t\"prepublishOnly\": \"npm run build\",\n\t\t\"test\": \"vitest run\"\n\t},\n\t\"devDependencies\": {\n\t\t\"@playwright/test\": \"^1.60.0\",\n\t\t\"@sveltejs/sv-utils\": \"^1.1.0\",\n\t\t\"@types/node\": \"^25.9.1\",\n\t\t\"sv\": \"^1.3.0\",\n\t\t\"tsdown\": \"^0.22.1\",\n\t\t\"vitest\": \"^4.1.8\"\n\t},\n\t\"peerDependencies\": {\n\t\t\"sv\": \"^1.3.0\"\n\t}\n}\n"
8
+ "contents": "{\n\t\"name\": \"$SV-NAME-TODO$\",\n\t\"version\": \"0.0.1\",\n\t\"description\": \"sv add-on for $SV-NAME-TODO$\",\n\t\"keywords\": [\n\t\t\"sv-add\",\n\t\t\"svelte\",\n\t\t\"sveltekit\"\n\t],\n\t\"license\": \"MIT\",\n\t\"files\": [\n\t\t\"dist\"\n\t],\n\t\"type\": \"module\",\n\t\"exports\": {\n\t\t\".\": {\n\t\t\t\"default\": \"./dist/index.mjs\"\n\t\t}\n\t},\n\t\"publishConfig\": {\n\t\t\"access\": \"public\"\n\t},\n\t\"scripts\": {\n\t\t\"demo-create\": \"sv create demo --types ts --template minimal --no-add-ons --no-install\",\n\t\t\"demo-add\": \"pnpm build && sv add file:../ --cwd demo --no-git-check --no-install\",\n\t\t\"demo-add:ci\": \"pnpm build && sv add file:../=who:you --cwd demo --no-git-check --no-download-check --no-install\",\n\t\t\"build\": \"tsdown\",\n\t\t\"prepublishOnly\": \"npm run build\",\n\t\t\"test\": \"vitest run\"\n\t},\n\t\"devDependencies\": {\n\t\t\"@playwright/test\": \"^1.60.0\",\n\t\t\"@sveltejs/sv-utils\": \"^1.1.1\",\n\t\t\"@types/node\": \"^25.9.1\",\n\t\t\"sv\": \"^1.4.0\",\n\t\t\"tsdown\": \"^0.22.1\",\n\t\t\"vitest\": \"^4.1.8\"\n\t},\n\t\"peerDependencies\": {\n\t\t\"sv\": \"^1.4.0\"\n\t}\n}\n"
9
9
  }
10
10
  ]
@@ -5,6 +5,6 @@
5
5
  },
6
6
  {
7
7
  "name": "package.json",
8
- "contents": "{\n\t\"name\": \"$SV-NAME-TODO$\",\n\t\"version\": \"0.0.1\",\n\t\"description\": \"sv add-on for $SV-NAME-TODO$\",\n\t\"keywords\": [\n\t\t\"sv-add\",\n\t\t\"svelte\",\n\t\t\"sveltekit\"\n\t],\n\t\"license\": \"MIT\",\n\t\"files\": [\n\t\t\"dist\"\n\t],\n\t\"type\": \"module\",\n\t\"exports\": {\n\t\t\".\": {\n\t\t\t\"default\": \"./dist/index.mjs\"\n\t\t}\n\t},\n\t\"publishConfig\": {\n\t\t\"access\": \"public\"\n\t},\n\t\"scripts\": {\n\t\t\"demo-create\": \"sv create demo --types ts --template minimal --no-add-ons --no-install\",\n\t\t\"demo-add\": \"pnpm build && sv add file:../ --cwd demo --no-git-check --no-install\",\n\t\t\"demo-add:ci\": \"pnpm build && sv add file:../=who:you --cwd demo --no-git-check --no-download-check --no-install\",\n\t\t\"build\": \"tsdown\",\n\t\t\"prepublishOnly\": \"npm run build\",\n\t\t\"test\": \"vitest run\"\n\t},\n\t\"devDependencies\": {\n\t\t\"@playwright/test\": \"^1.60.0\",\n\t\t\"@sveltejs/sv-utils\": \"^1.1.0\",\n\t\t\"@types/node\": \"^25.9.1\",\n\t\t\"sv\": \"^1.3.0\",\n\t\t\"tsdown\": \"^0.22.1\",\n\t\t\"vitest\": \"^4.1.8\"\n\t},\n\t\"peerDependencies\": {\n\t\t\"sv\": \"^1.3.0\"\n\t}\n}\n"
8
+ "contents": "{\n\t\"name\": \"$SV-NAME-TODO$\",\n\t\"version\": \"0.0.1\",\n\t\"description\": \"sv add-on for $SV-NAME-TODO$\",\n\t\"keywords\": [\n\t\t\"sv-add\",\n\t\t\"svelte\",\n\t\t\"sveltekit\"\n\t],\n\t\"license\": \"MIT\",\n\t\"files\": [\n\t\t\"dist\"\n\t],\n\t\"type\": \"module\",\n\t\"exports\": {\n\t\t\".\": {\n\t\t\t\"default\": \"./dist/index.mjs\"\n\t\t}\n\t},\n\t\"publishConfig\": {\n\t\t\"access\": \"public\"\n\t},\n\t\"scripts\": {\n\t\t\"demo-create\": \"sv create demo --types ts --template minimal --no-add-ons --no-install\",\n\t\t\"demo-add\": \"pnpm build && sv add file:../ --cwd demo --no-git-check --no-install\",\n\t\t\"demo-add:ci\": \"pnpm build && sv add file:../=who:you --cwd demo --no-git-check --no-download-check --no-install\",\n\t\t\"build\": \"tsdown\",\n\t\t\"prepublishOnly\": \"npm run build\",\n\t\t\"test\": \"vitest run\"\n\t},\n\t\"devDependencies\": {\n\t\t\"@playwright/test\": \"^1.60.0\",\n\t\t\"@sveltejs/sv-utils\": \"^1.1.1\",\n\t\t\"@types/node\": \"^25.9.1\",\n\t\t\"sv\": \"^1.4.0\",\n\t\t\"tsdown\": \"^0.22.1\",\n\t\t\"vitest\": \"^4.1.8\"\n\t},\n\t\"peerDependencies\": {\n\t\t\"sv\": \"^1.4.0\"\n\t}\n}\n"
9
9
  }
10
10
  ]
@@ -5,6 +5,6 @@
5
5
  },
6
6
  {
7
7
  "name": "package.json",
8
- "contents": "{\n\t\"name\": \"$SV-NAME-TODO$\",\n\t\"version\": \"0.0.1\",\n\t\"description\": \"sv add-on for $SV-NAME-TODO$\",\n\t\"keywords\": [\n\t\t\"sv-add\",\n\t\t\"svelte\",\n\t\t\"sveltekit\"\n\t],\n\t\"license\": \"MIT\",\n\t\"files\": [\n\t\t\"dist\"\n\t],\n\t\"type\": \"module\",\n\t\"exports\": {\n\t\t\".\": {\n\t\t\t\"default\": \"./dist/index.mjs\"\n\t\t}\n\t},\n\t\"publishConfig\": {\n\t\t\"access\": \"public\"\n\t},\n\t\"scripts\": {\n\t\t\"demo-create\": \"sv create demo --types ts --template minimal --no-add-ons --no-install\",\n\t\t\"demo-add\": \"pnpm build && sv add file:../ --cwd demo --no-git-check --no-install\",\n\t\t\"demo-add:ci\": \"pnpm build && sv add file:../=who:you --cwd demo --no-git-check --no-download-check --no-install\",\n\t\t\"build\": \"tsdown\",\n\t\t\"prepublishOnly\": \"npm run build\",\n\t\t\"test\": \"vitest run\"\n\t},\n\t\"devDependencies\": {\n\t\t\"@playwright/test\": \"^1.60.0\",\n\t\t\"@sveltejs/sv-utils\": \"^1.1.0\",\n\t\t\"@types/node\": \"^25.9.1\",\n\t\t\"sv\": \"^1.3.0\",\n\t\t\"tsdown\": \"^0.22.1\",\n\t\t\"vitest\": \"^4.1.8\"\n\t},\n\t\"peerDependencies\": {\n\t\t\"sv\": \"^1.3.0\"\n\t}\n}\n"
8
+ "contents": "{\n\t\"name\": \"$SV-NAME-TODO$\",\n\t\"version\": \"0.0.1\",\n\t\"description\": \"sv add-on for $SV-NAME-TODO$\",\n\t\"keywords\": [\n\t\t\"sv-add\",\n\t\t\"svelte\",\n\t\t\"sveltekit\"\n\t],\n\t\"license\": \"MIT\",\n\t\"files\": [\n\t\t\"dist\"\n\t],\n\t\"type\": \"module\",\n\t\"exports\": {\n\t\t\".\": {\n\t\t\t\"default\": \"./dist/index.mjs\"\n\t\t}\n\t},\n\t\"publishConfig\": {\n\t\t\"access\": \"public\"\n\t},\n\t\"scripts\": {\n\t\t\"demo-create\": \"sv create demo --types ts --template minimal --no-add-ons --no-install\",\n\t\t\"demo-add\": \"pnpm build && sv add file:../ --cwd demo --no-git-check --no-install\",\n\t\t\"demo-add:ci\": \"pnpm build && sv add file:../=who:you --cwd demo --no-git-check --no-download-check --no-install\",\n\t\t\"build\": \"tsdown\",\n\t\t\"prepublishOnly\": \"npm run build\",\n\t\t\"test\": \"vitest run\"\n\t},\n\t\"devDependencies\": {\n\t\t\"@playwright/test\": \"^1.60.0\",\n\t\t\"@sveltejs/sv-utils\": \"^1.1.1\",\n\t\t\"@types/node\": \"^25.9.1\",\n\t\t\"sv\": \"^1.4.0\",\n\t\t\"tsdown\": \"^0.22.1\",\n\t\t\"vitest\": \"^4.1.8\"\n\t},\n\t\"peerDependencies\": {\n\t\t\"sv\": \"^1.4.0\"\n\t}\n}\n"
9
9
  }
10
10
  ]
@@ -30,13 +30,13 @@
30
30
  },
31
31
  "devDependencies": {
32
32
  "@playwright/test": "^1.60.0",
33
- "@sveltejs/sv-utils": "^1.1.0",
33
+ "@sveltejs/sv-utils": "^1.1.1",
34
34
  "@types/node": "^25.9.1",
35
- "sv": "^1.3.0",
35
+ "sv": "^1.4.0",
36
36
  "tsdown": "^0.22.1",
37
37
  "vitest": "^4.1.8"
38
38
  },
39
39
  "peerDependencies": {
40
- "sv": "^1.3.0"
40
+ "sv": "^1.4.0"
41
41
  }
42
42
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sv",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "A command line interface (CLI) for creating and maintaining Svelte applications",
5
5
  "keywords": [
6
6
  "create",
@@ -34,7 +34,7 @@
34
34
  }
35
35
  },
36
36
  "dependencies": {
37
- "@sveltejs/sv-utils": "1.1.0"
37
+ "@sveltejs/sv-utils": "1.1.1"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@clack/prompts": "1.5.0",