vinext 0.0.40 → 0.0.41
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 +1 -1
- package/dist/check.js +2 -2
- package/dist/check.js.map +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/entries/app-rsc-entry.js +54 -19
- package/dist/entries/app-rsc-entry.js.map +1 -1
- package/dist/entries/pages-server-entry.js +205 -199
- package/dist/entries/pages-server-entry.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +1 -1
- package/dist/init.js +2 -2
- package/dist/init.js.map +1 -1
- package/dist/plugins/fonts.js +1 -0
- package/dist/plugins/fonts.js.map +1 -1
- package/dist/server/app-page-boundary-render.d.ts +1 -0
- package/dist/server/app-page-boundary-render.js +1 -0
- package/dist/server/app-page-boundary-render.js.map +1 -1
- package/dist/server/app-page-render.d.ts +1 -0
- package/dist/server/app-page-render.js +2 -0
- package/dist/server/app-page-render.js.map +1 -1
- package/dist/server/app-page-response.d.ts +3 -11
- package/dist/server/app-page-response.js +6 -19
- package/dist/server/app-page-response.js.map +1 -1
- package/dist/server/app-page-route-wiring.js +4 -2
- package/dist/server/app-page-route-wiring.js.map +1 -1
- package/dist/server/app-page-stream.d.ts +4 -1
- package/dist/server/app-page-stream.js +2 -1
- package/dist/server/app-page-stream.js.map +1 -1
- package/dist/server/app-route-handler-response.js +2 -1
- package/dist/server/app-route-handler-response.js.map +1 -1
- package/dist/server/app-ssr-entry.d.ts +3 -1
- package/dist/server/app-ssr-entry.js +17 -17
- package/dist/server/app-ssr-entry.js.map +1 -1
- package/dist/server/app-ssr-stream.d.ts +1 -1
- package/dist/server/app-ssr-stream.js +4 -4
- package/dist/server/app-ssr-stream.js.map +1 -1
- package/dist/server/csp.d.ts +12 -0
- package/dist/server/csp.js +46 -0
- package/dist/server/csp.js.map +1 -0
- package/dist/server/dev-server.js +20 -14
- package/dist/server/dev-server.js.map +1 -1
- package/dist/server/html.d.ts +4 -1
- package/dist/server/html.js +11 -1
- package/dist/server/html.js.map +1 -1
- package/dist/server/middleware-response-headers.d.ts +12 -0
- package/dist/server/middleware-response-headers.js +23 -0
- package/dist/server/middleware-response-headers.js.map +1 -0
- package/dist/server/pages-page-data.d.ts +1 -0
- package/dist/server/pages-page-data.js +2 -2
- package/dist/server/pages-page-data.js.map +1 -1
- package/dist/server/pages-page-response.d.ts +2 -1
- package/dist/server/pages-page-response.js +16 -14
- package/dist/server/pages-page-response.js.map +1 -1
- package/dist/server/prod-server.js +4 -3
- package/dist/server/prod-server.js.map +1 -1
- package/dist/server/request-pipeline.d.ts +14 -1
- package/dist/server/request-pipeline.js +55 -1
- package/dist/server/request-pipeline.js.map +1 -1
- package/dist/shims/error-boundary.d.ts +1 -1
- package/dist/shims/script-nonce-context.d.ts +12 -0
- package/dist/shims/script-nonce-context.js +17 -0
- package/dist/shims/script-nonce-context.js.map +1 -0
- package/dist/shims/script.js +41 -10
- package/dist/shims/script.js.map +1 -1
- package/dist/shims/server.js +6 -1
- package/dist/shims/server.js.map +1 -1
- package/dist/shims/url-safety.js +25 -4
- package/dist/shims/url-safety.js.map +1 -1
- package/package.json +7 -7
|
@@ -27,6 +27,7 @@ const appPageBoundaryRenderPath = resolveEntryPath("../server/app-page-boundary-
|
|
|
27
27
|
const appPageRouteWiringPath = resolveEntryPath("../server/app-page-route-wiring.js", import.meta.url);
|
|
28
28
|
const appPageRenderPath = resolveEntryPath("../server/app-page-render.js", import.meta.url);
|
|
29
29
|
const appPageResponsePath = resolveEntryPath("../server/app-page-response.js", import.meta.url);
|
|
30
|
+
const cspPath = resolveEntryPath("../server/csp.js", import.meta.url);
|
|
30
31
|
const appPageRequestPath = resolveEntryPath("../server/app-page-request.js", import.meta.url);
|
|
31
32
|
const appRouteHandlerResponsePath = resolveEntryPath("../server/app-route-handler-response.js", import.meta.url);
|
|
32
33
|
const routeTriePath = resolveEntryPath("../routing/route-trie.js", import.meta.url);
|
|
@@ -218,7 +219,7 @@ ${instrumentationPath ? `import * as _instrumentation from ${JSON.stringify(inst
|
|
|
218
219
|
${effectiveMetaRoutes.length > 0 ? `import { sitemapToXml, robotsToText, manifestToJson } from ${JSON.stringify(metadataRoutesPath)};` : ""}
|
|
219
220
|
import { requestContextFromRequest, normalizeHost, matchRedirect, matchRewrite, matchHeaders, isExternalUrl, proxyExternalRequest, sanitizeDestination } from ${JSON.stringify(configMatchersPath)};
|
|
220
221
|
import { decodePathParams as __decodePathParams } from ${JSON.stringify(normalizePathModulePath)};
|
|
221
|
-
import { validateCsrfOrigin, validateImageUrl, guardProtocolRelativeUrl, hasBasePath, stripBasePath, normalizeTrailingSlash, processMiddlewareHeaders } from ${JSON.stringify(requestPipelinePath)};
|
|
222
|
+
import { validateCsrfOrigin, validateServerActionPayload, validateImageUrl, guardProtocolRelativeUrl, hasBasePath, stripBasePath, normalizeTrailingSlash, processMiddlewareHeaders } from ${JSON.stringify(requestPipelinePath)};
|
|
222
223
|
import {
|
|
223
224
|
isKnownDynamicAppRoute as __isKnownDynamicAppRoute,
|
|
224
225
|
} from ${JSON.stringify(appRouteHandlerRuntimePath)};
|
|
@@ -254,6 +255,7 @@ import {
|
|
|
254
255
|
import {
|
|
255
256
|
mergeMiddlewareResponseHeaders as __mergeMiddlewareResponseHeaders,
|
|
256
257
|
} from ${JSON.stringify(appPageResponsePath)};
|
|
258
|
+
import { getScriptNonceFromHeaderSources as __getScriptNonceFromHeaderSources } from ${JSON.stringify(cspPath)};
|
|
257
259
|
import {
|
|
258
260
|
buildAppPageElement as __buildAppPageElement,
|
|
259
261
|
resolveAppPageIntercept as __resolveAppPageIntercept,
|
|
@@ -593,7 +595,7 @@ const rootLayouts = [${rootLayoutVars.join(", ")}];
|
|
|
593
595
|
* @param opts.boundaryComponent - Override the boundary component (for layout-level notFound)
|
|
594
596
|
* @param opts.layouts - Override the layouts to wrap with (for layout-level notFound, excludes the throwing layout)
|
|
595
597
|
*/
|
|
596
|
-
async function renderHTTPAccessFallbackPage(route, statusCode, isRscRequest, request, opts) {
|
|
598
|
+
async function renderHTTPAccessFallbackPage(route, statusCode, isRscRequest, request, opts, scriptNonce) {
|
|
597
599
|
return __renderAppPageHttpAccessFallback({
|
|
598
600
|
boundaryComponent: opts?.boundaryComponent ?? null,
|
|
599
601
|
buildFontLinkHeader: __buildAppPageFontLinkHeader,
|
|
@@ -624,13 +626,14 @@ async function renderHTTPAccessFallbackPage(route, statusCode, isRscRequest, req
|
|
|
624
626
|
rootUnauthorizedModule: rootUnauthorizedModule,
|
|
625
627
|
route,
|
|
626
628
|
renderToReadableStream,
|
|
629
|
+
scriptNonce,
|
|
627
630
|
statusCode,
|
|
628
631
|
});
|
|
629
632
|
}
|
|
630
633
|
|
|
631
634
|
/** Convenience: render a not-found page (404) */
|
|
632
|
-
async function renderNotFoundPage(route, isRscRequest, request, matchedParams) {
|
|
633
|
-
return renderHTTPAccessFallbackPage(route, 404, isRscRequest, request, { matchedParams });
|
|
635
|
+
async function renderNotFoundPage(route, isRscRequest, request, matchedParams, scriptNonce) {
|
|
636
|
+
return renderHTTPAccessFallbackPage(route, 404, isRscRequest, request, { matchedParams }, scriptNonce);
|
|
634
637
|
}
|
|
635
638
|
|
|
636
639
|
/**
|
|
@@ -640,7 +643,7 @@ async function renderNotFoundPage(route, isRscRequest, request, matchedParams) {
|
|
|
640
643
|
* Next.js returns HTTP 200 when error.tsx catches an error (the error is "handled"
|
|
641
644
|
* by the boundary). This matches that behavior intentionally.
|
|
642
645
|
*/
|
|
643
|
-
async function renderErrorBoundaryPage(route, error, isRscRequest, request, matchedParams) {
|
|
646
|
+
async function renderErrorBoundaryPage(route, error, isRscRequest, request, matchedParams, scriptNonce) {
|
|
644
647
|
return __renderAppPageErrorBoundary({
|
|
645
648
|
buildFontLinkHeader: __buildAppPageFontLinkHeader,
|
|
646
649
|
clearRequestContext() {
|
|
@@ -668,6 +671,7 @@ async function renderErrorBoundaryPage(route, error, isRscRequest, request, matc
|
|
|
668
671
|
route,
|
|
669
672
|
renderToReadableStream,
|
|
670
673
|
sanitizeErrorForClient: __sanitizeErrorForClient,
|
|
674
|
+
scriptNonce,
|
|
671
675
|
});
|
|
672
676
|
}
|
|
673
677
|
|
|
@@ -1337,6 +1341,8 @@ async function _handleRequest(request, __reqCtx, _mwCtx) {
|
|
|
1337
1341
|
}
|
|
1338
1342
|
` : ""}
|
|
1339
1343
|
|
|
1344
|
+
const _scriptNonce = __getScriptNonceFromHeaderSources(request.headers, _mwCtx.headers);
|
|
1345
|
+
|
|
1340
1346
|
// Build post-middleware request context for afterFiles/fallback rewrites.
|
|
1341
1347
|
// These run after middleware in the App Router execution order and should
|
|
1342
1348
|
// evaluate has/missing conditions against middleware-modified headers.
|
|
@@ -1496,6 +1502,12 @@ async function _handleRequest(request, __reqCtx, _mwCtx) {
|
|
|
1496
1502
|
}
|
|
1497
1503
|
throw sizeErr;
|
|
1498
1504
|
}
|
|
1505
|
+
const payloadResponse = await validateServerActionPayload(body);
|
|
1506
|
+
if (payloadResponse) {
|
|
1507
|
+
setHeadersContext(null);
|
|
1508
|
+
setNavigationContext(null);
|
|
1509
|
+
return payloadResponse;
|
|
1510
|
+
}
|
|
1499
1511
|
const temporaryReferences = createTemporaryReferenceSet();
|
|
1500
1512
|
const args = await decodeReply(body, { temporaryReferences });
|
|
1501
1513
|
const action = await loadServerAction(actionId);
|
|
@@ -1692,7 +1704,7 @@ async function _handleRequest(request, __reqCtx, _mwCtx) {
|
|
|
1692
1704
|
}
|
|
1693
1705
|
` : ""}
|
|
1694
1706
|
// Render custom not-found page if available, otherwise plain 404
|
|
1695
|
-
const notFoundResponse = await renderNotFoundPage(null, isRscRequest, request);
|
|
1707
|
+
const notFoundResponse = await renderNotFoundPage(null, isRscRequest, request, undefined, _scriptNonce);
|
|
1696
1708
|
if (notFoundResponse) return notFoundResponse;
|
|
1697
1709
|
setHeadersContext(null);
|
|
1698
1710
|
setNavigationContext(null);
|
|
@@ -1905,6 +1917,7 @@ async function _handleRequest(request, __reqCtx, _mwCtx) {
|
|
|
1905
1917
|
if (
|
|
1906
1918
|
process.env.NODE_ENV === "production" &&
|
|
1907
1919
|
!isForceDynamic &&
|
|
1920
|
+
(isRscRequest || !_scriptNonce) &&
|
|
1908
1921
|
revalidateSeconds !== null && revalidateSeconds > 0 && revalidateSeconds !== Infinity
|
|
1909
1922
|
) {
|
|
1910
1923
|
const __cachedPageResponse = await __readAppPageCacheResponse({
|
|
@@ -2060,7 +2073,7 @@ async function _handleRequest(request, __reqCtx, _mwCtx) {
|
|
|
2060
2073
|
return buildPageElement(route, params, interceptOpts, url.searchParams);
|
|
2061
2074
|
},
|
|
2062
2075
|
renderErrorBoundaryPage(buildErr) {
|
|
2063
|
-
return renderErrorBoundaryPage(route, buildErr, isRscRequest, request, params);
|
|
2076
|
+
return renderErrorBoundaryPage(route, buildErr, isRscRequest, request, params, _scriptNonce);
|
|
2064
2077
|
},
|
|
2065
2078
|
renderSpecialError(__buildSpecialError) {
|
|
2066
2079
|
return __buildAppPageSpecialErrorResponse({
|
|
@@ -2069,9 +2082,16 @@ async function _handleRequest(request, __reqCtx, _mwCtx) {
|
|
|
2069
2082
|
setNavigationContext(null);
|
|
2070
2083
|
},
|
|
2071
2084
|
renderFallbackPage(statusCode) {
|
|
2072
|
-
return renderHTTPAccessFallbackPage(
|
|
2073
|
-
|
|
2074
|
-
|
|
2085
|
+
return renderHTTPAccessFallbackPage(
|
|
2086
|
+
route,
|
|
2087
|
+
statusCode,
|
|
2088
|
+
isRscRequest,
|
|
2089
|
+
request,
|
|
2090
|
+
{
|
|
2091
|
+
matchedParams: params,
|
|
2092
|
+
},
|
|
2093
|
+
_scriptNonce,
|
|
2094
|
+
);
|
|
2075
2095
|
},
|
|
2076
2096
|
requestUrl: request.url,
|
|
2077
2097
|
specialError: __buildSpecialError,
|
|
@@ -2150,7 +2170,7 @@ async function _handleRequest(request, __reqCtx, _mwCtx) {
|
|
|
2150
2170
|
},
|
|
2151
2171
|
revalidateSeconds,
|
|
2152
2172
|
renderErrorBoundaryResponse(renderErr) {
|
|
2153
|
-
return renderErrorBoundaryPage(route, renderErr, isRscRequest, request, params);
|
|
2173
|
+
return renderErrorBoundaryPage(route, renderErr, isRscRequest, request, params, _scriptNonce);
|
|
2154
2174
|
},
|
|
2155
2175
|
async renderLayoutSpecialError(__layoutSpecialError, li) {
|
|
2156
2176
|
return __buildAppPageSpecialErrorResponse({
|
|
@@ -2173,11 +2193,18 @@ async function _handleRequest(request, __reqCtx, _mwCtx) {
|
|
|
2173
2193
|
}
|
|
2174
2194
|
if (!parentNotFound) parentNotFound = ${rootNotFoundVar ? `${rootNotFoundVar}?.default` : "null"};
|
|
2175
2195
|
const parentLayouts = route.layouts.slice(0, li);
|
|
2176
|
-
return renderHTTPAccessFallbackPage(
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2196
|
+
return renderHTTPAccessFallbackPage(
|
|
2197
|
+
route,
|
|
2198
|
+
statusCode,
|
|
2199
|
+
isRscRequest,
|
|
2200
|
+
request,
|
|
2201
|
+
{
|
|
2202
|
+
boundaryComponent: parentNotFound,
|
|
2203
|
+
layouts: parentLayouts,
|
|
2204
|
+
matchedParams: params,
|
|
2205
|
+
},
|
|
2206
|
+
_scriptNonce,
|
|
2207
|
+
);
|
|
2181
2208
|
},
|
|
2182
2209
|
requestUrl: request.url,
|
|
2183
2210
|
specialError: __layoutSpecialError,
|
|
@@ -2190,9 +2217,16 @@ async function _handleRequest(request, __reqCtx, _mwCtx) {
|
|
|
2190
2217
|
setNavigationContext(null);
|
|
2191
2218
|
},
|
|
2192
2219
|
renderFallbackPage(statusCode) {
|
|
2193
|
-
return renderHTTPAccessFallbackPage(
|
|
2194
|
-
|
|
2195
|
-
|
|
2220
|
+
return renderHTTPAccessFallbackPage(
|
|
2221
|
+
route,
|
|
2222
|
+
statusCode,
|
|
2223
|
+
isRscRequest,
|
|
2224
|
+
request,
|
|
2225
|
+
{
|
|
2226
|
+
matchedParams: params,
|
|
2227
|
+
},
|
|
2228
|
+
_scriptNonce,
|
|
2229
|
+
);
|
|
2196
2230
|
},
|
|
2197
2231
|
requestUrl: request.url,
|
|
2198
2232
|
specialError,
|
|
@@ -2207,6 +2241,7 @@ async function _handleRequest(request, __reqCtx, _mwCtx) {
|
|
|
2207
2241
|
// each have their own ALS store and are unaffected.
|
|
2208
2242
|
return _suppressHookWarningAls.run(true, probe);
|
|
2209
2243
|
},
|
|
2244
|
+
scriptNonce: _scriptNonce,
|
|
2210
2245
|
waitUntil(__cachePromise) {
|
|
2211
2246
|
_getRequestExecutionContext()?.waitUntil(__cachePromise);
|
|
2212
2247
|
},
|