@nuxt/rspack-builder-nightly 4.5.1-29752449.30d24817 → 4.5.2-2610052030-052d82e

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/index.d.mts CHANGED
@@ -1,6 +1,8 @@
1
+ import "webpack";
2
+ import "mini-css-extract-plugin";
3
+ import "fork-ts-checker-webpack-plugin";
4
+ import "vue-loader/dist/pluginWebpack5.js";
1
5
  import { NuxtBuilder } from "@nuxt/schema";
2
-
3
6
  //#region ../webpack/src/webpack.d.ts
4
- declare const bundle: NuxtBuilder["bundle"];
5
- //#endregion
6
- export { bundle };
7
+ export declare const bundle: NuxtBuilder["bundle"];
8
+ //#endregion
package/dist/index.mjs CHANGED
@@ -5,11 +5,12 @@ import { createRsbuild, rspack } from "@rsbuild/core";
5
5
  import { VueLoaderPlugin } from "rspack-vue-loader";
6
6
  import WebpackBarPlugin from "webpackbar/rspack";
7
7
  import { TsCheckerRspackPlugin } from "ts-checker-rspack-plugin";
8
- import pify from "pify";
8
+ import { promisify } from "node:util";
9
9
  import { defu } from "defu";
10
10
  import { basename, dirname, isAbsolute, join, normalize, relative, resolve } from "pathe";
11
11
  import { joinURL, withTrailingSlash } from "ufo";
12
- import { DEFAULT_JS_FILE_EXTENSIONS, bundlerDiagnostics, configDiagnostics, directoryToURL, logger, resolveAlias, setBuildOutput, useNitro, useNuxt } from "@nuxt/kit";
12
+ import { directoryToURL, getAddDependencyCommand, logger, resolveAlias, setBuildOutput, tryImportModule, useNitro, useNuxt } from "@nuxt/kit";
13
+ import { DEFAULT_JS_FILE_EXTENSIONS, bundlerDiagnostics, configDiagnostics, parseNodeModulePath } from "@nuxt/kit/internal";
13
14
  import { createUnplugin } from "unplugin";
14
15
  import { generateTransform, rolldownString } from "rolldown-string";
15
16
  import { existsSync, readFileSync } from "node:fs";
@@ -21,14 +22,12 @@ import querystring from "node:querystring";
21
22
  import { BundleAnalyzerPlugin } from "webpack-bundle-analyzer";
22
23
  import { defineEnv } from "unenv";
23
24
  import { fileURLToPath } from "node:url";
24
- import { parseNodeModulePath } from "mlly";
25
25
  import TimeFixPlugin from "time-fix-plugin";
26
26
  import FriendlyErrorsWebpackPlugin from "@nuxt/friendly-errors-webpack-plugin";
27
27
  import escapeRegExp from "escape-string-regexp";
28
28
  import { EsbuildPlugin } from "esbuild-loader";
29
29
  import CssMinimizerPlugin from "css-minimizer-webpack-plugin";
30
30
  import createResolver from "postcss-import-resolver";
31
- import { createJiti } from "jiti";
32
31
  import { mkdir, writeFile } from "node:fs/promises";
33
32
  import { normalizeWebpackManifest, precomputeDependencies } from "vue-bundle-renderer";
34
33
  import { hash } from "ohash";
@@ -139,10 +138,11 @@ function parseModuleId(id) {
139
138
  search: id.slice(qIndex)
140
139
  };
141
140
  }
141
+ /** Matches module IDs for Vue files (ignoring query strings). */
142
+ const VUE_ID_RE = /\.vue(?:\?|$)/;
142
143
  //#endregion
143
144
  //#region ../webpack/src/plugins/ssr-styles.ts
144
145
  const CSS_URL_RE = /url\((['"]?)(\/[^)]+?)\1\)/g;
145
- const isVueFile = (id) => /\.vue(?:\?|$)/.test(id);
146
146
  const isCSSLike = (name) => /\.(?:css|scss|sass|less|styl(?:us)?|postcss|pcss)(?:\?|$)/.test(name);
147
147
  function normalizePath(nuxt, id) {
148
148
  if (!id) return null;
@@ -162,7 +162,9 @@ function normalizeCSSContent(css) {
162
162
  return css.trim().replace(/(--[^:]+):\s*'([^']*)'/g, "$1:\"$2\"").replace(/:\s+/g, ":").replace(/\s*\{\s*/g, "{").replace(/;\s*\}/g, "}").replace(/\s*\}\s*/g, "}");
163
163
  }
164
164
  function getVueLoaderScopeId(filePath, source, rootContext) {
165
- return getVueLoaderHash(`${normalize(relative(rootContext || process.cwd(), filePath).replace(/^(?:\.\.[/\\])+/, "")).replace(/\\/g, "/")}\n${source.replace(/\r\n/g, "\n")}`);
165
+ const rawShortFilePath = relative(rootContext || process.cwd(), filePath).replace(/^(?:\.\.[/\\])+/, "");
166
+ const shortFilePath = normalize(rawShortFilePath).replace(/\\/g, "/");
167
+ return getVueLoaderHash(`${shortFilePath}\n${source.replace(/\r\n/g, "\n")}`);
166
168
  }
167
169
  function extractVueStyles(filePath, rootContext) {
168
170
  try {
@@ -212,16 +214,17 @@ var SSRStylesPlugin = class {
212
214
  escapeTemplateLiteral(str) {
213
215
  return str.replace(/[`\\$]/g, (m) => m === "$" ? "\\$" : `\\${m}`);
214
216
  }
215
- isBuildAsset(url) {
217
+ buildAssetPath(url) {
216
218
  const buildDir = withTrailingSlash(this.nuxt.options.app.buildAssetsDir || "/_nuxt/");
217
- return url.startsWith(buildDir);
219
+ return url.startsWith(buildDir) ? url.slice(buildDir.length) : null;
218
220
  }
219
221
  isPublicAsset(url, nitro) {
220
222
  const cleaned = url.replace(/[?#].*$/, "");
221
223
  for (const dir of nitro.options.publicAssets) {
222
224
  const base = withTrailingSlash(dir.baseURL || "/");
223
225
  if (!url.startsWith(base)) continue;
224
- if (existsSync(cleaned.replace(base, withTrailingSlash(dir.dir)))) return true;
226
+ const path = cleaned.replace(base, withTrailingSlash(dir.dir));
227
+ if (existsSync(path)) return true;
225
228
  }
226
229
  return false;
227
230
  }
@@ -238,14 +241,16 @@ var SSRStylesPlugin = class {
238
241
  const full = match[0];
239
242
  const rawUrl = match[2] || "";
240
243
  const stripped = rawUrl.replace(/[?#].*$/, "");
241
- if (this.isPublicAsset(stripped, nitro)) {
242
- needsPublicAsset = true;
243
- changed = true;
244
- out += "${publicAssetsURL(" + JSON.stringify(rawUrl) + ")}";
245
- } else if (this.isBuildAsset(stripped)) {
244
+ const quote = match[1] || "";
245
+ const buildAssetPath = this.buildAssetPath(stripped);
246
+ if (buildAssetPath) {
246
247
  needsBuildAsset = true;
247
248
  changed = true;
248
- out += "${buildAssetsURL(" + JSON.stringify(rawUrl) + ")}";
249
+ out += `url(${quote}\${buildAssetsURL(${JSON.stringify(buildAssetPath + rawUrl.slice(stripped.length))})}${quote})`;
250
+ } else if (this.isPublicAsset(stripped, nitro)) {
251
+ needsPublicAsset = true;
252
+ changed = true;
253
+ out += `url(${quote}\${publicAssetsURL(${JSON.stringify(rawUrl)})}${quote})`;
249
254
  } else out += this.escapeTemplateLiteral(full);
250
255
  lastIndex = index + full.length;
251
256
  }
@@ -319,7 +324,7 @@ var SSRStylesPlugin = class {
319
324
  }
320
325
  for (const module of compilation.modules) {
321
326
  const resource = module.resource;
322
- if (!resource || !isVueFile(resource)) continue;
327
+ if (!resource || !VUE_ID_RE.test(resource)) continue;
323
328
  const rel = normalizePath(this.nuxt, resource);
324
329
  if (!rel) continue;
325
330
  if (collected.has(rel)) continue;
@@ -349,7 +354,7 @@ var SSRStylesPlugin = class {
349
354
  const stylesSource = ["const interopDefault = r => r.default || r || []", `export default ${genObjectFromRawEntries(Object.entries(emitted).map(([key, value]) => [key, `() => import('./${value}').then(interopDefault)`]))}`].join("\n");
350
355
  compilation.emitAsset("styles.mjs", new rawSource(stylesSource));
351
356
  const stylesPath = resolve(this.nuxt.options.buildDir, "dist/server/styles.mjs");
352
- setBuildOutput("ssrStyles", () => `export { default } from ${JSON.stringify(stylesPath)}`, this.nuxt);
357
+ setBuildOutput("ssrStyles", () => [`export { default } from ${JSON.stringify(stylesPath)}`, "export const inlinedCSS = {}"].join("\n"), this.nuxt);
353
358
  const entryIds = Array.from(this.chunksWithInlinedCSS).filter((id) => entryModules.has(id));
354
359
  setBuildOutput("entryIds", () => `export default ${JSON.stringify(entryIds)}`, this.nuxt);
355
360
  });
@@ -463,7 +468,7 @@ function createMFS() {
463
468
  const _fs = { ...createFsFromVolume(new Volume()) };
464
469
  _fs.join = join;
465
470
  _fs.exists = (p) => Promise.resolve(_fs.existsSync(p));
466
- _fs.readFile = pify(_fs.readFile);
471
+ _fs.readFile = promisify(_fs.readFile);
467
472
  return _fs;
468
473
  }
469
474
  //#endregion
@@ -791,10 +796,49 @@ function basePlugins(ctx) {
791
796
  ctx.config.plugins.push(new StripInvalidPureAnnotationsPlugin());
792
797
  }
793
798
  }
799
+ /**
800
+ * Pin the packages that hold global vue state (`currentInstance`, reactivity
801
+ * internals, injection keys) to a single resolved entry, mirroring vite's
802
+ * `resolve.dedupe: ['vue']`.
803
+ */
804
+ function vueAliases(ctx) {
805
+ const aliases = {};
806
+ const from = [
807
+ directoryToURL(ctx.nuxt.options.rootDir),
808
+ directoryToURL(ctx.nuxt.options.workspaceDir),
809
+ import.meta.url
810
+ ];
811
+ const conditions = ctx.isServer ? [
812
+ "node",
813
+ "import",
814
+ "default"
815
+ ] : [
816
+ "browser",
817
+ "import",
818
+ "default"
819
+ ];
820
+ for (const pkg of [
821
+ "@vue/runtime-core",
822
+ "@vue/runtime-dom",
823
+ "@vue/reactivity",
824
+ "@vue/shared",
825
+ "@vue/runtime-vapor",
826
+ "vue-router"
827
+ ]) {
828
+ const entry = resolveModulePath(pkg, {
829
+ from,
830
+ conditions,
831
+ try: true
832
+ });
833
+ if (entry) aliases[`${pkg}$`] = entry;
834
+ }
835
+ return aliases;
836
+ }
794
837
  function baseAlias(ctx) {
795
838
  ctx.alias = {
796
839
  "#app": ctx.options.appDir,
797
840
  [basename(ctx.nuxt.options.dir.assets)]: resolve(ctx.nuxt.options.srcDir, ctx.nuxt.options.dir.assets),
841
+ ...vueAliases(ctx),
798
842
  ...ctx.options.alias,
799
843
  ...ctx.alias
800
844
  };
@@ -844,10 +888,13 @@ function baseResolve(ctx) {
844
888
  ".json",
845
889
  ".vue"
846
890
  ],
847
- alias: ctx.alias,
848
891
  modules: resolveModules,
849
892
  fullySpecified: false,
850
- ...ctx.config.resolve
893
+ ...ctx.config.resolve,
894
+ alias: {
895
+ ...ctx.alias,
896
+ ...ctx.config.resolve?.alias
897
+ }
851
898
  };
852
899
  ctx.config.resolveLoader = {
853
900
  modules: resolveLoaderModules,
@@ -930,7 +977,7 @@ const statsMap = {
930
977
  //#region ../webpack/src/presets/esbuild.ts
931
978
  function esbuild(ctx) {
932
979
  const target = ctx.isServer ? "es2020" : "chrome85";
933
- ctx.config.optimization.minimizer.push(new EsbuildPlugin());
980
+ ctx.config.optimization.minimizer.push(new EsbuildPlugin({ minify: !!ctx.config.optimization.minimize }));
934
981
  ctx.config.module.rules.push({
935
982
  test: /\.m?[jt]s$/i,
936
983
  loader: "esbuild-loader",
@@ -995,32 +1042,31 @@ async function getPostcssConfig(nuxt) {
995
1042
  "postcss-url": {}
996
1043
  };
997
1044
  const postcssOptions = defu({}, nuxt.options.postcss, {
1045
+ config: false,
998
1046
  plugins: defaultPlugins,
999
1047
  sourceMap: nuxt.options.webpack.cssSourceMap
1000
1048
  });
1001
1049
  const defaultPluginNames = new Set(Object.keys(defaultPlugins));
1002
- const jiti = createJiti(nuxt.options.rootDir, { alias: nuxt.options.alias });
1003
1050
  if (!Array.isArray(postcssOptions.plugins) && isPureObject(postcssOptions.plugins)) {
1004
1051
  const plugins = [];
1005
1052
  for (const pluginName of sortPlugins(postcssOptions)) {
1006
1053
  const pluginOptions = postcssOptions.plugins[pluginName];
1007
1054
  if (!pluginOptions) continue;
1008
1055
  const isDefault = defaultPluginNames.has(pluginName);
1009
- const parentURLs = isDefault ? [import.meta.url] : nuxt.options.modulesDir;
1010
- let pluginFn;
1011
- for (const parentURL of parentURLs) {
1012
- pluginFn = await jiti.import(pluginName, {
1013
- parentURL: parentURL.replace(/\/node_modules\/?$/, ""),
1014
- try: true,
1015
- default: true
1056
+ const parentURLs = isDefault ? [new URL(import.meta.url)] : nuxt.options.modulesDir.map((dir) => directoryToURL(dir.replace(/\/node_modules\/?$/, "")));
1057
+ const pluginFn = await tryImportModule(pluginName, { url: parentURLs });
1058
+ if (typeof pluginFn === "function") plugins.push(pluginFn(pluginOptions));
1059
+ else {
1060
+ const installCommand = await getAddDependencyCommand(pluginName, nuxt.options.rootDir, { dev: true });
1061
+ if (isDefault) bundlerDiagnostics.NUXT_B7011({
1062
+ pluginName,
1063
+ installCommand
1064
+ });
1065
+ else bundlerDiagnostics.NUXT_B7007({
1066
+ pluginName,
1067
+ installCommand
1016
1068
  });
1017
- if (typeof pluginFn === "function") {
1018
- plugins.push(pluginFn(pluginOptions));
1019
- break;
1020
- }
1021
1069
  }
1022
- if (typeof pluginFn !== "function") if (isDefault) bundlerDiagnostics.NUXT_B7011({ pluginName });
1023
- else bundlerDiagnostics.NUXT_B7007({ pluginName });
1024
1070
  }
1025
1071
  postcssOptions.plugins = plugins;
1026
1072
  }
@@ -1339,7 +1385,7 @@ function clientDevtool(ctx) {
1339
1385
  }
1340
1386
  function clientPerformance(ctx) {
1341
1387
  ctx.config.performance = {
1342
- maxEntrypointSize: 1e3 * 1024,
1388
+ maxEntrypointSize: 1024e3,
1343
1389
  hints: ctx.isDev ? false : "warning",
1344
1390
  ...ctx.config.performance
1345
1391
  };
@@ -1378,7 +1424,8 @@ function clientHMR(ctx) {
1378
1424
  ctx.config.entry.app.unshift(`webpack-hot-middleware/client?${hotMiddlewareClientOptionsStr}`);
1379
1425
  }
1380
1426
  function clientOptimization(ctx) {
1381
- if (!ctx.nuxt.options.features.inlineStyles) return;
1427
+ const inlineStyles = ctx.nuxt.options.features.inlineStyles;
1428
+ if (!inlineStyles) return;
1382
1429
  const globalCSSPaths = /* @__PURE__ */ new Set();
1383
1430
  for (const css of ctx.options.css) if (typeof css === "string") {
1384
1431
  const resolved = resolveAlias(css, ctx.options.alias);
@@ -1395,7 +1442,7 @@ function clientOptimization(ctx) {
1395
1442
  test: (module) => {
1396
1443
  if (module.type !== "css/mini-extract") return false;
1397
1444
  const identifier = normalize(module.identifier());
1398
- for (const globalPath of globalCSSPaths) if (identifier.includes(globalPath)) return true;
1445
+ for (const globalPath of globalCSSPaths) if (identifier.includes(globalPath)) return typeof inlineStyles === "boolean" ? inlineStyles : inlineStyles(module.identifier());
1399
1446
  return false;
1400
1447
  }
1401
1448
  };
@@ -1523,8 +1570,10 @@ function serverStandalone(ctx) {
1523
1570
  }
1524
1571
  if (request[0] === "." || isAbsolute(request) || inline.find((prefix) => typeof prefix === "string" && request.startsWith(prefix)) || assetPattern.test(request)) return cb(void 0, false);
1525
1572
  if (context && request && !request.startsWith("node:") && (isAbsolute(context) || VIRTUAL_RE.test(context))) try {
1526
- const resolved = resolveModulePath(resolveAlias(normalize(request), ctx.nuxt.options.alias), {
1527
- from: [parseNodeModulePath(context).dir || ctx.nuxt.options.rootDir, ...ctx.nuxt.options.modulesDir].map((d) => directoryToURL(d)),
1573
+ const normalisedRequest = resolveAlias(normalize(request), ctx.nuxt.options.alias);
1574
+ const dir = parseNodeModulePath(context).dir || ctx.nuxt.options.rootDir;
1575
+ const resolved = resolveModulePath(normalisedRequest, {
1576
+ from: [dir, ...ctx.nuxt.options.modulesDir].map((d) => directoryToURL(d)),
1528
1577
  suffixes: ["", "index"],
1529
1578
  conditions,
1530
1579
  try: true
@@ -1599,10 +1648,11 @@ function createRsbuildInstance(configs, nuxt) {
1599
1648
  for (const config of configs) {
1600
1649
  const isServer = config.name === "server";
1601
1650
  if (nuxt.options.dev && !isServer) config.target ??= "web";
1651
+ const distPath = isServer && nuxt.options.dev ? resolve(nuxt.options.buildDir, "dist/.rsbuild-server") : config.output.path;
1602
1652
  environments[config.name] = {
1603
1653
  output: {
1604
1654
  target: isServer ? "node" : "web",
1605
- distPath: { root: config.output.path }
1655
+ distPath: { root: distPath }
1606
1656
  },
1607
1657
  tools: { rspack: () => config }
1608
1658
  };
@@ -1711,7 +1761,7 @@ async function createDevMiddleware(compiler) {
1711
1761
  stats: "none",
1712
1762
  ...nuxt.options.webpack.devMiddleware
1713
1763
  });
1714
- nuxt.hook("close", () => pify(devMiddleware.close.bind(devMiddleware))());
1764
+ nuxt.hook("close", () => promisify(devMiddleware.close.bind(devMiddleware))());
1715
1765
  const { client: _client, ...hotMiddlewareOptions } = nuxt.options.webpack.hotMiddleware || {};
1716
1766
  const hotMiddleware = webpackHotMiddleware(compiler, {
1717
1767
  log: false,
@@ -1769,7 +1819,7 @@ async function compile(compiler) {
1769
1819
  if (nuxt.options.dev) {
1770
1820
  const compilersWatching = [];
1771
1821
  nuxt.hook("close", async () => {
1772
- await Promise.all(compilersWatching.map((watching) => watching && pify(watching.close.bind(watching))()));
1822
+ await Promise.all(compilersWatching.map((watching) => watching && promisify(watching.close.bind(watching))()));
1773
1823
  });
1774
1824
  if (compiler.options.name === "client") return new Promise((resolve, reject) => {
1775
1825
  compiler.hooks.done.tap("nuxt-dev", () => {
@@ -1,5 +1,4 @@
1
1
  import { LoaderDefinitionFunction } from "webpack";
2
-
3
2
  //#region ../webpack/src/loaders/vue-module-identifier.d.ts
4
3
  interface LoaderOptions {
5
4
  srcDir?: string;
@@ -6,7 +6,8 @@ const vueModuleIdentifierLoader = function(source) {
6
6
  const resourcePath = this.resourcePath || this._module?.resource;
7
7
  if (!resourcePath || !source.includes("__exports__")) return source;
8
8
  const context = srcDir || this.rootContext || this.context || this._compiler?.options?.context;
9
- const moduleId = normalize(context ? relative(context, resourcePath) : resourcePath).replace(/^\.\//, "").replace(/\\/g, "/");
9
+ const relativePath = context ? relative(context, resourcePath) : resourcePath;
10
+ const moduleId = normalize(relativePath).replace(/^\.\//, "").replace(/\\/g, "/");
10
11
  return source + `\n;__exports__.__moduleIdentifier = ${JSON.stringify(moduleId)};`;
11
12
  };
12
13
  //#endregion
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuxt/rspack-builder-nightly",
3
- "version": "4.5.1-29752449.30d24817",
3
+ "version": "4.5.2-2610052030-052d82e",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/nuxt/nuxt.git",
@@ -24,64 +24,60 @@
24
24
  ],
25
25
  "dependencies": {
26
26
  "@nuxt/friendly-errors-webpack-plugin": "^2.6.0",
27
- "@nuxt/kit": "npm:@nuxt/kit-nightly@4.5.1-29752449.30d24817",
28
- "@rsbuild/core": "~2.1.7",
29
- "@vue/compiler-sfc": "3.5.40",
30
- "autoprefixer": "^10.5.4",
31
- "css-loader": "^7.1.4",
27
+ "@nuxt/kit": "npm:@nuxt/kit-nightly@4.5.2-2610052030-052d82e",
28
+ "@rsbuild/core": "~2.2.11",
29
+ "@vue/compiler-sfc": "3.5.43",
30
+ "autoprefixer": "^10.6.1",
31
+ "css-loader": "^7.1.5",
32
32
  "css-minimizer-webpack-plugin": "^8.0.0",
33
- "cssnano": "^8.0.2",
33
+ "cssnano": "^9.2.2",
34
34
  "defu": "^6.1.7",
35
35
  "esbuild-loader": "^4.5.0",
36
36
  "escape-string-regexp": "^5.0.0",
37
- "exsolve": "^1.1.0",
37
+ "exsolve": "^1.1.3",
38
38
  "file-loader": "^6.2.0",
39
- "jiti": "^2.7.0",
40
39
  "knitwork": "^1.3.0",
41
- "memfs": "^4.64.0",
40
+ "memfs": "^4.80.0",
42
41
  "mini-css-extract-plugin": "^2.10.2",
43
- "mlly": "^1.8.2",
44
- "ohash": "^2.0.11",
42
+ "ohash": "^2.0.12",
45
43
  "pathe": "^2.0.3",
46
- "pify": "^6.1.0",
47
- "postcss": "^8.5.22",
48
- "postcss-import": "^16.1.1",
44
+ "postcss": "^8.5.28",
45
+ "postcss-import": "^17.0.0",
49
46
  "postcss-import-resolver": "^2.0.0",
50
47
  "postcss-loader": "^8.2.1",
51
48
  "postcss-url": "^10.1.4",
52
49
  "pug-plain-loader": "^1.1.0",
53
50
  "raw-loader": "^4.0.2",
54
51
  "rolldown-string": "^0.3.1",
55
- "rspack-vue-loader": "^17.6.1",
56
- "seroval": "^1.5.6",
52
+ "rspack-vue-loader": "^17.7.0",
53
+ "seroval": "^1.6.8",
57
54
  "time-fix-plugin": "^2.0.7",
58
55
  "tinyglobby": "^0.2.17",
59
- "ts-checker-rspack-plugin": "^1.5.2",
56
+ "ts-checker-rspack-plugin": "^1.6.2",
60
57
  "ufo": "^1.6.4",
61
58
  "unenv": "^2.0.0-rc.24",
62
- "unplugin": "^3.3.0",
59
+ "unplugin": "^3.4.0",
63
60
  "url-loader": "^4.1.1",
64
- "vue-bundle-renderer": "^2.3.1",
65
- "webpack-bundle-analyzer": "^5.3.1",
61
+ "vue-bundle-renderer": "^2.4.0",
62
+ "webpack-bundle-analyzer": "^5.4.0",
66
63
  "webpackbar": "^7.0.0"
67
64
  },
68
65
  "devDependencies": {
69
- "@nuxt/schema": "npm:@nuxt/schema-nightly@4.5.1-29752449.30d24817",
66
+ "@nuxt/schema": "npm:@nuxt/schema-nightly@4.5.2-2610052030-052d82e",
70
67
  "@types/webpack-bundle-analyzer": "4.7.0",
71
68
  "h3": "1.15.11",
72
- "h3-next": "npm:h3@2.0.1-rc.25",
73
- "rollup": "4.62.2",
74
- "tsdown": "0.22.0",
75
- "vue": "^3.5.40"
69
+ "h3-next": "npm:h3@2.0.1-rc.32",
70
+ "rollup": "4.64.0",
71
+ "tsdown": "0.23.0",
72
+ "vue": "^3.5.43"
76
73
  },
77
74
  "peerDependencies": {
78
- "nuxt": "npm:nuxt-nightly@4.5.1-29752449.30d24817",
75
+ "nuxt": "npm:nuxt-nightly@4.5.2-2610052030-052d82e",
79
76
  "vue": "^3.3.4"
80
77
  },
81
78
  "engines": {
82
- "node": "^22.12.0 || ^24.11.0 || >=26.0.0"
79
+ "node": "^22.22.3 || ^24.15.0 || >=26.0.0"
83
80
  },
84
- "_name": "@nuxt/rspack-builder",
85
81
  "scripts": {
86
82
  "build": "tsdown",
87
83
  "test:attw": "node ../../scripts/test-attw.ts"