sv 0.8.20 → 0.9.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,4 +1,4 @@
1
- import { Element, T, Tag, __commonJS, __export, __toESM, __toESM$1, be, detect, esm_exports, getUserAgent, parseCss$1, parseHtml, parseHtml$1, parseJson$1, parseScript, parseScript$1, parseSvelte, require_picocolors, require_picocolors$1, resolveCommand, serializeScript, stripAst, up, walk, walk_exports } from "./package-manager-DO5R9a6p.js";
1
+ import { Element, T, Tag, __commonJS, __export, __toESM as __toESM$1, __toESM$1 as __toESM, be, detect, esm_exports, getUserAgent, parseCss$1, parseHtml, parseHtml$1, parseJson$1, parseScript, parseScript$1, parseSvelte, require_picocolors, require_picocolors$1, resolveCommand, serializeScript, stripAst, up, walk, walk_exports } from "./package-manager-DO5R9a6p.js";
2
2
  import fs, { existsSync, lstatSync, readdirSync } from "node:fs";
3
3
  import path, { dirname, join } from "node:path";
4
4
  import process$1, { stdin, stdout } from "node:process";
@@ -824,7 +824,8 @@ function exportDefaultConfig(ast, options$6 = {}) {
824
824
  let fallbackExpression;
825
825
  if (fallback) fallbackExpression = typeof fallback === "string" ? parseExpression(fallback) : fallback;
826
826
  else fallbackExpression = create({});
827
- const { value: rootObject } = createDefault(ast, { fallback: fallbackExpression });
827
+ const { value } = createDefault(ast, { fallback: fallbackExpression });
828
+ const rootObject = value.type === "TSSatisfiesExpression" ? value.expression : value;
828
829
  let configObject;
829
830
  if (!ignoreWrapper || !("arguments" in rootObject) || !Array.isArray(rootObject.arguments)) {
830
831
  configObject = rootObject;
@@ -888,7 +889,7 @@ const addPlugin = (ast, options$6) => {
888
889
 
889
890
  //#endregion
890
891
  //#region packages/cli/commands/add/utils.ts
891
- var import_picocolors$5 = __toESM$1(require_picocolors$1(), 1);
892
+ var import_picocolors$5 = __toESM(require_picocolors$1(), 1);
892
893
  function getPackageJson(cwd) {
893
894
  const packageText = readFile(cwd, commonFilePaths.packageJson);
894
895
  if (!packageText) {
@@ -1059,7 +1060,7 @@ function parseKitOptions(cwd) {
1059
1060
 
1060
1061
  //#endregion
1061
1062
  //#region packages/cli/lib/install.ts
1062
- var import_picocolors$4 = __toESM$1(require_picocolors$1(), 1);
1063
+ var import_picocolors$4 = __toESM(require_picocolors$1(), 1);
1063
1064
  async function installAddon({ addons, cwd, options: options$6, packageManager = "npm" }) {
1064
1065
  const workspace = await createWorkspace({
1065
1066
  cwd,
@@ -1252,8 +1253,8 @@ else if (y > 0) ret += `${CSI}${y}B`;
1252
1253
  beep
1253
1254
  };
1254
1255
  } });
1255
- var import_src$1 = __toESM(require_src(), 1);
1256
- var import_picocolors$3 = __toESM(require_picocolors(), 1);
1256
+ var import_src$1 = __toESM$1(require_src(), 1);
1257
+ var import_picocolors$3 = __toESM$1(require_picocolors(), 1);
1257
1258
  function hu({ onlyFirst: e$1 = !1 } = {}) {
1258
1259
  const t = ["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");
1259
1260
  return new RegExp(t, e$1 ? void 0 : "g");
@@ -1988,9 +1989,9 @@ B$1 = new WeakMap(), k$1 = new WeakMap(), I = new WeakMap(), v$1 = new WeakMap()
1988
1989
  e$1 ? this.filteredOptions = D$1.filter((t) => x$1(this, I).call(this, e$1, t)) : this.filteredOptions = [...D$1], m(this, B$1, FD(this.focusedValue, this.filteredOptions)), this.focusedValue = this.filteredOptions[x$1(this, B$1)]?.value, this.multiple || (this.focusedValue !== void 0 ? this.toggleSelected(this.focusedValue) : this.deselectAll());
1989
1990
  }
1990
1991
  };
1991
- var import_picocolors$1 = __toESM(require_picocolors(), 1);
1992
- var import_picocolors$2 = __toESM(require_picocolors(), 1);
1993
- var import_src = __toESM(require_src(), 1);
1992
+ var import_picocolors$1 = __toESM$1(require_picocolors(), 1);
1993
+ var import_picocolors$2 = __toESM$1(require_picocolors(), 1);
1994
+ var import_src = __toESM$1(require_src(), 1);
1994
1995
  function Pe() {
1995
1996
  return process$1.platform !== "win32" ? process$1.env.TERM !== "linux" : !!process$1.env.CI || !!process$1.env.WT_SESSION || !!process$1.env.TERMINUS_SUBLIME || process$1.env.ConEmuTask === "{cmd::Cmder}" || process$1.env.TERM_PROGRAM === "Terminus-Sublime" || process$1.env.TERM_PROGRAM === "vscode" || process$1.env.TERM === "xterm-256color" || process$1.env.TERM === "alacritty" || process$1.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
1996
1997
  }
@@ -2690,7 +2691,7 @@ else return true;
2690
2691
  if (version.patch === below.patch) return false;
2691
2692
  return undefined;
2692
2693
  }
2693
- var import_picocolors = __toESM(require_picocolors(), 1);
2694
+ var import_picocolors = __toESM$1(require_picocolors(), 1);
2694
2695
  var colors = import_picocolors.default;
2695
2696
 
2696
2697
  //#endregion
@@ -2932,6 +2933,7 @@ var drizzle_default = defineAddon({
2932
2933
  const scripts = data.scripts;
2933
2934
  if (options$6.docker) scripts["db:start"] ??= "docker compose up";
2934
2935
  scripts["db:push"] ??= "drizzle-kit push";
2936
+ scripts["db:generate"] ??= "drizzle-kit generate";
2935
2937
  scripts["db:migrate"] ??= "drizzle-kit migrate";
2936
2938
  scripts["db:studio"] ??= "drizzle-kit studio";
2937
2939
  return generateCode();
@@ -5608,7 +5610,7 @@ var vitest_addon_default = defineAddon({
5608
5610
  `;
5609
5611
  });
5610
5612
  if (componentTesting) {
5611
- const fileName = kit ? `${kit.routesDirectory}/page.svelte.test.${ext}` : `src/App.svelte.test.${ext}`;
5613
+ const fileName = kit ? `${kit.routesDirectory}/page.svelte.spec.${ext}` : `src/App.svelte.test.${ext}`;
5612
5614
  sv.file(fileName, (content) => {
5613
5615
  if (content) return content;
5614
5616
  return dedent_default`
@@ -5673,7 +5675,7 @@ var vitest_addon_default = defineAddon({
5673
5675
  });
5674
5676
  const testObject = object_exports.property(vitestConfig, {
5675
5677
  name: "test",
5676
- fallback: object_exports.create({})
5678
+ fallback: object_exports.create({ expect: { requireAssertions: true } })
5677
5679
  });
5678
5680
  const workspaceArray = object_exports.property(testObject, {
5679
5681
  name: "projects",
package/dist/bin.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { AGENT_NAMES, Command, De, Fe, Ge, J, Ke, Option, T, Ue, Vu, We, __toESM$1 as __toESM, addPnpmBuildDependencies, create, detect, et, from, getUserAgent, installDependencies, installOption, ke, packageManagerPrompt, program, require_picocolors$1 as require_picocolors, resolveCommand, templates, up, ze } from "./package-manager-DO5R9a6p.js";
3
- import { applyAddons, communityAddonIds, createWorkspace, formatFiles, getAddonDetails, getCommunityAddon, getHighlighter, isVersionUnsupportedBelow, officialAddons, setupAddons } from "./addons-Ce9LFQn0.js";
3
+ import { applyAddons, communityAddonIds, createWorkspace, formatFiles, getAddonDetails, getCommunityAddon, getHighlighter, isVersionUnsupportedBelow, officialAddons, setupAddons } from "./addons-ZFgzq16L.js";
4
4
  import fs, { existsSync } from "node:fs";
5
5
  import path, { dirname, join } from "node:path";
6
6
  import { fileURLToPath } from "node:url";
@@ -12,7 +12,7 @@ import { pipeline } from "node:stream/promises";
12
12
 
13
13
  //#region packages/cli/package.json
14
14
  var name = "sv";
15
- var version = "0.8.20";
15
+ var version = "0.9.0";
16
16
  var type = "module";
17
17
  var description = "A CLI for creating and updating SvelteKit projects";
18
18
  var license = "MIT";
@@ -676,46 +676,50 @@ async function fetchPackageJSON(packageName) {
676
676
  }
677
677
 
678
678
  //#endregion
679
- //#region packages/cli/commands/add/preconditions.ts
680
- function getGlobalPreconditions(cwd, addons, addonSetupResult) {
681
- return {
682
- name: "global checks",
683
- preconditions: [{
684
- name: "clean working directory",
685
- run: async () => {
686
- try {
687
- const asyncExec = promisify(exec);
688
- const { stdout: stdout$1 } = await asyncExec("git status --short", { cwd });
689
- if (stdout$1) return {
690
- success: false,
691
- message: "Found modified files"
692
- };
693
- return {
694
- success: true,
695
- message: undefined
696
- };
697
- } catch {
698
- return {
699
- success: true,
700
- message: "Not a git repository"
701
- };
702
- }
703
- }
704
- }, {
705
- name: "unsupported add-ons",
706
- run: () => {
707
- const reasons = addons.flatMap((a) => addonSetupResult[a.id].unsupported.map((reason) => ({
708
- id: a.id,
709
- reason
710
- })));
711
- if (reasons.length === 0) return {
679
+ //#region packages/cli/commands/add/verifiers.ts
680
+ function verifyCleanWorkingDirectory(cwd, gitCheck) {
681
+ const verifications = [];
682
+ if (gitCheck) verifications.push({
683
+ name: "clean working directory",
684
+ run: async () => {
685
+ try {
686
+ const asyncExec = promisify(exec);
687
+ const { stdout: stdout$1 } = await asyncExec("git status --short", { cwd });
688
+ if (stdout$1) return {
689
+ success: false,
690
+ message: "Found modified files"
691
+ };
692
+ return {
712
693
  success: true,
713
694
  message: undefined
714
695
  };
715
- throw new UnsupportedError(reasons);
696
+ } catch {
697
+ return {
698
+ success: true,
699
+ message: "Not a git repository"
700
+ };
716
701
  }
717
- }]
718
- };
702
+ }
703
+ });
704
+ return verifications;
705
+ }
706
+ function verifyUnsupportedAddons(addons, addonSetupResult) {
707
+ const verifications = [];
708
+ verifications.push({
709
+ name: "unsupported add-ons",
710
+ run: () => {
711
+ const reasons = addons.flatMap((a) => addonSetupResult[a.id].unsupported.map((reason) => ({
712
+ id: a.id,
713
+ reason
714
+ })));
715
+ if (reasons.length === 0) return {
716
+ success: true,
717
+ message: undefined
718
+ };
719
+ throw new UnsupportedError(reasons);
720
+ }
721
+ });
722
+ return verifications;
719
723
  }
720
724
 
721
725
  //#endregion
@@ -728,7 +732,7 @@ const AddonsSchema = array(string());
728
732
  const OptionsSchema$1 = strictObject({
729
733
  cwd: string(),
730
734
  install: union([boolean(), picklist(AGENT_NAMES)]),
731
- preconditions: boolean(),
735
+ gitCheck: boolean(),
732
736
  community: optional(union([AddonsSchema, boolean()])),
733
737
  addons: record(string(), optional(array(string())))
734
738
  });
@@ -758,7 +762,7 @@ const add = new Command("add").description("applies specified add-ons into a pro
758
762
  options: options$1
759
763
  });
760
764
  return prev;
761
- }).option("-C, --cwd <path>", "path to working directory", defaultCwd).option("--no-preconditions", "skip validating preconditions").option("--no-install", "skip installing dependencies").addOption(installOption).configureHelp({
765
+ }).option("-C, --cwd <path>", "path to working directory", defaultCwd).option("--no-git-check", "even if some files are dirty, no prompt will be shown").option("--no-install", "skip installing dependencies").addOption(installOption).configureHelp({
762
766
  ...helpConfig,
763
767
  formatHelp(cmd, helper) {
764
768
  const termWidth = helper.padWidth(cmd, helper);
@@ -901,7 +905,7 @@ else if (official[addonId][id] !== undefined) throw new Error(`Incompatible '${a
901
905
  options$1.community = selected;
902
906
  }
903
907
  if (Array.isArray(options$1.community) && options$1.community.length > 0) {
904
- const addons = options$1.community.map((id) => {
908
+ const addons$1 = options$1.community.map((id) => {
905
909
  const hasDirective = Object.values(Directive).some((directive) => id.startsWith(directive));
906
910
  if (hasDirective) return id;
907
911
  const validAddon = communityAddonIds.includes(id);
@@ -911,7 +915,7 @@ else if (official[addonId][id] !== undefined) throw new Error(`Incompatible '${a
911
915
  const { start, stop } = J();
912
916
  try {
913
917
  start("Resolving community add-on packages");
914
- const pkgs = await Promise.all(addons.map(async (id) => {
918
+ const pkgs = await Promise.all(addons$1.map(async (id) => {
915
919
  return await getPackageJSON({
916
920
  cwd: options$1.cwd,
917
921
  packageName: id
@@ -994,28 +998,26 @@ else if (official[addonId][id] !== undefined) throw new Error(`Incompatible '${a
994
998
  });
995
999
  }
996
1000
  }
997
- if (options$1.preconditions && selectedAddons.length > 0) {
998
- const addons = selectedAddons.map(({ addon }) => addon);
999
- const { preconditions } = getGlobalPreconditions(options$1.cwd, addons, addonSetupResults);
1000
- const fails = [];
1001
- for (const condition of preconditions) {
1002
- const { message, success } = await condition.run();
1003
- if (!success) fails.push({
1004
- name: condition.name,
1005
- message
1006
- });
1007
- }
1008
- if (fails.length > 0) {
1009
- const message = fails.map(({ name: name$1, message: message$1 }) => import_picocolors$2.default.yellow(`${name$1} (${message$1})`)).join("\n- ");
1010
- Ke(`- ${message}`, "Preconditions not met", { format: (line) => line });
1011
- const force = await ke({
1012
- message: "Preconditions failed. Do you wish to continue?",
1013
- initialValue: false
1014
- });
1015
- if (Vu(force) || !force) {
1016
- De("Operation cancelled.");
1017
- process.exit(1);
1018
- }
1001
+ const addons = selectedAddons.map(({ addon }) => addon);
1002
+ const verifications = [...verifyCleanWorkingDirectory(options$1.cwd, options$1.gitCheck), ...verifyUnsupportedAddons(addons, addonSetupResults)];
1003
+ const fails = [];
1004
+ for (const verification of verifications) {
1005
+ const { message, success } = await verification.run();
1006
+ if (!success) fails.push({
1007
+ name: verification.name,
1008
+ message
1009
+ });
1010
+ }
1011
+ if (fails.length > 0) {
1012
+ const message = fails.map(({ name: name$1, message: message$1 }) => import_picocolors$2.default.yellow(`${name$1} (${message$1})`)).join("\n- ");
1013
+ Ke(`- ${message}`, "Verifications not met", { format: (line) => line });
1014
+ const force = await ke({
1015
+ message: "Verifications failed. Do you wish to continue?",
1016
+ initialValue: false
1017
+ });
1018
+ if (Vu(force) || !force) {
1019
+ De("Operation cancelled.");
1020
+ process.exit(1);
1019
1021
  }
1020
1022
  }
1021
1023
  for (const { addon, type: type$1 } of selectedAddons) {
@@ -1244,7 +1246,6 @@ const create$1 = new Command("create").description("scaffolds a new SvelteKit pr
1244
1246
  const pmRunCmd = `${command} ${args.join(" ")}`;
1245
1247
  const steps = [
1246
1248
  ...initialSteps,
1247
- ` ${i++}: ${highlight("git init && git add -A && git commit -m \"Initial commit\"")} (optional)`,
1248
1249
  ` ${i++}: ${highlight(pmRunCmd)}`,
1249
1250
  "",
1250
1251
  `To close the dev server, hit ${highlight("Ctrl-C")}`
@@ -1338,7 +1339,7 @@ async function createProject(cwd, options$1) {
1338
1339
  const { nextSteps, packageManager: pm } = await runAddCommand({
1339
1340
  cwd: projectPath,
1340
1341
  install: options$1.install,
1341
- preconditions: false,
1342
+ gitCheck: false,
1342
1343
  community: [],
1343
1344
  addons: {}
1344
1345
  }, []);
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import { create } from "./package-manager-DO5R9a6p.js";
2
- import { installAddon, officialAddons } from "./addons-Ce9LFQn0.js";
2
+ import { installAddon, officialAddons } from "./addons-ZFgzq16L.js";
3
3
 
4
4
  export { create, installAddon, officialAddons };
package/dist/shared.json CHANGED
@@ -28,7 +28,7 @@
28
28
  "library"
29
29
  ],
30
30
  "exclude": [],
31
- "contents": "# Svelte library\n\nEverything you need to build a Svelte library, powered by [`sv`](https://npmjs.com/package/sv).\n\nRead more about creating a library [in the docs](https://svelte.dev/docs/kit/packaging).\n\n## Creating a project\n\nIf you're seeing this, you've probably already done this step. Congrats!\n\n```sh\n# create a new project in the current directory\nnpx sv create\n\n# create a new project in my-app\nnpx sv create my-app\n```\n\n## Developing\n\nOnce you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:\n\n```sh\nnpm run dev\n\n# or start the server and open the app in a new browser tab\nnpm run dev -- --open\n```\n\nEverything inside `src/lib` is part of your library, everything inside `src/routes` can be used as a showcase or preview app.\n\n## Building\n\nTo build your library:\n\n```sh\nnpm run package\n```\n\nTo create a production version of your showcase app:\n\n```sh\nnpm run build\n```\n\nYou can preview the production build with `npm run preview`.\n\n> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment.\n\n## Publishing\n\nGo into the `package.json` and give your package the desired name through the `\"name\"` option. Also consider adding a `\"license\"` field and point it to a `LICENSE` file which you can create from a template (one popular option is the [MIT license](https://opensource.org/license/mit/)).\n\nTo publish your library to [npm](https://www.npmjs.com):\n\n```sh\nnpm publish\n```\n"
31
+ "contents": "# Svelte library\n\nEverything you need to build a Svelte library, powered by [`sv`](https://npmjs.com/package/sv).\n\nRead more about creating a library [in the docs](https://svelte.dev/docs/kit/packaging).\n\n## Creating a project\n\nIf you're seeing this, you've probably already done this step. Congrats!\n\n```sh\n# create a new project in the current directory\nnpx sv create\n\n# create a new project in my-app\nnpx sv create my-app\n```\n\n## Developing\n\nOnce you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:\n\n```sh\nnpm run dev\n\n# or start the server and open the app in a new browser tab\nnpm run dev -- --open\n```\n\nEverything inside `src/lib` is part of your library, everything inside `src/routes` can be used as a showcase or preview app.\n\n## Building\n\nTo build your library:\n\n```sh\nnpm pack\n```\n\nTo create a production version of your showcase app:\n\n```sh\nnpm run build\n```\n\nYou can preview the production build with `npm run preview`.\n\n> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment.\n\n## Publishing\n\nGo into the `package.json` and give your package the desired name through the `\"name\"` option. Also consider adding a `\"license\"` field and point it to a `LICENSE` file which you can create from a template (one popular option is the [MIT license](https://opensource.org/license/mit/)).\n\nTo publish your library to [npm](https://www.npmjs.com):\n\n```sh\nnpm publish\n```\n"
32
32
  },
33
33
  {
34
34
  "name": "jsconfig.json",
@@ -1,3 +1,3 @@
1
- # https://www.robotstxt.org/robotstxt.html
1
+ # allow crawling everything by default
2
2
  User-agent: *
3
3
  Disallow:
@@ -2,7 +2,6 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <link rel="icon" href="%sveltekit.assets%/favicon.svg" />
6
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
7
6
  %sveltekit.head%
8
7
  </head>
@@ -0,0 +1,3 @@
1
+ # allow crawling everything by default
2
+ User-agent: *
3
+ Disallow:
@@ -7,6 +7,10 @@
7
7
  "name": "src/lib/index.js",
8
8
  "contents": "// place files you want to import through the `$lib` alias in this folder.\n"
9
9
  },
10
+ {
11
+ "name": "src/routes/+layout.svelte",
12
+ "contents": "<script>\n\timport favicon from '$lib/assets/favicon.svg';\n\n\tlet { children } = $props();\n</script>\n\n<svelte:head>\n\t<link rel=\"icon\" href={favicon} />\n</svelte:head>\n\n{@render children?.()}\n"
13
+ },
10
14
  {
11
15
  "name": "src/routes/+page.svelte",
12
16
  "contents": "<h1>Welcome to SvelteKit</h1>\n<p>Visit <a href=\"https://svelte.dev/docs/kit\">svelte.dev/docs/kit</a> to read the documentation</p>\n"
@@ -3,6 +3,10 @@
3
3
  "name": "src/lib/index.js",
4
4
  "contents": "// place files you want to import through the `$lib` alias in this folder.\n"
5
5
  },
6
+ {
7
+ "name": "src/routes/+layout.svelte",
8
+ "contents": "<script>\n\timport favicon from '$lib/assets/favicon.svg';\n\n\tlet { children } = $props();\n</script>\n\n<svelte:head>\n\t<link rel=\"icon\" href={favicon} />\n</svelte:head>\n\n{@render children?.()}\n"
9
+ },
6
10
  {
7
11
  "name": "src/routes/+page.svelte",
8
12
  "contents": "<h1>Welcome to SvelteKit</h1>\n<p>Visit <a href=\"https://svelte.dev/docs/kit\">svelte.dev/docs/kit</a> to read the documentation</p>\n"
@@ -7,6 +7,10 @@
7
7
  "name": "src/lib/index.ts",
8
8
  "contents": "// place files you want to import through the `$lib` alias in this folder.\n"
9
9
  },
10
+ {
11
+ "name": "src/routes/+layout.svelte",
12
+ "contents": "<script lang=\"ts\">\n\timport favicon from '$lib/assets/favicon.svg';\n\n\tlet { children } = $props();\n</script>\n\n<svelte:head>\n\t<link rel=\"icon\" href={favicon} />\n</svelte:head>\n\n{@render children?.()}\n"
13
+ },
10
14
  {
11
15
  "name": "src/routes/+page.svelte",
12
16
  "contents": "<h1>Welcome to SvelteKit</h1>\n<p>Visit <a href=\"https://svelte.dev/docs/kit\">svelte.dev/docs/kit</a> to read the documentation</p>\n"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sv",
3
- "version": "0.8.20",
3
+ "version": "0.9.0",
4
4
  "type": "module",
5
5
  "description": "A CLI for creating and updating SvelteKit projects",
6
6
  "license": "MIT",
@@ -36,9 +36,9 @@
36
36
  "ps-tree": "^1.2.0",
37
37
  "tinyexec": "^0.3.2",
38
38
  "valibot": "^0.41.0",
39
+ "@sveltejs/addons": "0.0.0",
39
40
  "@sveltejs/cli-core": "0.0.0",
40
- "@sveltejs/create": "0.0.0",
41
- "@sveltejs/addons": "0.0.0"
41
+ "@sveltejs/create": "0.0.0"
42
42
  },
43
43
  "keywords": [
44
44
  "create",