@vuetify/cli 1.0.3 → 1.1.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.
Files changed (2) hide show
  1. package/dist/index.mjs +74 -136
  2. package/package.json +2 -2
package/dist/index.mjs CHANGED
@@ -8,7 +8,7 @@ import P, { cwd, stdin, stdout } from "node:process";
8
8
  import * as k$4 from "node:readline";
9
9
  import c from "node:readline";
10
10
  import { ReadStream } from "node:tty";
11
- import fs, { appendFileSync, cpSync, createWriteStream, existsSync, lstatSync, mkdirSync, mkdtempSync, promises, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
11
+ import fs, { appendFileSync, cpSync, createWriteStream, existsSync, lstatSync, mkdirSync, mkdtempSync, promises, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
12
12
  import path, { delimiter, dirname, isAbsolute, join, normalize, resolve } from "node:path";
13
13
  import fs$1, { constants, mkdir, readFile, rm, writeFile } from "node:fs/promises";
14
14
  import { URL as URL$1, fileURLToPath, pathToFileURL } from "node:url";
@@ -9918,14 +9918,8 @@ var en_default = {
9918
9918
  "css_framework": {
9919
9919
  "select": "Which CSS framework?",
9920
9920
  "unocss": { "hint": "Instant on-demand atomic CSS engine" },
9921
- "unocss_wind4": {
9922
- "label": "UnoCSS with Wind4 preset",
9923
- "hint": "soon"
9924
- },
9925
- "unocss_vuetify": {
9926
- "label": "UnoCSS with Vuetify preset",
9927
- "hint": "soon"
9928
- },
9921
+ "unocss_wind4": { "label": "UnoCSS with Wind4 preset" },
9922
+ "unocss_vuetify": { "label": "UnoCSS with Vuetify preset" },
9929
9923
  "tailwindcss": {
9930
9924
  "label": "Tailwind CSS",
9931
9925
  "hint": "A utility-first CSS framework"
@@ -9959,10 +9953,6 @@ var en_default = {
9959
9953
  "hint": "with eslint-config-vuetify"
9960
9954
  },
9961
9955
  "i18n": { "label": "I18n" },
9962
- "vuetify_nuxt_module": {
9963
- "label": "Vuetify Nuxt Module",
9964
- "hint": "Use vuetify-nuxt-module instead of local plugin"
9965
- },
9966
9956
  "mcp": {
9967
9957
  "label": "MCP",
9968
9958
  "hint": "with @vuetify/mcp and @intellectronica/ruler"
@@ -10218,10 +10208,6 @@ var ru_default = {
10218
10208
  "hint": "с eslint-config-vuetify"
10219
10209
  },
10220
10210
  "i18n": { "label": "I18n" },
10221
- "vuetify_nuxt_module": {
10222
- "label": "Vuetify Nuxt Module",
10223
- "hint": "Использовать vuetify-nuxt-module вместо локального плагина"
10224
- },
10225
10211
  "mcp": {
10226
10212
  "label": "MCP",
10227
10213
  "hint": "с @vuetify/mcp и @intellectronica/ruler"
@@ -126332,14 +126318,25 @@ async function prompt(args, cwd = process.cwd()) {
126332
126318
  if (type === "vuetify" && platform === "nuxt") return qt({
126333
126319
  message: i18n$1.t("prompts.css_framework.select"),
126334
126320
  initialValue: "none",
126335
- options: [{
126336
- label: "Tailwind CSS",
126337
- value: "tailwindcss",
126338
- hint: i18n$1.t("prompts.css_framework.tailwindcss.hint")
126339
- }, {
126340
- label: i18n$1.t("prompts.css_framework.none"),
126341
- value: "none"
126342
- }]
126321
+ options: [
126322
+ {
126323
+ label: i18n$1.t("prompts.css_framework.none"),
126324
+ value: "none"
126325
+ },
126326
+ {
126327
+ label: "Tailwind CSS",
126328
+ value: "tailwindcss",
126329
+ hint: i18n$1.t("prompts.css_framework.tailwindcss.hint")
126330
+ },
126331
+ {
126332
+ label: i18n$1.t("prompts.css_framework.unocss_wind4.label"),
126333
+ value: "unocss-wind4"
126334
+ },
126335
+ {
126336
+ label: i18n$1.t("prompts.css_framework.unocss_vuetify.label"),
126337
+ value: "unocss-vuetify"
126338
+ }
126339
+ ]
126343
126340
  });
126344
126341
  return qt({
126345
126342
  message: i18n$1.t("prompts.css_framework.select"),
@@ -126371,15 +126368,11 @@ async function prompt(args, cwd = process.cwd()) {
126371
126368
  },
126372
126369
  {
126373
126370
  label: i18n$1.t("prompts.css_framework.unocss_wind4.label"),
126374
- disabled: true,
126375
- value: "unocss-wind4",
126376
- hint: i18n$1.t("prompts.css_framework.unocss_wind4.hint")
126371
+ value: "unocss-wind4"
126377
126372
  },
126378
126373
  {
126379
126374
  label: i18n$1.t("prompts.css_framework.unocss_vuetify.label"),
126380
- disabled: true,
126381
- value: "unocss-vuetify",
126382
- hint: i18n$1.t("prompts.css_framework.unocss_vuetify.hint")
126375
+ value: "unocss-vuetify"
126383
126376
  }
126384
126377
  ]
126385
126378
  });
@@ -126395,7 +126388,7 @@ async function prompt(args, cwd = process.cwd()) {
126395
126388
  if (args.features) return Promise.resolve(args.features);
126396
126389
  if (!args.interactive) return Promise.resolve([]);
126397
126390
  const platform = results.platform || args.platform;
126398
- const type = results.type || args.type;
126391
+ results.type || args.type;
126399
126392
  return platform === "vue" ? Lt({
126400
126393
  message: i18n$1.t("prompts.features.select", { hint: dim("↑/↓ to navigate, space to select, a to toggle all, enter to confirm") }),
126401
126394
  options: [
@@ -126433,11 +126426,6 @@ async function prompt(args, cwd = process.cwd()) {
126433
126426
  value: "eslint",
126434
126427
  hint: i18n$1.t("prompts.features.eslint.hint")
126435
126428
  },
126436
- ...type === "vuetify0" ? [] : [{
126437
- label: i18n$1.t("prompts.features.vuetify_nuxt_module.label"),
126438
- value: "vuetify-nuxt-module",
126439
- hint: i18n$1.t("prompts.features.vuetify_nuxt_module.hint")
126440
- }],
126441
126429
  {
126442
126430
  label: i18n$1.t("prompts.features.mcp.label"),
126443
126431
  value: "mcp",
@@ -126452,11 +126440,7 @@ async function prompt(args, cwd = process.cwd()) {
126452
126440
  value: "i18n"
126453
126441
  }
126454
126442
  ],
126455
- initialValues: [
126456
- "eslint",
126457
- ...type === "vuetify0" ? [] : ["vuetify-nuxt-module"],
126458
- "mcp"
126459
- ],
126443
+ initialValues: ["eslint", "mcp"],
126460
126444
  required: false
126461
126445
  });
126462
126446
  },
@@ -126489,9 +126473,7 @@ async function prompt(args, cwd = process.cwd()) {
126489
126473
  clientHints: ({ results }) => {
126490
126474
  if (args.clientHints !== void 0) return Promise.resolve(args.clientHints);
126491
126475
  if (!args.interactive) return Promise.resolve(false);
126492
- const platform = results.platform || args.platform;
126493
- const features = results.features || args.features || [];
126494
- if (platform === "nuxt" && features.includes("vuetify-nuxt-module")) return Mt({
126476
+ if ((results.platform || args.platform) === "nuxt") return Mt({
126495
126477
  message: i18n$1.t("prompts.client_hints.enable"),
126496
126478
  initialValue: false
126497
126479
  });
@@ -147826,10 +147808,10 @@ var dependencies = {
147826
147808
  "unocss": "^66.5.12",
147827
147809
  "@unocss/transformer-directives": "^66.6.0",
147828
147810
  "@unocss/nuxt": "^66.5.12",
147829
- "unocss-preset-vuetify": "^0.1.1",
147811
+ "unocss-preset-vuetify": "^0.2.1",
147830
147812
  "tailwindcss": "^4.1.18",
147813
+ "@tailwindcss/postcss": "^4.1.18",
147831
147814
  "@tailwindcss/vite": "^4.1.18",
147832
- "@nuxtjs/tailwindcss": "^7.0.0-beta.1",
147833
147815
  "pathe": "^2.0.3",
147834
147816
  "@vuetify/loader-shared": "^2.1.1",
147835
147817
  "@intellectronica/ruler": "^0.3.18",
@@ -148038,6 +148020,37 @@ const mcp = {
148038
148020
  }
148039
148021
  };
148040
148022
 
148023
+ //#endregion
148024
+ //#region ../shared/src/features/client-hints.ts
148025
+ const nuxtClientHints = {
148026
+ name: "client-hints",
148027
+ apply: async ({ cwd, isNuxt }) => {
148028
+ if (!isNuxt) return;
148029
+ const configPath = join$1(cwd, "nuxt.config.ts");
148030
+ const mod = await loadFile(configPath);
148031
+ const options = getDefaultExportOptions(mod);
148032
+ if (options) {
148033
+ options.vuetify ??= {};
148034
+ options.vuetify.moduleOptions ??= {};
148035
+ options.vuetify.moduleOptions.ssrClientHints = {
148036
+ reloadOnFirstRequest: false,
148037
+ viewportSize: true,
148038
+ prefersColorScheme: true,
148039
+ prefersReducedMotion: true,
148040
+ prefersColorSchemeOptions: { useBrowserThemeOnly: false }
148041
+ };
148042
+ options.vuetify.vuetifyOptions ??= {};
148043
+ options.vuetify.vuetifyOptions.theme ??= {};
148044
+ options.vuetify.vuetifyOptions.theme.defaultTheme = "dark";
148045
+ options.vuetify.vuetifyOptions.theme.themes = {
148046
+ light: {},
148047
+ dark: {}
148048
+ };
148049
+ }
148050
+ await writeFile(configPath, mod.generate().code);
148051
+ }
148052
+ };
148053
+
148041
148054
  //#endregion
148042
148055
  //#region ../shared/src/features/pinia.ts
148043
148056
  const pinia = {
@@ -148091,7 +148104,7 @@ export const useAppStore = defineStore('app', {
148091
148104
 
148092
148105
  //#endregion
148093
148106
  //#region ../shared/package.json
148094
- var version$1 = "1.0.3";
148107
+ var version$1 = "1.1.0";
148095
148108
 
148096
148109
  //#endregion
148097
148110
  //#region ../shared/src/utils/getTemplateSource.ts
@@ -148238,11 +148251,7 @@ const tailwindcss = {
148238
148251
  if (isNuxt) {
148239
148252
  pkg.devDependencies = pkg.devDependencies || {};
148240
148253
  pkg.devDependencies["tailwindcss"] = dependencies.tailwindcss;
148241
- pkg.devDependencies["@nuxtjs/tailwindcss"] = dependencies["@nuxtjs/tailwindcss"];
148242
- const configPath = join$1(cwd, "nuxt.config.ts");
148243
- const mod = await loadFile(configPath);
148244
- addNuxtModule(mod, "@nuxtjs/tailwindcss");
148245
- await writeFile(configPath, mod.generate().code);
148254
+ pkg.devDependencies["@tailwindcss/postcss"] = dependencies["@tailwindcss/postcss"];
148246
148255
  } else {
148247
148256
  pkg.devDependencies = pkg.devDependencies || {};
148248
148257
  pkg.devDependencies["tailwindcss"] = dependencies.tailwindcss;
@@ -148277,7 +148286,7 @@ async function applyUnocssBase({ cwd, pkg, isTypescript, isNuxt }, options = {})
148277
148286
  if (pkg.devDependencies) {
148278
148287
  delete pkg.devDependencies["tailwindcss"];
148279
148288
  delete pkg.devDependencies["@tailwindcss/vite"];
148280
- delete pkg.devDependencies["@nuxtjs/tailwindcss"];
148289
+ delete pkg.devDependencies["@tailwindcss/postcss"];
148281
148290
  }
148282
148291
  if (isNuxt) {
148283
148292
  pkg.devDependencies["@unocss/nuxt"] = dependencies["@unocss/nuxt"];
@@ -148321,68 +148330,6 @@ const unocssVuetify = {
148321
148330
  }
148322
148331
  };
148323
148332
 
148324
- //#endregion
148325
- //#region ../shared/src/features/vuetify-nuxt-manual.ts
148326
- const vuetifyNuxtManual = {
148327
- name: "vuetify-nuxt-manual",
148328
- apply: async ({ cwd, pkg, isNuxt }) => {
148329
- if (!isNuxt) return;
148330
- const configPath = join$1(cwd, "nuxt.config.ts");
148331
- pkg.devDependencies = pkg.devDependencies || {};
148332
- pkg.devDependencies["vite-plugin-vuetify"] = dependencies["vite-plugin-vuetify"];
148333
- pkg.devDependencies["@vuetify/loader-shared"] = dependencies["@vuetify/loader-shared"];
148334
- pkg.devDependencies["pathe"] = dependencies.pathe;
148335
- const mod = await loadFile(configPath);
148336
- mod.imports.$prepend({
148337
- from: "vite-plugin-vuetify",
148338
- imported: "transformAssetUrls"
148339
- });
148340
- const options = getDefaultExportOptions(mod);
148341
- if (options) {
148342
- options.build ||= {};
148343
- options.build.transpile ||= [];
148344
- if (!options.build.transpile.includes("vuetify")) options.build.transpile.push("vuetify");
148345
- options.vite ||= {};
148346
- options.vite.vue ||= {};
148347
- options.vite.vue.template ||= {};
148348
- options.vite.vue.template.transformAssetUrls = builders.raw("transformAssetUrls");
148349
- }
148350
- await writeFile(configPath, mod.generate().code);
148351
- }
148352
- };
148353
-
148354
- //#endregion
148355
- //#region ../shared/src/features/vuetify-nuxt-module.ts
148356
- const vuetifyNuxtModule = {
148357
- name: "vuetify-nuxt-module",
148358
- apply: async ({ cwd, pkg, clientHints, isNuxt }) => {
148359
- if (!isNuxt) return;
148360
- pkg.dependencies = pkg.dependencies || {};
148361
- pkg.dependencies["vuetify-nuxt-module"] = dependencies["vuetify-nuxt-module"];
148362
- const configPath = join$1(cwd, "nuxt.config.ts");
148363
- const mod = await loadFile(configPath);
148364
- const manualModulePath = join$1(cwd, "modules/vuetify.ts");
148365
- if (existsSync(manualModulePath)) unlinkSync(manualModulePath);
148366
- const options = getDefaultExportOptions(mod);
148367
- if (options) {
148368
- options.modules ||= [];
148369
- options.modules.push("vuetify-nuxt-module");
148370
- options.vuetify = {
148371
- moduleOptions: {},
148372
- vuetifyOptions: {}
148373
- };
148374
- if (clientHints) options.vuetify.moduleOptions.ssrClientHints = {
148375
- reloadOnFirstRequest: false,
148376
- viewportSize: true,
148377
- prefersColorScheme: true,
148378
- prefersReducedMotion: true,
148379
- prefersColorSchemeOptions: { useBrowserThemeOnly: false }
148380
- };
148381
- }
148382
- await writeFile(configPath, mod.generate().code);
148383
- }
148384
- };
148385
-
148386
148333
  //#endregion
148387
148334
  //#region ../shared/src/features/index.ts
148388
148335
  const features = {
@@ -148392,15 +148339,14 @@ const features = {
148392
148339
  i18n,
148393
148340
  eslint,
148394
148341
  mcp,
148395
- "vuetify-nuxt-module": vuetifyNuxtModule,
148396
- "vuetify-nuxt-manual": vuetifyNuxtManual,
148342
+ "client-hints": nuxtClientHints,
148397
148343
  unocss,
148398
148344
  "unocss-wind4": unocssWind4,
148399
148345
  "unocss-vuetify": unocssVuetify,
148400
148346
  tailwindcss,
148401
148347
  "css-none": cssNone
148402
148348
  };
148403
- async function applyFeatures(cwd, featureNames, pkg, isTypescript, isNuxt, clientHints, type) {
148349
+ async function applyFeatures(cwd, featureNames, pkg, isTypescript, isNuxt, type) {
148404
148350
  for (const name of featureNames) {
148405
148351
  const feature = features[name];
148406
148352
  if (feature) await feature.apply({
@@ -148408,7 +148354,6 @@ async function applyFeatures(cwd, featureNames, pkg, isTypescript, isNuxt, clien
148408
148354
  pkg,
148409
148355
  isTypescript,
148410
148356
  isNuxt,
148411
- clientHints,
148412
148357
  type
148413
148358
  });
148414
148359
  }
@@ -149394,10 +149339,10 @@ async function installDependencies(root = process.cwd(), manager = packageManage
149394
149339
  //#endregion
149395
149340
  //#region ../shared/src/functions/scaffold.ts
149396
149341
  function resolveTemplateName(templates, platform, type, features) {
149397
- if (platform !== "vue" || type !== "vuetify") return templates[platform][type];
149398
- if (features.includes("unocss-wind4")) return "vue/unocss-wind4";
149399
- if (features.includes("unocss-vuetify")) return "vue/unocss-vuetify";
149400
- if (features.includes("tailwindcss")) return "vue/tailwind";
149342
+ if (type !== "vuetify") return templates[platform][type];
149343
+ if (features.includes("unocss-wind4")) return `${platform}/unocss-wind4`;
149344
+ if (features.includes("unocss-vuetify")) return `${platform}/unocss-vuetify`;
149345
+ if (features.includes("tailwindcss")) return `${platform}/tailwind`;
149401
149346
  return templates[platform][type];
149402
149347
  }
149403
149348
  async function resolveSharedAssetsPath() {
@@ -149435,7 +149380,7 @@ async function applySharedAssets(projectRoot, platform, type) {
149435
149380
  try {
149436
149381
  if (needsFavicon) copySharedAsset(join$1(assets.path, "favicon.ico"), join$1(projectRoot, "public", "favicon.ico"));
149437
149382
  if (needsLogo) {
149438
- const logoRoot = platform === "nuxt" ? join$1(projectRoot, "assets") : join$1(projectRoot, "src", "assets");
149383
+ const logoRoot = platform === "nuxt" ? join$1(projectRoot, "app", "assets") : join$1(projectRoot, "src", "assets");
149439
149384
  copySharedAsset(join$1(assets.path, "logo.png"), join$1(logoRoot, "logo.png"));
149440
149385
  copySharedAsset(join$1(assets.path, "logo.svg"), join$1(logoRoot, "logo.svg"));
149441
149386
  }
@@ -149445,7 +149390,7 @@ async function applySharedAssets(projectRoot, platform, type) {
149445
149390
  }
149446
149391
  }
149447
149392
  async function scaffold(options, callbacks = {}) {
149448
- const { cwd, name, platform, features, typescript, type, packageManager, install, force, clientHints, debug: debugFlag } = options;
149393
+ const { cwd, name, platform, features, typescript, type, packageManager, install, force, debug: debugFlag } = options;
149449
149394
  const debug = (...msg) => debugFlag && console.log("DEBUG:", ...msg);
149450
149395
  const projectRoot = join$1(cwd, name);
149451
149396
  debug("projectRoot=", projectRoot);
@@ -149494,13 +149439,7 @@ async function scaffold(options, callbacks = {}) {
149494
149439
  let pkg;
149495
149440
  pkg = await readPackageJSON$1(join$1(projectRoot, "package.json"));
149496
149441
  callbacks.onConfigStart?.();
149497
- if (features && features.length > 0) await applyFeatures(projectRoot, features, pkg, !!typescript, platform === "nuxt", clientHints, type);
149498
- if (platform === "nuxt" && type !== "vuetify0" && (!features || !features.includes("vuetify-nuxt-module"))) await vuetifyNuxtManual.apply({
149499
- cwd: projectRoot,
149500
- pkg,
149501
- isTypescript: !!typescript,
149502
- isNuxt: true
149503
- });
149442
+ if (features && features.length > 0) await applyFeatures(projectRoot, features, pkg, !!typescript, platform === "nuxt", type);
149504
149443
  callbacks.onConfigEnd?.();
149505
149444
  const pkgPath = join$1(projectRoot, "package.json");
149506
149445
  if (existsSync(pkgPath)) {
@@ -149614,12 +149553,11 @@ async function createVuetify(options, commandOptions) {
149614
149553
  name: context.name,
149615
149554
  platform: context.platform,
149616
149555
  type: context.type,
149617
- features: context.features,
149556
+ features: [...context.features, ...context.clientHints ? ["client-hints"] : []],
149618
149557
  typescript: !!context.typescript,
149619
149558
  packageManager: context.packageManager,
149620
149559
  install: context.install,
149621
149560
  force: context.force,
149622
- clientHints: context.clientHints,
149623
149561
  debug: args.debug
149624
149562
  }, {
149625
149563
  onDownloadStart: (templateName) => {
@@ -151051,7 +150989,7 @@ const JsonReporter = { report: async (data, options) => {
151051
150989
 
151052
150990
  //#endregion
151053
150991
  //#region package.json
151054
- var version = "1.0.3";
150992
+ var version = "1.1.0";
151055
150993
 
151056
150994
  //#endregion
151057
150995
  //#region src/commands/analyze.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vuetify/cli",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "description": "Vuetify CLI",
5
5
  "type": "module",
6
6
  "files": [
@@ -35,7 +35,7 @@
35
35
  "open": "^11.0.0",
36
36
  "pathe": "^2.0.3",
37
37
  "tsdown": "^0.20.3",
38
- "@vuetify/cli-shared": "1.0.3"
38
+ "@vuetify/cli-shared": "1.1.0"
39
39
  },
40
40
  "dependencies": {
41
41
  "@typescript-eslint/parser": "^8.54.0"