@nuxt/nitro-server 3.20.2 → 4.2.1
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 +8 -8
- package/dist/index.d.mts +38 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.mjs +76 -43
- package/dist/runtime/handlers/error.d.ts +1 -1
- package/dist/runtime/handlers/error.js +2 -3
- package/dist/runtime/handlers/island.d.ts +1 -1
- package/dist/runtime/handlers/island.js +1 -3
- package/dist/runtime/handlers/renderer.d.ts +1 -1
- package/dist/runtime/handlers/renderer.js +1 -1
- package/dist/runtime/plugins/dev-server-logs.d.ts +1 -1
- package/dist/runtime/plugins/dev-server-logs.js +1 -1
- package/dist/runtime/templates/error-500.d.ts +1 -1
- package/dist/runtime/templates/error-500.js +2 -2
- package/dist/runtime/utils/app-config.d.ts +2 -0
- package/dist/runtime/utils/app-config.js +25 -0
- package/dist/runtime/utils/cache.d.ts +3 -3
- package/dist/runtime/utils/cache.js +1 -1
- package/dist/runtime/utils/paths.js +1 -1
- package/dist/runtime/utils/renderer/app.js +1 -1
- package/dist/runtime/utils/renderer/build-files.js +1 -1
- package/dist/runtime/utils/renderer/payload.d.ts +2 -2
- package/package.json +10 -10
package/README.md
CHANGED
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
Nuxt is a free and open-source framework with an intuitive and extendable way to create type-safe, performant and production-grade full-stack web applications and websites with Vue.js.
|
|
15
15
|
|
|
16
16
|
It provides a number of features that make it easy to build fast, SEO-friendly, and scalable web applications, including:
|
|
17
|
-
- Server-side rendering,
|
|
17
|
+
- Server-side rendering, Static Site Generation, Hybrid Rendering and Edge-Side Rendering
|
|
18
18
|
- Automatic routing with code-splitting and pre-fetching
|
|
19
19
|
- Data fetching and state management
|
|
20
|
-
-
|
|
20
|
+
- SEO Optimization and Meta tags definition
|
|
21
21
|
- Auto imports of components, composables and utils
|
|
22
22
|
- TypeScript with zero configuration
|
|
23
|
-
- Go
|
|
23
|
+
- Go fullstack with our server/ directory
|
|
24
24
|
- Extensible with [200+ modules](https://nuxt.com/modules)
|
|
25
25
|
- Deployment to a variety of [hosting platforms](https://nuxt.com/deploy)
|
|
26
26
|
- ...[and much more](https://nuxt.com) 🚀
|
|
@@ -31,7 +31,7 @@ It provides a number of features that make it easy to build fast, SEO-friendly,
|
|
|
31
31
|
- 💻 [ Vue Development](#vue-development)
|
|
32
32
|
- 📖 [Documentation](#documentation)
|
|
33
33
|
- 🧩 [Modules](#modules)
|
|
34
|
-
- ❤️
|
|
34
|
+
- ❤️ [Contribute](#contribute)
|
|
35
35
|
- 🏠 [Local Development](#local-development)
|
|
36
36
|
- 🛟 [Professional Support](#professional-support)
|
|
37
37
|
- 🔗 [Follow Us](#follow-us)
|
|
@@ -93,13 +93,13 @@ Discover our [list of modules](https://nuxt.com/modules) to supercharge your Nux
|
|
|
93
93
|
We invite you to contribute and help improve Nuxt 💚
|
|
94
94
|
|
|
95
95
|
Here are a few ways you can get involved:
|
|
96
|
-
- **Reporting Bugs:** If you come across any bugs or issues, please check out the [reporting bugs guide](https://nuxt.com/docs/community/reporting-bugs) to learn how to submit a bug report.
|
|
97
|
-
- **Suggestions:** Have ideas to enhance Nuxt? We'd love to hear them! Check out the [contribution guide](https://nuxt.com/docs/community/contribution) to share your suggestions.
|
|
98
|
-
- **Questions:** If you have questions or need assistance, the [getting help guide](https://nuxt.com/docs/community/getting-help) provides resources to help you out.
|
|
96
|
+
- **Reporting Bugs:** If you come across any bugs or issues, please check out the [reporting bugs guide](https://nuxt.com/docs/4.x/community/reporting-bugs) to learn how to submit a bug report.
|
|
97
|
+
- **Suggestions:** Have ideas to enhance Nuxt? We'd love to hear them! Check out the [contribution guide](https://nuxt.com/docs/4.x/community/contribution) to share your suggestions.
|
|
98
|
+
- **Questions:** If you have questions or need assistance, the [getting help guide](https://nuxt.com/docs/4.x/community/getting-help) provides resources to help you out.
|
|
99
99
|
|
|
100
100
|
## <a name="local-development">🏠 Local Development</a>
|
|
101
101
|
|
|
102
|
-
Follow the docs to [Set Up Your Local Development Environment](https://nuxt.com/docs/community/framework-contribution#setup) to contribute to the framework and documentation.
|
|
102
|
+
Follow the docs to [Set Up Your Local Development Environment](https://nuxt.com/docs/4.x/community/framework-contribution#setup) to contribute to the framework and documentation.
|
|
103
103
|
|
|
104
104
|
## <a name="professional-support">🛟 Professional Support</a>
|
|
105
105
|
|
package/dist/index.d.mts
CHANGED
|
@@ -10,6 +10,15 @@ declare module 'nitropack' {
|
|
|
10
10
|
buildAssetsDir: string;
|
|
11
11
|
cdnURL: string;
|
|
12
12
|
}
|
|
13
|
+
interface NitroRouteRules {
|
|
14
|
+
ssr?: boolean;
|
|
15
|
+
noScripts?: boolean;
|
|
16
|
+
/** @deprecated Use `noScripts` instead */
|
|
17
|
+
experimentalNoScripts?: boolean;
|
|
18
|
+
appMiddleware?: Record<string, boolean>;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
declare module 'nitropack' {
|
|
13
22
|
interface NitroRuntimeConfig extends RuntimeConfig {
|
|
14
23
|
}
|
|
15
24
|
interface NitroRouteConfig {
|
|
@@ -18,6 +27,25 @@ declare module 'nitropack' {
|
|
|
18
27
|
/** @deprecated Use `noScripts` instead */
|
|
19
28
|
experimentalNoScripts?: boolean;
|
|
20
29
|
}
|
|
30
|
+
interface NitroRuntimeHooks {
|
|
31
|
+
'dev:ssr-logs': (ctx: {
|
|
32
|
+
logs: LogObject[];
|
|
33
|
+
path: string;
|
|
34
|
+
}) => void | Promise<void>;
|
|
35
|
+
'render:html': (htmlContext: NuxtRenderHTMLContext, context: {
|
|
36
|
+
event: H3Event;
|
|
37
|
+
}) => void | Promise<void>;
|
|
38
|
+
'render:island': (islandResponse: NuxtIslandResponse, context: {
|
|
39
|
+
event: H3Event;
|
|
40
|
+
islandContext: NuxtIslandContext;
|
|
41
|
+
}) => void | Promise<void>;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
declare module 'nitropack/types' {
|
|
45
|
+
interface NitroRuntimeConfigApp {
|
|
46
|
+
buildAssetsDir: string;
|
|
47
|
+
cdnURL: string;
|
|
48
|
+
}
|
|
21
49
|
interface NitroRouteRules {
|
|
22
50
|
ssr?: boolean;
|
|
23
51
|
noScripts?: boolean;
|
|
@@ -25,6 +53,16 @@ declare module 'nitropack' {
|
|
|
25
53
|
experimentalNoScripts?: boolean;
|
|
26
54
|
appMiddleware?: Record<string, boolean>;
|
|
27
55
|
}
|
|
56
|
+
}
|
|
57
|
+
declare module 'nitropack/types' {
|
|
58
|
+
interface NitroRuntimeConfig extends RuntimeConfig {
|
|
59
|
+
}
|
|
60
|
+
interface NitroRouteConfig {
|
|
61
|
+
ssr?: boolean;
|
|
62
|
+
noScripts?: boolean;
|
|
63
|
+
/** @deprecated Use `noScripts` instead */
|
|
64
|
+
experimentalNoScripts?: boolean;
|
|
65
|
+
}
|
|
28
66
|
interface NitroRuntimeHooks {
|
|
29
67
|
'dev:ssr-logs': (ctx: {
|
|
30
68
|
logs: LogObject[];
|
package/dist/index.d.ts
CHANGED
|
@@ -10,6 +10,15 @@ declare module 'nitropack' {
|
|
|
10
10
|
buildAssetsDir: string;
|
|
11
11
|
cdnURL: string;
|
|
12
12
|
}
|
|
13
|
+
interface NitroRouteRules {
|
|
14
|
+
ssr?: boolean;
|
|
15
|
+
noScripts?: boolean;
|
|
16
|
+
/** @deprecated Use `noScripts` instead */
|
|
17
|
+
experimentalNoScripts?: boolean;
|
|
18
|
+
appMiddleware?: Record<string, boolean>;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
declare module 'nitropack' {
|
|
13
22
|
interface NitroRuntimeConfig extends RuntimeConfig {
|
|
14
23
|
}
|
|
15
24
|
interface NitroRouteConfig {
|
|
@@ -18,6 +27,25 @@ declare module 'nitropack' {
|
|
|
18
27
|
/** @deprecated Use `noScripts` instead */
|
|
19
28
|
experimentalNoScripts?: boolean;
|
|
20
29
|
}
|
|
30
|
+
interface NitroRuntimeHooks {
|
|
31
|
+
'dev:ssr-logs': (ctx: {
|
|
32
|
+
logs: LogObject[];
|
|
33
|
+
path: string;
|
|
34
|
+
}) => void | Promise<void>;
|
|
35
|
+
'render:html': (htmlContext: NuxtRenderHTMLContext, context: {
|
|
36
|
+
event: H3Event;
|
|
37
|
+
}) => void | Promise<void>;
|
|
38
|
+
'render:island': (islandResponse: NuxtIslandResponse, context: {
|
|
39
|
+
event: H3Event;
|
|
40
|
+
islandContext: NuxtIslandContext;
|
|
41
|
+
}) => void | Promise<void>;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
declare module 'nitropack/types' {
|
|
45
|
+
interface NitroRuntimeConfigApp {
|
|
46
|
+
buildAssetsDir: string;
|
|
47
|
+
cdnURL: string;
|
|
48
|
+
}
|
|
21
49
|
interface NitroRouteRules {
|
|
22
50
|
ssr?: boolean;
|
|
23
51
|
noScripts?: boolean;
|
|
@@ -25,6 +53,16 @@ declare module 'nitropack' {
|
|
|
25
53
|
experimentalNoScripts?: boolean;
|
|
26
54
|
appMiddleware?: Record<string, boolean>;
|
|
27
55
|
}
|
|
56
|
+
}
|
|
57
|
+
declare module 'nitropack/types' {
|
|
58
|
+
interface NitroRuntimeConfig extends RuntimeConfig {
|
|
59
|
+
}
|
|
60
|
+
interface NitroRouteConfig {
|
|
61
|
+
ssr?: boolean;
|
|
62
|
+
noScripts?: boolean;
|
|
63
|
+
/** @deprecated Use `noScripts` instead */
|
|
64
|
+
experimentalNoScripts?: boolean;
|
|
65
|
+
}
|
|
28
66
|
interface NitroRuntimeHooks {
|
|
29
67
|
'dev:ssr-logs': (ctx: {
|
|
30
68
|
logs: LogObject[];
|
package/dist/index.mjs
CHANGED
|
@@ -17,7 +17,7 @@ import { isWindows } from 'std-env';
|
|
|
17
17
|
import { ImpoundPlugin } from 'impound';
|
|
18
18
|
import { resolveModulePath } from 'exsolve';
|
|
19
19
|
|
|
20
|
-
const version = "
|
|
20
|
+
const version = "4.2.1";
|
|
21
21
|
|
|
22
22
|
function toArray(value) {
|
|
23
23
|
return Array.isArray(value) ? value : [value];
|
|
@@ -29,7 +29,7 @@ if (/(?:chunks|shared)$/.test(_distDir)) {
|
|
|
29
29
|
const distDir = _distDir;
|
|
30
30
|
|
|
31
31
|
const template = () => {
|
|
32
|
-
return '<svg xmlns="http://www.w3.org/2000/svg" width="80" fill="none" class="nuxt-spa-loading" viewBox="0 0 37 25"><path d="M24.236 22.006h10.742L25.563 5.822l-8.979 14.31a4 4 0 0 1-3.388 1.874H2.978l11.631-20 5.897 10.567"/></svg><style>.nuxt-spa-loading{left:50%;position:fixed;top:50%;transform:translate(-50%,-50%)}.nuxt-spa-loading>path{fill:none;stroke:#00dc82;stroke-
|
|
32
|
+
return '<svg xmlns="http://www.w3.org/2000/svg" width="80" fill="none" class="nuxt-spa-loading" viewBox="0 0 37 25"><path d="M24.236 22.006h10.742L25.563 5.822l-8.979 14.31a4 4 0 0 1-3.388 1.874H2.978l11.631-20 5.897 10.567"/></svg><style>.nuxt-spa-loading{left:50%;position:fixed;top:50%;transform:translate(-50%,-50%)}.nuxt-spa-loading>path{animation:nuxt-spa-loading-move 3s linear infinite;fill:none;stroke:#00dc82;stroke-dasharray:128;stroke-dashoffset:128;stroke-linecap:round;stroke-linejoin:round;stroke-width:4px}@keyframes nuxt-spa-loading-move{to{stroke-dashoffset:-128}}</style>';
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
function createImportProtectionPatterns(nuxt, options) {
|
|
@@ -44,13 +44,11 @@ function createImportProtectionPatterns(nuxt, options) {
|
|
|
44
44
|
"Importing directly from a `nuxt.config` file is not allowed. Instead, use runtime config or a module."
|
|
45
45
|
]);
|
|
46
46
|
patterns.push([/(^|node_modules\/)@vue\/composition-api/]);
|
|
47
|
-
for (const mod of nuxt.options.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
]);
|
|
53
|
-
}
|
|
47
|
+
for (const mod of nuxt.options.modules.filter((m) => typeof m === "string")) {
|
|
48
|
+
patterns.push([
|
|
49
|
+
new RegExp(`^${escapeRE(mod)}$`),
|
|
50
|
+
"Importing directly from module entry-points is not allowed."
|
|
51
|
+
]);
|
|
54
52
|
}
|
|
55
53
|
for (const i of [/(^|node_modules\/)@nuxt\/(cli|kit|test-utils)/, /(^|node_modules\/)nuxi/, /(^|node_modules\/)nitro(?:pack)?(?:-nightly)?(?:$|\/)(?!(?:dist\/)?(?:node_modules|presets|runtime|types))/, /(^|node_modules\/)nuxt\/(config|kit|schema)/]) {
|
|
56
54
|
patterns.push([i, `This module cannot be imported in ${context}.`]);
|
|
@@ -94,7 +92,6 @@ const nitroSchemaTemplate = {
|
|
|
94
92
|
/* typescript */
|
|
95
93
|
`
|
|
96
94
|
${lines.join("\n")}
|
|
97
|
-
/// <reference path="./schema.d.ts" />
|
|
98
95
|
|
|
99
96
|
import type { RuntimeConfig } from 'nuxt/schema'
|
|
100
97
|
import type { H3Event } from 'h3'
|
|
@@ -126,6 +123,31 @@ declare module 'nitropack' {
|
|
|
126
123
|
'render:island': (islandResponse: NuxtIslandResponse, context: { event: H3Event, islandContext: NuxtIslandContext }) => void | Promise<void>
|
|
127
124
|
}
|
|
128
125
|
}
|
|
126
|
+
declare module 'nitropack/types' {
|
|
127
|
+
interface NitroRuntimeConfigApp {
|
|
128
|
+
buildAssetsDir: string
|
|
129
|
+
cdnURL: string
|
|
130
|
+
}
|
|
131
|
+
interface NitroRuntimeConfig extends RuntimeConfig {}
|
|
132
|
+
interface NitroRouteConfig {
|
|
133
|
+
ssr?: boolean
|
|
134
|
+
noScripts?: boolean
|
|
135
|
+
/** @deprecated Use \`noScripts\` instead */
|
|
136
|
+
experimentalNoScripts?: boolean
|
|
137
|
+
}
|
|
138
|
+
interface NitroRouteRules {
|
|
139
|
+
ssr?: boolean
|
|
140
|
+
noScripts?: boolean
|
|
141
|
+
/** @deprecated Use \`noScripts\` instead */
|
|
142
|
+
experimentalNoScripts?: boolean
|
|
143
|
+
appMiddleware?: Record<string, boolean>
|
|
144
|
+
}
|
|
145
|
+
interface NitroRuntimeHooks {
|
|
146
|
+
'dev:ssr-logs': (ctx: { logs: LogObject[], path: string }) => void | Promise<void>
|
|
147
|
+
'render:html': (htmlContext: NuxtRenderHTMLContext, context: { event: H3Event }) => void | Promise<void>
|
|
148
|
+
'render:island': (islandResponse: NuxtIslandResponse, context: { event: H3Event, islandContext: NuxtIslandContext }) => void | Promise<void>
|
|
149
|
+
}
|
|
150
|
+
}
|
|
129
151
|
`
|
|
130
152
|
);
|
|
131
153
|
}
|
|
@@ -180,8 +202,7 @@ async function bundle(nuxt) {
|
|
|
180
202
|
const modules = await resolveNuxtModule(rootDirWithSlash, moduleEntryPaths);
|
|
181
203
|
addTemplate(nitroSchemaTemplate);
|
|
182
204
|
const sharedDirs = /* @__PURE__ */ new Set();
|
|
183
|
-
|
|
184
|
-
if (isNuxtV4 && (nuxt.options.nitro.imports !== false && nuxt.options.imports.scan !== false)) {
|
|
205
|
+
if (nuxt.options.nitro.imports !== false && nuxt.options.imports.scan !== false) {
|
|
185
206
|
for (const layer of nuxt.options._layers) {
|
|
186
207
|
if (layer.config?.imports?.scan === false) {
|
|
187
208
|
continue;
|
|
@@ -272,13 +293,13 @@ async function bundle(nuxt) {
|
|
|
272
293
|
} : false,
|
|
273
294
|
scanDirs: layerDirs.map((dirs) => dirs.server),
|
|
274
295
|
renderer: resolve(distDir, "runtime/handlers/renderer"),
|
|
275
|
-
errorHandler: resolve(distDir, "runtime/handlers/error"),
|
|
276
296
|
nodeModulesDirs: nuxt.options.modulesDir,
|
|
277
297
|
handlers: nuxt.options.serverHandlers,
|
|
278
298
|
devHandlers: [],
|
|
279
299
|
baseURL: nuxt.options.app.baseURL,
|
|
280
300
|
virtual: {
|
|
281
|
-
"#internal/nuxt.config.mjs": () => nuxt.vfs["#build/nuxt.config.mjs"],
|
|
301
|
+
"#internal/nuxt.config.mjs": () => nuxt.vfs["#build/nuxt.config.mjs"] || "",
|
|
302
|
+
"#internal/nuxt/app-config": () => nuxt.vfs["#build/app.config.mjs"]?.replace(/\/\*\* client \*\*\/[\s\S]*\/\*\* client-end \*\*\//, "") || "",
|
|
282
303
|
"#spa-template": async () => `export const template = ${JSON.stringify(await spaLoadingTemplate(nuxt))}`,
|
|
283
304
|
// this will be overridden in vite plugin
|
|
284
305
|
"#internal/entry-chunk.mjs": () => `export const entryFileName = undefined`,
|
|
@@ -295,7 +316,8 @@ async function bundle(nuxt) {
|
|
|
295
316
|
tsconfigPath: "tsconfig.server.json",
|
|
296
317
|
tsConfig: {
|
|
297
318
|
compilerOptions: {
|
|
298
|
-
lib: ["esnext", "webworker", "dom.iterable"]
|
|
319
|
+
lib: ["esnext", "webworker", "dom.iterable"],
|
|
320
|
+
skipLibCheck: true
|
|
299
321
|
},
|
|
300
322
|
include: [
|
|
301
323
|
join(nuxt.options.buildDir, "types/nitro-nuxt.d.ts"),
|
|
@@ -306,12 +328,10 @@ async function bundle(nuxt) {
|
|
|
306
328
|
join(moduleDir, "dist/runtime/server")
|
|
307
329
|
];
|
|
308
330
|
}),
|
|
309
|
-
...layerDirs.map((dirs) => relativeWithDot(nuxt.options.buildDir, join(dirs.server, "**/*"))),
|
|
310
331
|
...layerDirs.map((dirs) => relativeWithDot(nuxt.options.buildDir, join(dirs.shared, "**/*.d.ts")))
|
|
311
332
|
],
|
|
312
333
|
exclude: [
|
|
313
334
|
...nuxt.options.modulesDir.map((m) => relativeWithDot(nuxt.options.buildDir, m)),
|
|
314
|
-
// nitro generate output: https://github.com/nuxt/nuxt/blob/main/packages/nuxt/src/core/nitro.ts#L186
|
|
315
335
|
relativeWithDot(nuxt.options.buildDir, resolve(nuxt.options.rootDir, "dist"))
|
|
316
336
|
]
|
|
317
337
|
}
|
|
@@ -375,16 +395,16 @@ async function bundle(nuxt) {
|
|
|
375
395
|
"#internal/nuxt/paths": resolve(distDir, "runtime/utils/paths")
|
|
376
396
|
},
|
|
377
397
|
replace: {
|
|
378
|
-
"process.env.NUXT_NO_SSR": nuxt.options.ssr === false,
|
|
379
|
-
"process.env.NUXT_EARLY_HINTS": nuxt.options.experimental.writeEarlyHints !== false,
|
|
398
|
+
"process.env.NUXT_NO_SSR": String(nuxt.options.ssr === false),
|
|
399
|
+
"process.env.NUXT_EARLY_HINTS": String(nuxt.options.experimental.writeEarlyHints !== false),
|
|
380
400
|
"process.env.NUXT_NO_SCRIPTS": String(nuxt.options.features.noScripts === "all" || !!nuxt.options.features.noScripts && !nuxt.options.dev),
|
|
381
|
-
"process.env.NUXT_INLINE_STYLES": !!nuxt.options.features.inlineStyles,
|
|
401
|
+
"process.env.NUXT_INLINE_STYLES": String(!!nuxt.options.features.inlineStyles),
|
|
382
402
|
"process.env.PARSE_ERROR_DATA": String(!!nuxt.options.experimental.parseErrorData),
|
|
383
|
-
"process.env.NUXT_JSON_PAYLOADS": !!nuxt.options.experimental.renderJsonPayloads,
|
|
384
|
-
"process.env.NUXT_ASYNC_CONTEXT": !!nuxt.options.experimental.asyncContext,
|
|
385
|
-
"process.env.NUXT_SHARED_DATA": !!nuxt.options.experimental.sharedPrerenderData,
|
|
386
|
-
"process.dev": nuxt.options.dev,
|
|
387
|
-
"__VUE_PROD_DEVTOOLS__": false
|
|
403
|
+
"process.env.NUXT_JSON_PAYLOADS": String(!!nuxt.options.experimental.renderJsonPayloads),
|
|
404
|
+
"process.env.NUXT_ASYNC_CONTEXT": String(!!nuxt.options.experimental.asyncContext),
|
|
405
|
+
"process.env.NUXT_SHARED_DATA": String(!!nuxt.options.experimental.sharedPrerenderData),
|
|
406
|
+
"process.dev": String(nuxt.options.dev),
|
|
407
|
+
"__VUE_PROD_DEVTOOLS__": String(false)
|
|
388
408
|
},
|
|
389
409
|
rollupConfig: {
|
|
390
410
|
output: {
|
|
@@ -397,6 +417,17 @@ async function bundle(nuxt) {
|
|
|
397
417
|
},
|
|
398
418
|
logLevel: logLevelMapReverse[nuxt.options.logLevel]
|
|
399
419
|
});
|
|
420
|
+
if (nuxt.options.experimental.serverAppConfig && nitroConfig.imports) {
|
|
421
|
+
nitroConfig.imports.imports ||= [];
|
|
422
|
+
nitroConfig.imports.imports.push({
|
|
423
|
+
name: "useAppConfig",
|
|
424
|
+
from: resolve(distDir, "runtime/utils/app-config"),
|
|
425
|
+
priority: -1
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
if (!nitroConfig.errorHandler && (nuxt.options.dev || !nuxt.options.experimental.noVueServer)) {
|
|
429
|
+
nitroConfig.errorHandler = resolve(distDir, "runtime/handlers/error");
|
|
430
|
+
}
|
|
400
431
|
nitroConfig.srcDir = resolve(nuxt.options.rootDir, nuxt.options.srcDir, nitroConfig.srcDir);
|
|
401
432
|
nitroConfig.ignore ||= [];
|
|
402
433
|
nitroConfig.ignore.push(
|
|
@@ -432,16 +463,6 @@ async function bundle(nuxt) {
|
|
|
432
463
|
await promises.writeFile(join(tempDir, `meta/${buildId}.json`), JSON.stringify({}));
|
|
433
464
|
});
|
|
434
465
|
}
|
|
435
|
-
if (nuxt.options.future.compatibilityVersion !== 4) {
|
|
436
|
-
nuxt.hook("nitro:config", (config) => {
|
|
437
|
-
for (const value of Object.values(config.routeRules || {})) {
|
|
438
|
-
if ("experimentalNoScripts" in value) {
|
|
439
|
-
value.noScripts = value.experimentalNoScripts;
|
|
440
|
-
delete value.experimentalNoScripts;
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
});
|
|
444
|
-
}
|
|
445
466
|
nuxt.hook("nitro:config", (config) => {
|
|
446
467
|
config.alias ||= {};
|
|
447
468
|
config.alias["#app-manifest"] = join(tempDir, `meta/${buildId}.json`);
|
|
@@ -535,13 +556,6 @@ async function bundle(nuxt) {
|
|
|
535
556
|
nitroConfig.virtual["#build/dist/server/styles.mjs".replace(FORWARD_SLASH_RE, "\\")] = "export default {}";
|
|
536
557
|
}
|
|
537
558
|
}
|
|
538
|
-
if (nuxt.options.experimental.respectNoSSRHeader) {
|
|
539
|
-
nitroConfig.handlers ||= [];
|
|
540
|
-
nitroConfig.handlers.push({
|
|
541
|
-
handler: resolve(distDir, "runtime/middleware/no-ssr"),
|
|
542
|
-
middleware: true
|
|
543
|
-
});
|
|
544
|
-
}
|
|
545
559
|
nitroConfig.rollupConfig.plugins = await nitroConfig.rollupConfig.plugins || [];
|
|
546
560
|
nitroConfig.rollupConfig.plugins = toArray(nitroConfig.rollupConfig.plugins);
|
|
547
561
|
const sharedDir = withTrailingSlash(resolve(nuxt.options.rootDir, nuxt.options.dir.shared));
|
|
@@ -688,6 +702,7 @@ async function bundle(nuxt) {
|
|
|
688
702
|
if (!nuxt.options.dev && nuxt.options.experimental.noVueServer) {
|
|
689
703
|
nitro.hooks.hook("rollup:before", (nitro2) => {
|
|
690
704
|
if (nitro2.options.preset === "nitro-prerender") {
|
|
705
|
+
nitro2.options.errorHandler = resolve(distDir, "runtime/handlers/error");
|
|
691
706
|
return;
|
|
692
707
|
}
|
|
693
708
|
const nuxtErrorHandler = nitro2.options.handlers.findIndex((h) => h.route === "/__nuxt_error");
|
|
@@ -695,9 +710,13 @@ async function bundle(nuxt) {
|
|
|
695
710
|
nitro2.options.handlers.splice(nuxtErrorHandler, 1);
|
|
696
711
|
}
|
|
697
712
|
nitro2.options.renderer = void 0;
|
|
698
|
-
nitro2.options.errorHandler = "#internal/nitro/error";
|
|
699
713
|
});
|
|
700
714
|
}
|
|
715
|
+
nitro.hooks.hook("types:extend", (types) => {
|
|
716
|
+
types.tsConfig ||= {};
|
|
717
|
+
const rootDirGlob = relativeWithDot(nuxt.options.buildDir, join(nuxt.options.rootDir, "**/*"));
|
|
718
|
+
types.tsConfig.include = types.tsConfig.include?.filter((i) => i !== rootDirGlob);
|
|
719
|
+
});
|
|
701
720
|
nuxt.hook("prepare:types", async (opts) => {
|
|
702
721
|
if (!nuxt.options.dev) {
|
|
703
722
|
await scanHandlers(nitro);
|
|
@@ -705,7 +724,21 @@ async function bundle(nuxt) {
|
|
|
705
724
|
}
|
|
706
725
|
opts.tsConfig.exclude ||= [];
|
|
707
726
|
opts.tsConfig.exclude.push(relative(nuxt.options.buildDir, resolve(nuxt.options.rootDir, nitro.options.output.dir)));
|
|
727
|
+
opts.tsConfig.exclude.push(relative(nuxt.options.buildDir, resolve(nuxt.options.rootDir, nuxt.options.serverDir)));
|
|
708
728
|
opts.references.push({ path: resolve(nuxt.options.buildDir, "types/nitro.d.ts") });
|
|
729
|
+
opts.sharedTsConfig.compilerOptions ||= {};
|
|
730
|
+
opts.sharedTsConfig.compilerOptions.paths ||= {};
|
|
731
|
+
for (const key in nuxt.options.alias) {
|
|
732
|
+
if (nitro.options.alias[key] && nitro.options.alias[key] === nuxt.options.alias[key]) {
|
|
733
|
+
const dirKey = join(key, "*");
|
|
734
|
+
if (opts.tsConfig.compilerOptions?.paths[key]) {
|
|
735
|
+
opts.sharedTsConfig.compilerOptions.paths[key] = opts.tsConfig.compilerOptions.paths[key];
|
|
736
|
+
}
|
|
737
|
+
if (opts.tsConfig.compilerOptions?.paths[dirKey]) {
|
|
738
|
+
opts.sharedTsConfig.compilerOptions.paths[dirKey] = opts.tsConfig.compilerOptions.paths[dirKey];
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
}
|
|
709
742
|
});
|
|
710
743
|
if (nitro.options.static) {
|
|
711
744
|
nitro.hooks.hook("prerender:routes", (routes) => {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { joinURL, withQuery, withoutBase } from "ufo";
|
|
2
2
|
import { appendResponseHeader, getRequestHeaders, send, setResponseHeader, setResponseHeaders, setResponseStatus } from "h3";
|
|
3
|
+
import { useNitroApp, useRuntimeConfig } from "nitropack/runtime";
|
|
3
4
|
import { isJsonRequest } from "../utils/error.js";
|
|
4
|
-
import { useRuntimeConfig } from "#internal/nitro";
|
|
5
|
-
import { useNitroApp } from "#internal/nitro/app";
|
|
6
5
|
import { generateErrorOverlayHTML } from "../utils/dev.js";
|
|
7
6
|
export default (async function errorhandler(error, event, { defaultHandler }) {
|
|
8
7
|
if (event.handled || isJsonRequest(event)) {
|
|
@@ -56,7 +55,7 @@ export default (async function errorhandler(error, event, { defaultHandler }) {
|
|
|
56
55
|
setResponseHeader(event, header, value);
|
|
57
56
|
}
|
|
58
57
|
setResponseStatus(event, res.status && res.status !== 200 ? res.status : defaultRes.status, res.statusText || defaultRes.statusText);
|
|
59
|
-
if (import.meta.dev
|
|
58
|
+
if (import.meta.dev) {
|
|
60
59
|
const prettyResponse = await defaultHandler(error, event, { json: false });
|
|
61
60
|
return send(event, html.replace("</body>", `${generateErrorOverlayHTML(prettyResponse.body, { startMinimized: 300 <= statusCode && statusCode < 500 })}</body>`));
|
|
62
61
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RenderResponse } from 'nitropack';
|
|
1
|
+
import type { RenderResponse } from 'nitropack/types';
|
|
2
2
|
import type { NuxtIslandResponse } from 'nuxt/app';
|
|
3
3
|
declare const _default: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<NuxtIslandResponse | Partial<RenderResponse>>>;
|
|
4
4
|
export default _default;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useNitroApp } from "nitropack/runtime";
|
|
1
2
|
import { destr } from "destr";
|
|
2
3
|
import { defineEventHandler, getQuery, readBody, setResponseHeaders } from "h3";
|
|
3
4
|
import { resolveUnrefHeadInput } from "@unhead/vue";
|
|
@@ -8,7 +9,6 @@ import { createSSRContext } from "../utils/renderer/app.js";
|
|
|
8
9
|
import { getSSRRenderer } from "../utils/renderer/build-files.js";
|
|
9
10
|
import { renderInlineStyles } from "../utils/renderer/inline-styles.js";
|
|
10
11
|
import { getClientIslandResponse, getServerComponentHTML, getSlotIslandResponse } from "../utils/renderer/islands.js";
|
|
11
|
-
import { useNitroApp } from "#internal/nitro";
|
|
12
12
|
const ISLAND_SUFFIX_RE = /\.json(?:\?.*)?$/;
|
|
13
13
|
export default defineEventHandler(async (event) => {
|
|
14
14
|
const nitroApp = useNitroApp();
|
|
@@ -64,8 +64,6 @@ export default defineEventHandler(async (event) => {
|
|
|
64
64
|
islandHead[key] = value;
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
islandHead.link ||= [];
|
|
68
|
-
islandHead.style ||= [];
|
|
69
67
|
const islandResponse = {
|
|
70
68
|
id: islandContext.id,
|
|
71
69
|
head: islandHead,
|
|
@@ -10,13 +10,13 @@ import { appendResponseHeader, createError, getQuery, getResponseStatus, getResp
|
|
|
10
10
|
import { getQuery as getURLQuery, joinURL } from "ufo";
|
|
11
11
|
import { propsToString, renderSSRHead } from "@unhead/vue/server";
|
|
12
12
|
import destr from "destr";
|
|
13
|
+
import { defineRenderHandler, getRouteRules, useNitroApp } from "nitropack/runtime";
|
|
13
14
|
import { getRenderer } from "../utils/renderer/build-files.js";
|
|
14
15
|
import { payloadCache } from "../utils/cache.js";
|
|
15
16
|
import { renderPayloadJsonScript, renderPayloadResponse, renderPayloadScript, splitPayload } from "../utils/renderer/payload.js";
|
|
16
17
|
import { createSSRContext, setSSRError } from "../utils/renderer/app.js";
|
|
17
18
|
import { renderInlineStyles } from "../utils/renderer/inline-styles.js";
|
|
18
19
|
import { replaceIslandTeleports } from "../utils/renderer/islands.js";
|
|
19
|
-
import { defineRenderHandler, getRouteRules, useNitroApp } from "#internal/nitro";
|
|
20
20
|
import { renderSSRHeadOptions } from "#internal/unhead.config.mjs";
|
|
21
21
|
import { appHead, appTeleportAttrs, appTeleportTag, componentIslands, appManifest as isAppManifestEnabled } from "#internal/nuxt.config.mjs";
|
|
22
22
|
import entryIds from "#internal/nuxt/entry-ids.mjs";
|
|
@@ -67,7 +67,7 @@ export default (nitroApp) => {
|
|
|
67
67
|
htmlContext.bodyAppend.unshift(`<script type="application/json" data-nuxt-logs="${appId}">${stringify(ctx.logs, reducers)}<\/script>`);
|
|
68
68
|
} catch (e) {
|
|
69
69
|
const shortError = e instanceof Error && "toString" in e ? ` Received \`${e.toString()}\`.` : "";
|
|
70
|
-
console.warn(`[nuxt] Failed to stringify dev server logs.${shortError} You can define your own reducer/reviver for rich types following the instructions in https://nuxt.com/docs/api/composables/use-nuxt-app#payload.`);
|
|
70
|
+
console.warn(`[nuxt] Failed to stringify dev server logs.${shortError} You can define your own reducer/reviver for rich types following the instructions in https://nuxt.com/docs/4.x/api/composables/use-nuxt-app#payload.`);
|
|
71
71
|
}
|
|
72
72
|
});
|
|
73
73
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type DefaultMessages = Record<"appName" | "
|
|
1
|
+
export type DefaultMessages = Record<"appName" | "statusCode" | "statusMessage" | "description" | "refresh", string | boolean | number>;
|
|
2
2
|
export declare const template: (messages: Partial<DefaultMessages>) => string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { escapeHtml } from "@vue/shared";
|
|
2
|
-
const _messages = { "appName": "Nuxt", "
|
|
2
|
+
const _messages = { "appName": "Nuxt", "statusCode": 500, "statusMessage": "Internal server error", "description": "This page is temporarily unavailable.", "refresh": "Refresh this page" };
|
|
3
3
|
export const template = (messages) => {
|
|
4
4
|
messages = { ..._messages, ...messages };
|
|
5
|
-
return '<!DOCTYPE html><html lang="en"><head><title>' + escapeHtml(messages.statusCode) + " - " + escapeHtml(messages.statusMessage) + " | " + escapeHtml(messages.appName) + `</title><meta charset="utf-8"><meta content="width=device-width,initial-scale=1.0,minimum-scale=1.0" name="viewport"><
|
|
5
|
+
return '<!DOCTYPE html><html lang="en"><head><title>' + escapeHtml(messages.statusCode) + " - " + escapeHtml(messages.statusMessage) + " | " + escapeHtml(messages.appName) + `</title><meta charset="utf-8"><meta content="width=device-width,initial-scale=1.0,minimum-scale=1.0" name="viewport"><script>!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();<\/script><style>*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.grid{display:grid}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.max-w-520px{max-width:520px}.min-h-screen{min-height:100vh}.place-content-center{place-content:center}.overflow-hidden{overflow:hidden}.bg-white{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2{padding-left:.5rem;padding-right:.5rem}.text-center{text-align:center}.text-\\[80px\\]{font-size:80px}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\\[\\#020420\\]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\\[\\#64748B\\]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.font-semibold{font-weight:600}.leading-none{line-height:1}.tracking-wide{letter-spacing:.025em}.font-sans{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\\:bg-\\[\\#020420\\]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\\:text-white{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\\:text-\\[110px\\]{font-size:110px}.sm\\:text-3xl{font-size:1.875rem;line-height:2.25rem}}</style></head><body class="antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"><div class="max-w-520px text-center"><h1 class="font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]">` + escapeHtml(messages.statusCode) + '</h1><h2 class="font-semibold mb-2 sm:text-3xl text-2xl">' + escapeHtml(messages.statusMessage) + '</h2><p class="mb-4 px-2 text-[#64748B] text-md">' + escapeHtml(messages.description) + "</p></div></body></html>";
|
|
6
6
|
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { klona } from "klona";
|
|
2
|
+
import _inlineAppConfig from "#internal/nuxt/app-config";
|
|
3
|
+
const _sharedAppConfig = _deepFreeze(klona(_inlineAppConfig));
|
|
4
|
+
export function useAppConfig(event) {
|
|
5
|
+
if (!event) {
|
|
6
|
+
return _sharedAppConfig;
|
|
7
|
+
}
|
|
8
|
+
event.context.nuxt ||= {};
|
|
9
|
+
if (event.context.nuxt.appConfig) {
|
|
10
|
+
return event.context.nuxt.appConfig;
|
|
11
|
+
}
|
|
12
|
+
const appConfig = klona(_inlineAppConfig);
|
|
13
|
+
event.context.nuxt.appConfig = appConfig;
|
|
14
|
+
return appConfig;
|
|
15
|
+
}
|
|
16
|
+
function _deepFreeze(object) {
|
|
17
|
+
const propNames = Object.getOwnPropertyNames(object);
|
|
18
|
+
for (const name of propNames) {
|
|
19
|
+
const value = object[name];
|
|
20
|
+
if (value && typeof value === "object") {
|
|
21
|
+
_deepFreeze(value);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return Object.freeze(object);
|
|
25
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export declare const payloadCache:
|
|
2
|
-
export declare const islandCache:
|
|
3
|
-
export declare const islandPropCache:
|
|
1
|
+
export declare const payloadCache: import("unstorage").Storage<import("unstorage").StorageValue> | null;
|
|
2
|
+
export declare const islandCache: import("unstorage").Storage<import("unstorage").StorageValue> | null;
|
|
3
|
+
export declare const islandPropCache: import("unstorage").Storage<import("unstorage").StorageValue> | null;
|
|
4
4
|
export declare const sharedPrerenderPromises: Map<string, Promise<any>> | null;
|
|
5
5
|
export declare const sharedPrerenderCache: {
|
|
6
6
|
get<T = unknown>(key: string): Promise<T> | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useStorage } from "
|
|
1
|
+
import { useStorage } from "nitropack/runtime";
|
|
2
2
|
import process from "node:process";
|
|
3
3
|
export const payloadCache = import.meta.prerender ? useStorage("internal:nuxt:prerender:payload") : null;
|
|
4
4
|
export const islandCache = import.meta.prerender ? useStorage("internal:nuxt:prerender:island") : null;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import process from "node:process";
|
|
2
|
+
import { useRuntimeConfig } from "nitropack/runtime";
|
|
2
3
|
import { createHead } from "@unhead/vue/server";
|
|
3
4
|
import { sharedPrerenderCache } from "../cache.js";
|
|
4
|
-
import { useRuntimeConfig } from "#internal/nitro";
|
|
5
5
|
import unheadOptions from "#internal/unhead-options.mjs";
|
|
6
6
|
const PRERENDER_NO_SSR_ROUTES = /* @__PURE__ */ new Set(["/index.html", "/200.html", "/404.html"]);
|
|
7
7
|
export function createSSRContext(event) {
|
|
@@ -2,7 +2,7 @@ import process from "node:process";
|
|
|
2
2
|
import { createRenderer } from "vue-bundle-renderer/runtime";
|
|
3
3
|
import { renderToString as _renderToString } from "vue/server-renderer";
|
|
4
4
|
import { propsToString } from "@unhead/vue/server";
|
|
5
|
-
import { useRuntimeConfig } from "
|
|
5
|
+
import { useRuntimeConfig } from "nitropack/runtime";
|
|
6
6
|
import { appRootAttrs, appRootTag, appSpaLoaderAttrs, appSpaLoaderTag, spaLoadingTemplateOutside } from "#internal/nuxt.config.mjs";
|
|
7
7
|
import { buildAssetsURL } from "#internal/nuxt/paths";
|
|
8
8
|
const APP_ROOT_OPEN_TAG = `<${appRootTag}${propsToString(appRootAttrs)}>`;
|
|
@@ -27,8 +27,8 @@ export declare function splitPayload(ssrContext: NuxtSSRContext): {
|
|
|
27
27
|
state?: Record<string, any> | undefined;
|
|
28
28
|
once?: Set<string> | undefined;
|
|
29
29
|
config?: Pick<import("nuxt/schema").RuntimeConfig, "public" | "app"> | undefined;
|
|
30
|
-
error?:
|
|
31
|
-
_errors?: Record<string, import("nuxt/app").NuxtError<unknown> |
|
|
30
|
+
error?: import("nuxt/app").NuxtError<unknown> | undefined;
|
|
31
|
+
_errors?: Record<string, import("nuxt/app").NuxtError<unknown> | undefined> | undefined;
|
|
32
32
|
};
|
|
33
33
|
payload: {
|
|
34
34
|
data: Record<string, any> | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuxt/nitro-server",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.2.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/nuxt/nuxt.git",
|
|
@@ -20,14 +20,14 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@nuxt/devalue": "^2.0.2",
|
|
22
22
|
"@unhead/vue": "^2.0.19",
|
|
23
|
-
"@vue/shared": "^3.5.
|
|
23
|
+
"@vue/shared": "^3.5.23",
|
|
24
24
|
"consola": "^3.4.2",
|
|
25
25
|
"defu": "^6.1.4",
|
|
26
26
|
"destr": "^2.0.5",
|
|
27
|
-
"devalue": "^5.
|
|
27
|
+
"devalue": "^5.4.2",
|
|
28
28
|
"errx": "^0.1.0",
|
|
29
29
|
"escape-string-regexp": "^5.0.0",
|
|
30
|
-
"exsolve": "^1.0.
|
|
30
|
+
"exsolve": "^1.0.7",
|
|
31
31
|
"h3": "^1.15.4",
|
|
32
32
|
"impound": "^1.0.0",
|
|
33
33
|
"klona": "^2.0.6",
|
|
@@ -39,20 +39,20 @@
|
|
|
39
39
|
"std-env": "^3.10.0",
|
|
40
40
|
"ufo": "^1.6.1",
|
|
41
41
|
"unctx": "^2.4.1",
|
|
42
|
-
"unstorage": "^1.17.
|
|
43
|
-
"vue": "^3.5.
|
|
42
|
+
"unstorage": "^1.17.2",
|
|
43
|
+
"vue": "^3.5.23",
|
|
44
44
|
"vue-bundle-renderer": "^2.2.0",
|
|
45
45
|
"vue-devtools-stub": "^0.1.0",
|
|
46
|
-
"@nuxt/kit": "
|
|
46
|
+
"@nuxt/kit": "4.2.1"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"nuxt": "^
|
|
49
|
+
"nuxt": "^4.2.1"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"unbuild": "3.6.1",
|
|
53
53
|
"vitest": "3.2.4",
|
|
54
|
-
"
|
|
55
|
-
"nuxt": "
|
|
54
|
+
"nuxt": "4.2.1",
|
|
55
|
+
"@nuxt/schema": "4.2.1"
|
|
56
56
|
},
|
|
57
57
|
"engines": {
|
|
58
58
|
"node": "^20.19.0 || >=22.12.0"
|