@vercel/next 4.0.2 → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +17 -8
- package/dist/server-build.js +13 -6
- package/dist/utils.js +4 -2
- package/package.json +2 -2
package/dist/index.js
CHANGED
@@ -43320,14 +43320,21 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, functionsConfi
|
|
43320
43320
|
inversedAppPathManifest[appPathRoutesManifest[ogRoute]] = ogRoute;
|
43321
43321
|
}
|
43322
43322
|
}
|
43323
|
-
const APP_PREFETCH_SUFFIX = '.prefetch.rsc';
|
43324
43323
|
let appRscPrefetches = {};
|
43325
43324
|
let appBuildTraces = {};
|
43326
43325
|
let appDir = null;
|
43327
43326
|
if (appPathRoutesManifest) {
|
43328
43327
|
appDir = path_1.default.join(pagesDir, '../app');
|
43329
43328
|
appBuildTraces = await (0, build_utils_1.glob)('**/*.js.nft.json', appDir);
|
43330
|
-
appRscPrefetches = await (0, build_utils_1.glob)(`**/*${
|
43329
|
+
appRscPrefetches = await (0, build_utils_1.glob)(`**/*${utils_1.RSC_PREFETCH_SUFFIX}`, appDir);
|
43330
|
+
const rscContentTypeHeader = routesManifest?.rsc?.contentTypeHeader || utils_1.RSC_CONTENT_TYPE;
|
43331
|
+
// ensure all appRscPrefetches have a contentType since this is used by Next.js
|
43332
|
+
// to determine if it's a valid response
|
43333
|
+
for (const value of Object.values(appRscPrefetches)) {
|
43334
|
+
if (!value.contentType) {
|
43335
|
+
value.contentType = rscContentTypeHeader;
|
43336
|
+
}
|
43337
|
+
}
|
43331
43338
|
}
|
43332
43339
|
const isCorrectNotFoundRoutes = semver_1.default.gte(nextVersion, CORRECT_NOT_FOUND_ROUTES_VERSION);
|
43333
43340
|
const isCorrectMiddlewareOrder = semver_1.default.gte(nextVersion, CORRECT_MIDDLEWARE_ORDER_VERSION);
|
@@ -44227,7 +44234,7 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, functionsConfi
|
|
44227
44234
|
key: rscPrefetchHeader,
|
44228
44235
|
},
|
44229
44236
|
],
|
44230
|
-
dest: path_1.default.posix.join('/', entryDirectory,
|
44237
|
+
dest: path_1.default.posix.join('/', entryDirectory, `/index${utils_1.RSC_PREFETCH_SUFFIX}`),
|
44231
44238
|
headers: { vary: rscVaryHeader },
|
44232
44239
|
continue: true,
|
44233
44240
|
override: true,
|
@@ -44240,7 +44247,7 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, functionsConfi
|
|
44240
44247
|
key: rscPrefetchHeader,
|
44241
44248
|
},
|
44242
44249
|
],
|
44243
|
-
dest: path_1.default.posix.join('/', entryDirectory, `/$1${
|
44250
|
+
dest: path_1.default.posix.join('/', entryDirectory, `/$1${utils_1.RSC_PREFETCH_SUFFIX}`),
|
44244
44251
|
headers: { vary: rscVaryHeader },
|
44245
44252
|
continue: true,
|
44246
44253
|
override: true,
|
@@ -44305,7 +44312,7 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, functionsConfi
|
|
44305
44312
|
...(rscPrefetchHeader
|
44306
44313
|
? [
|
44307
44314
|
{
|
44308
|
-
src: path_1.default.posix.join('/', entryDirectory, `/index${
|
44315
|
+
src: path_1.default.posix.join('/', entryDirectory, `/index${utils_1.RSC_PREFETCH_SUFFIX}`),
|
44309
44316
|
dest: path_1.default.posix.join('/', entryDirectory, '/index.rsc'),
|
44310
44317
|
has: [
|
44311
44318
|
{
|
@@ -44317,7 +44324,7 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, functionsConfi
|
|
44317
44324
|
override: true,
|
44318
44325
|
},
|
44319
44326
|
{
|
44320
|
-
src: `^${path_1.default.posix.join('/', entryDirectory, `/(.+?)${
|
44327
|
+
src: `^${path_1.default.posix.join('/', entryDirectory, `/(.+?)${utils_1.RSC_PREFETCH_SUFFIX}(?:/)?$`)}`,
|
44321
44328
|
dest: path_1.default.posix.join('/', entryDirectory, '/$1.rsc'),
|
44322
44329
|
has: [
|
44323
44330
|
{
|
@@ -44714,7 +44721,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
44714
44721
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
44715
44722
|
};
|
44716
44723
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
44717
|
-
exports.isApiPage = exports.getOperationType = exports.upgradeMiddlewareManifest = exports.getMiddlewareManifest = exports.getFunctionsConfigManifest = exports.getMiddlewareBundle = exports.normalizeEdgeFunctionPath = exports.getSourceFilePathFromPage = exports.isDynamicRoute = exports.normalizePage = exports.getImagesConfig = exports.getNextConfig = exports.normalizePackageJson = exports.validateEntrypoint = exports.excludeFiles = exports.getPrivateOutputs = exports.updateRouteSrc = exports.getNextServerPath = exports.normalizeIndexOutput = exports.getStaticFiles = exports.onPrerenderRoute = exports.onPrerenderRouteInitial = exports.detectLambdaLimitExceeding = exports.outputFunctionFileSizeInfo = exports.getPageLambdaGroups = exports.MAX_UNCOMPRESSED_LAMBDA_SIZE = exports.addLocaleOrDefault = exports.normalizeLocalePath = exports.getPrerenderManifest = exports.getRequiredServerFilesManifest = exports.getExportStatus = exports.getExportIntent = exports.createLambdaFromPseudoLayers = exports.createPseudoLayer = exports.ExperimentalTraceVersion = exports.collectTracedFiles = exports.getFilesMapFromReasons = exports.filterStaticPages = exports.getImagesManifest = exports.localizeDynamicRoutes = exports.getDynamicRoutes = exports.getRoutesManifest = exports.prettyBytes = exports.MIB = exports.KIB = void 0;
|
44724
|
+
exports.isApiPage = exports.getOperationType = exports.upgradeMiddlewareManifest = exports.getMiddlewareManifest = exports.getFunctionsConfigManifest = exports.getMiddlewareBundle = exports.normalizeEdgeFunctionPath = exports.getSourceFilePathFromPage = exports.isDynamicRoute = exports.normalizePage = exports.getImagesConfig = exports.getNextConfig = exports.normalizePackageJson = exports.validateEntrypoint = exports.excludeFiles = exports.getPrivateOutputs = exports.updateRouteSrc = exports.getNextServerPath = exports.normalizeIndexOutput = exports.getStaticFiles = exports.onPrerenderRoute = exports.onPrerenderRouteInitial = exports.detectLambdaLimitExceeding = exports.outputFunctionFileSizeInfo = exports.getPageLambdaGroups = exports.MAX_UNCOMPRESSED_LAMBDA_SIZE = exports.addLocaleOrDefault = exports.normalizeLocalePath = exports.getPrerenderManifest = exports.getRequiredServerFilesManifest = exports.getExportStatus = exports.getExportIntent = exports.createLambdaFromPseudoLayers = exports.createPseudoLayer = exports.ExperimentalTraceVersion = exports.collectTracedFiles = exports.getFilesMapFromReasons = exports.filterStaticPages = exports.getImagesManifest = exports.localizeDynamicRoutes = exports.getDynamicRoutes = exports.getRoutesManifest = exports.RSC_PREFETCH_SUFFIX = exports.RSC_CONTENT_TYPE = exports.prettyBytes = exports.MIB = exports.KIB = void 0;
|
44718
44725
|
const build_utils_1 = __webpack_require__(3445);
|
44719
44726
|
const async_sema_1 = __webpack_require__(7905);
|
44720
44727
|
const buffer_crc32_1 = __importDefault(__webpack_require__(2227));
|
@@ -44734,6 +44741,8 @@ exports.KIB = 1024;
|
|
44734
44741
|
exports.MIB = 1024 * exports.KIB;
|
44735
44742
|
const prettyBytes = (n) => (0, bytes_1.default)(n, { unitSeparator: ' ' });
|
44736
44743
|
exports.prettyBytes = prettyBytes;
|
44744
|
+
exports.RSC_CONTENT_TYPE = 'x-component';
|
44745
|
+
exports.RSC_PREFETCH_SUFFIX = '.prefetch.rsc';
|
44737
44746
|
// Identify /[param]/ in route string
|
44738
44747
|
// eslint-disable-next-line no-useless-escape
|
44739
44748
|
const TEST_DYNAMIC_ROUTE = /\/\[[^\/]+?\](?=\/|$)/;
|
@@ -46049,7 +46058,7 @@ const onPrerenderRoute = (prerenderRouteArgs) => (routeKey, { isBlocking, isFall
|
|
46049
46058
|
const rscEnabled = !!routesManifest?.rsc;
|
46050
46059
|
const rscVaryHeader = routesManifest?.rsc?.varyHeader ||
|
46051
46060
|
'RSC, Next-Router-State-Tree, Next-Router-Prefetch';
|
46052
|
-
const rscContentTypeHeader = routesManifest?.rsc?.contentTypeHeader ||
|
46061
|
+
const rscContentTypeHeader = routesManifest?.rsc?.contentTypeHeader || exports.RSC_CONTENT_TYPE;
|
46053
46062
|
let sourcePath;
|
46054
46063
|
if (`/${outputPathPage}` !== srcRoute && srcRoute) {
|
46055
46064
|
sourcePath = srcRoute;
|
package/dist/server-build.js
CHANGED
@@ -39,14 +39,21 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, functionsConfi
|
|
39
39
|
inversedAppPathManifest[appPathRoutesManifest[ogRoute]] = ogRoute;
|
40
40
|
}
|
41
41
|
}
|
42
|
-
const APP_PREFETCH_SUFFIX = '.prefetch.rsc';
|
43
42
|
let appRscPrefetches = {};
|
44
43
|
let appBuildTraces = {};
|
45
44
|
let appDir = null;
|
46
45
|
if (appPathRoutesManifest) {
|
47
46
|
appDir = path_1.default.join(pagesDir, '../app');
|
48
47
|
appBuildTraces = await (0, build_utils_1.glob)('**/*.js.nft.json', appDir);
|
49
|
-
appRscPrefetches = await (0, build_utils_1.glob)(`**/*${
|
48
|
+
appRscPrefetches = await (0, build_utils_1.glob)(`**/*${utils_1.RSC_PREFETCH_SUFFIX}`, appDir);
|
49
|
+
const rscContentTypeHeader = routesManifest?.rsc?.contentTypeHeader || utils_1.RSC_CONTENT_TYPE;
|
50
|
+
// ensure all appRscPrefetches have a contentType since this is used by Next.js
|
51
|
+
// to determine if it's a valid response
|
52
|
+
for (const value of Object.values(appRscPrefetches)) {
|
53
|
+
if (!value.contentType) {
|
54
|
+
value.contentType = rscContentTypeHeader;
|
55
|
+
}
|
56
|
+
}
|
50
57
|
}
|
51
58
|
const isCorrectNotFoundRoutes = semver_1.default.gte(nextVersion, CORRECT_NOT_FOUND_ROUTES_VERSION);
|
52
59
|
const isCorrectMiddlewareOrder = semver_1.default.gte(nextVersion, CORRECT_MIDDLEWARE_ORDER_VERSION);
|
@@ -946,7 +953,7 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, functionsConfi
|
|
946
953
|
key: rscPrefetchHeader,
|
947
954
|
},
|
948
955
|
],
|
949
|
-
dest: path_1.default.posix.join('/', entryDirectory,
|
956
|
+
dest: path_1.default.posix.join('/', entryDirectory, `/index${utils_1.RSC_PREFETCH_SUFFIX}`),
|
950
957
|
headers: { vary: rscVaryHeader },
|
951
958
|
continue: true,
|
952
959
|
override: true,
|
@@ -959,7 +966,7 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, functionsConfi
|
|
959
966
|
key: rscPrefetchHeader,
|
960
967
|
},
|
961
968
|
],
|
962
|
-
dest: path_1.default.posix.join('/', entryDirectory, `/$1${
|
969
|
+
dest: path_1.default.posix.join('/', entryDirectory, `/$1${utils_1.RSC_PREFETCH_SUFFIX}`),
|
963
970
|
headers: { vary: rscVaryHeader },
|
964
971
|
continue: true,
|
965
972
|
override: true,
|
@@ -1024,7 +1031,7 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, functionsConfi
|
|
1024
1031
|
...(rscPrefetchHeader
|
1025
1032
|
? [
|
1026
1033
|
{
|
1027
|
-
src: path_1.default.posix.join('/', entryDirectory, `/index${
|
1034
|
+
src: path_1.default.posix.join('/', entryDirectory, `/index${utils_1.RSC_PREFETCH_SUFFIX}`),
|
1028
1035
|
dest: path_1.default.posix.join('/', entryDirectory, '/index.rsc'),
|
1029
1036
|
has: [
|
1030
1037
|
{
|
@@ -1036,7 +1043,7 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, functionsConfi
|
|
1036
1043
|
override: true,
|
1037
1044
|
},
|
1038
1045
|
{
|
1039
|
-
src: `^${path_1.default.posix.join('/', entryDirectory, `/(.+?)${
|
1046
|
+
src: `^${path_1.default.posix.join('/', entryDirectory, `/(.+?)${utils_1.RSC_PREFETCH_SUFFIX}(?:/)?$`)}`,
|
1040
1047
|
dest: path_1.default.posix.join('/', entryDirectory, '/$1.rsc'),
|
1041
1048
|
has: [
|
1042
1049
|
{
|
package/dist/utils.js
CHANGED
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
27
27
|
};
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
29
|
-
exports.isApiPage = exports.getOperationType = exports.upgradeMiddlewareManifest = exports.getMiddlewareManifest = exports.getFunctionsConfigManifest = exports.getMiddlewareBundle = exports.normalizeEdgeFunctionPath = exports.getSourceFilePathFromPage = exports.isDynamicRoute = exports.normalizePage = exports.getImagesConfig = exports.getNextConfig = exports.normalizePackageJson = exports.validateEntrypoint = exports.excludeFiles = exports.getPrivateOutputs = exports.updateRouteSrc = exports.getNextServerPath = exports.normalizeIndexOutput = exports.getStaticFiles = exports.onPrerenderRoute = exports.onPrerenderRouteInitial = exports.detectLambdaLimitExceeding = exports.outputFunctionFileSizeInfo = exports.getPageLambdaGroups = exports.MAX_UNCOMPRESSED_LAMBDA_SIZE = exports.addLocaleOrDefault = exports.normalizeLocalePath = exports.getPrerenderManifest = exports.getRequiredServerFilesManifest = exports.getExportStatus = exports.getExportIntent = exports.createLambdaFromPseudoLayers = exports.createPseudoLayer = exports.ExperimentalTraceVersion = exports.collectTracedFiles = exports.getFilesMapFromReasons = exports.filterStaticPages = exports.getImagesManifest = exports.localizeDynamicRoutes = exports.getDynamicRoutes = exports.getRoutesManifest = exports.prettyBytes = exports.MIB = exports.KIB = void 0;
|
29
|
+
exports.isApiPage = exports.getOperationType = exports.upgradeMiddlewareManifest = exports.getMiddlewareManifest = exports.getFunctionsConfigManifest = exports.getMiddlewareBundle = exports.normalizeEdgeFunctionPath = exports.getSourceFilePathFromPage = exports.isDynamicRoute = exports.normalizePage = exports.getImagesConfig = exports.getNextConfig = exports.normalizePackageJson = exports.validateEntrypoint = exports.excludeFiles = exports.getPrivateOutputs = exports.updateRouteSrc = exports.getNextServerPath = exports.normalizeIndexOutput = exports.getStaticFiles = exports.onPrerenderRoute = exports.onPrerenderRouteInitial = exports.detectLambdaLimitExceeding = exports.outputFunctionFileSizeInfo = exports.getPageLambdaGroups = exports.MAX_UNCOMPRESSED_LAMBDA_SIZE = exports.addLocaleOrDefault = exports.normalizeLocalePath = exports.getPrerenderManifest = exports.getRequiredServerFilesManifest = exports.getExportStatus = exports.getExportIntent = exports.createLambdaFromPseudoLayers = exports.createPseudoLayer = exports.ExperimentalTraceVersion = exports.collectTracedFiles = exports.getFilesMapFromReasons = exports.filterStaticPages = exports.getImagesManifest = exports.localizeDynamicRoutes = exports.getDynamicRoutes = exports.getRoutesManifest = exports.RSC_PREFETCH_SUFFIX = exports.RSC_CONTENT_TYPE = exports.prettyBytes = exports.MIB = exports.KIB = void 0;
|
30
30
|
const build_utils_1 = require("@vercel/build-utils");
|
31
31
|
const async_sema_1 = require("async-sema");
|
32
32
|
const buffer_crc32_1 = __importDefault(require("buffer-crc32"));
|
@@ -46,6 +46,8 @@ exports.KIB = 1024;
|
|
46
46
|
exports.MIB = 1024 * exports.KIB;
|
47
47
|
const prettyBytes = (n) => (0, bytes_1.default)(n, { unitSeparator: ' ' });
|
48
48
|
exports.prettyBytes = prettyBytes;
|
49
|
+
exports.RSC_CONTENT_TYPE = 'x-component';
|
50
|
+
exports.RSC_PREFETCH_SUFFIX = '.prefetch.rsc';
|
49
51
|
// Identify /[param]/ in route string
|
50
52
|
// eslint-disable-next-line no-useless-escape
|
51
53
|
const TEST_DYNAMIC_ROUTE = /\/\[[^\/]+?\](?=\/|$)/;
|
@@ -1361,7 +1363,7 @@ const onPrerenderRoute = (prerenderRouteArgs) => (routeKey, { isBlocking, isFall
|
|
1361
1363
|
const rscEnabled = !!routesManifest?.rsc;
|
1362
1364
|
const rscVaryHeader = routesManifest?.rsc?.varyHeader ||
|
1363
1365
|
'RSC, Next-Router-State-Tree, Next-Router-Prefetch';
|
1364
|
-
const rscContentTypeHeader = routesManifest?.rsc?.contentTypeHeader ||
|
1366
|
+
const rscContentTypeHeader = routesManifest?.rsc?.contentTypeHeader || exports.RSC_CONTENT_TYPE;
|
1365
1367
|
let sourcePath;
|
1366
1368
|
if (`/${outputPathPage}` !== srcRoute && srcRoute) {
|
1367
1369
|
sourcePath = srcRoute;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vercel/next",
|
3
|
-
"version": "4.0.
|
3
|
+
"version": "4.0.3",
|
4
4
|
"license": "Apache-2.0",
|
5
5
|
"main": "./dist/index",
|
6
6
|
"homepage": "https://vercel.com/docs/runtimes#official-runtimes/next-js",
|
@@ -26,7 +26,7 @@
|
|
26
26
|
"@types/semver": "6.0.0",
|
27
27
|
"@types/text-table": "0.2.1",
|
28
28
|
"@types/webpack-sources": "3.2.0",
|
29
|
-
"@vercel/build-utils": "7.
|
29
|
+
"@vercel/build-utils": "7.2.0",
|
30
30
|
"@vercel/nft": "0.22.5",
|
31
31
|
"@vercel/routing-utils": "3.0.0",
|
32
32
|
"async-sema": "3.0.1",
|