@vercel/next 3.8.2 → 3.8.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
@@ -43682,7 +43682,7 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, privateOutputs
43682
43682
  });
43683
43683
  const isNextDataServerResolving = middleware.staticRoutes.length > 0 &&
43684
43684
  semver_1.default.gte(nextVersion, NEXT_DATA_MIDDLEWARE_RESOLVING_VERSION);
43685
- const dynamicRoutes = await (0, utils_1.getDynamicRoutes)(entryPath, entryDirectory, dynamicPages, false, routesManifest, omittedPrerenderRoutes, canUsePreviewMode, prerenderManifest.bypassToken || '', true, middleware.dynamicRouteMap).then(arr => (0, utils_1.localizeDynamicRoutes)(arr, dynamicPrefix, entryDirectory, staticPages, prerenderManifest, routesManifest, true, isCorrectLocaleAPIRoutes));
43685
+ const dynamicRoutes = await (0, utils_1.getDynamicRoutes)(entryPath, entryDirectory, dynamicPages, false, routesManifest, omittedPrerenderRoutes, canUsePreviewMode, prerenderManifest.bypassToken || '', true, middleware.dynamicRouteMap, inversedAppPathManifest).then(arr => (0, utils_1.localizeDynamicRoutes)(arr, dynamicPrefix, entryDirectory, staticPages, prerenderManifest, routesManifest, true, isCorrectLocaleAPIRoutes));
43686
43686
  const { staticFiles, publicDirectoryFiles, staticDirectoryFiles } = await (0, utils_1.getStaticFiles)(entryPath, entryDirectory, outputDirectory);
43687
43687
  const normalizeNextDataRoute = (isOverride = false) => {
43688
43688
  return isNextDataServerResolving
@@ -43780,20 +43780,6 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, privateOutputs
43780
43780
  const rscHeader = routesManifest.rsc?.header?.toLowerCase() || '__rsc__';
43781
43781
  const rscVaryHeader = routesManifest?.rsc?.varyHeader ||
43782
43782
  'RSC, Next-Router-State-Tree, Next-Router-Prefetch';
43783
- const completeDynamicRoutes = [];
43784
- if (appDir) {
43785
- for (const route of dynamicRoutes) {
43786
- completeDynamicRoutes.push({
43787
- ...route,
43788
- src: route.src.replace(new RegExp((0, escape_string_regexp_1.default)('(?:/)?$')), '(?:\\.rsc)(?:/)?$'),
43789
- dest: route.dest?.replace(/($|\?)/, '.rsc$1'),
43790
- });
43791
- completeDynamicRoutes.push(route);
43792
- }
43793
- }
43794
- else {
43795
- completeDynamicRoutes.push(...dynamicRoutes);
43796
- }
43797
43783
  return {
43798
43784
  wildcard: wildcardConfig,
43799
43785
  images: (0, utils_1.getImagesConfig)(imagesManifest),
@@ -44089,7 +44075,8 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, privateOutputs
44089
44075
  ? // when resolving data routes for middleware we need to include
44090
44076
  // all dynamic routes including non-SSG/SSP so that the priority
44091
44077
  // is correct
44092
- completeDynamicRoutes
44078
+ dynamicRoutes
44079
+ .filter(route => !route.src.includes('.rsc'))
44093
44080
  .map(route => {
44094
44081
  route = Object.assign({}, route);
44095
44082
  let normalizedSrc = route.src;
@@ -44135,7 +44122,7 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, privateOutputs
44135
44122
  : []),
44136
44123
  // Dynamic routes (must come after dataRoutes as dataRoutes are more
44137
44124
  // specific)
44138
- ...completeDynamicRoutes,
44125
+ ...dynamicRoutes,
44139
44126
  ...(isNextDataServerResolving
44140
44127
  ? [
44141
44128
  {
@@ -44551,7 +44538,7 @@ async function getRoutesManifest(entryPath, outputDirectory, nextVersion) {
44551
44538
  return routesManifest;
44552
44539
  }
44553
44540
  exports.getRoutesManifest = getRoutesManifest;
44554
- async function getDynamicRoutes(entryPath, entryDirectory, dynamicPages, isDev, routesManifest, omittedRoutes, canUsePreviewMode, bypassToken, isServerMode, dynamicMiddlewareRouteMap) {
44541
+ async function getDynamicRoutes(entryPath, entryDirectory, dynamicPages, isDev, routesManifest, omittedRoutes, canUsePreviewMode, bypassToken, isServerMode, dynamicMiddlewareRouteMap, appPathRoutesManifest) {
44555
44542
  if (routesManifest) {
44556
44543
  switch (routesManifest.version) {
44557
44544
  case 1:
@@ -44569,15 +44556,19 @@ async function getDynamicRoutes(entryPath, entryDirectory, dynamicPages, isDev,
44569
44556
  }
44570
44557
  case 3:
44571
44558
  case 4: {
44572
- return routesManifest.dynamicRoutes
44573
- .filter(({ page }) => canUsePreviewMode || !omittedRoutes?.has(page))
44574
- .map(params => {
44559
+ const routes = [];
44560
+ for (const dynamicRoute of routesManifest.dynamicRoutes) {
44561
+ if (!canUsePreviewMode && omittedRoutes?.has(dynamicRoute.page)) {
44562
+ continue;
44563
+ }
44564
+ const params = dynamicRoute;
44575
44565
  if ('isMiddleware' in params) {
44576
44566
  const route = dynamicMiddlewareRouteMap?.get(params.page);
44577
44567
  if (!route) {
44578
44568
  throw new Error(`Could not find dynamic middleware route for ${params.page}`);
44579
44569
  }
44580
- return route;
44570
+ routes.push(route);
44571
+ continue;
44581
44572
  }
44582
44573
  const { page, namedRegex, regex, routeKeys } = params;
44583
44574
  const route = {
@@ -44606,8 +44597,17 @@ async function getDynamicRoutes(entryPath, entryDirectory, dynamicPages, isDev,
44606
44597
  },
44607
44598
  ];
44608
44599
  }
44609
- return route;
44610
- });
44600
+ if (appPathRoutesManifest?.[page]) {
44601
+ routes.push({
44602
+ ...route,
44603
+ src: route.src.replace(new RegExp((0, escape_string_regexp_1.default)('(?:/)?$')), '(?:\\.rsc)(?:/)?$'),
44604
+ dest: route.dest?.replace(/($|\?)/, '.rsc$1'),
44605
+ });
44606
+ }
44607
+ routes.push(route);
44608
+ continue;
44609
+ }
44610
+ return routes;
44611
44611
  }
44612
44612
  default: {
44613
44613
  // update MIN_ROUTES_MANIFEST_VERSION
@@ -608,7 +608,7 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, privateOutputs
608
608
  });
609
609
  const isNextDataServerResolving = middleware.staticRoutes.length > 0 &&
610
610
  semver_1.default.gte(nextVersion, NEXT_DATA_MIDDLEWARE_RESOLVING_VERSION);
611
- const dynamicRoutes = await (0, utils_1.getDynamicRoutes)(entryPath, entryDirectory, dynamicPages, false, routesManifest, omittedPrerenderRoutes, canUsePreviewMode, prerenderManifest.bypassToken || '', true, middleware.dynamicRouteMap).then(arr => (0, utils_1.localizeDynamicRoutes)(arr, dynamicPrefix, entryDirectory, staticPages, prerenderManifest, routesManifest, true, isCorrectLocaleAPIRoutes));
611
+ const dynamicRoutes = await (0, utils_1.getDynamicRoutes)(entryPath, entryDirectory, dynamicPages, false, routesManifest, omittedPrerenderRoutes, canUsePreviewMode, prerenderManifest.bypassToken || '', true, middleware.dynamicRouteMap, inversedAppPathManifest).then(arr => (0, utils_1.localizeDynamicRoutes)(arr, dynamicPrefix, entryDirectory, staticPages, prerenderManifest, routesManifest, true, isCorrectLocaleAPIRoutes));
612
612
  const { staticFiles, publicDirectoryFiles, staticDirectoryFiles } = await (0, utils_1.getStaticFiles)(entryPath, entryDirectory, outputDirectory);
613
613
  const normalizeNextDataRoute = (isOverride = false) => {
614
614
  return isNextDataServerResolving
@@ -706,20 +706,6 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, privateOutputs
706
706
  const rscHeader = routesManifest.rsc?.header?.toLowerCase() || '__rsc__';
707
707
  const rscVaryHeader = routesManifest?.rsc?.varyHeader ||
708
708
  'RSC, Next-Router-State-Tree, Next-Router-Prefetch';
709
- const completeDynamicRoutes = [];
710
- if (appDir) {
711
- for (const route of dynamicRoutes) {
712
- completeDynamicRoutes.push({
713
- ...route,
714
- src: route.src.replace(new RegExp((0, escape_string_regexp_1.default)('(?:/)?$')), '(?:\\.rsc)(?:/)?$'),
715
- dest: route.dest?.replace(/($|\?)/, '.rsc$1'),
716
- });
717
- completeDynamicRoutes.push(route);
718
- }
719
- }
720
- else {
721
- completeDynamicRoutes.push(...dynamicRoutes);
722
- }
723
709
  return {
724
710
  wildcard: wildcardConfig,
725
711
  images: (0, utils_1.getImagesConfig)(imagesManifest),
@@ -1015,7 +1001,8 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, privateOutputs
1015
1001
  ? // when resolving data routes for middleware we need to include
1016
1002
  // all dynamic routes including non-SSG/SSP so that the priority
1017
1003
  // is correct
1018
- completeDynamicRoutes
1004
+ dynamicRoutes
1005
+ .filter(route => !route.src.includes('.rsc'))
1019
1006
  .map(route => {
1020
1007
  route = Object.assign({}, route);
1021
1008
  let normalizedSrc = route.src;
@@ -1061,7 +1048,7 @@ async function serverBuild({ dynamicPages, pagesDir, config = {}, privateOutputs
1061
1048
  : []),
1062
1049
  // Dynamic routes (must come after dataRoutes as dataRoutes are more
1063
1050
  // specific)
1064
- ...completeDynamicRoutes,
1051
+ ...dynamicRoutes,
1065
1052
  ...(isNextDataServerResolving
1066
1053
  ? [
1067
1054
  {
package/dist/utils.js CHANGED
@@ -194,7 +194,7 @@ async function getRoutesManifest(entryPath, outputDirectory, nextVersion) {
194
194
  return routesManifest;
195
195
  }
196
196
  exports.getRoutesManifest = getRoutesManifest;
197
- async function getDynamicRoutes(entryPath, entryDirectory, dynamicPages, isDev, routesManifest, omittedRoutes, canUsePreviewMode, bypassToken, isServerMode, dynamicMiddlewareRouteMap) {
197
+ async function getDynamicRoutes(entryPath, entryDirectory, dynamicPages, isDev, routesManifest, omittedRoutes, canUsePreviewMode, bypassToken, isServerMode, dynamicMiddlewareRouteMap, appPathRoutesManifest) {
198
198
  if (routesManifest) {
199
199
  switch (routesManifest.version) {
200
200
  case 1:
@@ -212,15 +212,19 @@ async function getDynamicRoutes(entryPath, entryDirectory, dynamicPages, isDev,
212
212
  }
213
213
  case 3:
214
214
  case 4: {
215
- return routesManifest.dynamicRoutes
216
- .filter(({ page }) => canUsePreviewMode || !omittedRoutes?.has(page))
217
- .map(params => {
215
+ const routes = [];
216
+ for (const dynamicRoute of routesManifest.dynamicRoutes) {
217
+ if (!canUsePreviewMode && omittedRoutes?.has(dynamicRoute.page)) {
218
+ continue;
219
+ }
220
+ const params = dynamicRoute;
218
221
  if ('isMiddleware' in params) {
219
222
  const route = dynamicMiddlewareRouteMap?.get(params.page);
220
223
  if (!route) {
221
224
  throw new Error(`Could not find dynamic middleware route for ${params.page}`);
222
225
  }
223
- return route;
226
+ routes.push(route);
227
+ continue;
224
228
  }
225
229
  const { page, namedRegex, regex, routeKeys } = params;
226
230
  const route = {
@@ -249,8 +253,17 @@ async function getDynamicRoutes(entryPath, entryDirectory, dynamicPages, isDev,
249
253
  },
250
254
  ];
251
255
  }
252
- return route;
253
- });
256
+ if (appPathRoutesManifest?.[page]) {
257
+ routes.push({
258
+ ...route,
259
+ src: route.src.replace(new RegExp((0, escape_string_regexp_1.default)('(?:/)?$')), '(?:\\.rsc)(?:/)?$'),
260
+ dest: route.dest?.replace(/($|\?)/, '.rsc$1'),
261
+ });
262
+ }
263
+ routes.push(route);
264
+ continue;
265
+ }
266
+ return routes;
254
267
  }
255
268
  default: {
256
269
  // update MIN_ROUTES_MANIFEST_VERSION
package/package.json CHANGED
@@ -1,18 +1,9 @@
1
1
  {
2
2
  "name": "@vercel/next",
3
- "version": "3.8.2",
3
+ "version": "3.8.3",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/index",
6
6
  "homepage": "https://vercel.com/docs/runtimes#official-runtimes/next-js",
7
- "scripts": {
8
- "build": "node build.js",
9
- "build-dev": "node build.js --dev",
10
- "test": "jest --env node --verbose --bail --runInBand --testTimeout=360000",
11
- "test-unit": "pnpm test test/unit/",
12
- "test-next-local": "pnpm test test/integration/*.test.js test/integration/*.test.ts",
13
- "test-next-local:middleware": "pnpm test test/integration/middleware.test.ts",
14
- "test-e2e": "rm -f test/builder-info.json; pnpm test test/fixtures/**/*.test.js"
15
- },
16
7
  "repository": {
17
8
  "type": "git",
18
9
  "url": "https://github.com/vercel/vercel.git",
@@ -60,5 +51,13 @@
60
51
  "text-table": "0.2.0",
61
52
  "webpack-sources": "3.2.3"
62
53
  },
63
- "gitHead": "f8749e1ff1d69fe25421a1f0f9309542ea50ad6e"
64
- }
54
+ "scripts": {
55
+ "build": "node build.js",
56
+ "build-dev": "node build.js --dev",
57
+ "test": "jest --env node --verbose --bail --runInBand --testTimeout=360000",
58
+ "test-unit": "pnpm test test/unit/",
59
+ "test-next-local": "pnpm test test/integration/*.test.js test/integration/*.test.ts",
60
+ "test-next-local:middleware": "pnpm test test/integration/middleware.test.ts",
61
+ "test-e2e": "rm -f test/builder-info.json; pnpm test test/fixtures/**/*.test.js"
62
+ }
63
+ }