@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 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)(`**/*${APP_PREFETCH_SUFFIX}`, appDir);
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, '/index.prefetch.rsc'),
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${APP_PREFETCH_SUFFIX}`),
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${APP_PREFETCH_SUFFIX}`),
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, `/(.+?)${APP_PREFETCH_SUFFIX}(?:/)?$`)}`,
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 || 'text/x-component';
46061
+ const rscContentTypeHeader = routesManifest?.rsc?.contentTypeHeader || exports.RSC_CONTENT_TYPE;
46053
46062
  let sourcePath;
46054
46063
  if (`/${outputPathPage}` !== srcRoute && srcRoute) {
46055
46064
  sourcePath = srcRoute;
@@ -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)(`**/*${APP_PREFETCH_SUFFIX}`, appDir);
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, '/index.prefetch.rsc'),
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${APP_PREFETCH_SUFFIX}`),
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${APP_PREFETCH_SUFFIX}`),
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, `/(.+?)${APP_PREFETCH_SUFFIX}(?:/)?$`)}`,
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 || 'text/x-component';
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.2",
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.1.1",
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",