sv 0.9.8 → 0.9.9

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.
package/dist/bin.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { AGENT_NAMES, Command, De, Fe, Ge, J, Ke, Option, T, Ue, Vu, We, __toESM, addPnpmBuildDependencies, create as create$1, detect, et, from, getUserAgent, installDependencies, installOption, isVersionUnsupportedBelow, ke, packageManagerPrompt, parseJson, parseScript, parseSvelte, program, require_picocolors, resolveCommand, templates, up as up$1, ze } from "./create-G_G45yBx.js";
3
- import { addDefault, applyAddons, communityAddonIds, create as create$2, createDefault, createWorkspace, formatFiles, getAddonDetails, getCommunityAddon, getHighlighter, officialAddons, overrideProperties, setupAddons } from "./install-DhHe_LP6.js";
2
+ import { AGENT_NAMES, Command, De, Fe, Ge, J, Ke, Option, T, Ue, Vu, We, __toESM, addPnpmBuildDependencies, create as create$1, detect, dist, et, from, getUserAgent, installDependencies, installOption, isVersionUnsupportedBelow, ke, packageManagerPrompt, parseJson, parseScript, parseSvelte, program, require_picocolors, resolveCommand, templates, up as up$1, ze } from "./create-CdiXN6U7.js";
3
+ import { addDefault, applyAddons, communityAddonIds, create as create$2, createDefault, createWorkspace, formatFiles, getAddonDetails, getCommunityAddon, getHighlighter, officialAddons, overrideProperties, setupAddons } from "./install-CD-dlXd7.js";
4
4
  import { exec, execSync } from "node:child_process";
5
5
  import path, { dirname, join } from "node:path";
6
6
  import fs, { existsSync } from "node:fs";
@@ -12,7 +12,7 @@ import { pipeline } from "node:stream/promises";
12
12
 
13
13
  //#region package.json
14
14
  var name = "sv";
15
- var version = "0.9.8";
15
+ var version = "0.9.9";
16
16
  var type = "module";
17
17
  var description = "A CLI for creating and updating SvelteKit projects";
18
18
  var license = "MIT";
@@ -842,7 +842,7 @@ const add = new Command("add").description("applies specified add-ons into a pro
842
842
  });
843
843
  });
844
844
  async function runAddCommand(options$1, selectedAddonIds) {
845
- const selectedAddons = selectedAddonIds.map((id) => ({
845
+ let selectedAddons = selectedAddonIds.map((id) => ({
846
846
  type: "official",
847
847
  addon: getAddonDetails(id)
848
848
  }));
@@ -1067,19 +1067,29 @@ async function runAddCommand(options$1, selectedAddonIds) {
1067
1067
  const commDetails = Object.keys(community).map((id) => communityDetails.find((a) => a.id === id));
1068
1068
  const details = officialDetails.concat(commDetails);
1069
1069
  const addonMap = Object.assign({}, ...details.map((a) => ({ [a.id]: a })));
1070
- const { filesToFormat, pnpmBuildDependencies: addonPnpmBuildDependencies } = await applyAddons({
1070
+ const { filesToFormat, pnpmBuildDependencies, status } = await applyAddons({
1071
1071
  workspace,
1072
1072
  addonSetupResults,
1073
1073
  addons: addonMap,
1074
1074
  options: official
1075
1075
  });
1076
- T.success("Successfully setup add-ons");
1076
+ const addonSuccess = [];
1077
+ for (const [addonId, info] of Object.entries(status)) if (info === "success") addonSuccess.push(addonId);
1078
+ else {
1079
+ T.warn(`Canceled ${addonId}: ${info.join(", ")}`);
1080
+ selectedAddons = selectedAddons.filter((a) => a.addon.id !== addonId);
1081
+ }
1082
+ if (addonSuccess.length === 0) {
1083
+ De("All selected add-ons were canceled.");
1084
+ process.exit(1);
1085
+ } else if (addonSuccess.length === Object.entries(status).length) T.success("Successfully setup add-ons");
1086
+ else T.success(`Successfully setup: ${addonSuccess.join(", ")}`);
1077
1087
  let packageManager;
1078
1088
  if (options$1.install) {
1079
1089
  packageManager = options$1.install === true ? await packageManagerPrompt(options$1.cwd) : options$1.install;
1080
1090
  if (packageManager) {
1081
1091
  workspace.packageManager = packageManager;
1082
- await addPnpmBuildDependencies(workspace.cwd, packageManager, ["esbuild", ...addonPnpmBuildDependencies]);
1092
+ await addPnpmBuildDependencies(workspace.cwd, packageManager, ["esbuild", ...pnpmBuildDependencies]);
1083
1093
  await installDependencies(packageManager, options$1.cwd);
1084
1094
  }
1085
1095
  }
@@ -1103,13 +1113,14 @@ async function runAddCommand(options$1, selectedAddonIds) {
1103
1113
  return {
1104
1114
  nextSteps: selectedAddons.map(({ addon }) => {
1105
1115
  if (!addon.nextSteps) return;
1106
- let addonMessage = `${import_picocolors$2.default.green(addon.id)}:\n`;
1107
1116
  const options$2 = official[addon.id];
1108
1117
  const addonNextSteps = addon.nextSteps({
1109
1118
  ...workspace,
1110
1119
  options: options$2,
1111
1120
  highlighter
1112
1121
  });
1122
+ if (addonNextSteps.length === 0) return;
1123
+ let addonMessage = `${import_picocolors$2.default.green(addon.id)}:\n`;
1113
1124
  addonMessage += ` - ${addonNextSteps.join("\n - ")}`;
1114
1125
  return addonMessage;
1115
1126
  }).filter((msg) => msg !== void 0),
@@ -1286,26 +1297,50 @@ function extractPackageVersion(pkgName) {
1286
1297
  if (pkgName.includes("@", 1)) [, version$1] = pkgName.split("@");
1287
1298
  return version$1;
1288
1299
  }
1289
- function setupPlaygroundProject(playground, cwd, installDependencies$1) {
1300
+ function setupPlaygroundProject(url, playground, cwd, installDependencies$1, typescript) {
1290
1301
  const mainFile = playground.files.find((file) => file.name === "App.svelte");
1291
1302
  if (!mainFile) throw new Error("Failed to find `App.svelte` entrypoint.");
1292
1303
  const dependencies = detectPlaygroundDependencies(playground.files);
1293
1304
  for (const file of playground.files) {
1294
1305
  for (const [pkg, version$1] of dependencies) if (version$1 !== "latest") file.content = file.content.replaceAll(`${pkg}@${version$1}`, pkg);
1295
- const filePath$1 = path.join(cwd, "src", "routes", file.name);
1306
+ const filePath$1 = path.join(cwd, "src", "lib", "playground", file.name);
1296
1307
  fs.mkdirSync(path.dirname(filePath$1), { recursive: true });
1297
1308
  fs.writeFileSync(filePath$1, file.content, "utf8");
1298
1309
  }
1310
+ {
1311
+ const shared = dist("shared.json");
1312
+ const { files: files$1 } = JSON.parse(fs.readFileSync(shared, "utf-8"));
1313
+ const playgroundFiles = files$1.filter((file) => file.include.includes("playground"));
1314
+ for (const file of playgroundFiles) {
1315
+ let contentToWrite = file.contents;
1316
+ if (file.name === "src/lib/PlaygroundLayout.svelte") {
1317
+ const { script: script$1, template, css } = parseSvelte(file.contents);
1318
+ const { generateCode: generateCode$1 } = parseSvelte("", { typescript });
1319
+ contentToWrite = generateCode$1({
1320
+ script: script$1.generateCode().replaceAll("$sv-title-$sv", playground.name).replaceAll("$sv-url-$sv", url),
1321
+ template: template.generateCode().replaceAll("onclick=\"{switchTheme}\"", "onclick={switchTheme}"),
1322
+ css: css.generateCode()
1323
+ });
1324
+ }
1325
+ fs.writeFileSync(path.join(cwd, file.name), contentToWrite, "utf-8");
1326
+ }
1327
+ }
1299
1328
  const filePath = path.join(cwd, "src/routes/+page.svelte");
1300
1329
  const content = fs.readFileSync(filePath, "utf-8");
1301
- const { script, generateCode } = parseSvelte(content);
1330
+ const { script, generateCode } = parseSvelte(content, { typescript });
1331
+ addDefault(script.ast, {
1332
+ as: "App",
1333
+ from: `$lib/playground/${mainFile.name}`
1334
+ });
1302
1335
  addDefault(script.ast, {
1303
- from: `./${mainFile.name}`,
1304
- as: "App"
1336
+ as: "PlaygroundLayout",
1337
+ from: `$lib/PlaygroundLayout.svelte`
1305
1338
  });
1306
1339
  const newContent = generateCode({
1307
1340
  script: script.generateCode(),
1308
- template: `<App />`
1341
+ template: `<PlaygroundLayout>
1342
+ <App />
1343
+ </PlaygroundLayout>`
1309
1344
  });
1310
1345
  fs.writeFileSync(filePath, newContent, "utf-8");
1311
1346
  const pkgPath = path.join(cwd, "package.json");
@@ -1468,7 +1503,7 @@ async function createProject(cwd, options$1) {
1468
1503
  template,
1469
1504
  types: language
1470
1505
  });
1471
- if (options$1.fromPlayground) await createProjectFromPlayground(options$1.fromPlayground, projectPath);
1506
+ if (options$1.fromPlayground) await createProjectFromPlayground(options$1.fromPlayground, projectPath, language === "typescript");
1472
1507
  T.success("Project created");
1473
1508
  let packageManager;
1474
1509
  let addOnNextSteps = [];
@@ -1495,12 +1530,12 @@ async function createProject(cwd, options$1) {
1495
1530
  packageManager
1496
1531
  };
1497
1532
  }
1498
- async function createProjectFromPlayground(url, cwd) {
1533
+ async function createProjectFromPlayground(url, cwd, typescript) {
1499
1534
  const urlData = parsePlaygroundUrl(url);
1500
1535
  const playground = await downloadPlaygroundData(urlData);
1501
1536
  const dependencies = detectPlaygroundDependencies(playground.files);
1502
1537
  const installDependencies$1 = await confirmExternalDependencies(Array.from(dependencies.keys()));
1503
- setupPlaygroundProject(playground, cwd, installDependencies$1);
1538
+ setupPlaygroundProject(url, playground, cwd, installDependencies$1, typescript);
1504
1539
  }
1505
1540
  async function confirmExternalDependencies(dependencies) {
1506
1541
  if (dependencies.length === 0) return false;
@@ -32398,4 +32398,4 @@ function to_valid_package_name(name) {
32398
32398
  }
32399
32399
 
32400
32400
  //#endregion
32401
- export { AGENT_NAMES, Command, De, Element, Fe, Ge, J, Ke, MagicString, Option, T, Tag, Ue, Vu, We, __commonJS, __require, __toESM, addPnpmBuildDependencies, any, be, create, createPrinter, dedent_default, defineAddon, defineAddonOptions, detect, et$1 as et, from, getUserAgent, import_picocolors, installDependencies, installOption, isVersionUnsupportedBelow, ke, packageManagerPrompt, parseCss, parseHtml, parseHtml$1, parseJson, parseScript, parseScript$1, parseSvelte, program, require_picocolors, resolveCommand, serializeScript, stripAst, templates, up, ve, walk, ze };
32401
+ export { AGENT_NAMES, Command, De, Element, Fe, Ge, J, Ke, MagicString, Option, T, Tag, Ue, Vu, We, __commonJS, __require, __toESM, addPnpmBuildDependencies, any, be, create, createPrinter, dedent_default, defineAddon, defineAddonOptions, detect, dist, et$1 as et, from, getUserAgent, import_picocolors, installDependencies, installOption, isVersionUnsupportedBelow, ke, packageManagerPrompt, parseCss, parseHtml, parseHtml$1, parseJson, parseScript, parseScript$1, parseSvelte, program, require_picocolors, resolveCommand, serializeScript, stripAst, templates, up, ve, walk, ze };