@nuxt/webpack-builder 4.3.0 → 4.4.2

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/README.md CHANGED
@@ -1,15 +1,15 @@
1
- [![Nuxt banner](https://github.com/nuxt/nuxt/blob/main/.github/assets/banner.svg)](https://nuxt.com)
1
+ <a href="https://nuxt.com"><img width="830" height="213" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/banner.svg" alt="Nuxt banner"></a>
2
2
 
3
3
  # Nuxt
4
4
 
5
5
  <p>
6
- <a href="https://www.npmjs.com/package/nuxt"><img src="https://img.shields.io/npm/v/nuxt.svg?style=flat&colorA=18181B&colorB=28CF8D" alt="Version"></a>
7
- <a href="https://www.npmjs.com/package/nuxt"><img src="https://img.shields.io/npm/dm/nuxt.svg?style=flat&colorA=18181B&colorB=28CF8D" alt="Downloads"></a>
6
+ <a href="https://npmx.dev/package/nuxt"><img src="https://npmx.dev/api/registry/badge/version/nuxt" alt="Version"></a>
7
+ <a href="https://npmx.dev/package/nuxt"><img src="https://npmx.dev/api/registry/badge/downloads/nuxt" alt="Downloads"></a>
8
8
  <a href="https://github.com/nuxt/nuxt/blob/main/LICENSE"><img src="https://img.shields.io/github/license/nuxt/nuxt.svg?style=flat&colorA=18181B&colorB=28CF8D" alt="License"></a>
9
9
  <a href="https://nuxt.com/modules"><img src="https://img.shields.io/badge/dynamic/json?url=https://nuxt.com/api/v1/modules&query=$.stats.modules&label=Modules&style=flat&colorA=18181B&colorB=28CF8D" alt="Modules"></a>
10
10
  <a href="https://nuxt.com"><img src="https://img.shields.io/badge/Nuxt%20Docs-18181B?logo=nuxt" alt="Website"></a>
11
11
  <a href="https://chat.nuxt.dev"><img src="https://img.shields.io/badge/Nuxt%20Discord-18181B?logo=discord" alt="Discord"></a>
12
- <a href="https://securityscorecards.dev/"><img src="https://api.securityscorecards.dev/projects/github.com/nuxt/nuxt/badge" alt="Nuxt openssf scorecard score"></a>
12
+ <a href="https://securityscorecards.dev/viewer/?uri=github.com/nuxt/nuxt"><img src="https://api.securityscorecards.dev/projects/github.com/nuxt/nuxt/badge" alt="Nuxt openssf scorecard score"></a>
13
13
  <a href="https://deepwiki.com/nuxt/nuxt"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
14
14
  </p>
15
15
 
@@ -111,7 +111,7 @@ Follow the docs to [Set Up Your Local Development Environment](https://nuxt.com/
111
111
  ## <a name="follow-us">🔗 Follow Us</a>
112
112
 
113
113
  <p valign="center">
114
- <a href="https://go.nuxt.com/discord"><img width="20px" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/discord.svg" alt="Discord"></a>&nbsp;&nbsp;<a href="https://go.nuxt.com/x"><img width="20px" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/twitter.svg" alt="Twitter"></a>&nbsp;&nbsp;<a href="https://go.nuxt.com/github"><img width="20px" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/github.svg" alt="GitHub"></a>&nbsp;&nbsp;<a href="https://go.nuxt.com/bluesky"><img width="20px" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/bluesky.svg" alt="Bluesky"></a>
114
+ <a href="https://go.nuxt.com/discord"><img width="20" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/discord.svg" alt="Discord"></a>&nbsp;&nbsp;<a href="https://go.nuxt.com/x"><img width="20" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/twitter.svg" alt="Twitter"></a>&nbsp;&nbsp;<a href="https://go.nuxt.com/github"><img width="20" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/github.svg" alt="GitHub"></a>&nbsp;&nbsp;<a href="https://go.nuxt.com/bluesky"><img width="20" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/bluesky.svg" alt="Bluesky"></a>
115
115
  </p>
116
116
 
117
117
  ## <a name="license">⚖️ License</a>
@@ -0,0 +1,33 @@
1
+ # Licenses of Bundled Dependencies
2
+
3
+ The published artifact additionally contains code with the following licenses:
4
+ MIT
5
+
6
+ # Bundled Dependencies
7
+
8
+ ## nuxt
9
+
10
+ License: MIT
11
+ Repository: https://github.com/nuxt/nuxt
12
+
13
+ > The MIT License (MIT)
14
+ >
15
+ > Copyright (c) 2016-present - Nuxt Team
16
+ >
17
+ > Permission is hereby granted, free of charge, to any person obtaining a copy
18
+ > of this software and associated documentation files (the "Software"), to deal
19
+ > in the Software without restriction, including without limitation the rights
20
+ > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
21
+ > copies of the Software, and to permit persons to whom the Software is
22
+ > furnished to do so, subject to the following conditions:
23
+ >
24
+ > The above copyright notice and this permission notice shall be included in all
25
+ > copies or substantial portions of the Software.
26
+ >
27
+ > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
28
+ > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
29
+ > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
30
+ > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
31
+ > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
32
+ > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
33
+ > SOFTWARE.
package/dist/index.mjs CHANGED
@@ -3,16 +3,12 @@ import pify from "pify";
3
3
  import webpackDevMiddleware from "webpack-dev-middleware";
4
4
  import webpackHotMiddleware from "webpack-hot-middleware";
5
5
  import { defu } from "defu";
6
- import { joinURL, parseURL, withTrailingSlash } from "ufo";
6
+ import { joinURL, withTrailingSlash } from "ufo";
7
7
  import { directoryToURL, logger, resolveAlias, useNitro, useNuxt } from "@nuxt/kit";
8
8
  import { createUnplugin } from "unplugin";
9
9
  import MagicString from "magic-string";
10
- import webpack from "webpack";
11
- import MiniCssExtractPlugin from "mini-css-extract-plugin";
12
- import WebpackBarPlugin from "webpackbar";
13
- import TsCheckerPlugin from "fork-ts-checker-webpack-plugin";
10
+ import { MiniCssExtractPlugin, TsCheckerPlugin, WebpackBarPlugin, builder, webpack } from "#builder";
14
11
  import { existsSync, readFileSync } from "node:fs";
15
- import { pathToFileURL } from "node:url";
16
12
  import { basename, isAbsolute, join, normalize, relative, resolve } from "pathe";
17
13
  import { genArrayFromRaw, genObjectFromRawEntries, genString } from "knitwork";
18
14
  import { compileStyle, parse } from "@vue/compiler-sfc";
@@ -36,7 +32,6 @@ import { normalizeWebpackManifest, precomputeDependencies } from "vue-bundle-ren
36
32
  import { hash } from "ohash";
37
33
  import { serialize } from "seroval";
38
34
  import { parseNodeModulePath } from "mlly";
39
-
40
35
  //#region src/plugins/dynamic-base.ts
41
36
  const defaults = {
42
37
  globalPublicPath: "__webpack_public_path__",
@@ -67,11 +62,6 @@ const DynamicBasePlugin = createUnplugin((options = {}) => {
67
62
  }
68
63
  };
69
64
  });
70
-
71
- //#endregion
72
- //#region builder.mjs
73
- const builder = "webpack";
74
-
75
65
  //#endregion
76
66
  //#region src/plugins/chunk.ts
77
67
  const pluginName = "ChunkErrorPlugin";
@@ -105,22 +95,40 @@ if (typeof ${ensureChunk} !== "undefined") {
105
95
  `;
106
96
  }
107
97
  };
108
-
98
+ //#endregion
99
+ //#region ../nuxt/src/core/utils/plugins.ts
100
+ /**
101
+ * Split a bundler module ID into its pathname and search (query) parts.
102
+ *
103
+ * Module IDs from Vite/webpack are already-normalized filesystem paths
104
+ * that may carry query strings (e.g. `?vue&type=style&lang=css`).
105
+ */
106
+ function parseModuleId(id) {
107
+ const qIndex = id.indexOf("?");
108
+ if (qIndex === -1) return {
109
+ pathname: id,
110
+ search: ""
111
+ };
112
+ return {
113
+ pathname: id.slice(0, qIndex),
114
+ search: id.slice(qIndex)
115
+ };
116
+ }
109
117
  //#endregion
110
118
  //#region src/plugins/ssr-styles.ts
111
119
  const CSS_URL_RE = /url\((['"]?)(\/[^)]+?)\1\)/g;
112
120
  const isVueFile = (id) => /\.vue(?:\?|$)/.test(id);
113
121
  const isCSSLike = (name) => /\.(?:css|scss|sass|less|styl(?:us)?|postcss|pcss)(?:\?|$)/.test(name);
114
- function normalizePath(nuxt$1, id) {
122
+ function normalizePath(nuxt, id) {
115
123
  if (!id) return null;
116
- const { pathname } = parseURL(decodeURIComponent(pathToFileURL(id).href));
117
- const rel = relative(nuxt$1.options.srcDir, pathname);
124
+ const { pathname } = parseModuleId(id);
125
+ const rel = relative(nuxt.options.srcDir, pathname);
118
126
  if (rel.startsWith("..")) return null;
119
127
  return rel;
120
128
  }
121
129
  function resolveFilePath(id) {
122
130
  if (!id) return null;
123
- return parseURL(decodeURIComponent(pathToFileURL(id).href)).pathname || null;
131
+ return parseModuleId(normalize(id)).pathname || null;
124
132
  }
125
133
  function sanitizeStyleAssetName(rel) {
126
134
  return rel.replace(/[\\/]/g, "_").replace(/\.{2,}/g, "_");
@@ -134,12 +142,12 @@ function extractVueStyles(filePath) {
134
142
  const styles = [];
135
143
  const scopeId = createHash("sha256").update(filePath).digest("hex").slice(0, 8);
136
144
  for (let i = 0; i < descriptor.styles.length; i++) {
137
- const style$1 = descriptor.styles[i];
145
+ const style = descriptor.styles[i];
138
146
  const result = compileStyle({
139
- source: style$1.content,
147
+ source: style.content,
140
148
  filename: filePath,
141
149
  id: `data-v-${scopeId}`,
142
- scoped: style$1.scoped
150
+ scoped: style.scoped
143
151
  });
144
152
  if (!result.errors.length && result.code) styles.push(normalizeCSSContent(result.code));
145
153
  }
@@ -153,10 +161,10 @@ var SSRStylesPlugin = class {
153
161
  clientCSSByIssuer = /* @__PURE__ */ new Map();
154
162
  chunksWithInlinedCSS = /* @__PURE__ */ new Set();
155
163
  globalCSSPaths = /* @__PURE__ */ new Set();
156
- constructor(nuxt$1) {
157
- this.nuxt = nuxt$1;
164
+ constructor(nuxt) {
165
+ this.nuxt = nuxt;
158
166
  this.globalCSSPaths = this.resolveGlobalCSS();
159
- nuxt$1.hook("build:manifest", (manifest) => {
167
+ nuxt.hook("build:manifest", (manifest) => {
160
168
  for (const [id, chunk] of Object.entries(manifest)) {
161
169
  if (chunk.isEntry && chunk.src) this.chunksWithInlinedCSS.add(chunk.src);
162
170
  else if (this.chunksWithInlinedCSS.has(id)) chunk.css &&= [];
@@ -182,9 +190,9 @@ var SSRStylesPlugin = class {
182
190
  isPublicAsset(url, nitro) {
183
191
  const cleaned = url.replace(/[?#].*$/, "");
184
192
  for (const dir of nitro.options.publicAssets) {
185
- const base$1 = withTrailingSlash(dir.baseURL || "/");
186
- if (!url.startsWith(base$1)) continue;
187
- if (existsSync(cleaned.replace(base$1, withTrailingSlash(dir.dir)))) return true;
193
+ const base = withTrailingSlash(dir.baseURL || "/");
194
+ if (!url.startsWith(base)) continue;
195
+ if (existsSync(cleaned.replace(base, withTrailingSlash(dir.dir)))) return true;
188
196
  }
189
197
  return false;
190
198
  }
@@ -247,11 +255,6 @@ var SSRStylesPlugin = class {
247
255
  }
248
256
  return null;
249
257
  }
250
- normalizeResourcePath(resource) {
251
- if (!resource) return null;
252
- const withoutQuery = resource.split("?")[0];
253
- return resolveFilePath(withoutQuery);
254
- }
255
258
  apply(compiler) {
256
259
  if (this.nuxt.options.dev) return;
257
260
  const isClient = compiler.options.name === "client";
@@ -264,8 +267,8 @@ var SSRStylesPlugin = class {
264
267
  });
265
268
  }
266
269
  emitServerStyles(compilation) {
267
- const { webpack: webpack$1 } = compilation.compiler;
268
- const stage = webpack$1.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE;
270
+ const { webpack } = compilation.compiler;
271
+ const stage = webpack.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE;
269
272
  compilation.hooks.processAssets.tap({
270
273
  name: "SSRStylesPlugin",
271
274
  stage
@@ -295,10 +298,10 @@ var SSRStylesPlugin = class {
295
298
  if (vueStyles.length) collected.set(rel, new Set(vueStyles));
296
299
  }
297
300
  const emitted = {};
298
- const rawSource = webpack$1.sources.RawSource;
301
+ const rawSource = webpack.sources.RawSource;
299
302
  for (const [rel, cssSet] of collected.entries()) {
300
303
  if (!cssSet.size) continue;
301
- const transformed = Array.from(cssSet).map((style$1) => this.rewriteStyle(style$1, nitro));
304
+ const transformed = Array.from(cssSet).map((style) => this.rewriteStyle(style, nitro));
302
305
  const needsPublicAssets = transformed.some((t) => t.needsPublicAsset);
303
306
  const needsBuildAssets = transformed.some((t) => t.needsBuildAsset);
304
307
  const imports = [];
@@ -365,8 +368,8 @@ var SSRStylesPlugin = class {
365
368
  });
366
369
  }
367
370
  collectCSS(compilation) {
368
- const { webpack: webpack$1 } = compilation.compiler;
369
- const stage = compilation.compiler.options.name === "server" ? webpack$1.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS : webpack$1.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER;
371
+ const { webpack } = compilation.compiler;
372
+ const stage = compilation.compiler.options.name === "server" ? webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS : webpack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER;
370
373
  const chunkCSSMeta = /* @__PURE__ */ new Map();
371
374
  compilation.hooks.processAssets.tap({
372
375
  name: "SSRStylesPlugin",
@@ -425,7 +428,6 @@ var SSRStylesPlugin = class {
425
428
  return cssChunks;
426
429
  }
427
430
  };
428
-
429
431
  //#endregion
430
432
  //#region src/utils/mfs.ts
431
433
  function createMFS() {
@@ -435,24 +437,22 @@ function createMFS() {
435
437
  _fs.readFile = pify(_fs.readFile);
436
438
  return _fs;
437
439
  }
438
-
439
440
  //#endregion
440
441
  //#region src/utils/index.ts
441
442
  /** @since 3.9.0 */
442
443
  function toArray(value) {
443
444
  return Array.isArray(value) ? value : [value];
444
445
  }
445
-
446
446
  //#endregion
447
447
  //#region src/utils/config.ts
448
- function createWebpackConfigContext(nuxt$1) {
448
+ function createWebpackConfigContext(nuxt) {
449
449
  return {
450
- nuxt: nuxt$1,
451
- options: nuxt$1.options,
452
- userConfig: nuxt$1.options.webpack,
450
+ nuxt,
451
+ options: nuxt.options,
452
+ userConfig: nuxt.options.webpack,
453
453
  config: {},
454
454
  name: "base",
455
- isDev: nuxt$1.options.dev,
455
+ isDev: nuxt.options.dev,
456
456
  isServer: false,
457
457
  isClient: false,
458
458
  alias: {},
@@ -464,15 +464,14 @@ async function applyPresets(ctx, presets) {
464
464
  else await preset(ctx);
465
465
  }
466
466
  function fileName(ctx, key) {
467
- let fileName$1 = ctx.userConfig.filenames[key];
468
- if (typeof fileName$1 === "function") fileName$1 = fileName$1(ctx);
469
- if (typeof fileName$1 === "string" && ctx.options.dev) {
470
- const hash$1 = /\[(chunkhash|contenthash|hash)(?::\d+)?\]/.exec(fileName$1);
471
- if (hash$1) logger.warn(`Notice: Please do not use ${hash$1[1]} in dev mode to prevent memory leak`);
467
+ let fileName = ctx.userConfig.filenames[key];
468
+ if (typeof fileName === "function") fileName = fileName(ctx);
469
+ if (typeof fileName === "string" && ctx.options.dev) {
470
+ const hash = /\[(chunkhash|contenthash|hash)(?::\d+)?\]/.exec(fileName);
471
+ if (hash) logger.warn(`Notice: Please do not use ${hash[1]} in dev mode to prevent memory leak`);
472
472
  }
473
- return fileName$1;
473
+ return fileName;
474
474
  }
475
-
476
475
  //#endregion
477
476
  //#region src/presets/assets.ts
478
477
  function assets(ctx) {
@@ -505,7 +504,6 @@ function assets(ctx) {
505
504
  }]
506
505
  });
507
506
  }
508
-
509
507
  //#endregion
510
508
  //#region src/plugins/warning-ignore.ts
511
509
  var WarningIgnorePlugin = class {
@@ -519,7 +517,6 @@ var WarningIgnorePlugin = class {
519
517
  });
520
518
  }
521
519
  };
522
-
523
520
  //#endregion
524
521
  //#region src/plugins/vue/util.ts
525
522
  /**
@@ -536,7 +533,6 @@ const extractQueryPartJS = (file) => isJSRegExp.exec(file)?.[1];
536
533
  const isCSSRegExp = /\.css(?:\?[^.]+)?$/;
537
534
  const isCSS = (file) => isCSSRegExp.test(file);
538
535
  const isHotUpdate = (file) => file.includes("hot-update");
539
-
540
536
  //#endregion
541
537
  //#region src/plugins/rollup-compat-dynamic-import.ts
542
538
  const DYNAMIC_IMPORT_RE = /import\([^)]*\+\s*__webpack_require__[^+]*\)\.then/;
@@ -554,18 +550,18 @@ var RollupCompatDynamicImportPlugin = class {
554
550
  compilation.hooks.processAssets.tapAsync({
555
551
  name: "RollupCompatDynamicImportPlugin",
556
552
  stage: compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_INLINE
557
- }, (assets$1, callback) => {
553
+ }, (assets, callback) => {
558
554
  try {
559
555
  const targetFiles = /* @__PURE__ */ new Set();
560
556
  for (const chunk of compilation.chunks) if (chunk.canBeInitial() || chunk.hasRuntime()) for (const file of chunk.files || []) targetFiles.add(file);
561
- for (const [filename, asset] of Object.entries(assets$1)) {
557
+ for (const [filename, asset] of Object.entries(assets)) {
562
558
  if (!isJS(filename)) continue;
563
559
  if (!targetFiles.has(filename)) continue;
564
560
  const source = asset.source();
565
561
  const originalCode = typeof source === "string" ? source : source.toString();
566
562
  if (!DYNAMIC_IMPORT_RE.test(originalCode)) continue;
567
563
  const transformedCode = this.transformDynamicImports(originalCode);
568
- if (transformedCode !== originalCode) assets$1[filename] = new compiler.webpack.sources.RawSource(transformedCode);
564
+ if (transformedCode !== originalCode) assets[filename] = new compiler.webpack.sources.RawSource(transformedCode);
569
565
  }
570
566
  this.generateDynamicImportHelper(compilation);
571
567
  callback();
@@ -615,7 +611,6 @@ export function _rollupDynamicImport(chunkId) {
615
611
  `;
616
612
  }
617
613
  };
618
-
619
614
  //#endregion
620
615
  //#region src/presets/base.ts
621
616
  async function base(ctx) {
@@ -793,7 +788,6 @@ const statsMap = {
793
788
  info: "normal",
794
789
  verbose: "verbose"
795
790
  };
796
-
797
791
  //#endregion
798
792
  //#region src/presets/esbuild.ts
799
793
  function esbuild(ctx) {
@@ -823,7 +817,6 @@ function esbuild(ctx) {
823
817
  }
824
818
  });
825
819
  }
826
-
827
820
  //#endregion
828
821
  //#region src/presets/pug.ts
829
822
  function pug(ctx) {
@@ -841,7 +834,6 @@ function pug(ctx) {
841
834
  }] }]
842
835
  });
843
836
  }
844
-
845
837
  //#endregion
846
838
  //#region src/utils/postcss.ts
847
839
  const isPureObject = (obj) => obj !== null && !Array.isArray(obj) && typeof obj === "object";
@@ -849,27 +841,27 @@ function sortPlugins({ plugins, order }) {
849
841
  const names = Object.keys(plugins);
850
842
  return typeof order === "function" ? order(names) : order || names;
851
843
  }
852
- async function getPostcssConfig(nuxt$1) {
853
- if (!nuxt$1.options.webpack.postcss || !nuxt$1.options.postcss) return false;
854
- const postcssOptions = defu({}, nuxt$1.options.postcss, {
844
+ async function getPostcssConfig(nuxt) {
845
+ if (!nuxt.options.webpack.postcss || !nuxt.options.postcss) return false;
846
+ const postcssOptions = defu({}, nuxt.options.postcss, {
855
847
  plugins: {
856
848
  "postcss-import": { resolve: createResolver({
857
- alias: { ...nuxt$1.options.alias },
858
- modules: nuxt$1.options.modulesDir
849
+ alias: { ...nuxt.options.alias },
850
+ modules: nuxt.options.modulesDir
859
851
  }) },
860
852
  "postcss-url": {}
861
853
  },
862
- sourceMap: nuxt$1.options.webpack.cssSourceMap
854
+ sourceMap: nuxt.options.webpack.cssSourceMap
863
855
  });
864
- const jiti = createJiti(nuxt$1.options.rootDir, { alias: nuxt$1.options.alias });
856
+ const jiti = createJiti(nuxt.options.rootDir, { alias: nuxt.options.alias });
865
857
  if (!Array.isArray(postcssOptions.plugins) && isPureObject(postcssOptions.plugins)) {
866
858
  const plugins = [];
867
- for (const pluginName$1 of sortPlugins(postcssOptions)) {
868
- const pluginOptions = postcssOptions.plugins[pluginName$1];
859
+ for (const pluginName of sortPlugins(postcssOptions)) {
860
+ const pluginOptions = postcssOptions.plugins[pluginName];
869
861
  if (!pluginOptions) continue;
870
862
  let pluginFn;
871
- for (const parentURL of nuxt$1.options.modulesDir) {
872
- pluginFn = await jiti.import(pluginName$1, {
863
+ for (const parentURL of nuxt.options.modulesDir) {
864
+ pluginFn = await jiti.import(pluginName, {
873
865
  parentURL: parentURL.replace(/\/node_modules\/?$/, ""),
874
866
  try: true,
875
867
  default: true
@@ -879,17 +871,16 @@ async function getPostcssConfig(nuxt$1) {
879
871
  break;
880
872
  }
881
873
  }
882
- if (typeof pluginFn !== "function") console.warn(`[nuxt] could not import postcss plugin \`${pluginName$1}\`. Please report this as a bug.`);
874
+ if (typeof pluginFn !== "function") console.warn(`[nuxt] could not import postcss plugin \`${pluginName}\`. Please report this as a bug.`);
883
875
  }
884
876
  postcssOptions.plugins = plugins;
885
877
  }
886
878
  return {
887
- sourceMap: nuxt$1.options.webpack.cssSourceMap,
888
- ...nuxt$1.options.webpack.postcss,
879
+ sourceMap: nuxt.options.webpack.cssSourceMap,
880
+ ...nuxt.options.webpack.postcss,
889
881
  postcssOptions
890
882
  };
891
883
  }
892
-
893
884
  //#endregion
894
885
  //#region src/presets/style.ts
895
886
  async function style(ctx) {
@@ -971,7 +962,6 @@ async function createPostcssLoadersRule(ctx) {
971
962
  options: config
972
963
  };
973
964
  }
974
-
975
965
  //#endregion
976
966
  //#region src/plugins/vue/client.ts
977
967
  /**
@@ -995,9 +985,9 @@ var VueSSRClientPlugin = class {
995
985
  const stats = compilation.getStats().toJson();
996
986
  const context = this.nuxt.options.srcDir;
997
987
  const initialFiles = /* @__PURE__ */ new Set();
998
- for (const { assets: assets$1 } of Object.values(stats.entrypoints)) {
999
- if (!assets$1) continue;
1000
- for (const asset of assets$1) {
988
+ for (const { assets } of Object.values(stats.entrypoints)) {
989
+ if (!assets) continue;
990
+ for (const asset of assets) {
1001
991
  const file = asset.name;
1002
992
  if ((isJS(file) || isCSS(file)) && !isHotUpdate(file)) initialFiles.add(file);
1003
993
  }
@@ -1043,11 +1033,11 @@ var VueSSRClientPlugin = class {
1043
1033
  const files = Array.from(filesSet);
1044
1034
  webpackManifest.modules[relativeId] = files;
1045
1035
  if (Array.isArray(m.modules)) for (const concatenatedModule of m.modules) {
1046
- const relativeId$1 = this.getRelativeModuleId(concatenatedModule.identifier, context);
1047
- webpackManifest.modules[relativeId$1] ||= files;
1036
+ const relativeId = this.getRelativeModuleId(concatenatedModule.identifier, context);
1037
+ webpackManifest.modules[relativeId] ||= files;
1048
1038
  }
1049
1039
  if (stats.modules) {
1050
- for (const m$1 of stats.modules) if (m$1.assets?.length && m$1.chunks?.includes(cid)) files.push(...m$1.assets.map(fileToIndex));
1040
+ for (const m of stats.modules) if (m.assets?.length && m.chunks?.includes(cid)) files.push(...m.assets.map(fileToIndex));
1051
1041
  }
1052
1042
  }
1053
1043
  const manifest = normalizeWebpackManifest(webpackManifest);
@@ -1060,7 +1050,6 @@ var VueSSRClientPlugin = class {
1060
1050
  });
1061
1051
  }
1062
1052
  };
1063
-
1064
1053
  //#endregion
1065
1054
  //#region src/plugins/vue/server.ts
1066
1055
  const JS_MAP_RE = /\.js\.map$/;
@@ -1075,7 +1064,7 @@ var VueSSRServerPlugin = class {
1075
1064
  compilation.hooks.processAssets.tapAsync({
1076
1065
  name: "VueSSRServerPlugin",
1077
1066
  stage: webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL
1078
- }, (assets$1, cb) => {
1067
+ }, (assets, cb) => {
1079
1068
  const stats = compilation.getStats().toJson();
1080
1069
  const [entryName] = Object.keys(stats.entrypoints);
1081
1070
  const entryInfo = stats.entrypoints[entryName];
@@ -1084,24 +1073,24 @@ var VueSSRServerPlugin = class {
1084
1073
  if (entryAssets.length > 1) throw new Error("Server-side bundle should have one single entry file. Avoid using CommonsChunkPlugin in the server config.");
1085
1074
  const [entry] = entryAssets;
1086
1075
  if (!entry || typeof entry.name !== "string") throw new Error(`Entry "${entryName}" not found. Did you specify the correct entry option?`);
1087
- const bundle$1 = {
1076
+ const bundle = {
1088
1077
  entry: entry.name,
1089
1078
  files: {},
1090
1079
  maps: {}
1091
1080
  };
1092
1081
  for (const asset of stats.assets) if (isJS(asset.name)) {
1093
1082
  const queryPart = extractQueryPartJS(asset.name);
1094
- if (queryPart !== void 0) bundle$1.files[asset.name] = asset.name.replace(queryPart, "");
1095
- else bundle$1.files[asset.name] = asset.name;
1096
- } else if (JS_MAP_RE.test(asset.name)) bundle$1.maps[asset.name.replace(/\.map$/, "")] = asset.name;
1097
- else delete assets$1[asset.name];
1098
- const src = JSON.stringify(bundle$1, null, 2);
1099
- assets$1[this.options.filename] = {
1083
+ if (queryPart !== void 0) bundle.files[asset.name] = asset.name.replace(queryPart, "");
1084
+ else bundle.files[asset.name] = asset.name;
1085
+ } else if (JS_MAP_RE.test(asset.name)) bundle.maps[asset.name.replace(/\.map$/, "")] = asset.name;
1086
+ else delete assets[asset.name];
1087
+ const src = JSON.stringify(bundle, null, 2);
1088
+ assets[this.options.filename] = {
1100
1089
  source: () => src,
1101
1090
  size: () => src.length
1102
1091
  };
1103
1092
  const mjsSrc = "export default " + src;
1104
- assets$1[this.options.filename.replace(".json", ".mjs")] = {
1093
+ assets[this.options.filename.replace(".json", ".mjs")] = {
1105
1094
  source: () => mjsSrc,
1106
1095
  map: () => null,
1107
1096
  size: () => mjsSrc.length
@@ -1111,11 +1100,14 @@ var VueSSRServerPlugin = class {
1111
1100
  });
1112
1101
  }
1113
1102
  };
1114
-
1115
1103
  //#endregion
1116
1104
  //#region src/presets/vue.ts
1117
1105
  function vue(ctx) {
1118
- ctx.config.plugins.push(new (VueLoaderPlugin.default || VueLoaderPlugin)());
1106
+ ctx.nuxt.hooks.hookOnce(`${builder}:config`, () => {
1107
+ ctx.nuxt.hook(`${builder}:configResolved`, (configs) => {
1108
+ for (const config of configs) config.plugins.unshift(new (VueLoaderPlugin.default || VueLoaderPlugin)());
1109
+ });
1110
+ });
1119
1111
  ctx.config.module.rules.push({
1120
1112
  test: /\.vue$/i,
1121
1113
  loader: "vue-loader",
@@ -1143,7 +1135,6 @@ function vue(ctx) {
1143
1135
  "__VUE_PROD_HYDRATION_MISMATCH_DETAILS__": ctx.nuxt.options.debug && ctx.nuxt.options.debug.hydration
1144
1136
  }));
1145
1137
  }
1146
-
1147
1138
  //#endregion
1148
1139
  //#region src/presets/nuxt.ts
1149
1140
  async function nuxt(ctx) {
@@ -1156,7 +1147,6 @@ async function nuxt(ctx) {
1156
1147
  vue
1157
1148
  ]);
1158
1149
  }
1159
-
1160
1150
  //#endregion
1161
1151
  //#region src/configs/client.ts
1162
1152
  async function client(ctx) {
@@ -1264,7 +1254,6 @@ function clientPlugins(ctx) {
1264
1254
  if (!ctx.nuxt.options.test && (ctx.nuxt.options.typescript.typeCheck === true || ctx.nuxt.options.typescript.typeCheck === "build" && !ctx.nuxt.options.dev)) ctx.config.plugins.push(new TsCheckerPlugin({ logger }));
1265
1255
  }
1266
1256
  }
1267
-
1268
1257
  //#endregion
1269
1258
  //#region src/presets/node.ts
1270
1259
  function node(ctx) {
@@ -1295,7 +1284,6 @@ function node(ctx) {
1295
1284
  maxAssetSize: Number.POSITIVE_INFINITY
1296
1285
  };
1297
1286
  }
1298
-
1299
1287
  //#endregion
1300
1288
  //#region src/configs/server.ts
1301
1289
  const assetPattern = /\.(?:css|s[ca]ss|png|jpe?g|gif|svg|woff2?|eot|ttf|otf|webp|webm|mp4|ogv)(?:\?.*)?$/i;
@@ -1390,117 +1378,116 @@ function serverPlugins(ctx) {
1390
1378
  }));
1391
1379
  if (!ctx.nuxt.options.test && (ctx.nuxt.options.typescript.typeCheck === true || ctx.nuxt.options.typescript.typeCheck === "build" && !ctx.nuxt.options.dev)) ctx.config.plugins.push(new TsCheckerPlugin({ logger }));
1392
1380
  }
1393
-
1394
1381
  //#endregion
1395
1382
  //#region src/webpack.ts
1396
- const bundle = async (nuxt$1) => {
1397
- const webpackConfigs = await Promise.all([client, ...nuxt$1.options.ssr ? [server] : []].map(async (preset) => {
1398
- const ctx = createWebpackConfigContext(nuxt$1);
1399
- ctx.userConfig = defu(nuxt$1.options.webpack[`$${preset.name}`], ctx.userConfig);
1383
+ const bundle = async (nuxt) => {
1384
+ const webpackConfigs = await Promise.all([client, ...nuxt.options.ssr ? [server] : []].map(async (preset) => {
1385
+ const ctx = createWebpackConfigContext(nuxt);
1386
+ ctx.userConfig = defu(nuxt.options.webpack[`$${preset.name}`], ctx.userConfig);
1400
1387
  await applyPresets(ctx, preset);
1401
1388
  return ctx.config;
1402
1389
  }));
1403
1390
  /** Remove Nitro rollup plugin for handling dynamic imports from webpack chunks */
1404
- if (!nuxt$1.options.dev) useNitro().hooks.hook("rollup:before", (_nitro, config) => {
1391
+ if (!nuxt.options.dev) useNitro().hooks.hook("rollup:before", (_nitro, config) => {
1405
1392
  const plugins = config.plugins;
1406
1393
  const existingPlugin = plugins.findIndex((i) => i && "name" in i && i.name === "dynamic-require");
1407
1394
  if (existingPlugin >= 0) plugins.splice(existingPlugin, 1);
1408
1395
  });
1409
- await nuxt$1.callHook(`${builder}:config`, webpackConfigs);
1410
- const mfs = nuxt$1.options.dev ? createMFS() : null;
1411
- const ssrStylesPlugin = nuxt$1.options.ssr && !nuxt$1.options.dev && nuxt$1.options.features.inlineStyles ? new SSRStylesPlugin(nuxt$1) : null;
1396
+ await nuxt.callHook(`${builder}:config`, webpackConfigs);
1397
+ const mfs = nuxt.options.dev ? createMFS() : null;
1398
+ const ssrStylesPlugin = nuxt.options.ssr && !nuxt.options.dev && nuxt.options.features.inlineStyles ? new SSRStylesPlugin(nuxt) : null;
1412
1399
  for (const config of webpackConfigs) {
1413
- config.plugins.push(DynamicBasePlugin.webpack({ sourcemap: !!nuxt$1.options.sourcemap[config.name] }));
1414
- if (config.name === "client" && nuxt$1.options.experimental.emitRouteChunkError && nuxt$1.options.builder !== "@nuxt/rspack-builder") config.plugins.push(new ChunkErrorPlugin());
1400
+ config.plugins.push(DynamicBasePlugin.webpack({ sourcemap: !!nuxt.options.sourcemap[config.name] }));
1401
+ if (config.name === "client" && nuxt.options.experimental.emitRouteChunkError && nuxt.options.builder !== "@nuxt/rspack-builder") config.plugins.push(new ChunkErrorPlugin());
1415
1402
  if (ssrStylesPlugin) config.plugins.push(ssrStylesPlugin);
1416
1403
  }
1417
- await nuxt$1.callHook(`${builder}:configResolved`, webpackConfigs);
1404
+ await nuxt.callHook(`${builder}:configResolved`, webpackConfigs);
1418
1405
  const compilers = webpackConfigs.map((config) => {
1419
1406
  const compiler = webpack(config);
1420
- if (nuxt$1.options.dev && compiler) compiler.outputFileSystem = mfs;
1407
+ if (nuxt.options.dev && compiler) compiler.outputFileSystem = mfs;
1421
1408
  return compiler;
1422
1409
  });
1423
- nuxt$1.hook("close", async () => {
1424
- for (const compiler of compilers) await new Promise((resolve$1) => compiler.close(resolve$1));
1410
+ nuxt.hook("close", async () => {
1411
+ for (const compiler of compilers) await new Promise((resolve) => compiler.close(resolve));
1425
1412
  });
1426
- if (nuxt$1.options.dev) {
1413
+ if (nuxt.options.dev) {
1427
1414
  await Promise.all(compilers.map((c) => compile(c)));
1428
1415
  return;
1429
1416
  }
1430
1417
  for (const c of compilers) await compile(c);
1431
1418
  };
1432
1419
  async function createDevMiddleware(compiler) {
1433
- const nuxt$1 = useNuxt();
1420
+ const nuxt = useNuxt();
1434
1421
  logger.debug("Creating webpack middleware...");
1435
1422
  const devMiddleware = webpackDevMiddleware(compiler, {
1436
- publicPath: joinURL(nuxt$1.options.app.baseURL, nuxt$1.options.app.buildAssetsDir),
1423
+ publicPath: joinURL(nuxt.options.app.baseURL, nuxt.options.app.buildAssetsDir),
1437
1424
  outputFileSystem: compiler.outputFileSystem,
1438
1425
  stats: "none",
1439
- ...nuxt$1.options.webpack.devMiddleware
1426
+ ...nuxt.options.webpack.devMiddleware
1440
1427
  });
1441
- nuxt$1.hook("close", () => pify(devMiddleware.close.bind(devMiddleware))());
1442
- const { client: _client, ...hotMiddlewareOptions } = nuxt$1.options.webpack.hotMiddleware || {};
1428
+ nuxt.hook("close", () => pify(devMiddleware.close.bind(devMiddleware))());
1429
+ const { client: _client, ...hotMiddlewareOptions } = nuxt.options.webpack.hotMiddleware || {};
1443
1430
  const hotMiddleware = webpackHotMiddleware(compiler, {
1444
1431
  log: false,
1445
1432
  heartbeat: 1e4,
1446
- path: joinURL(nuxt$1.options.app.baseURL, "__webpack_hmr", compiler.options.name),
1433
+ path: joinURL(nuxt.options.app.baseURL, "__webpack_hmr", compiler.options.name),
1447
1434
  ...hotMiddlewareOptions
1448
1435
  });
1449
1436
  const devHandler = wdmToH3Handler(devMiddleware);
1450
- await nuxt$1.callHook("server:devHandler", defineEventHandler(async (event) => {
1437
+ await nuxt.callHook("server:devHandler", defineEventHandler(async (event) => {
1451
1438
  const body = await devHandler(event);
1452
1439
  if (body !== void 0) return body;
1453
1440
  const { req, res } = "runtime" in event ? event.runtime.node : event.node;
1454
- await new Promise((resolve$1, reject) => hotMiddleware(req, res, (err) => err ? reject(err) : resolve$1()));
1441
+ await new Promise((resolve, reject) => hotMiddleware(req, res, (err) => err ? reject(err) : resolve()));
1455
1442
  }), { cors: () => true });
1456
1443
  return devMiddleware;
1457
1444
  }
1458
1445
  function wdmToH3Handler(devMiddleware) {
1459
1446
  return defineEventHandler(async (event) => {
1460
1447
  const { req, res } = "runtime" in event ? event.runtime.node : event.node;
1461
- if (req.headers["sec-fetch-mode"] === "no-cors" && req.headers["sec-fetch-site"] === "cross-site") throw { status: 403 };
1462
- event.context.webpack = {
1463
- ...event.context.webpack,
1464
- devMiddleware: devMiddleware.context
1465
- };
1466
- return await new Promise((resolve$1, reject) => {
1448
+ if (req.headers["sec-fetch-mode"] === "no-cors" && req.headers["sec-fetch-site"] === "cross-site") {
1449
+ res.statusCode = 403;
1450
+ res.end("Forbidden");
1451
+ return;
1452
+ }
1453
+ return await new Promise((resolve, reject) => {
1467
1454
  res.stream = (stream) => {
1468
- resolve$1(stream);
1455
+ resolve(stream);
1469
1456
  };
1470
1457
  res.send = (data) => {
1471
- resolve$1(data);
1458
+ resolve(data);
1472
1459
  };
1473
1460
  res.finish = (data) => {
1474
- resolve$1(data);
1461
+ resolve(data);
1475
1462
  };
1476
1463
  devMiddleware(req, res, (err) => {
1477
1464
  if (err) reject(err);
1478
- else resolve$1(void 0);
1465
+ else resolve(void 0);
1479
1466
  });
1480
1467
  });
1481
1468
  });
1482
1469
  }
1483
1470
  async function compile(compiler) {
1484
- const nuxt$1 = useNuxt();
1485
- await nuxt$1.callHook(`${builder}:compile`, {
1471
+ const nuxt = useNuxt();
1472
+ await nuxt.callHook(`${builder}:compile`, {
1486
1473
  name: compiler.options.name,
1487
1474
  compiler
1488
1475
  });
1489
- compiler.hooks.done.tap("load-resources", async (stats$1) => {
1490
- await nuxt$1.callHook(`${builder}:compiled`, {
1476
+ compiler.hooks.done.tap("load-resources", async (stats) => {
1477
+ await nuxt.callHook(`${builder}:compiled`, {
1491
1478
  name: compiler.options.name,
1492
1479
  compiler,
1493
- stats: stats$1
1480
+ stats
1494
1481
  });
1495
1482
  });
1496
- if (nuxt$1.options.dev) {
1483
+ if (nuxt.options.dev) {
1497
1484
  const compilersWatching = [];
1498
- nuxt$1.hook("close", async () => {
1485
+ nuxt.hook("close", async () => {
1499
1486
  await Promise.all(compilersWatching.map((watching) => watching && pify(watching.close.bind(watching))()));
1500
1487
  });
1501
- if (compiler.options.name === "client") return new Promise((resolve$1, reject) => {
1488
+ if (compiler.options.name === "client") return new Promise((resolve, reject) => {
1502
1489
  compiler.hooks.done.tap("nuxt-dev", () => {
1503
- resolve$1(null);
1490
+ resolve(null);
1504
1491
  });
1505
1492
  compiler.hooks.failed.tap("nuxt-errorlog", (err) => {
1506
1493
  reject(err);
@@ -1509,15 +1496,15 @@ async function compile(compiler) {
1509
1496
  if (devMiddleware.context.watching) compilersWatching.push(devMiddleware.context.watching);
1510
1497
  });
1511
1498
  });
1512
- return new Promise((resolve$1, reject) => {
1513
- const watching = compiler.watch(nuxt$1.options.watchers.webpack, (err) => {
1499
+ return new Promise((resolve, reject) => {
1500
+ const watching = compiler.watch(nuxt.options.watchers.webpack, (err) => {
1514
1501
  if (err) return reject(err);
1515
- resolve$1(null);
1502
+ resolve(null);
1516
1503
  });
1517
1504
  compilersWatching.push(watching);
1518
1505
  });
1519
1506
  }
1520
- const stats = await new Promise((resolve$1, reject) => compiler.run((err, stats$1) => err ? reject(err) : resolve$1(stats$1)));
1507
+ const stats = await new Promise((resolve, reject) => compiler.run((err, stats) => err ? reject(err) : resolve(stats)));
1521
1508
  if (stats.hasErrors()) {
1522
1509
  const error = /* @__PURE__ */ new Error("Nuxt build error");
1523
1510
  error.stack = stats.toString("errors-only");
@@ -1527,6 +1514,5 @@ async function compile(compiler) {
1527
1514
  function defineEventHandler(handler) {
1528
1515
  return Object.assign(handler, { __is_handler__: true });
1529
1516
  }
1530
-
1531
1517
  //#endregion
1532
- export { bundle };
1518
+ export { bundle };
@@ -1,5 +1,4 @@
1
1
  import { normalize, relative } from "pathe";
2
-
3
2
  //#region src/loaders/vue-module-identifier.ts
4
3
  const vueModuleIdentifierLoader = function(source) {
5
4
  this.cacheable?.();
@@ -10,7 +9,5 @@ const vueModuleIdentifierLoader = function(source) {
10
9
  const moduleId = normalize(context ? relative(context, resourcePath) : resourcePath).replace(/^\.\//, "").replace(/\\/g, "/");
11
10
  return source + `\n;__exports__.__moduleIdentifier = ${JSON.stringify(moduleId)};`;
12
11
  };
13
- var vue_module_identifier_default = vueModuleIdentifierLoader;
14
-
15
12
  //#endregion
16
- export { vue_module_identifier_default as default };
13
+ export { vueModuleIdentifierLoader as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuxt/webpack-builder",
3
- "version": "4.3.0",
3
+ "version": "4.4.2",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/nuxt/nuxt.git",
@@ -25,11 +25,11 @@
25
25
  ],
26
26
  "dependencies": {
27
27
  "@nuxt/friendly-errors-webpack-plugin": "^2.6.0",
28
- "@vue/compiler-sfc": "3.5.27",
29
- "autoprefixer": "^10.4.23",
30
- "css-loader": "^7.1.2",
31
- "css-minimizer-webpack-plugin": "^7.0.4",
32
- "cssnano": "^7.1.2",
28
+ "@vue/compiler-sfc": "3.5.30",
29
+ "autoprefixer": "^10.4.27",
30
+ "css-loader": "^7.1.4",
31
+ "css-minimizer-webpack-plugin": "^8.0.0",
32
+ "cssnano": "^7.1.3",
33
33
  "defu": "^6.1.4",
34
34
  "esbuild-loader": "^4.4.2",
35
35
  "escape-string-regexp": "^5.0.0",
@@ -39,52 +39,52 @@
39
39
  "jiti": "^2.6.1",
40
40
  "knitwork": "^1.3.0",
41
41
  "magic-string": "^0.30.21",
42
- "memfs": "^4.56.2",
43
- "mini-css-extract-plugin": "^2.10.0",
44
- "mlly": "^1.8.0",
42
+ "memfs": "^4.56.11",
43
+ "mini-css-extract-plugin": "^2.10.1",
44
+ "mlly": "^1.8.1",
45
45
  "ohash": "^2.0.11",
46
46
  "pathe": "^2.0.3",
47
47
  "pify": "^6.1.0",
48
- "postcss": "^8.5.6",
48
+ "postcss": "^8.5.8",
49
49
  "postcss-import": "^16.1.1",
50
50
  "postcss-import-resolver": "^2.0.0",
51
- "postcss-loader": "^8.2.0",
51
+ "postcss-loader": "^8.2.1",
52
52
  "postcss-url": "^10.1.3",
53
53
  "pug-plain-loader": "^1.1.0",
54
- "seroval": "^1.4.2",
55
- "std-env": "^3.10.0",
54
+ "seroval": "^1.5.1",
55
+ "std-env": "^4.0.0",
56
56
  "time-fix-plugin": "^2.0.7",
57
57
  "tinyglobby": "^0.2.15",
58
58
  "ufo": "^1.6.3",
59
59
  "unenv": "^2.0.0-rc.24",
60
- "unplugin": "^2.3.11",
60
+ "unplugin": "^3.0.0",
61
61
  "url-loader": "^4.1.1",
62
62
  "vue-bundle-renderer": "^2.2.0",
63
63
  "vue-loader": "^17.4.2",
64
- "webpack": "^5.104.1",
65
- "webpack-bundle-analyzer": "^5.1.1",
64
+ "webpack": "^5.105.4",
65
+ "webpack-bundle-analyzer": "^5.2.0",
66
66
  "webpack-dev-middleware": "^7.4.5",
67
67
  "webpack-hot-middleware": "^2.26.1",
68
68
  "webpackbar": "^7.0.0",
69
- "@nuxt/kit": "4.3.0"
69
+ "@nuxt/kit": "4.4.2"
70
70
  },
71
71
  "devDependencies": {
72
- "@rspack/core": "1.7.2",
72
+ "@rspack/core": "1.7.8",
73
73
  "@types/webpack-bundle-analyzer": "4.7.0",
74
74
  "@types/webpack-hot-middleware": "2.25.12",
75
- "h3": "1.15.5",
76
- "h3-next": "npm:h3@2.0.1-rc.9",
77
- "obuild": "0.4.14",
78
- "rollup": "4.55.2",
79
- "vue": "3.5.27",
80
- "@nuxt/schema": "4.3.0"
75
+ "h3": "1.15.6",
76
+ "h3-next": "npm:h3@2.0.1-rc.16",
77
+ "obuild": "0.4.32",
78
+ "rollup": "4.59.0",
79
+ "vue": "3.5.30",
80
+ "@nuxt/schema": "4.4.2"
81
81
  },
82
82
  "peerDependencies": {
83
83
  "vue": "^3.3.4",
84
- "nuxt": "4.3.0"
84
+ "nuxt": "4.4.2"
85
85
  },
86
86
  "engines": {
87
- "node": "^20.9.0 || >=22.0.0"
87
+ "node": "^20.19.0 || >=22.12.0"
88
88
  },
89
89
  "scripts": {
90
90
  "build:stub": "obuild --stub",