sv 0.6.25 → 0.6.27

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
2
  import { Element, __commonJS, __require, __toESM, addPnpmBuildDependendencies, box, cancel, confirm, create, detect, esm_exports, from, getUserAgent, group, installDependencies, intro, isCancel, log, multiselect, note, outro, packageManagerPrompt, parseCss, parseHtml, parseHtml$1, parseJson, parseScript, parseSvelte, resolveCommand, select, spinner, templates, text, up, walk_exports } from "./package-manager-BF1V21Xa.js";
3
- import { __commonJS$1, __export, __toESM$1, addFromString, applyAddons, array_exports, common_exports, createWorkspace, dedent_default, exports_exports, formatFiles, function_exports, getHighlighter, imports_exports, kit_exports, object_exports, require_picocolors, setupAddons, variables_exports } from "./install-ByV5M1yf.js";
3
+ import { __commonJS$1, __export, __toESM$1, addFromString, applyAddons, array_exports, common_exports, createWorkspace, dedent_default, exports_exports, formatFiles, function_exports, getHighlighter, imports_exports, kit_exports, object_exports, require_picocolors, setupAddons, variables_exports } from "./install-D7XPOwHS.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 { promisify } from "node:util";
12
12
 
13
13
  //#region packages/cli/package.json
14
14
  var name = "sv";
15
- var version = "0.6.25";
15
+ var version = "0.6.27";
16
16
  var type = "module";
17
17
  var description = "A CLI for creating and updating SvelteKit projects";
18
18
  var license = "MIT";
@@ -4160,11 +4160,19 @@ var drizzle_default = defineAddon({
4160
4160
  if (options$6.mysql === "mysql2") dbSpecificContent = `
4161
4161
  MYSQL_ROOT_PASSWORD: ${PASSWORD}
4162
4162
  MYSQL_DATABASE: ${DB_NAME}
4163
+ volumes:
4164
+ - mysqldata:/var/lib/mysql
4165
+ volumes:
4166
+ mysqldata:
4163
4167
  `;
4164
4168
  if (options$6.postgresql === "postgres.js") dbSpecificContent = `
4165
4169
  POSTGRES_USER: ${USER}
4166
4170
  POSTGRES_PASSWORD: ${PASSWORD}
4167
4171
  POSTGRES_DB: ${DB_NAME}
4172
+ volumes:
4173
+ - pgdata:/var/lib/postgresql/data
4174
+ volumes:
4175
+ pgdata:
4168
4176
  `;
4169
4177
  content = dedent_default`
4170
4178
  services:
@@ -6191,22 +6199,14 @@ function addSlot(jsAst, htmlAst, svelteVersion) {
6191
6199
  //#region packages/addons/paraglide/index.ts
6192
6200
  const DEFAULT_INLANG_PROJECT = {
6193
6201
  $schema: "https://inlang.com/schema/project-settings",
6194
- modules: [
6195
- "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-empty-pattern@1/dist/index.js",
6196
- "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-identical-pattern@1/dist/index.js",
6197
- "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-missing-translation@1/dist/index.js",
6198
- "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-without-source@1/dist/index.js",
6199
- "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-valid-js-identifier@1/dist/index.js",
6200
- "https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@2/dist/index.js",
6201
- "https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@0/dist/index.js"
6202
- ],
6203
- "plugin.inlang.messageFormat": { pathPattern: "./messages/{languageTag}.json" }
6202
+ modules: ["https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@4/dist/index.js", "https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@2/dist/index.js"],
6203
+ "plugin.inlang.messageFormat": { pathPattern: "./messages/{locale}.json" }
6204
6204
  };
6205
6205
  const options$2 = defineAddonOptions({
6206
6206
  availableLanguageTags: {
6207
6207
  question: `Which languages would you like to support? ${colors.gray("(e.g. en,de-ch)")}`,
6208
6208
  type: "string",
6209
- default: "en",
6209
+ default: "en, es",
6210
6210
  validate(input) {
6211
6211
  const { invalidLanguageTags, validLanguageTags } = parseLanguageTagInput(input);
6212
6212
  if (invalidLanguageTags.length > 0) if (invalidLanguageTags.length === 1) return `The input "${invalidLanguageTags[0]}" is not a valid IETF BCP 47 language tag`;
@@ -6230,30 +6230,30 @@ else {
6230
6230
  var paraglide_default = defineAddon({
6231
6231
  id: "paraglide",
6232
6232
  shortDescription: "i18n",
6233
- homepage: "https://inlang.com",
6233
+ homepage: "https://inlang.com/m/gerre34r/library-inlang-paraglideJs",
6234
6234
  options: options$2,
6235
6235
  setup: ({ kit, unsupported }) => {
6236
6236
  if (!kit) unsupported("Requires SvelteKit");
6237
6237
  },
6238
- run: ({ sv, options: options$6, typescript, kit, dependencyVersion }) => {
6238
+ run: ({ sv, options: options$6, typescript, kit }) => {
6239
6239
  const ext = typescript ? "ts" : "js";
6240
6240
  if (!kit) throw new Error("SvelteKit is required");
6241
6241
  const paraglideOutDir = "src/lib/paraglide";
6242
- sv.dependency("@inlang/paraglide-sveltekit", "^0.15.5");
6242
+ sv.dependency("@inlang/paraglide-js", "^2.0.0");
6243
6243
  sv.file("project.inlang/settings.json", (content) => {
6244
6244
  if (content) return content;
6245
6245
  const { data, generateCode } = parseJson(content);
6246
6246
  for (const key in DEFAULT_INLANG_PROJECT) data[key] = DEFAULT_INLANG_PROJECT[key];
6247
6247
  const { validLanguageTags: validLanguageTags$1 } = parseLanguageTagInput(options$6.availableLanguageTags);
6248
- const sourceLanguageTag = validLanguageTags$1[0];
6249
- data.sourceLanguageTag = sourceLanguageTag;
6250
- data.languageTags = validLanguageTags$1;
6248
+ const baseLocale = validLanguageTags$1[0];
6249
+ data.baseLocale = baseLocale;
6250
+ data.locales = validLanguageTags$1;
6251
6251
  return generateCode();
6252
6252
  });
6253
6253
  sv.file(`vite.config.${ext}`, (content) => {
6254
6254
  const { ast, generateCode } = parseScript(content);
6255
- const vitePluginName = "paraglide";
6256
- imports_exports.addNamed(ast, "@inlang/paraglide-sveltekit/vite", { paraglide: vitePluginName });
6255
+ const vitePluginName = "paraglideVitePlugin";
6256
+ imports_exports.addNamed(ast, "@inlang/paraglide-js", { paraglideVitePlugin: vitePluginName });
6257
6257
  const { value: rootObject } = exports_exports.defaultExport(ast, function_exports.call("defineConfig", []));
6258
6258
  const param1 = function_exports.argumentByIndex(rootObject, 0, object_exports.createEmpty());
6259
6259
  const pluginsArray = object_exports.property(param1, "plugins", array_exports.createEmpty());
@@ -6266,20 +6266,10 @@ var paraglide_default = defineAddon({
6266
6266
  array_exports.push(pluginsArray, pluginFunctionCall);
6267
6267
  return generateCode();
6268
6268
  });
6269
- sv.file(`src/lib/i18n.${ext}`, (content) => {
6270
- const { ast, generateCode } = parseScript(content);
6271
- imports_exports.addNamed(ast, "@inlang/paraglide-sveltekit", { createI18n: "createI18n" });
6272
- imports_exports.addDefault(ast, "$lib/paraglide/runtime", "* as runtime");
6273
- const createI18nExpression = common_exports.expressionFromString("createI18n(runtime)");
6274
- const i18n = variables_exports.declaration(ast, "const", "i18n", createI18nExpression);
6275
- const existingExport = exports_exports.namedExport(ast, "i18n", i18n);
6276
- if (existingExport.declaration !== i18n) log$1.warn("Setting up $lib/i18n failed because it already exports an i18n function");
6277
- return generateCode();
6278
- });
6279
6269
  sv.file(`src/hooks.${ext}`, (content) => {
6280
6270
  const { ast, generateCode } = parseScript(content);
6281
- imports_exports.addNamed(ast, "$lib/i18n", { i18n: "i18n" });
6282
- const expression = common_exports.expressionFromString("i18n.reroute()");
6271
+ imports_exports.addNamed(ast, "$lib/paraglide/runtime", { deLocalizeUrl: "deLocalizeUrl" });
6272
+ const expression = common_exports.expressionFromString("(request) => deLocalizeUrl(request.url).pathname");
6283
6273
  const rerouteIdentifier = variables_exports.declaration(ast, "const", "reroute", expression);
6284
6274
  const existingExport = exports_exports.namedExport(ast, "reroute", rerouteIdentifier);
6285
6275
  if (existingExport.declaration !== rerouteIdentifier) log$1.warn("Adding the reroute hook automatically failed. Add it manually");
@@ -6287,32 +6277,16 @@ var paraglide_default = defineAddon({
6287
6277
  });
6288
6278
  sv.file(`src/hooks.server.${ext}`, (content) => {
6289
6279
  const { ast, generateCode } = parseScript(content);
6290
- imports_exports.addNamed(ast, "$lib/i18n", { i18n: "i18n" });
6291
- const hookHandleContent = "i18n.handle()";
6280
+ imports_exports.addNamed(ast, "$lib/paraglide/server", { paraglideMiddleware: "paraglideMiddleware" });
6281
+ const hookHandleContent = `({ event, resolve }) => paraglideMiddleware(event.request, ({ request, locale }) => {
6282
+ event.request = request;
6283
+ return resolve(event, {
6284
+ transformPageChunk: ({ html }) => html.replace('%paraglide.lang%', locale)
6285
+ });
6286
+ });`;
6292
6287
  kit_exports.addHooksHandle(ast, typescript, "handleParaglide", hookHandleContent);
6293
6288
  return generateCode();
6294
6289
  });
6295
- sv.file(`${kit.routesDirectory}/+layout.svelte`, (content) => {
6296
- const { script, template, generateCode } = parseSvelte(content, { typescript });
6297
- const paraglideComponentName = "ParaglideJS";
6298
- imports_exports.addNamed(script.ast, "@inlang/paraglide-sveltekit", { [paraglideComponentName]: paraglideComponentName });
6299
- imports_exports.addNamed(script.ast, "$lib/i18n", { i18n: "i18n" });
6300
- if (template.source.length === 0) {
6301
- const svelteVersion = dependencyVersion("svelte");
6302
- if (!svelteVersion) throw new Error("Failed to determine svelte version");
6303
- addSlot(script.ast, template.ast, svelteVersion);
6304
- }
6305
- const templateCode = new MagicString(template.generateCode());
6306
- if (!templateCode.original.includes("<ParaglideJS")) {
6307
- templateCode.indent();
6308
- templateCode.prepend("<ParaglideJS {i18n}>\n");
6309
- templateCode.append("\n</ParaglideJS>");
6310
- }
6311
- return generateCode({
6312
- script: script.generateCode(),
6313
- template: templateCode.toString()
6314
- });
6315
- });
6316
6290
  sv.file("src/app.html", (content) => {
6317
6291
  const { ast, generateCode } = parseHtml(content);
6318
6292
  const htmlNode = ast.children.find((child) => child.type === esm_exports.Tag && child.name === "html");
@@ -6322,8 +6296,7 @@ var paraglide_default = defineAddon({
6322
6296
  }
6323
6297
  htmlNode.attribs = {
6324
6298
  ...htmlNode.attribs,
6325
- lang: "%paraglide.lang%",
6326
- dir: "%paraglide.textDirection%"
6299
+ lang: "%paraglide.lang%"
6327
6300
  };
6328
6301
  return generateCode();
6329
6302
  });
@@ -6338,32 +6311,17 @@ var paraglide_default = defineAddon({
6338
6311
  });
6339
6312
  sv.file(`${kit.routesDirectory}/demo/paraglide/+page.svelte`, (content) => {
6340
6313
  const { script, template, generateCode } = parseSvelte(content, { typescript });
6341
- imports_exports.addDefault(script.ast, "$lib/paraglide/messages.js", "* as m");
6314
+ imports_exports.addNamed(script.ast, "$lib/paraglide/messages.js", { m: "m" });
6342
6315
  imports_exports.addNamed(script.ast, "$app/navigation", { goto: "goto" });
6343
6316
  imports_exports.addNamed(script.ast, "$app/state", { page: "page" });
6344
- imports_exports.addNamed(script.ast, "$lib/i18n", { i18n: "i18n" });
6345
- if (typescript) imports_exports.addNamed(script.ast, "$lib/paraglide/runtime", { AvailableLanguageTag: "AvailableLanguageTag" }, true);
6346
- const [ts] = utils_exports.createPrinter(typescript);
6317
+ imports_exports.addNamed(script.ast, "$lib/paraglide/runtime", { setLocale: "setLocale" });
6347
6318
  const scriptCode = new MagicString(script.generateCode());
6348
- if (!scriptCode.original.includes("function switchToLanguage")) {
6349
- scriptCode.trim();
6350
- scriptCode.append("\n\n");
6351
- scriptCode.append(dedent_default`
6352
- ${ts("", "/**")}
6353
- ${ts("", "* @param {import(\"$lib/paraglide/runtime\").AvailableLanguageTag} newLanguage")}
6354
- ${ts("", "*/")}
6355
- function switchToLanguage(newLanguage${ts(": AvailableLanguageTag")}) {
6356
- const canonicalPath = i18n.route(page.url.pathname);
6357
- const localisedPath = i18n.resolveRoute(canonicalPath, newLanguage);
6358
- goto(localisedPath);
6359
- }
6360
- `);
6361
- }
6362
6319
  const templateCode = new MagicString(template.source);
6363
6320
  templateCode.append("\n\n<h1>{m.hello_world({ name: 'SvelteKit User' })}</h1>\n");
6364
6321
  const { validLanguageTags: validLanguageTags$1 } = parseLanguageTagInput(options$6.availableLanguageTags);
6365
- const links = validLanguageTags$1.map((x) => `${templateCode.getIndentString()}<button onclick={() => switchToLanguage('${x}')}>${x}</button>`).join("\n");
6322
+ const links = validLanguageTags$1.map((x) => `${templateCode.getIndentString()}<button onclick={() => setLocale('${x}')}>${x}</button>`).join("\n");
6366
6323
  templateCode.append(`<div>\n${links}\n</div>`);
6324
+ templateCode.append("<p>\nIf you use VSCode, install the <a href=\"https://marketplace.visualstudio.com/items?itemName=inlang.vs-code-extension\" target=\"_blank\">Sherlock i18n extension</a> for a better i18n experience.\n</p>");
6367
6325
  return generateCode({
6368
6326
  script: scriptCode.toString(),
6369
6327
  template: templateCode.toString()
@@ -6379,7 +6337,7 @@ var paraglide_default = defineAddon({
6379
6337
  });
6380
6338
  },
6381
6339
  nextSteps: ({ highlighter }) => {
6382
- const steps = [`Edit your messages in ${highlighter.path("messages/en.json")}`, "Consider installing the Sherlock IDE Extension"];
6340
+ const steps = [`Edit your messages in ${highlighter.path("messages/en.json")}`];
6383
6341
  if (options$2.demo) steps.push(`Visit ${highlighter.route("/demo/paraglide")} route to view the demo`);
6384
6342
  return steps;
6385
6343
  }
@@ -6472,6 +6430,8 @@ var prettier_default = defineAddon({
6472
6430
  package-lock.json
6473
6431
  pnpm-lock.yaml
6474
6432
  yarn.lock
6433
+ bun.lock
6434
+ bun.lockb
6475
6435
  `;
6476
6436
  });
6477
6437
  sv.file(".prettierrc", (content) => {
@@ -6584,7 +6544,7 @@ var tailwindcss_default = defineAddon({
6584
6544
  const param1 = function_exports.argumentByIndex(rootObject, 0, object_exports.createEmpty());
6585
6545
  const pluginsArray = object_exports.property(param1, "plugins", array_exports.createEmpty());
6586
6546
  const pluginFunctionCall = function_exports.call(vitePluginName, []);
6587
- array_exports.push(pluginsArray, pluginFunctionCall);
6547
+ array_exports.unshift(pluginsArray, pluginFunctionCall);
6588
6548
  return generateCode();
6589
6549
  });
6590
6550
  sv.file("src/app.css", (content) => {
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import { create } from "./package-manager-BF1V21Xa.js";
2
- import { installAddon } from "./install-ByV5M1yf.js";
2
+ import { installAddon } from "./install-D7XPOwHS.js";
3
3
 
4
4
  export { create, installAddon };
@@ -1,4 +1,4 @@
1
- import { __commonJS, __toESM, be, detect, getUserAgent, log, parseJson, parseScript as parseScript$1, parseScript$1 as parseScript, resolveCommand, serializeScript, stripAst, up, walk_exports } from "./package-manager-BF1V21Xa.js";
1
+ import { __commonJS, __toESM, be, detect, getUserAgent, log, parseJson, parseScript, parseScript$1, resolveCommand, serializeScript, stripAst, up, walk_exports } from "./package-manager-BF1V21Xa.js";
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
4
  import process$1 from "node:process";
@@ -305,17 +305,17 @@ function expressionStatement(expression) {
305
305
  return statement;
306
306
  }
307
307
  function addFromString(ast, value) {
308
- const program = parseScript(dedent_default(value));
308
+ const program = parseScript$1(dedent_default(value));
309
309
  for (const childNode of program.body) ast.body.push(childNode);
310
310
  }
311
311
  function expressionFromString(value) {
312
- const program = parseScript(dedent_default(value));
312
+ const program = parseScript$1(dedent_default(value));
313
313
  const statement = program.body[0];
314
314
  if (statement.type !== "ExpressionStatement") throw new Error("value passed was not an expression");
315
315
  return statement.expression;
316
316
  }
317
317
  function statementFromString(value) {
318
- const program = parseScript(dedent_default(value));
318
+ const program = parseScript$1(dedent_default(value));
319
319
  const statement = program.body[0];
320
320
  return statement;
321
321
  }
@@ -342,7 +342,8 @@ function hasTypeProp(name, node) {
342
342
  var array_exports = {};
343
343
  __export(array_exports, {
344
344
  createEmpty: () => createEmpty$1,
345
- push: () => push
345
+ push: () => push,
346
+ unshift: () => unshift
346
347
  });
347
348
  function createEmpty$1() {
348
349
  const arrayExpression = {
@@ -352,21 +353,28 @@ function createEmpty$1() {
352
353
  return arrayExpression;
353
354
  }
354
355
  function push(ast, data) {
356
+ insertElement(ast, data, true);
357
+ }
358
+ function unshift(ast, data) {
359
+ insertElement(ast, data, false);
360
+ }
361
+ function insertElement(ast, data, insertEnd) {
355
362
  if (typeof data === "string") {
356
- const existingLiterals = ast.elements.filter((x) => x?.type == "StringLiteral");
357
- let literal = existingLiterals.find((x) => x.value == data);
363
+ const existingLiterals = ast.elements.filter((x) => x?.type === "StringLiteral");
364
+ let literal = existingLiterals.find((x) => x.value === data);
358
365
  if (!literal) {
359
366
  literal = {
360
367
  type: "StringLiteral",
361
368
  value: data
362
369
  };
363
- ast.elements.push(literal);
370
+ if (insertEnd) ast.elements.push(literal);
371
+ else ast.elements.unshift(literal);
364
372
  }
365
373
  } else {
366
- let anyNodeEquals = false;
367
374
  const elements = ast.elements;
368
- for (const node of elements) if (areNodesEqual(data, node)) anyNodeEquals = true;
369
- if (!anyNodeEquals) ast.elements.push(data);
375
+ const anyNodeEquals = elements.some((node) => areNodesEqual(data, node));
376
+ if (!anyNodeEquals) if (insertEnd) ast.elements.push(data);
377
+ else ast.elements.unshift(data);
370
378
  }
371
379
  }
372
380
  var object_exports = {};
@@ -970,7 +978,7 @@ function findRoot(cwd) {
970
978
  }
971
979
  function parseKitOptions(cwd) {
972
980
  const configSource = readFile(cwd, commonFilePaths.svelteConfig);
973
- const { ast } = parseScript$1(configSource);
981
+ const { ast } = parseScript(configSource);
974
982
  const defaultExport$1 = ast.body.find((s) => s.type === "ExportDefaultDeclaration");
975
983
  if (!defaultExport$1) throw Error("Missing default export in `svelte.config.js`");
976
984
  let objectExpression;
@@ -31,5 +31,6 @@
31
31
  "svelte": "^5.0.0",
32
32
  "typescript": "^5.3.2",
33
33
  "vite": "^6.0.0"
34
- }
34
+ },
35
+ "keywords": ["svelte"]
35
36
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sv",
3
- "version": "0.6.25",
3
+ "version": "0.6.27",
4
4
  "type": "module",
5
5
  "description": "A CLI for creating and updating SvelteKit projects",
6
6
  "license": "MIT",
@@ -38,9 +38,9 @@
38
38
  "tinyexec": "^0.3.1",
39
39
  "valibot": "^0.41.0",
40
40
  "@sveltejs/addons": "0.0.0",
41
+ "@sveltejs/clack-prompts": "0.9.1",
41
42
  "@sveltejs/cli-core": "0.0.0",
42
- "@sveltejs/create": "0.0.0",
43
- "@sveltejs/clack-prompts": "0.9.1"
43
+ "@sveltejs/create": "0.0.0"
44
44
  },
45
45
  "keywords": [
46
46
  "create",