@nuxt/cli-nightly 3.31.0-20251111-164251-694e92b → 3.31.0-20251114-183659-ab4e0c6

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 (44) hide show
  1. package/dist/add-B-g5qEtw.mjs +11 -0
  2. package/dist/{add-CHVmfYrF.mjs → add-DYl9eciR.mjs} +15 -6
  3. package/dist/{add-yCkF7lke.mjs → add-ZaZI_ZJH.mjs} +24 -23
  4. package/dist/{analyze-6tANI65A.mjs → analyze-DjqZOzwX.mjs} +18 -7
  5. package/dist/banner-DQx8x98i.mjs +42 -0
  6. package/dist/{build-CVr-ruAe.mjs → build-BaZrKRCS.mjs} +15 -9
  7. package/dist/build-Do6kFHyH.mjs +10 -0
  8. package/dist/{cleanup-X4v95Xqm.mjs → cleanup-BAQaKzUm.mjs} +4 -3
  9. package/dist/dev/index.mjs +6 -5
  10. package/dist/{dev-aS1afvp8.mjs → dev-BhmbxmPd.mjs} +13 -11
  11. package/dist/{dev-Bf9P_WmH.mjs → dev-DjmBDZYe.mjs} +3 -3
  12. package/dist/{dev-child-GqhyRU2G.mjs → dev-child-B9APIXlC.mjs} +1 -1
  13. package/dist/dev-pecSeV9d.mjs +9 -0
  14. package/dist/{devtools-BLGzUSNU.mjs → devtools-CbKpNDhe.mjs} +3 -2
  15. package/dist/{env-CamzysGq.mjs → env-N36fDvz0.mjs} +3 -2
  16. package/dist/formatting-CAvhu26Q.mjs +56 -0
  17. package/dist/{fs--ofMleGo.mjs → fs-CGUBNEba.mjs} +2 -2
  18. package/dist/{generate-DZJF1Xf_.mjs → generate-C7nZZjW0.mjs} +6 -5
  19. package/dist/index.mjs +21 -20
  20. package/dist/info-cPa08hVq.mjs +139 -0
  21. package/dist/{init-DX0yoR1B.mjs → init-D13kJvE3.mjs} +54 -41
  22. package/dist/logger-Dd47z9E7.mjs +9 -0
  23. package/dist/{module-t-MDBA3Y.mjs → module-D0pcWR-5.mjs} +2 -2
  24. package/dist/{nuxt-CfBR40hD.mjs → nuxt-8UELXZ2y.mjs} +2 -2
  25. package/dist/paths-C4ma0oRK.mjs +11 -0
  26. package/dist/prepare-Bp6yMU36.mjs +8 -0
  27. package/dist/{prepare-DjR-jyiQ.mjs → prepare-CWzUtiE9.mjs} +6 -4
  28. package/dist/{preview-CgpLKg-X.mjs → preview-DDiSySPF.mjs} +28 -18
  29. package/dist/{search-D_JLXbhF.mjs → search-D48sLs_4.mjs} +31 -24
  30. package/dist/{test-CBt1emEB.mjs → test-DKBo3m_m.mjs} +1 -1
  31. package/dist/{typecheck-egvrxpjV.mjs → typecheck-34AvFcmE.mjs} +1 -1
  32. package/dist/{upgrade-CblzcPw0.mjs → upgrade-BuybH3Cn.mjs} +66 -41
  33. package/dist/versions-CUHtwDOW.mjs +35 -0
  34. package/package.json +4 -2
  35. package/dist/add-CC8PhdIc.mjs +0 -10
  36. package/dist/banner-CWBLwDiB.mjs +0 -55
  37. package/dist/build-BEXmJONc.mjs +0 -9
  38. package/dist/dev-CNjdVPgl.mjs +0 -8
  39. package/dist/info-BY9WLJRm.mjs +0 -120
  40. package/dist/logger-Dk0gkCkX.mjs +0 -7
  41. package/dist/prepare-ZByeo9vQ.mjs +0 -7
  42. package/dist/versions-CSy_3o_-.mjs +0 -18
  43. /package/dist/{_utils-DTrPahho.mjs → _utils-B8YNEdpq.mjs} +0 -0
  44. /package/dist/{packageManagers-DbVB5cXf.mjs → packageManagers-Dd1BN02x.mjs} +0 -0
@@ -1,10 +1,11 @@
1
1
  import { a as legacyRootDirArgs, i as extendsArgs, n as dotEnvArgs, o as logLevelArgs, r as envNameArgs, t as cwdArgs } from "./_shared-C3vB2YLc.mjs";
2
- import "./logger-Dk0gkCkX.mjs";
2
+ import "./logger-Dd47z9E7.mjs";
3
3
  import "./kit-f7zsnm10.mjs";
4
- import "./banner-CWBLwDiB.mjs";
5
- import "./fs--ofMleGo.mjs";
6
- import "./env-CamzysGq.mjs";
7
- import { t as build_default } from "./build-CVr-ruAe.mjs";
4
+ import "./versions-CUHtwDOW.mjs";
5
+ import "./banner-DQx8x98i.mjs";
6
+ import "./fs-CGUBNEba.mjs";
7
+ import "./env-N36fDvz0.mjs";
8
+ import { t as build_default } from "./build-BaZrKRCS.mjs";
8
9
  import { defineCommand } from "citty";
9
10
 
10
11
  //#region ../nuxi/src/commands/generate.ts
package/dist/index.mjs CHANGED
@@ -1,33 +1,34 @@
1
1
  import { t as cwdArgs } from "./_shared-C3vB2YLc.mjs";
2
- import { t as logger } from "./logger-Dk0gkCkX.mjs";
2
+ import { n as logger } from "./logger-Dd47z9E7.mjs";
3
3
  import { resolve } from "node:path";
4
4
  import process from "node:process";
5
5
  import { defineCommand, runCommand as runCommand$1, runMain as runMain$1 } from "citty";
6
6
  import { provider } from "std-env";
7
7
  import { consola } from "consola";
8
+ import { colors } from "consola/utils";
8
9
  import { fileURLToPath } from "node:url";
9
10
  import tab from "@bomb.sh/tab/citty";
10
11
 
11
12
  //#region ../nuxi/src/commands/index.ts
12
13
  const _rDefault = (r) => r.default || r;
13
14
  const commands = {
14
- add: () => import("./add-CHVmfYrF.mjs").then(_rDefault),
15
- analyze: () => import("./analyze-6tANI65A.mjs").then(_rDefault),
16
- build: () => import("./build-BEXmJONc.mjs").then(_rDefault),
17
- cleanup: () => import("./cleanup-X4v95Xqm.mjs").then(_rDefault),
18
- _dev: () => import("./dev-child-GqhyRU2G.mjs").then(_rDefault),
19
- dev: () => import("./dev-aS1afvp8.mjs").then(_rDefault),
20
- devtools: () => import("./devtools-BLGzUSNU.mjs").then(_rDefault),
21
- generate: () => import("./generate-DZJF1Xf_.mjs").then(_rDefault),
22
- info: () => import("./info-BY9WLJRm.mjs").then(_rDefault),
23
- init: () => import("./init-DX0yoR1B.mjs").then(_rDefault),
24
- module: () => import("./module-t-MDBA3Y.mjs").then(_rDefault),
25
- prepare: () => import("./prepare-ZByeo9vQ.mjs").then(_rDefault),
26
- preview: () => import("./preview-CgpLKg-X.mjs").then(_rDefault),
27
- start: () => import("./preview-CgpLKg-X.mjs").then(_rDefault),
28
- test: () => import("./test-CBt1emEB.mjs").then(_rDefault),
29
- typecheck: () => import("./typecheck-egvrxpjV.mjs").then(_rDefault),
30
- upgrade: () => import("./upgrade-CblzcPw0.mjs").then(_rDefault)
15
+ add: () => import("./add-DYl9eciR.mjs").then(_rDefault),
16
+ analyze: () => import("./analyze-DjqZOzwX.mjs").then(_rDefault),
17
+ build: () => import("./build-Do6kFHyH.mjs").then(_rDefault),
18
+ cleanup: () => import("./cleanup-BAQaKzUm.mjs").then(_rDefault),
19
+ _dev: () => import("./dev-child-B9APIXlC.mjs").then(_rDefault),
20
+ dev: () => import("./dev-BhmbxmPd.mjs").then(_rDefault),
21
+ devtools: () => import("./devtools-CbKpNDhe.mjs").then(_rDefault),
22
+ generate: () => import("./generate-C7nZZjW0.mjs").then(_rDefault),
23
+ info: () => import("./info-cPa08hVq.mjs").then(_rDefault),
24
+ init: () => import("./init-D13kJvE3.mjs").then(_rDefault),
25
+ module: () => import("./module-D0pcWR-5.mjs").then(_rDefault),
26
+ prepare: () => import("./prepare-Bp6yMU36.mjs").then(_rDefault),
27
+ preview: () => import("./preview-DDiSySPF.mjs").then(_rDefault),
28
+ start: () => import("./preview-DDiSySPF.mjs").then(_rDefault),
29
+ test: () => import("./test-DKBo3m_m.mjs").then(_rDefault),
30
+ typecheck: () => import("./typecheck-34AvFcmE.mjs").then(_rDefault),
31
+ upgrade: () => import("./upgrade-BuybH3Cn.mjs").then(_rDefault)
31
32
  };
32
33
 
33
34
  //#endregion
@@ -58,13 +59,13 @@ async function checkEngines() {
58
59
  const satisfies = await import("semver/functions/satisfies.js").then((r) => r.default || r);
59
60
  const currentNode = process.versions.node;
60
61
  const nodeRange = ">= 18.0.0";
61
- if (!satisfies(currentNode, nodeRange)) logger.warn(`Current version of Node.js (\`${currentNode}\`) is unsupported and might cause issues.\n Please upgrade to a compatible version \`${nodeRange}\`.`);
62
+ if (!satisfies(currentNode, nodeRange)) logger.warn(`Current version of Node.js (${colors.cyan(currentNode)}) is unsupported and might cause issues.\n Please upgrade to a compatible version ${colors.cyan(nodeRange)}.`);
62
63
  }
63
64
 
64
65
  //#endregion
65
66
  //#region package.json
66
67
  var name = "@nuxt/cli-nightly";
67
- var version = "3.31.0-20251111-164251-694e92b";
68
+ var version = "3.31.0-20251114-183659-ab4e0c6";
68
69
  var description = "Nuxt CLI";
69
70
 
70
71
  //#endregion
@@ -0,0 +1,139 @@
1
+ import { a as legacyRootDirArgs, t as cwdArgs } from "./_shared-C3vB2YLc.mjs";
2
+ import { n as logger } from "./logger-Dd47z9E7.mjs";
3
+ import { n as tryResolveNuxt } from "./kit-f7zsnm10.mjs";
4
+ import "./versions-CUHtwDOW.mjs";
5
+ import { t as getBuilder } from "./banner-DQx8x98i.mjs";
6
+ import { t as formatInfoBox } from "./formatting-CAvhu26Q.mjs";
7
+ import { t as getPackageManagerVersion } from "./packageManagers-Dd1BN02x.mjs";
8
+ import process from "node:process";
9
+ import { defineCommand } from "citty";
10
+ import { isBun, isDeno, isMinimal } from "std-env";
11
+ import { colors } from "consola/utils";
12
+ import { box } from "@clack/prompts";
13
+ import { resolve } from "pathe";
14
+ import { readPackageJSON } from "pkg-types";
15
+ import os from "node:os";
16
+ import { copy } from "copy-paste";
17
+ import { detectPackageManager } from "nypm";
18
+
19
+ //#region ../nuxi/package.json
20
+ var version = "3.31.0-20251114-183647-ab4e0c6";
21
+
22
+ //#endregion
23
+ //#region ../nuxi/src/commands/info.ts
24
+ var info_default = defineCommand({
25
+ meta: {
26
+ name: "info",
27
+ description: "Get information about Nuxt project"
28
+ },
29
+ args: {
30
+ ...cwdArgs,
31
+ ...legacyRootDirArgs
32
+ },
33
+ async run(ctx) {
34
+ const cwd = resolve(ctx.args.cwd || ctx.args.rootDir);
35
+ const nuxtConfig = await getNuxtConfig(cwd);
36
+ const { dependencies = {}, devDependencies = {} } = await readPackageJSON(cwd).catch(() => ({}));
37
+ const nuxtPath = tryResolveNuxt(cwd);
38
+ async function getDepVersion(name) {
39
+ for (const url of [cwd, nuxtPath]) {
40
+ if (!url) continue;
41
+ const pkg = await readPackageJSON(name, { url }).catch(() => null);
42
+ if (pkg) return pkg.version;
43
+ }
44
+ return dependencies[name] || devDependencies[name];
45
+ }
46
+ async function listModules(arr = []) {
47
+ const info = [];
48
+ for (let m of arr) {
49
+ if (Array.isArray(m)) m = m[0];
50
+ const name = normalizeConfigModule(m, cwd);
51
+ if (name) {
52
+ const v = await getDepVersion(name.split("/").splice(0, 2).join("/"));
53
+ info.push(`\`${v ? `${name}@${v}` : name}\``);
54
+ }
55
+ }
56
+ return info.join(", ");
57
+ }
58
+ const nuxtVersion = await getDepVersion("nuxt") || await getDepVersion("nuxt-nightly") || await getDepVersion("nuxt-edge") || await getDepVersion("nuxt3") || "-";
59
+ const isLegacy = nuxtVersion.startsWith("2");
60
+ const builder = !isLegacy ? nuxtConfig.builder || "vite" : nuxtConfig.bridge?.vite ? "vite" : nuxtConfig.buildModules?.includes("nuxt-vite") ? "vite" : "webpack";
61
+ let packageManager = (await detectPackageManager(cwd))?.name;
62
+ if (packageManager) packageManager += `@${getPackageManagerVersion(packageManager)}`;
63
+ const osType = os.type();
64
+ const builderInfo = typeof builder === "string" ? getBuilder(cwd, builder) : {
65
+ name: "custom",
66
+ version: "0.0.0"
67
+ };
68
+ const infoObj = {
69
+ "Operating system": osType === "Darwin" ? `macOS ${os.release()}` : osType === "Windows_NT" ? `Windows ${os.release()}` : `${osType} ${os.release()}`,
70
+ "CPU": `${os.cpus()[0]?.model || "unknown"} (${os.cpus().length} cores)`,
71
+ ...isBun ? { "Bun version": Bun?.version } : isDeno ? { "Deno version": Deno?.version.deno } : { "Node.js version": process.version },
72
+ "nuxt/cli version": version,
73
+ "Package manager": packageManager ?? "unknown",
74
+ "Nuxt version": nuxtVersion,
75
+ "Nitro version": await getDepVersion("nitropack") || await getDepVersion("nitro"),
76
+ "Builder": builderInfo.name === "custom" ? "custom" : `${builderInfo.name.toLowerCase()}@${builderInfo.version}`,
77
+ "Config": Object.keys(nuxtConfig).map((key) => `\`${key}\``).sort().join(", "),
78
+ "Modules": await listModules(nuxtConfig.modules),
79
+ ...isLegacy ? { "Build modules": await listModules(nuxtConfig.buildModules || []) } : {}
80
+ };
81
+ logger.info(`Nuxt root directory: ${colors.cyan(nuxtConfig.rootDir || cwd)}\n`);
82
+ const boxStr = formatInfoBox(infoObj);
83
+ let firstColumnLength = 0;
84
+ let secondColumnLength = 0;
85
+ const entries = Object.entries(infoObj).map(([label, val]) => {
86
+ if (label.length > firstColumnLength) firstColumnLength = label.length + 4;
87
+ if ((val || "").length > secondColumnLength) secondColumnLength = (val || "").length + 2;
88
+ return [label, val || "-"];
89
+ });
90
+ let copyStr = `| ${" ".repeat(firstColumnLength)} | ${" ".repeat(secondColumnLength)} |\n| ${"-".repeat(firstColumnLength)} | ${"-".repeat(secondColumnLength)} |\n`;
91
+ for (const [label, value] of entries) if (!isMinimal) copyStr += `| ${`**${label}**`.padEnd(firstColumnLength)} | ${(value.includes("`") ? value : `\`${value}\``).padEnd(secondColumnLength)} |\n`;
92
+ const copied = !isMinimal && await new Promise((resolve$1) => copy(copyStr, (err) => resolve$1(!err)));
93
+ box(`\n${boxStr}`, ` Nuxt project info ${copied ? colors.gray("(copied to clipboard) ") : ""}`, {
94
+ contentAlign: "left",
95
+ titleAlign: "left",
96
+ width: "auto",
97
+ titlePadding: 2,
98
+ contentPadding: 2,
99
+ rounded: true
100
+ });
101
+ const isNuxt3 = !isLegacy;
102
+ const isBridge = !isNuxt3 && infoObj["Build modules"]?.includes("bridge");
103
+ const repo = isBridge ? "nuxt/bridge" : "nuxt/nuxt";
104
+ const docsURL = isNuxt3 || isBridge ? "https://nuxt.com" : "https://v2.nuxt.com";
105
+ logger.info(`👉 Read documentation: ${colors.cyan(docsURL)}`);
106
+ if (isNuxt3 || isBridge) {
107
+ logger.info(`👉 Report an issue: ${colors.cyan(`https://github.com/${repo}/issues/new?template=bug-report.yml`)}`, { spacing: 0 });
108
+ logger.info(`👉 Suggest an improvement: ${colors.cyan(`https://github.com/${repo}/discussions/new`)}`, { spacing: 0 });
109
+ }
110
+ }
111
+ });
112
+ function normalizeConfigModule(module, rootDir) {
113
+ if (!module) return null;
114
+ if (typeof module === "string") return module.split(rootDir).pop().split("node_modules").pop().replace(/^\//, "");
115
+ if (typeof module === "function") return `${module.name}()`;
116
+ if (Array.isArray(module)) return normalizeConfigModule(module[0], rootDir);
117
+ return null;
118
+ }
119
+ async function getNuxtConfig(rootDir) {
120
+ try {
121
+ const { createJiti } = await import("jiti");
122
+ const jiti = createJiti(rootDir, {
123
+ interopDefault: true,
124
+ alias: {
125
+ "~": rootDir,
126
+ "@": rootDir
127
+ }
128
+ });
129
+ globalThis.defineNuxtConfig = (c) => c;
130
+ const result = await jiti.import("./nuxt.config", { default: true });
131
+ delete globalThis.defineNuxtConfig;
132
+ return result;
133
+ } catch {
134
+ return {};
135
+ }
136
+ }
137
+
138
+ //#endregion
139
+ export { info_default as default };
@@ -1,21 +1,22 @@
1
1
  import { o as logLevelArgs, t as cwdArgs } from "./_shared-C3vB2YLc.mjs";
2
- import { t as logger } from "./logger-Dk0gkCkX.mjs";
2
+ import { n as logger } from "./logger-Dd47z9E7.mjs";
3
3
  import "./kit-f7zsnm10.mjs";
4
- import "./fs--ofMleGo.mjs";
5
- import { n as runCommand$1, t as add_default } from "./add-yCkF7lke.mjs";
6
- import "./versions-CSy_3o_-.mjs";
7
- import "./prepare-DjR-jyiQ.mjs";
8
- import "./_utils-DTrPahho.mjs";
4
+ import "./versions-CUHtwDOW.mjs";
5
+ import "./fs-CGUBNEba.mjs";
6
+ import { t as relativeToProcess } from "./paths-C4ma0oRK.mjs";
7
+ import { n as runCommand$1, t as add_default } from "./add-ZaZI_ZJH.mjs";
8
+ import "./prepare-CWzUtiE9.mjs";
9
+ import "./_utils-B8YNEdpq.mjs";
9
10
  import process from "node:process";
10
11
  import { defineCommand } from "citty";
11
12
  import { hasTTY } from "std-env";
13
+ import { colors } from "consola/utils";
14
+ import { box, cancel, confirm, intro, isCancel, multiselect, outro, select, spinner, tasks, text } from "@clack/prompts";
12
15
  import { existsSync } from "node:fs";
13
16
  import { basename, join, relative, resolve } from "pathe";
14
- import { colors } from "consola/utils";
17
+ import { findFile, readPackageJSON, writePackageJSON } from "pkg-types";
15
18
  import { x } from "tinyexec";
16
19
  import { installDependencies } from "nypm";
17
- import { findFile, readPackageJSON, writePackageJSON } from "pkg-types";
18
- import { box as box$1, cancel, confirm, isCancel, multiselect, outro, select, text } from "@clack/prompts";
19
20
  import { downloadTemplate, startShell } from "giget";
20
21
  import { $fetch } from "ofetch";
21
22
 
@@ -53,7 +54,7 @@ async function getModuleDependencies(moduleName) {
53
54
  const dependencies = (await $fetch(`https://registry.npmjs.org/${moduleName}/latest`)).dependencies || {};
54
55
  return Object.keys(dependencies);
55
56
  } catch (err) {
56
- logger.warn(`Could not get dependencies for ${moduleName}: ${err}`);
57
+ logger.warn(`Could not get dependencies for ${colors.cyan(moduleName)}: ${err}`);
57
58
  return [];
58
59
  }
59
60
  }
@@ -151,7 +152,7 @@ var init_default = defineCommand({
151
152
  },
152
153
  async run(ctx) {
153
154
  if (hasTTY) process.stdout.write(`\n${nuxtIcon}\n\n`);
154
- logger.info(colors.bold(`Welcome to Nuxt!`.split("").map((m) => `${themeColor}${m}`).join("")));
155
+ intro(colors.bold(`Welcome to Nuxt!`.split("").map((m) => `${themeColor}${m}`).join("")));
155
156
  if (ctx.args.dir === "") {
156
157
  const result = await text({
157
158
  message: "Where would you like to create your project?",
@@ -166,7 +167,7 @@ var init_default = defineCommand({
166
167
  }
167
168
  const cwd = resolve(ctx.args.cwd);
168
169
  let templateDownloadPath = resolve(cwd, ctx.args.dir);
169
- logger.info(`Creating a new project in ${colors.cyan(relative(cwd, templateDownloadPath) || templateDownloadPath)}.`);
170
+ logger.step(`Creating project in ${colors.cyan(relativeToProcess(templateDownloadPath))}`);
170
171
  const templateName = ctx.args.template || DEFAULT_TEMPLATE_NAME;
171
172
  if (typeof templateName !== "string") {
172
173
  logger.error("Please specify a template!");
@@ -175,7 +176,7 @@ var init_default = defineCommand({
175
176
  let shouldForce = Boolean(ctx.args.force);
176
177
  if (!shouldForce && existsSync(templateDownloadPath)) {
177
178
  const selectedAction = await select({
178
- message: `The directory ${colors.cyan(templateDownloadPath)} already exists. What would you like to do?`,
179
+ message: `The directory ${colors.cyan(relativeToProcess(templateDownloadPath))} already exists. What would you like to do?`,
179
180
  options: [
180
181
  {
181
182
  value: "override",
@@ -213,6 +214,8 @@ var init_default = defineCommand({
213
214
  }
214
215
  }
215
216
  let template;
217
+ const downloadSpinner = spinner();
218
+ downloadSpinner.start(`Downloading ${colors.cyan(templateName)} template`);
216
219
  try {
217
220
  template = await downloadTemplate(templateName, {
218
221
  dir: templateDownloadPath,
@@ -237,7 +240,9 @@ var init_default = defineCommand({
237
240
  }
238
241
  }
239
242
  }
243
+ downloadSpinner.stop(`Downloaded ${colors.cyan(template.name)} template`);
240
244
  } catch (err) {
245
+ downloadSpinner.stop("Template download failed", 1);
241
246
  if (process.env.DEBUG) throw err;
242
247
  logger.error(err.toString());
243
248
  process.exit(1);
@@ -251,7 +256,7 @@ var init_default = defineCommand({
251
256
  }
252
257
  const nightlyChannelVersion = response["dist-tags"][nightlyChannelTag];
253
258
  if (!nightlyChannelVersion) {
254
- logger.error(`Nightly channel version for tag '${nightlyChannelTag}' not found.`);
259
+ logger.error(`Nightly channel version for tag ${colors.cyan(nightlyChannelTag)} not found.`);
255
260
  process.exit(1);
256
261
  }
257
262
  const nightlyNuxtPackageJsonVersion = `npm:nuxt-nightly@${nightlyChannelVersion}`;
@@ -288,24 +293,6 @@ var init_default = defineCommand({
288
293
  }
289
294
  selectedPackageManager = result;
290
295
  }
291
- if (ctx.args.install === false) logger.info("Skipping install dependencies step.");
292
- else {
293
- logger.start("Installing dependencies...");
294
- try {
295
- await installDependencies({
296
- cwd: template.dir,
297
- packageManager: {
298
- name: selectedPackageManager,
299
- command: selectedPackageManager
300
- }
301
- });
302
- } catch (err) {
303
- if (process.env.DEBUG) throw err;
304
- logger.error(err.toString());
305
- process.exit(1);
306
- }
307
- logger.success("Installation completed.");
308
- }
309
296
  if (ctx.args.gitInit === void 0) {
310
297
  const result = await confirm({ message: "Initialize git repository?" });
311
298
  if (isCancel(result)) {
@@ -314,15 +301,41 @@ var init_default = defineCommand({
314
301
  }
315
302
  ctx.args.gitInit = result;
316
303
  }
317
- if (ctx.args.gitInit) {
318
- logger.info("Initializing git repository...\n");
304
+ if (ctx.args.install === false) logger.info("Skipping install dependencies step.");
305
+ else {
306
+ const setupTasks = [{
307
+ title: `Installing dependencies with ${colors.cyan(selectedPackageManager)}`,
308
+ task: async () => {
309
+ await installDependencies({
310
+ cwd: template.dir,
311
+ packageManager: {
312
+ name: selectedPackageManager,
313
+ command: selectedPackageManager
314
+ }
315
+ });
316
+ return "Dependencies installed";
317
+ }
318
+ }];
319
+ if (ctx.args.gitInit) setupTasks.push({
320
+ title: "Initializing git repository",
321
+ task: async () => {
322
+ try {
323
+ await x("git", ["init", template.dir], {
324
+ throwOnError: true,
325
+ nodeOptions: { stdio: "inherit" }
326
+ });
327
+ return "Git repository initialized";
328
+ } catch (err) {
329
+ return `Git initialization failed: ${err}`;
330
+ }
331
+ }
332
+ });
319
333
  try {
320
- await x("git", ["init", template.dir], {
321
- throwOnError: true,
322
- nodeOptions: { stdio: "inherit" }
323
- });
334
+ await tasks(setupTasks);
324
335
  } catch (err) {
325
- logger.warn(`Failed to initialize git repository: ${err}`);
336
+ if (process.env.DEBUG) throw err;
337
+ logger.error(err.toString());
338
+ process.exit(1);
326
339
  }
327
340
  }
328
341
  const modulesToAdd = [];
@@ -366,10 +379,10 @@ var init_default = defineCommand({
366
379
  ctx.args.install ? "" : "--skipInstall",
367
380
  ctx.args.logLevel ? `--logLevel=${ctx.args.logLevel}` : ""
368
381
  ].filter(Boolean));
369
- outro(`✨ Nuxt project has been created with the \`${template.name}\` template.`);
382
+ outro(`✨ Nuxt project has been created with the ${colors.cyan(template.name)} template.`);
370
383
  const relativeTemplateDir = relative(process.cwd(), template.dir) || ".";
371
384
  const runCmd = selectedPackageManager === "deno" ? "task" : "run";
372
- box$1(`\n${[!ctx.args.shell && relativeTemplateDir.length > 1 && colors.cyan(`cd ${relativeTemplateDir}`), colors.cyan(`${selectedPackageManager} ${runCmd} dev`)].filter(Boolean).map((step) => ` › ${step}`).join("\n")}\n`, ` 👉 Next steps `, {
385
+ box(`\n${[!ctx.args.shell && relativeTemplateDir.length > 1 && colors.cyan(`cd ${relativeTemplateDir}`), colors.cyan(`${selectedPackageManager} ${runCmd} dev`)].filter(Boolean).map((step) => ` › ${step}`).join("\n")}\n`, ` 👉 Next steps `, {
373
386
  contentAlign: "left",
374
387
  titleAlign: "left",
375
388
  width: "auto",
@@ -0,0 +1,9 @@
1
+ import { log } from "@clack/prompts";
2
+ import createDebug from "debug";
3
+
4
+ //#region ../nuxi/src/utils/logger.ts
5
+ const logger = log;
6
+ const debug = createDebug("nuxi");
7
+
8
+ //#endregion
9
+ export { logger as n, debug as t };
@@ -8,8 +8,8 @@ var module_default = defineCommand({
8
8
  },
9
9
  args: {},
10
10
  subCommands: {
11
- add: () => import("./add-CC8PhdIc.mjs").then((r) => r.default || r),
12
- search: () => import("./search-D_JLXbhF.mjs").then((r) => r.default || r)
11
+ add: () => import("./add-B-g5qEtw.mjs").then((r) => r.default || r),
12
+ search: () => import("./search-D48sLs_4.mjs").then((r) => r.default || r)
13
13
  }
14
14
  });
15
15
 
@@ -1,5 +1,5 @@
1
- import { t as logger } from "./logger-Dk0gkCkX.mjs";
2
- import { r as rmRecursive } from "./fs--ofMleGo.mjs";
1
+ import { n as logger } from "./logger-Dd47z9E7.mjs";
2
+ import { r as rmRecursive } from "./fs-CGUBNEba.mjs";
3
3
  import { promises } from "node:fs";
4
4
  import { dirname, resolve } from "pathe";
5
5
  import { hash } from "ohash";
@@ -0,0 +1,11 @@
1
+ import process from "node:process";
2
+ import { relative } from "pathe";
3
+
4
+ //#region ../nuxi/src/utils/paths.ts
5
+ const cwd = process.cwd();
6
+ function relativeToProcess(path) {
7
+ return relative(cwd, path) || path;
8
+ }
9
+
10
+ //#endregion
11
+ export { relativeToProcess as t };
@@ -0,0 +1,8 @@
1
+ import "./_shared-C3vB2YLc.mjs";
2
+ import "./logger-Dd47z9E7.mjs";
3
+ import "./kit-f7zsnm10.mjs";
4
+ import "./fs-CGUBNEba.mjs";
5
+ import "./paths-C4ma0oRK.mjs";
6
+ import { t as prepare_default } from "./prepare-CWzUtiE9.mjs";
7
+
8
+ export { prepare_default as default };
@@ -1,10 +1,12 @@
1
1
  import { a as legacyRootDirArgs, i as extendsArgs, n as dotEnvArgs, o as logLevelArgs, r as envNameArgs, t as cwdArgs } from "./_shared-C3vB2YLc.mjs";
2
- import { t as logger } from "./logger-Dk0gkCkX.mjs";
2
+ import { n as logger } from "./logger-Dd47z9E7.mjs";
3
3
  import { t as loadKit } from "./kit-f7zsnm10.mjs";
4
- import { t as clearBuildDir } from "./fs--ofMleGo.mjs";
4
+ import { t as clearBuildDir } from "./fs-CGUBNEba.mjs";
5
+ import { t as relativeToProcess } from "./paths-C4ma0oRK.mjs";
5
6
  import process from "node:process";
6
7
  import { defineCommand } from "citty";
7
- import { relative, resolve } from "pathe";
8
+ import { colors } from "consola/utils";
9
+ import { resolve } from "pathe";
8
10
 
9
11
  //#region ../nuxi/src/commands/prepare.ts
10
12
  var prepare_default = defineCommand({
@@ -41,7 +43,7 @@ var prepare_default = defineCommand({
41
43
  await clearBuildDir(nuxt.options.buildDir);
42
44
  await buildNuxt(nuxt);
43
45
  await writeTypes(nuxt);
44
- logger.success("Types generated in", relative(process.cwd(), nuxt.options.buildDir));
46
+ logger.success(`Types generated in ${colors.cyan(relativeToProcess(nuxt.options.buildDir))}.`);
45
47
  }
46
48
  });
47
49
 
@@ -1,12 +1,14 @@
1
1
  import { a as legacyRootDirArgs, i as extendsArgs, n as dotEnvArgs, o as logLevelArgs, r as envNameArgs, t as cwdArgs } from "./_shared-C3vB2YLc.mjs";
2
- import { t as logger } from "./logger-Dk0gkCkX.mjs";
2
+ import { n as logger } from "./logger-Dd47z9E7.mjs";
3
3
  import { t as loadKit } from "./kit-f7zsnm10.mjs";
4
- import { dirname, relative } from "node:path";
4
+ import { t as relativeToProcess } from "./paths-C4ma0oRK.mjs";
5
+ import { dirname } from "node:path";
5
6
  import process from "node:process";
6
7
  import { defineCommand } from "citty";
8
+ import { colors } from "consola/utils";
9
+ import { box, outro } from "@clack/prompts";
7
10
  import { existsSync, promises } from "node:fs";
8
11
  import { resolve as resolve$1 } from "pathe";
9
- import { box, colors } from "consola/utils";
10
12
  import { x } from "tinyexec";
11
13
  import { setupDotenv } from "c12";
12
14
 
@@ -50,7 +52,7 @@ const command = defineCommand({
50
52
  }), resolve$1(cwd, ".output", "nitro.json")].filter(Boolean);
51
53
  const nitroJSONPath = nitroJSONPaths.find((p) => existsSync(p));
52
54
  if (!nitroJSONPath) {
53
- logger.error("Cannot find `nitro.json`. Did you run `nuxi build` first? Search path:\n", nitroJSONPaths);
55
+ logger.error(`Cannot find ${colors.cyan("nitro.json")}. Did you run ${colors.cyan("nuxi build")} first? Search path:\n${nitroJSONPaths.join("\n")}`);
54
56
  process.exit(1);
55
57
  }
56
58
  const outputPath = dirname(nitroJSONPath);
@@ -61,31 +63,39 @@ const command = defineCommand({
61
63
  }
62
64
  const info = [
63
65
  ["Node.js:", `v${process.versions.node}`],
64
- ["Nitro Preset:", nitroJSON.preset],
65
- ["Working directory:", relative(process.cwd(), outputPath)]
66
+ ["Nitro preset:", nitroJSON.preset],
67
+ ["Working directory:", relativeToProcess(outputPath)]
66
68
  ];
67
69
  const _infoKeyLen = Math.max(...info.map(([label]) => label.length));
68
- logger.log(box([
69
- "You are running Nuxt production build in preview mode.",
70
- `For production deployments, please directly use ${colors.cyan(nitroJSON.commands.preview)} command.`,
70
+ logger.message("");
71
+ box([
71
72
  "",
72
- ...info.map(([label, value]) => `${label.padEnd(_infoKeyLen, " ")} ${colors.cyan(value)}`)
73
- ].join("\n"), {
74
- title: colors.yellow("Preview Mode"),
75
- style: { borderColor: "yellow" }
76
- }));
73
+ "You are previewing a Nuxt app. In production, do not use this CLI. ",
74
+ `Instead, run ${colors.cyan(nitroJSON.commands.preview)} directly.`,
75
+ "",
76
+ ...info.map(([label, value]) => `${label.padEnd(_infoKeyLen, " ")} ${colors.cyan(value)}`),
77
+ ""
78
+ ].join("\n"), colors.yellow(" Previewing Nuxt app "), {
79
+ contentAlign: "left",
80
+ titleAlign: "left",
81
+ width: "auto",
82
+ titlePadding: 2,
83
+ contentPadding: 2,
84
+ rounded: true,
85
+ includePrefix: true,
86
+ formatBorder: (text$1) => colors.yellow(text$1)
87
+ });
77
88
  const envFileName = ctx.args.dotenv || ".env";
78
89
  if (existsSync(resolve$1(cwd, envFileName))) {
79
- logger.info(`Loading \`${envFileName}\`. This will not be loaded when running the server in production.`);
90
+ logger.info(`Loading ${colors.cyan(envFileName)}. This will not be loaded when running the server in production.`);
80
91
  await setupDotenv({
81
92
  cwd,
82
93
  fileName: envFileName
83
94
  });
84
- } else if (ctx.args.dotenv) logger.error(`Cannot find \`${envFileName}\`.`);
95
+ } else if (ctx.args.dotenv) logger.error(`Cannot find ${colors.cyan(envFileName)}.`);
85
96
  const port = ctx.args.port ?? process.env.NUXT_PORT ?? process.env.NITRO_PORT ?? process.env.PORT;
86
- logger.info(`Starting preview command: \`${nitroJSON.commands.preview}\``);
97
+ outro(`Running ${colors.cyan(nitroJSON.commands.preview)} in ${colors.cyan(relativeToProcess(outputPath))}`);
87
98
  const [command$1, ...commandArgs] = nitroJSON.commands.preview.split(" ");
88
- logger.log("");
89
99
  await x(command$1, commandArgs, {
90
100
  throwOnError: true,
91
101
  nodeOptions: {