@vercel/next 4.14.1 → 4.15.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/dist/index.js +43 -21
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -10924,6 +10924,7 @@ var KIB = 1024;
|
|
|
10924
10924
|
var MIB = 1024 * KIB;
|
|
10925
10925
|
var EDGE_FUNCTION_SIZE_LIMIT = 4 * MIB;
|
|
10926
10926
|
var DEFAULT_MAX_UNCOMPRESSED_LAMBDA_SIZE = 250 * MIB;
|
|
10927
|
+
var DEFAULT_MAX_UNCOMPRESSED_LAMBDA_SIZE_BUN = 150 * MIB;
|
|
10927
10928
|
var LAMBDA_RESERVED_UNCOMPRESSED_SIZE = 25 * MIB;
|
|
10928
10929
|
var INTERNAL_PAGES = ["_app.js", "_error.js", "_document.js"];
|
|
10929
10930
|
|
|
@@ -11115,9 +11116,12 @@ function getAppRouterPathnameFilesMap(files) {
|
|
|
11115
11116
|
var require_ = (0, import_module.createRequire)(__filename);
|
|
11116
11117
|
var RSC_CONTENT_TYPE = "x-component";
|
|
11117
11118
|
var RSC_PREFETCH_SUFFIX = ".prefetch.rsc";
|
|
11118
|
-
|
|
11119
|
-
Number(process.env.MAX_UNCOMPRESSED_LAMBDA_SIZE)
|
|
11120
|
-
|
|
11119
|
+
function getMaxUncompressedLambdaSize(runtime) {
|
|
11120
|
+
if (!isNaN(Number(process.env.MAX_UNCOMPRESSED_LAMBDA_SIZE))) {
|
|
11121
|
+
return Number(process.env.MAX_UNCOMPRESSED_LAMBDA_SIZE);
|
|
11122
|
+
}
|
|
11123
|
+
return runtime.startsWith("bun") ? DEFAULT_MAX_UNCOMPRESSED_LAMBDA_SIZE_BUN : DEFAULT_MAX_UNCOMPRESSED_LAMBDA_SIZE;
|
|
11124
|
+
}
|
|
11121
11125
|
var skipDefaultLocaleRewrite = Boolean(
|
|
11122
11126
|
process.env.NEXT_EXPERIMENTAL_DEFER_DEFAULT_LOCALE_REWRITE
|
|
11123
11127
|
);
|
|
@@ -12075,7 +12079,8 @@ async function getPageLambdaGroups({
|
|
|
12075
12079
|
pageExtensions,
|
|
12076
12080
|
inversedAppPathManifest,
|
|
12077
12081
|
experimentalAllowBundling,
|
|
12078
|
-
isRouteHandlers
|
|
12082
|
+
isRouteHandlers,
|
|
12083
|
+
nodeVersion
|
|
12079
12084
|
}) {
|
|
12080
12085
|
const groups = [];
|
|
12081
12086
|
for (const page of pages) {
|
|
@@ -12140,7 +12145,10 @@ async function getPageLambdaGroups({
|
|
|
12140
12145
|
});
|
|
12141
12146
|
newTracedFilesUncompressedSize += compressedPages[newPage].uncompressedSize;
|
|
12142
12147
|
}
|
|
12143
|
-
const
|
|
12148
|
+
const maxLambdaSize = getMaxUncompressedLambdaSize(
|
|
12149
|
+
nodeVersion.runtime
|
|
12150
|
+
);
|
|
12151
|
+
const underUncompressedLimit = newTracedFilesUncompressedSize < maxLambdaSize - LAMBDA_RESERVED_UNCOMPRESSED_SIZE;
|
|
12144
12152
|
return underUncompressedLimit;
|
|
12145
12153
|
}
|
|
12146
12154
|
return false;
|
|
@@ -12259,13 +12267,14 @@ var outputFunctionFileSizeInfo = (pages, pseudoLayer, pseudoLayerUncompressedByt
|
|
|
12259
12267
|
})
|
|
12260
12268
|
);
|
|
12261
12269
|
};
|
|
12262
|
-
var detectLambdaLimitExceeding = async (lambdaGroups, compressedPages) => {
|
|
12263
|
-
const
|
|
12270
|
+
var detectLambdaLimitExceeding = async (lambdaGroups, compressedPages, runtime) => {
|
|
12271
|
+
const maxLambdaSize = getMaxUncompressedLambdaSize(runtime);
|
|
12272
|
+
const UNCOMPRESSED_SIZE_LIMIT_CLOSE = maxLambdaSize - 5 * MIB;
|
|
12264
12273
|
let numExceededLimit = 0;
|
|
12265
12274
|
let numCloseToLimit = 0;
|
|
12266
12275
|
let loggedHeadInfo = false;
|
|
12267
12276
|
const filteredGroups = lambdaGroups.filter((group) => {
|
|
12268
|
-
const exceededLimit = group.pseudoLayerUncompressedBytes >
|
|
12277
|
+
const exceededLimit = group.pseudoLayerUncompressedBytes > maxLambdaSize;
|
|
12269
12278
|
const closeToLimit = group.pseudoLayerUncompressedBytes > UNCOMPRESSED_SIZE_LIMIT_CLOSE;
|
|
12270
12279
|
if (closeToLimit || exceededLimit || (0, import_build_utils.getPlatformEnv)("BUILDER_DEBUG") || process.env.NEXT_DEBUG_FUNCTION_SIZE) {
|
|
12271
12280
|
if (exceededLimit) {
|
|
@@ -12282,7 +12291,7 @@ var detectLambdaLimitExceeding = async (lambdaGroups, compressedPages) => {
|
|
|
12282
12291
|
if (numExceededLimit || numCloseToLimit) {
|
|
12283
12292
|
console.log(
|
|
12284
12293
|
`Warning: Max serverless function size of ${prettyBytes(
|
|
12285
|
-
|
|
12294
|
+
maxLambdaSize
|
|
12286
12295
|
)} uncompressed${numExceededLimit ? "" : " almost"} reached`
|
|
12287
12296
|
);
|
|
12288
12297
|
} else {
|
|
@@ -14622,10 +14631,11 @@ async function serverBuild({
|
|
|
14622
14631
|
2
|
|
14623
14632
|
)
|
|
14624
14633
|
);
|
|
14625
|
-
|
|
14634
|
+
const maxLambdaSize = getMaxUncompressedLambdaSize(nodeVersion.runtime);
|
|
14635
|
+
if (uncompressedInitialSize > maxLambdaSize) {
|
|
14626
14636
|
console.log(
|
|
14627
14637
|
`Warning: Max serverless function size of ${(0, import_pretty_bytes3.default)(
|
|
14628
|
-
|
|
14638
|
+
maxLambdaSize
|
|
14629
14639
|
)} uncompressed reached`
|
|
14630
14640
|
);
|
|
14631
14641
|
outputFunctionFileSizeInfo(
|
|
@@ -14635,7 +14645,7 @@ async function serverBuild({
|
|
|
14635
14645
|
{}
|
|
14636
14646
|
);
|
|
14637
14647
|
throw new import_build_utils2.NowBuildError({
|
|
14638
|
-
message: `Required files read using Node.js fs library and node_modules exceed max lambda size of ${
|
|
14648
|
+
message: `Required files read using Node.js fs library and node_modules exceed max lambda size of ${maxLambdaSize} bytes`,
|
|
14639
14649
|
code: "NEXT_REQUIRED_FILES_LIMIT",
|
|
14640
14650
|
link: "https://vercel.com/docs/platform/limits#serverless-function-size"
|
|
14641
14651
|
});
|
|
@@ -14797,7 +14807,8 @@ ${JSON.stringify(
|
|
|
14797
14807
|
initialPseudoLayer,
|
|
14798
14808
|
initialPseudoLayerUncompressed: uncompressedInitialSize,
|
|
14799
14809
|
internalPages,
|
|
14800
|
-
pageExtensions
|
|
14810
|
+
pageExtensions,
|
|
14811
|
+
nodeVersion
|
|
14801
14812
|
});
|
|
14802
14813
|
for (const group of pageLambdaGroups) {
|
|
14803
14814
|
group.isPages = true;
|
|
@@ -14817,7 +14828,8 @@ ${JSON.stringify(
|
|
|
14817
14828
|
initialPseudoLayerUncompressed: uncompressedInitialSize,
|
|
14818
14829
|
internalPages,
|
|
14819
14830
|
pageExtensions,
|
|
14820
|
-
inversedAppPathManifest
|
|
14831
|
+
inversedAppPathManifest,
|
|
14832
|
+
nodeVersion
|
|
14821
14833
|
});
|
|
14822
14834
|
const appRouteHandlersLambdaGroups = await getPageLambdaGroups({
|
|
14823
14835
|
experimentalAllowBundling,
|
|
@@ -14835,7 +14847,8 @@ ${JSON.stringify(
|
|
|
14835
14847
|
internalPages,
|
|
14836
14848
|
pageExtensions,
|
|
14837
14849
|
inversedAppPathManifest,
|
|
14838
|
-
isRouteHandlers: true
|
|
14850
|
+
isRouteHandlers: true,
|
|
14851
|
+
nodeVersion
|
|
14839
14852
|
});
|
|
14840
14853
|
const appRouterStreamingActionLambdaGroups = [];
|
|
14841
14854
|
for (const group of appRouterLambdaGroups) {
|
|
@@ -14862,7 +14875,8 @@ ${JSON.stringify(
|
|
|
14862
14875
|
initialPseudoLayer,
|
|
14863
14876
|
initialPseudoLayerUncompressed: uncompressedInitialSize,
|
|
14864
14877
|
internalPages,
|
|
14865
|
-
pageExtensions
|
|
14878
|
+
pageExtensions,
|
|
14879
|
+
nodeVersion
|
|
14866
14880
|
});
|
|
14867
14881
|
for (const group of apiLambdaGroups) {
|
|
14868
14882
|
group.isApiLambda = true;
|
|
@@ -14925,7 +14939,11 @@ ${JSON.stringify(
|
|
|
14925
14939
|
...apiLambdaGroups,
|
|
14926
14940
|
...appRouteHandlersLambdaGroups
|
|
14927
14941
|
];
|
|
14928
|
-
await detectLambdaLimitExceeding(
|
|
14942
|
+
await detectLambdaLimitExceeding(
|
|
14943
|
+
combinedGroups,
|
|
14944
|
+
compressedPages,
|
|
14945
|
+
nodeVersion.runtime
|
|
14946
|
+
);
|
|
14929
14947
|
const appNotFoundTraces = pageTraces["_not-found.js"];
|
|
14930
14948
|
const appNotFoundPsuedoLayer = appNotFoundTraces && await createPseudoLayer(appNotFoundTraces);
|
|
14931
14949
|
for (const group of combinedGroups) {
|
|
@@ -16232,6 +16250,7 @@ var htmlContentType = "text/html; charset=utf-8";
|
|
|
16232
16250
|
var SERVER_BUILD_MINIMUM_NEXT_VERSION = "v10.0.9-canary.4";
|
|
16233
16251
|
var BEFORE_FILES_CONTINUE_NEXT_VERSION = "v10.2.3-canary.1";
|
|
16234
16252
|
var REDIRECTS_NO_STATIC_NEXT_VERSION = "v11.0.2-canary.15";
|
|
16253
|
+
var IS_APP_CLIENT_SEGMENT_CACHE_ENABLED_VERSION = "v16.0.0";
|
|
16235
16254
|
var MAX_AGE_ONE_YEAR = 31536e3;
|
|
16236
16255
|
async function readPackageJson(entryPath) {
|
|
16237
16256
|
const packagePath = import_path6.default.join(entryPath, "package.json");
|
|
@@ -17208,7 +17227,7 @@ More info: http://err.sh/vercel/vercel/next-functions-config-optimized-lambdas`
|
|
|
17208
17227
|
}
|
|
17209
17228
|
const isAppPPREnabled = requiredServerFilesManifest ? requiredServerFilesManifest.config.experimental?.ppr === true || requiredServerFilesManifest.config.experimental?.ppr === "incremental" || requiredServerFilesManifest.config.experimental?.cacheComponents === true : false;
|
|
17210
17229
|
const isAppFullPPREnabled = requiredServerFilesManifest ? requiredServerFilesManifest?.config.experimental?.ppr === true || requiredServerFilesManifest.config.experimental?.cacheComponents === true : false;
|
|
17211
|
-
const isAppClientSegmentCacheEnabled = requiredServerFilesManifest ? requiredServerFilesManifest.config.experimental?.clientSegmentCache === true : false;
|
|
17230
|
+
const isAppClientSegmentCacheEnabled = import_semver4.default.gte(nextVersion, IS_APP_CLIENT_SEGMENT_CACHE_ENABLED_VERSION) || (requiredServerFilesManifest ? requiredServerFilesManifest.config.experimental?.clientSegmentCache === true : false);
|
|
17212
17231
|
const isAppClientParamParsingEnabled = routesManifest?.rsc?.clientParamParsing ?? false;
|
|
17213
17232
|
const clientParamParsingOrigins = requiredServerFilesManifest ? requiredServerFilesManifest.config.experimental?.clientParamParsingOrigins : void 0;
|
|
17214
17233
|
if (requiredServerFilesManifest) {
|
|
@@ -17428,7 +17447,8 @@ More info: http://err.sh/vercel/vercel/next-functions-config-optimized-lambdas`
|
|
|
17428
17447
|
// internal pages are already referenced in traces for serverless
|
|
17429
17448
|
// like builds
|
|
17430
17449
|
internalPages: [],
|
|
17431
|
-
experimentalPPRRoutes: void 0
|
|
17450
|
+
experimentalPPRRoutes: void 0,
|
|
17451
|
+
nodeVersion
|
|
17432
17452
|
});
|
|
17433
17453
|
const initialApiLambdaGroups = await getPageLambdaGroups({
|
|
17434
17454
|
entryPath,
|
|
@@ -17442,7 +17462,8 @@ More info: http://err.sh/vercel/vercel/next-functions-config-optimized-lambdas`
|
|
|
17442
17462
|
initialPseudoLayer: { pseudoLayer: {}, pseudoLayerBytes: 0 },
|
|
17443
17463
|
initialPseudoLayerUncompressed: 0,
|
|
17444
17464
|
internalPages: [],
|
|
17445
|
-
experimentalPPRRoutes: void 0
|
|
17465
|
+
experimentalPPRRoutes: void 0,
|
|
17466
|
+
nodeVersion
|
|
17446
17467
|
});
|
|
17447
17468
|
for (const group of initialApiLambdaGroups) {
|
|
17448
17469
|
group.isApiLambda = true;
|
|
@@ -17471,7 +17492,8 @@ More info: http://err.sh/vercel/vercel/next-functions-config-optimized-lambdas`
|
|
|
17471
17492
|
];
|
|
17472
17493
|
await detectLambdaLimitExceeding(
|
|
17473
17494
|
combinedInitialLambdaGroups,
|
|
17474
|
-
compressedPages
|
|
17495
|
+
compressedPages,
|
|
17496
|
+
nodeVersion.runtime
|
|
17475
17497
|
);
|
|
17476
17498
|
let apiLambdaGroupIndex = 0;
|
|
17477
17499
|
let nonApiLambdaGroupIndex = 0;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vercel/next",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.15.1",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"main": "./dist/index",
|
|
6
6
|
"homepage": "https://vercel.com/docs/runtimes#official-runtimes/next-js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@types/semver": "6.0.0",
|
|
31
31
|
"@types/text-table": "0.2.1",
|
|
32
32
|
"@types/webpack-sources": "3.2.0",
|
|
33
|
-
"@vercel/build-utils": "12.2.
|
|
33
|
+
"@vercel/build-utils": "12.2.4",
|
|
34
34
|
"@vercel/routing-utils": "5.2.1",
|
|
35
35
|
"async-sema": "3.0.1",
|
|
36
36
|
"buffer-crc32": "0.2.13",
|