@nuxt/rspack-builder 3.21.0 → 3.21.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,46 @@
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/webpack-builder
9
+
10
+ License: MIT
11
+ Repository: https://github.com/nuxt/nuxt
12
+
13
+ ---------------------------------------
14
+
15
+ ## nuxt
16
+
17
+ License: MIT
18
+ Repository: https://github.com/nuxt/nuxt
19
+
20
+ > The MIT License (MIT)
21
+ >
22
+ > Copyright (c) 2016-present - Nuxt Team
23
+ >
24
+ > Permission is hereby granted, free of charge, to any person obtaining a copy
25
+ > of this software and associated documentation files (the "Software"), to deal
26
+ > in the Software without restriction, including without limitation the rights
27
+ > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
28
+ > copies of the Software, and to permit persons to whom the Software is
29
+ > furnished to do so, subject to the following conditions:
30
+ >
31
+ > The above copyright notice and this permission notice shall be included in all
32
+ > copies or substantial portions of the Software.
33
+ >
34
+ > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
35
+ > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
36
+ > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
37
+ > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
38
+ > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
39
+ > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
40
+ > SOFTWARE.
41
+
42
+
43
+ ## @nuxt/webpack-builder
44
+
45
+ License: MIT
46
+ Repository: https://github.com/nuxt/nuxt
package/dist/index.mjs CHANGED
@@ -3,13 +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
10
  import { MiniCssExtractPlugin, TsCheckerPlugin, WebpackBarPlugin, builder, webpack } from "#builder";
11
11
  import { existsSync, readFileSync } from "node:fs";
12
- import { pathToFileURL } from "node:url";
13
12
  import { isAbsolute, join, normalize, relative, resolve } from "pathe";
14
13
  import { genArrayFromRaw, genObjectFromRawEntries, genString } from "knitwork";
15
14
  import { compileStyle, parse } from "@vue/compiler-sfc";
@@ -33,7 +32,6 @@ import { normalizeWebpackManifest, precomputeDependencies } from "vue-bundle-ren
33
32
  import { hash } from "ohash";
34
33
  import { serialize } from "seroval";
35
34
  import { parseNodeModulePath } from "mlly";
36
-
37
35
  //#region ../webpack/src/plugins/dynamic-base.ts
38
36
  const defaults = {
39
37
  globalPublicPath: "__webpack_public_path__",
@@ -64,7 +62,6 @@ const DynamicBasePlugin = createUnplugin((options = {}) => {
64
62
  }
65
63
  };
66
64
  });
67
-
68
65
  //#endregion
69
66
  //#region ../webpack/src/plugins/chunk.ts
70
67
  const pluginName = "ChunkErrorPlugin";
@@ -98,22 +95,40 @@ if (typeof ${ensureChunk} !== "undefined") {
98
95
  `;
99
96
  }
100
97
  };
101
-
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
+ }
102
117
  //#endregion
103
118
  //#region ../webpack/src/plugins/ssr-styles.ts
104
119
  const CSS_URL_RE = /url\((['"]?)(\/[^)]+?)\1\)/g;
105
120
  const isVueFile = (id) => /\.vue(?:\?|$)/.test(id);
106
121
  const isCSSLike = (name) => /\.(?:css|scss|sass|less|styl(?:us)?|postcss|pcss)(?:\?|$)/.test(name);
107
- function normalizePath(nuxt$1, id) {
122
+ function normalizePath(nuxt, id) {
108
123
  if (!id) return null;
109
- const { pathname } = parseURL(decodeURIComponent(pathToFileURL(id).href));
110
- const rel = relative(nuxt$1.options.srcDir, pathname);
124
+ const { pathname } = parseModuleId(id);
125
+ const rel = relative(nuxt.options.srcDir, pathname);
111
126
  if (rel.startsWith("..")) return null;
112
127
  return rel;
113
128
  }
114
129
  function resolveFilePath(id) {
115
130
  if (!id) return null;
116
- return parseURL(decodeURIComponent(pathToFileURL(id).href)).pathname || null;
131
+ return parseModuleId(normalize(id)).pathname || null;
117
132
  }
118
133
  function sanitizeStyleAssetName(rel) {
119
134
  return rel.replace(/[\\/]/g, "_").replace(/\.{2,}/g, "_");
@@ -127,12 +142,12 @@ function extractVueStyles(filePath) {
127
142
  const styles = [];
128
143
  const scopeId = createHash("sha256").update(filePath).digest("hex").slice(0, 8);
129
144
  for (let i = 0; i < descriptor.styles.length; i++) {
130
- const style$1 = descriptor.styles[i];
145
+ const style = descriptor.styles[i];
131
146
  const result = compileStyle({
132
- source: style$1.content,
147
+ source: style.content,
133
148
  filename: filePath,
134
149
  id: `data-v-${scopeId}`,
135
- scoped: style$1.scoped
150
+ scoped: style.scoped
136
151
  });
137
152
  if (!result.errors.length && result.code) styles.push(normalizeCSSContent(result.code));
138
153
  }
@@ -146,10 +161,10 @@ var SSRStylesPlugin = class {
146
161
  clientCSSByIssuer = /* @__PURE__ */ new Map();
147
162
  chunksWithInlinedCSS = /* @__PURE__ */ new Set();
148
163
  globalCSSPaths = /* @__PURE__ */ new Set();
149
- constructor(nuxt$1) {
150
- this.nuxt = nuxt$1;
164
+ constructor(nuxt) {
165
+ this.nuxt = nuxt;
151
166
  this.globalCSSPaths = this.resolveGlobalCSS();
152
- nuxt$1.hook("build:manifest", (manifest) => {
167
+ nuxt.hook("build:manifest", (manifest) => {
153
168
  for (const [id, chunk] of Object.entries(manifest)) {
154
169
  if (chunk.isEntry && chunk.src) this.chunksWithInlinedCSS.add(chunk.src);
155
170
  else if (this.chunksWithInlinedCSS.has(id)) chunk.css &&= [];
@@ -175,9 +190,9 @@ var SSRStylesPlugin = class {
175
190
  isPublicAsset(url, nitro) {
176
191
  const cleaned = url.replace(/[?#].*$/, "");
177
192
  for (const dir of nitro.options.publicAssets) {
178
- const base$1 = withTrailingSlash(dir.baseURL || "/");
179
- if (!url.startsWith(base$1)) continue;
180
- 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;
181
196
  }
182
197
  return false;
183
198
  }
@@ -240,11 +255,6 @@ var SSRStylesPlugin = class {
240
255
  }
241
256
  return null;
242
257
  }
243
- normalizeResourcePath(resource) {
244
- if (!resource) return null;
245
- const withoutQuery = resource.split("?")[0];
246
- return resolveFilePath(withoutQuery);
247
- }
248
258
  apply(compiler) {
249
259
  if (this.nuxt.options.dev) return;
250
260
  const isClient = compiler.options.name === "client";
@@ -257,8 +267,8 @@ var SSRStylesPlugin = class {
257
267
  });
258
268
  }
259
269
  emitServerStyles(compilation) {
260
- const { webpack: webpack$1 } = compilation.compiler;
261
- const stage = webpack$1.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE;
270
+ const { webpack } = compilation.compiler;
271
+ const stage = webpack.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE;
262
272
  compilation.hooks.processAssets.tap({
263
273
  name: "SSRStylesPlugin",
264
274
  stage
@@ -288,10 +298,10 @@ var SSRStylesPlugin = class {
288
298
  if (vueStyles.length) collected.set(rel, new Set(vueStyles));
289
299
  }
290
300
  const emitted = {};
291
- const rawSource = webpack$1.sources.RawSource;
301
+ const rawSource = webpack.sources.RawSource;
292
302
  for (const [rel, cssSet] of collected.entries()) {
293
303
  if (!cssSet.size) continue;
294
- 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));
295
305
  const needsPublicAssets = transformed.some((t) => t.needsPublicAsset);
296
306
  const needsBuildAssets = transformed.some((t) => t.needsBuildAsset);
297
307
  const imports = [];
@@ -358,8 +368,8 @@ var SSRStylesPlugin = class {
358
368
  });
359
369
  }
360
370
  collectCSS(compilation) {
361
- const { webpack: webpack$1 } = compilation.compiler;
362
- 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;
363
373
  const chunkCSSMeta = /* @__PURE__ */ new Map();
364
374
  compilation.hooks.processAssets.tap({
365
375
  name: "SSRStylesPlugin",
@@ -418,7 +428,6 @@ var SSRStylesPlugin = class {
418
428
  return cssChunks;
419
429
  }
420
430
  };
421
-
422
431
  //#endregion
423
432
  //#region ../webpack/src/utils/mfs.ts
424
433
  function createMFS() {
@@ -428,24 +437,22 @@ function createMFS() {
428
437
  _fs.readFile = pify(_fs.readFile);
429
438
  return _fs;
430
439
  }
431
-
432
440
  //#endregion
433
441
  //#region ../webpack/src/utils/index.ts
434
442
  /** @since 3.9.0 */
435
443
  function toArray(value) {
436
444
  return Array.isArray(value) ? value : [value];
437
445
  }
438
-
439
446
  //#endregion
440
447
  //#region ../webpack/src/utils/config.ts
441
- function createWebpackConfigContext(nuxt$1) {
448
+ function createWebpackConfigContext(nuxt) {
442
449
  return {
443
- nuxt: nuxt$1,
444
- options: nuxt$1.options,
445
- userConfig: nuxt$1.options.webpack,
450
+ nuxt,
451
+ options: nuxt.options,
452
+ userConfig: nuxt.options.webpack,
446
453
  config: {},
447
454
  name: "base",
448
- isDev: nuxt$1.options.dev,
455
+ isDev: nuxt.options.dev,
449
456
  isServer: false,
450
457
  isClient: false,
451
458
  alias: {},
@@ -457,15 +464,14 @@ async function applyPresets(ctx, presets) {
457
464
  else await preset(ctx);
458
465
  }
459
466
  function fileName(ctx, key) {
460
- let fileName$1 = ctx.userConfig.filenames[key];
461
- if (typeof fileName$1 === "function") fileName$1 = fileName$1(ctx);
462
- if (typeof fileName$1 === "string" && ctx.options.dev) {
463
- const hash$1 = /\[(chunkhash|contenthash|hash)(?::\d+)?\]/.exec(fileName$1);
464
- 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`);
465
472
  }
466
- return fileName$1;
473
+ return fileName;
467
474
  }
468
-
469
475
  //#endregion
470
476
  //#region ../webpack/src/presets/assets.ts
471
477
  function assets(ctx) {
@@ -498,7 +504,6 @@ function assets(ctx) {
498
504
  }]
499
505
  });
500
506
  }
501
-
502
507
  //#endregion
503
508
  //#region ../webpack/src/plugins/warning-ignore.ts
504
509
  var WarningIgnorePlugin = class {
@@ -512,7 +517,6 @@ var WarningIgnorePlugin = class {
512
517
  });
513
518
  }
514
519
  };
515
-
516
520
  //#endregion
517
521
  //#region ../webpack/src/plugins/vue/util.ts
518
522
  /**
@@ -529,7 +533,6 @@ const extractQueryPartJS = (file) => isJSRegExp.exec(file)?.[1];
529
533
  const isCSSRegExp = /\.css(?:\?[^.]+)?$/;
530
534
  const isCSS = (file) => isCSSRegExp.test(file);
531
535
  const isHotUpdate = (file) => file.includes("hot-update");
532
-
533
536
  //#endregion
534
537
  //#region ../webpack/src/plugins/rollup-compat-dynamic-import.ts
535
538
  const DYNAMIC_IMPORT_RE = /import\([^)]*\+\s*__webpack_require__[^+]*\)\.then/;
@@ -547,18 +550,18 @@ var RollupCompatDynamicImportPlugin = class {
547
550
  compilation.hooks.processAssets.tapAsync({
548
551
  name: "RollupCompatDynamicImportPlugin",
549
552
  stage: compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_INLINE
550
- }, (assets$1, callback) => {
553
+ }, (assets, callback) => {
551
554
  try {
552
555
  const targetFiles = /* @__PURE__ */ new Set();
553
556
  for (const chunk of compilation.chunks) if (chunk.canBeInitial() || chunk.hasRuntime()) for (const file of chunk.files || []) targetFiles.add(file);
554
- for (const [filename, asset] of Object.entries(assets$1)) {
557
+ for (const [filename, asset] of Object.entries(assets)) {
555
558
  if (!isJS(filename)) continue;
556
559
  if (!targetFiles.has(filename)) continue;
557
560
  const source = asset.source();
558
561
  const originalCode = typeof source === "string" ? source : source.toString();
559
562
  if (!DYNAMIC_IMPORT_RE.test(originalCode)) continue;
560
563
  const transformedCode = this.transformDynamicImports(originalCode);
561
- if (transformedCode !== originalCode) assets$1[filename] = new compiler.webpack.sources.RawSource(transformedCode);
564
+ if (transformedCode !== originalCode) assets[filename] = new compiler.webpack.sources.RawSource(transformedCode);
562
565
  }
563
566
  this.generateDynamicImportHelper(compilation);
564
567
  callback();
@@ -608,7 +611,6 @@ export function _rollupDynamicImport(chunkId) {
608
611
  `;
609
612
  }
610
613
  };
611
-
612
614
  //#endregion
613
615
  //#region ../webpack/src/presets/base.ts
614
616
  async function base(ctx) {
@@ -781,7 +783,6 @@ const statsMap = {
781
783
  info: "normal",
782
784
  verbose: "verbose"
783
785
  };
784
-
785
786
  //#endregion
786
787
  //#region ../webpack/src/presets/esbuild.ts
787
788
  function esbuild(ctx) {
@@ -811,7 +812,6 @@ function esbuild(ctx) {
811
812
  }
812
813
  });
813
814
  }
814
-
815
815
  //#endregion
816
816
  //#region ../webpack/src/presets/pug.ts
817
817
  function pug(ctx) {
@@ -829,7 +829,6 @@ function pug(ctx) {
829
829
  }] }]
830
830
  });
831
831
  }
832
-
833
832
  //#endregion
834
833
  //#region ../webpack/src/utils/postcss.ts
835
834
  const isPureObject = (obj) => obj !== null && !Array.isArray(obj) && typeof obj === "object";
@@ -837,27 +836,27 @@ function sortPlugins({ plugins, order }) {
837
836
  const names = Object.keys(plugins);
838
837
  return typeof order === "function" ? order(names) : order || names;
839
838
  }
840
- async function getPostcssConfig(nuxt$1) {
841
- if (!nuxt$1.options.webpack.postcss || !nuxt$1.options.postcss) return false;
842
- const postcssOptions = defu({}, nuxt$1.options.postcss, {
839
+ async function getPostcssConfig(nuxt) {
840
+ if (!nuxt.options.webpack.postcss || !nuxt.options.postcss) return false;
841
+ const postcssOptions = defu({}, nuxt.options.postcss, {
843
842
  plugins: {
844
843
  "postcss-import": { resolve: createResolver({
845
- alias: { ...nuxt$1.options.alias },
846
- modules: nuxt$1.options.modulesDir
844
+ alias: { ...nuxt.options.alias },
845
+ modules: nuxt.options.modulesDir
847
846
  }) },
848
847
  "postcss-url": {}
849
848
  },
850
- sourceMap: nuxt$1.options.webpack.cssSourceMap
849
+ sourceMap: nuxt.options.webpack.cssSourceMap
851
850
  });
852
- const jiti = createJiti(nuxt$1.options.rootDir, { alias: nuxt$1.options.alias });
851
+ const jiti = createJiti(nuxt.options.rootDir, { alias: nuxt.options.alias });
853
852
  if (!Array.isArray(postcssOptions.plugins) && isPureObject(postcssOptions.plugins)) {
854
853
  const plugins = [];
855
- for (const pluginName$1 of sortPlugins(postcssOptions)) {
856
- const pluginOptions = postcssOptions.plugins[pluginName$1];
854
+ for (const pluginName of sortPlugins(postcssOptions)) {
855
+ const pluginOptions = postcssOptions.plugins[pluginName];
857
856
  if (!pluginOptions) continue;
858
857
  let pluginFn;
859
- for (const parentURL of nuxt$1.options.modulesDir) {
860
- pluginFn = await jiti.import(pluginName$1, {
858
+ for (const parentURL of nuxt.options.modulesDir) {
859
+ pluginFn = await jiti.import(pluginName, {
861
860
  parentURL: parentURL.replace(/\/node_modules\/?$/, ""),
862
861
  try: true,
863
862
  default: true
@@ -867,17 +866,16 @@ async function getPostcssConfig(nuxt$1) {
867
866
  break;
868
867
  }
869
868
  }
870
- if (typeof pluginFn !== "function") console.warn(`[nuxt] could not import postcss plugin \`${pluginName$1}\`. Please report this as a bug.`);
869
+ if (typeof pluginFn !== "function") console.warn(`[nuxt] could not import postcss plugin \`${pluginName}\`. Please report this as a bug.`);
871
870
  }
872
871
  postcssOptions.plugins = plugins;
873
872
  }
874
873
  return {
875
- sourceMap: nuxt$1.options.webpack.cssSourceMap,
876
- ...nuxt$1.options.webpack.postcss,
874
+ sourceMap: nuxt.options.webpack.cssSourceMap,
875
+ ...nuxt.options.webpack.postcss,
877
876
  postcssOptions
878
877
  };
879
878
  }
880
-
881
879
  //#endregion
882
880
  //#region ../webpack/src/presets/style.ts
883
881
  async function style(ctx) {
@@ -959,7 +957,6 @@ async function createPostcssLoadersRule(ctx) {
959
957
  options: config
960
958
  };
961
959
  }
962
-
963
960
  //#endregion
964
961
  //#region ../webpack/src/plugins/vue/client.ts
965
962
  /**
@@ -983,9 +980,9 @@ var VueSSRClientPlugin = class {
983
980
  const stats = compilation.getStats().toJson();
984
981
  const context = this.nuxt.options.srcDir;
985
982
  const initialFiles = /* @__PURE__ */ new Set();
986
- for (const { assets: assets$1 } of Object.values(stats.entrypoints)) {
987
- if (!assets$1) continue;
988
- for (const asset of assets$1) {
983
+ for (const { assets } of Object.values(stats.entrypoints)) {
984
+ if (!assets) continue;
985
+ for (const asset of assets) {
989
986
  const file = asset.name;
990
987
  if ((isJS(file) || isCSS(file)) && !isHotUpdate(file)) initialFiles.add(file);
991
988
  }
@@ -1031,11 +1028,11 @@ var VueSSRClientPlugin = class {
1031
1028
  const files = Array.from(filesSet);
1032
1029
  webpackManifest.modules[relativeId] = files;
1033
1030
  if (Array.isArray(m.modules)) for (const concatenatedModule of m.modules) {
1034
- const relativeId$1 = this.getRelativeModuleId(concatenatedModule.identifier, context);
1035
- webpackManifest.modules[relativeId$1] ||= files;
1031
+ const relativeId = this.getRelativeModuleId(concatenatedModule.identifier, context);
1032
+ webpackManifest.modules[relativeId] ||= files;
1036
1033
  }
1037
1034
  if (stats.modules) {
1038
- for (const m$1 of stats.modules) if (m$1.assets?.length && m$1.chunks?.includes(cid)) files.push(...m$1.assets.map(fileToIndex));
1035
+ for (const m of stats.modules) if (m.assets?.length && m.chunks?.includes(cid)) files.push(...m.assets.map(fileToIndex));
1039
1036
  }
1040
1037
  }
1041
1038
  const manifest = normalizeWebpackManifest(webpackManifest);
@@ -1048,7 +1045,6 @@ var VueSSRClientPlugin = class {
1048
1045
  });
1049
1046
  }
1050
1047
  };
1051
-
1052
1048
  //#endregion
1053
1049
  //#region ../webpack/src/plugins/vue/server.ts
1054
1050
  const JS_MAP_RE = /\.js\.map$/;
@@ -1063,7 +1059,7 @@ var VueSSRServerPlugin = class {
1063
1059
  compilation.hooks.processAssets.tapAsync({
1064
1060
  name: "VueSSRServerPlugin",
1065
1061
  stage: webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL
1066
- }, (assets$1, cb) => {
1062
+ }, (assets, cb) => {
1067
1063
  const stats = compilation.getStats().toJson();
1068
1064
  const [entryName] = Object.keys(stats.entrypoints);
1069
1065
  const entryInfo = stats.entrypoints[entryName];
@@ -1072,24 +1068,24 @@ var VueSSRServerPlugin = class {
1072
1068
  if (entryAssets.length > 1) throw new Error("Server-side bundle should have one single entry file. Avoid using CommonsChunkPlugin in the server config.");
1073
1069
  const [entry] = entryAssets;
1074
1070
  if (!entry || typeof entry.name !== "string") throw new Error(`Entry "${entryName}" not found. Did you specify the correct entry option?`);
1075
- const bundle$1 = {
1071
+ const bundle = {
1076
1072
  entry: entry.name,
1077
1073
  files: {},
1078
1074
  maps: {}
1079
1075
  };
1080
1076
  for (const asset of stats.assets) if (isJS(asset.name)) {
1081
1077
  const queryPart = extractQueryPartJS(asset.name);
1082
- if (queryPart !== void 0) bundle$1.files[asset.name] = asset.name.replace(queryPart, "");
1083
- else bundle$1.files[asset.name] = asset.name;
1084
- } else if (JS_MAP_RE.test(asset.name)) bundle$1.maps[asset.name.replace(/\.map$/, "")] = asset.name;
1085
- else delete assets$1[asset.name];
1086
- const src = JSON.stringify(bundle$1, null, 2);
1087
- assets$1[this.options.filename] = {
1078
+ if (queryPart !== void 0) bundle.files[asset.name] = asset.name.replace(queryPart, "");
1079
+ else bundle.files[asset.name] = asset.name;
1080
+ } else if (JS_MAP_RE.test(asset.name)) bundle.maps[asset.name.replace(/\.map$/, "")] = asset.name;
1081
+ else delete assets[asset.name];
1082
+ const src = JSON.stringify(bundle, null, 2);
1083
+ assets[this.options.filename] = {
1088
1084
  source: () => src,
1089
1085
  size: () => src.length
1090
1086
  };
1091
1087
  const mjsSrc = "export default " + src;
1092
- assets$1[this.options.filename.replace(".json", ".mjs")] = {
1088
+ assets[this.options.filename.replace(".json", ".mjs")] = {
1093
1089
  source: () => mjsSrc,
1094
1090
  map: () => null,
1095
1091
  size: () => mjsSrc.length
@@ -1099,7 +1095,6 @@ var VueSSRServerPlugin = class {
1099
1095
  });
1100
1096
  }
1101
1097
  };
1102
-
1103
1098
  //#endregion
1104
1099
  //#region ../webpack/src/presets/vue.ts
1105
1100
  function vue(ctx) {
@@ -1131,7 +1126,6 @@ function vue(ctx) {
1131
1126
  "__VUE_PROD_HYDRATION_MISMATCH_DETAILS__": ctx.nuxt.options.debug && ctx.nuxt.options.debug.hydration
1132
1127
  }));
1133
1128
  }
1134
-
1135
1129
  //#endregion
1136
1130
  //#region ../webpack/src/presets/nuxt.ts
1137
1131
  async function nuxt(ctx) {
@@ -1144,7 +1138,6 @@ async function nuxt(ctx) {
1144
1138
  vue
1145
1139
  ]);
1146
1140
  }
1147
-
1148
1141
  //#endregion
1149
1142
  //#region ../webpack/src/configs/client.ts
1150
1143
  async function client(ctx) {
@@ -1252,7 +1245,6 @@ function clientPlugins(ctx) {
1252
1245
  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 }));
1253
1246
  }
1254
1247
  }
1255
-
1256
1248
  //#endregion
1257
1249
  //#region ../webpack/src/presets/node.ts
1258
1250
  function node(ctx) {
@@ -1283,7 +1275,6 @@ function node(ctx) {
1283
1275
  maxAssetSize: Number.POSITIVE_INFINITY
1284
1276
  };
1285
1277
  }
1286
-
1287
1278
  //#endregion
1288
1279
  //#region ../webpack/src/configs/server.ts
1289
1280
  const assetPattern = /\.(?:css|s[ca]ss|png|jpe?g|gif|svg|woff2?|eot|ttf|otf|webp|webm|mp4|ogv)(?:\?.*)?$/i;
@@ -1375,117 +1366,116 @@ function serverPlugins(ctx) {
1375
1366
  }));
1376
1367
  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 }));
1377
1368
  }
1378
-
1379
1369
  //#endregion
1380
1370
  //#region ../webpack/src/webpack.ts
1381
- const bundle = async (nuxt$1) => {
1382
- const webpackConfigs = await Promise.all([client, ...nuxt$1.options.ssr ? [server] : []].map(async (preset) => {
1383
- const ctx = createWebpackConfigContext(nuxt$1);
1384
- ctx.userConfig = defu(nuxt$1.options.webpack[`$${preset.name}`], ctx.userConfig);
1371
+ const bundle = async (nuxt) => {
1372
+ const webpackConfigs = await Promise.all([client, ...nuxt.options.ssr ? [server] : []].map(async (preset) => {
1373
+ const ctx = createWebpackConfigContext(nuxt);
1374
+ ctx.userConfig = defu(nuxt.options.webpack[`$${preset.name}`], ctx.userConfig);
1385
1375
  await applyPresets(ctx, preset);
1386
1376
  return ctx.config;
1387
1377
  }));
1388
1378
  /** Remove Nitro rollup plugin for handling dynamic imports from webpack chunks */
1389
- if (!nuxt$1.options.dev) useNitro().hooks.hook("rollup:before", (_nitro, config) => {
1379
+ if (!nuxt.options.dev) useNitro().hooks.hook("rollup:before", (_nitro, config) => {
1390
1380
  const plugins = config.plugins;
1391
1381
  const existingPlugin = plugins.findIndex((i) => i && "name" in i && i.name === "dynamic-require");
1392
1382
  if (existingPlugin >= 0) plugins.splice(existingPlugin, 1);
1393
1383
  });
1394
- await nuxt$1.callHook(`${builder}:config`, webpackConfigs);
1395
- const mfs = nuxt$1.options.dev ? createMFS() : null;
1396
- const ssrStylesPlugin = nuxt$1.options.ssr && !nuxt$1.options.dev && nuxt$1.options.features.inlineStyles ? new SSRStylesPlugin(nuxt$1) : null;
1384
+ await nuxt.callHook(`${builder}:config`, webpackConfigs);
1385
+ const mfs = nuxt.options.dev ? createMFS() : null;
1386
+ const ssrStylesPlugin = nuxt.options.ssr && !nuxt.options.dev && nuxt.options.features.inlineStyles ? new SSRStylesPlugin(nuxt) : null;
1397
1387
  for (const config of webpackConfigs) {
1398
- config.plugins.push(DynamicBasePlugin.webpack({ sourcemap: !!nuxt$1.options.sourcemap[config.name] }));
1399
- if (config.name === "client" && nuxt$1.options.experimental.emitRouteChunkError && nuxt$1.options.builder !== "@nuxt/rspack-builder") config.plugins.push(new ChunkErrorPlugin());
1388
+ config.plugins.push(DynamicBasePlugin.webpack({ sourcemap: !!nuxt.options.sourcemap[config.name] }));
1389
+ if (config.name === "client" && nuxt.options.experimental.emitRouteChunkError && nuxt.options.builder !== "@nuxt/rspack-builder") config.plugins.push(new ChunkErrorPlugin());
1400
1390
  if (ssrStylesPlugin) config.plugins.push(ssrStylesPlugin);
1401
1391
  }
1402
- await nuxt$1.callHook(`${builder}:configResolved`, webpackConfigs);
1392
+ await nuxt.callHook(`${builder}:configResolved`, webpackConfigs);
1403
1393
  const compilers = webpackConfigs.map((config) => {
1404
1394
  const compiler = webpack(config);
1405
- if (nuxt$1.options.dev && compiler) compiler.outputFileSystem = mfs;
1395
+ if (nuxt.options.dev && compiler) compiler.outputFileSystem = mfs;
1406
1396
  return compiler;
1407
1397
  });
1408
- nuxt$1.hook("close", async () => {
1409
- for (const compiler of compilers) await new Promise((resolve$1) => compiler.close(resolve$1));
1398
+ nuxt.hook("close", async () => {
1399
+ for (const compiler of compilers) await new Promise((resolve) => compiler.close(resolve));
1410
1400
  });
1411
- if (nuxt$1.options.dev) {
1401
+ if (nuxt.options.dev) {
1412
1402
  await Promise.all(compilers.map((c) => compile(c)));
1413
1403
  return;
1414
1404
  }
1415
1405
  for (const c of compilers) await compile(c);
1416
1406
  };
1417
1407
  async function createDevMiddleware(compiler) {
1418
- const nuxt$1 = useNuxt();
1408
+ const nuxt = useNuxt();
1419
1409
  logger.debug("Creating webpack middleware...");
1420
1410
  const devMiddleware = webpackDevMiddleware(compiler, {
1421
- publicPath: joinURL(nuxt$1.options.app.baseURL, nuxt$1.options.app.buildAssetsDir),
1411
+ publicPath: joinURL(nuxt.options.app.baseURL, nuxt.options.app.buildAssetsDir),
1422
1412
  outputFileSystem: compiler.outputFileSystem,
1423
1413
  stats: "none",
1424
- ...nuxt$1.options.webpack.devMiddleware
1414
+ ...nuxt.options.webpack.devMiddleware
1425
1415
  });
1426
- nuxt$1.hook("close", () => pify(devMiddleware.close.bind(devMiddleware))());
1427
- const { client: _client, ...hotMiddlewareOptions } = nuxt$1.options.webpack.hotMiddleware || {};
1416
+ nuxt.hook("close", () => pify(devMiddleware.close.bind(devMiddleware))());
1417
+ const { client: _client, ...hotMiddlewareOptions } = nuxt.options.webpack.hotMiddleware || {};
1428
1418
  const hotMiddleware = webpackHotMiddleware(compiler, {
1429
1419
  log: false,
1430
1420
  heartbeat: 1e4,
1431
- path: joinURL(nuxt$1.options.app.baseURL, "__webpack_hmr", compiler.options.name),
1421
+ path: joinURL(nuxt.options.app.baseURL, "__webpack_hmr", compiler.options.name),
1432
1422
  ...hotMiddlewareOptions
1433
1423
  });
1434
1424
  const devHandler = wdmToH3Handler(devMiddleware);
1435
- await nuxt$1.callHook("server:devHandler", defineEventHandler(async (event) => {
1425
+ await nuxt.callHook("server:devHandler", defineEventHandler(async (event) => {
1436
1426
  const body = await devHandler(event);
1437
1427
  if (body !== void 0) return body;
1438
1428
  const { req, res } = "runtime" in event ? event.runtime.node : event.node;
1439
- await new Promise((resolve$1, reject) => hotMiddleware(req, res, (err) => err ? reject(err) : resolve$1()));
1429
+ await new Promise((resolve, reject) => hotMiddleware(req, res, (err) => err ? reject(err) : resolve()));
1440
1430
  }), { cors: () => true });
1441
1431
  return devMiddleware;
1442
1432
  }
1443
1433
  function wdmToH3Handler(devMiddleware) {
1444
1434
  return defineEventHandler(async (event) => {
1445
1435
  const { req, res } = "runtime" in event ? event.runtime.node : event.node;
1446
- if (req.headers["sec-fetch-mode"] === "no-cors" && req.headers["sec-fetch-site"] === "cross-site") throw { status: 403 };
1447
- event.context.webpack = {
1448
- ...event.context.webpack,
1449
- devMiddleware: devMiddleware.context
1450
- };
1451
- return await new Promise((resolve$1, reject) => {
1436
+ if (req.headers["sec-fetch-mode"] === "no-cors" && req.headers["sec-fetch-site"] === "cross-site") {
1437
+ res.statusCode = 403;
1438
+ res.end("Forbidden");
1439
+ return;
1440
+ }
1441
+ return await new Promise((resolve, reject) => {
1452
1442
  res.stream = (stream) => {
1453
- resolve$1(stream);
1443
+ resolve(stream);
1454
1444
  };
1455
1445
  res.send = (data) => {
1456
- resolve$1(data);
1446
+ resolve(data);
1457
1447
  };
1458
1448
  res.finish = (data) => {
1459
- resolve$1(data);
1449
+ resolve(data);
1460
1450
  };
1461
1451
  devMiddleware(req, res, (err) => {
1462
1452
  if (err) reject(err);
1463
- else resolve$1(void 0);
1453
+ else resolve(void 0);
1464
1454
  });
1465
1455
  });
1466
1456
  });
1467
1457
  }
1468
1458
  async function compile(compiler) {
1469
- const nuxt$1 = useNuxt();
1470
- await nuxt$1.callHook(`${builder}:compile`, {
1459
+ const nuxt = useNuxt();
1460
+ await nuxt.callHook(`${builder}:compile`, {
1471
1461
  name: compiler.options.name,
1472
1462
  compiler
1473
1463
  });
1474
- compiler.hooks.done.tap("load-resources", async (stats$1) => {
1475
- await nuxt$1.callHook(`${builder}:compiled`, {
1464
+ compiler.hooks.done.tap("load-resources", async (stats) => {
1465
+ await nuxt.callHook(`${builder}:compiled`, {
1476
1466
  name: compiler.options.name,
1477
1467
  compiler,
1478
- stats: stats$1
1468
+ stats
1479
1469
  });
1480
1470
  });
1481
- if (nuxt$1.options.dev) {
1471
+ if (nuxt.options.dev) {
1482
1472
  const compilersWatching = [];
1483
- nuxt$1.hook("close", async () => {
1473
+ nuxt.hook("close", async () => {
1484
1474
  await Promise.all(compilersWatching.map((watching) => watching && pify(watching.close.bind(watching))()));
1485
1475
  });
1486
- if (compiler.options.name === "client") return new Promise((resolve$1, reject) => {
1476
+ if (compiler.options.name === "client") return new Promise((resolve, reject) => {
1487
1477
  compiler.hooks.done.tap("nuxt-dev", () => {
1488
- resolve$1(null);
1478
+ resolve(null);
1489
1479
  });
1490
1480
  compiler.hooks.failed.tap("nuxt-errorlog", (err) => {
1491
1481
  reject(err);
@@ -1494,15 +1484,15 @@ async function compile(compiler) {
1494
1484
  if (devMiddleware.context.watching) compilersWatching.push(devMiddleware.context.watching);
1495
1485
  });
1496
1486
  });
1497
- return new Promise((resolve$1, reject) => {
1498
- const watching = compiler.watch(nuxt$1.options.watchers.webpack, (err) => {
1487
+ return new Promise((resolve, reject) => {
1488
+ const watching = compiler.watch(nuxt.options.watchers.webpack, (err) => {
1499
1489
  if (err) return reject(err);
1500
- resolve$1(null);
1490
+ resolve(null);
1501
1491
  });
1502
1492
  compilersWatching.push(watching);
1503
1493
  });
1504
1494
  }
1505
- const stats = await new Promise((resolve$1, reject) => compiler.run((err, stats$1) => err ? reject(err) : resolve$1(stats$1)));
1495
+ const stats = await new Promise((resolve, reject) => compiler.run((err, stats) => err ? reject(err) : resolve(stats)));
1506
1496
  if (stats.hasErrors()) {
1507
1497
  const error = /* @__PURE__ */ new Error("Nuxt build error");
1508
1498
  error.stack = stats.toString("errors-only");
@@ -1512,6 +1502,5 @@ async function compile(compiler) {
1512
1502
  function defineEventHandler(handler) {
1513
1503
  return Object.assign(handler, { __is_handler__: true });
1514
1504
  }
1515
-
1516
1505
  //#endregion
1517
- export { bundle };
1506
+ export { bundle };
@@ -1,5 +1,4 @@
1
1
  import { normalize, relative } from "pathe";
2
-
3
2
  //#region ../webpack/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/rspack-builder",
3
- "version": "3.21.0",
3
+ "version": "3.21.2",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/nuxt/nuxt.git",
@@ -25,12 +25,12 @@
25
25
  ],
26
26
  "dependencies": {
27
27
  "@nuxt/friendly-errors-webpack-plugin": "^2.6.0",
28
- "@rspack/core": "^1.7.2",
29
- "@vue/compiler-sfc": "3.5.26",
30
- "autoprefixer": "^10.4.23",
31
- "css-loader": "^7.1.2",
32
- "css-minimizer-webpack-plugin": "^7.0.4",
33
- "cssnano": "^7.1.2",
28
+ "@rspack/core": "^1.7.8",
29
+ "@vue/compiler-sfc": "3.5.30",
30
+ "autoprefixer": "^10.4.27",
31
+ "css-loader": "^7.1.4",
32
+ "css-minimizer-webpack-plugin": "^8.0.0",
33
+ "cssnano": "^7.1.3",
34
34
  "defu": "^6.1.4",
35
35
  "esbuild-loader": "^4.4.2",
36
36
  "escape-string-regexp": "^5.0.0",
@@ -39,50 +39,50 @@
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
- "mlly": "^1.8.0",
42
+ "memfs": "^4.56.11",
43
+ "mlly": "^1.8.1",
44
44
  "ohash": "^2.0.11",
45
45
  "pathe": "^2.0.3",
46
46
  "pify": "^6.1.0",
47
- "postcss": "^8.5.6",
47
+ "postcss": "^8.5.8",
48
48
  "postcss-import": "^16.1.1",
49
49
  "postcss-import-resolver": "^2.0.0",
50
- "postcss-loader": "^8.2.0",
50
+ "postcss-loader": "^8.2.1",
51
51
  "postcss-url": "^10.1.3",
52
52
  "pug-plain-loader": "^1.1.0",
53
- "seroval": "^1.4.2",
54
- "std-env": "^3.10.0",
53
+ "seroval": "^1.5.1",
54
+ "std-env": "^4.0.0",
55
55
  "time-fix-plugin": "^2.0.7",
56
- "ts-checker-rspack-plugin": "^1.2.4",
56
+ "ts-checker-rspack-plugin": "^1.3.0",
57
57
  "ufo": "^1.6.3",
58
58
  "unenv": "^2.0.0-rc.24",
59
- "unplugin": "^2.3.11",
59
+ "unplugin": "^3.0.0",
60
60
  "url-loader": "^4.1.1",
61
61
  "vue-bundle-renderer": "^2.2.0",
62
62
  "vue-loader": "^17.4.2",
63
- "webpack-bundle-analyzer": "^5.1.1",
63
+ "webpack-bundle-analyzer": "^5.2.0",
64
64
  "webpack-dev-middleware": "^7.4.5",
65
65
  "webpack-hot-middleware": "^2.26.1",
66
66
  "webpackbar": "^7.0.0",
67
- "@nuxt/kit": "3.21.0"
67
+ "@nuxt/kit": "3.21.2"
68
68
  },
69
69
  "devDependencies": {
70
70
  "@types/pify": "6.1.0",
71
71
  "@types/webpack-bundle-analyzer": "4.7.0",
72
72
  "@types/webpack-hot-middleware": "2.25.12",
73
- "h3": "1.15.4",
74
- "h3-next": "npm:h3@2.0.1-rc.7",
75
- "obuild": "0.4.14",
76
- "rollup": "4.55.2",
77
- "vue": "3.5.27",
78
- "@nuxt/schema": "3.21.0"
73
+ "h3": "1.15.6",
74
+ "h3-next": "npm:h3@2.0.1-rc.16",
75
+ "obuild": "0.4.32",
76
+ "rollup": "4.59.0",
77
+ "vue": "3.5.30",
78
+ "@nuxt/schema": "3.21.2"
79
79
  },
80
80
  "peerDependencies": {
81
81
  "vue": "^3.3.4",
82
- "nuxt": "3.21.0"
82
+ "nuxt": "3.21.2"
83
83
  },
84
84
  "engines": {
85
- "node": "^20.9.0 || >=22.0.0"
85
+ "node": "^20.19.0 || >=22.12.0"
86
86
  },
87
87
  "scripts": {
88
88
  "build:stub": "obuild --stub",