@vercel/next 4.3.20 → 4.4.0
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/___get-nextjs-edge-function.js +1 -1
- package/dist/index.js +17 -30
- package/dist/server-launcher.js +45 -7
- package/package.json +2 -2
@@ -1 +1 @@
|
|
1
|
-
module.exports = "var
|
1
|
+
module.exports = "var b=Object.create;var p=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var h=e=>p(e,\"__esModule\",{value:!0});var _=(e,n)=>{h(e);for(var t in n)p(e,t,{get:n[t],enumerable:!0})},U=(e,n,t)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let i of T(n))!L.call(e,i)&&i!==\"default\"&&p(e,i,{get:()=>n[i],enumerable:!(t=w(n,i))||t.enumerable});return e},A=e=>U(h(p(e!=null?b(P(e)):{},\"default\",e&&e.__esModule&&\"default\"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);_(exports,{default:()=>N});var R=A(require(\"async_hooks\")),S=\"@next/request-context\",f=Symbol.for(S),C=Symbol.for(\"internal.storage\");function O(){let e=globalThis;if(!e[f]){let n=new R.AsyncLocalStorage,t={get:()=>n.getStore(),[C]:n};e[f]=t}return e[f]}var q=O();function m(e,n){return q[C].run(e,n)}function y(e){let n={};return e&&e.forEach((t,i)=>{n[i]=t,i.toLowerCase()===\"set-cookie\"&&(n[i]=M(t))}),n}function M(e){let n=[],t=0,i,a,g,o,r;function x(){for(;t<e.length&&/\\s/.test(e.charAt(t));)t+=1;return t<e.length}function s(){return a=e.charAt(t),a!==\"=\"&&a!==\";\"&&a!==\",\"}for(;t<e.length;){for(i=t,r=!1;x();)if(a=e.charAt(t),a===\",\"){for(g=t,t+=1,x(),o=t;t<e.length&&s();)t+=1;t<e.length&&e.charAt(t)===\"=\"?(r=!0,t=o,n.push(e.substring(i,g)),i=t):t=g+1}else t+=1;(!r||t>=e.length)&&n.push(e.substring(i,e.length))}return n}function N(e){let n=e.staticRoutes.map(i=>({regexp:new RegExp(i.namedRegex),page:i.page})),t=e.dynamicRoutes?.map(i=>({regexp:new RegExp(i.namedRegex),page:i.page}))||[];return async function(a,g){let o=new URL(a.url).pathname,r={};if(e.nextConfig?.basePath&&o.startsWith(e.nextConfig.basePath)&&(o=o.replace(e.nextConfig.basePath,\"\")||\"/\"),e.nextConfig?.i18n)for(let s of e.nextConfig.i18n.locales){let u=new RegExp(`^/${s}($|/)`,\"i\");if(o.match(u)){o=o.replace(u,\"/\")||\"/\";break}}for(let s of n)if(s.regexp.exec(o)){r.name=s.page;break}if(!r.name){let s=E(o);for(let u of t||[]){if(s&&!E(u.page))continue;let d=u.regexp.exec(o);if(d){r={name:u.page,params:d.groups};break}}}let x=await m({waitUntil:g.waitUntil},()=>_ENTRIES[`middleware_${e.name}`].default.call({},{request:{url:a.url,method:a.method,headers:y(a.headers),ip:c(a.headers,l.Ip),geo:{city:c(a.headers,l.City,!0),country:c(a.headers,l.Country,!0),latitude:c(a.headers,l.Latitude),longitude:c(a.headers,l.Longitude),region:c(a.headers,l.Region,!0)},nextConfig:e.nextConfig,page:r,body:a.body}}));return x.waitUntil&&g.waitUntil(x.waitUntil),x.response}}function c(e,n,t=!1){let i=e.get(n)||void 0;return t&&i?decodeURIComponent(i):i}function E(e){return e===\"/api\"||e.startsWith(\"/api/\")}var l;(function(o){o.City=\"x-vercel-ip-city\",o.Country=\"x-vercel-ip-country\",o.Ip=\"x-real-ip\",o.Latitude=\"x-vercel-ip-latitude\",o.Longitude=\"x-vercel-ip-longitude\",o.Region=\"x-vercel-ip-country-region\"})(l||(l={}));\n"
|
package/dist/index.js
CHANGED
@@ -426,7 +426,7 @@ var require_superstatic = __commonJS({
|
|
426
426
|
collectHasSegments: () => collectHasSegments,
|
427
427
|
convertCleanUrls: () => convertCleanUrls,
|
428
428
|
convertHeaders: () => convertHeaders2,
|
429
|
-
convertRedirects: () =>
|
429
|
+
convertRedirects: () => convertRedirects2,
|
430
430
|
convertRewrites: () => convertRewrites2,
|
431
431
|
convertTrailingSlash: () => convertTrailingSlash,
|
432
432
|
getCleanUrls: () => getCleanUrls,
|
@@ -460,7 +460,7 @@ var require_superstatic = __commonJS({
|
|
460
460
|
}
|
461
461
|
return routes;
|
462
462
|
}
|
463
|
-
function
|
463
|
+
function convertRedirects2(redirects, defaultStatus = 308) {
|
464
464
|
return redirects.map((r) => {
|
465
465
|
const { src, segments } = sourceToRegex(r.source);
|
466
466
|
const hasSegments = collectHasSegments(r.has);
|
@@ -10244,7 +10244,7 @@ var require_bytes = __commonJS({
|
|
10244
10244
|
var require_get_nextjs_edge_function = __commonJS({
|
10245
10245
|
"dist/___get-nextjs-edge-function.js"(exports, module2) {
|
10246
10246
|
"use strict";
|
10247
|
-
module2.exports = 'var
|
10247
|
+
module2.exports = 'var b=Object.create;var p=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var h=e=>p(e,"__esModule",{value:!0});var _=(e,n)=>{h(e);for(var t in n)p(e,t,{get:n[t],enumerable:!0})},U=(e,n,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of T(n))!L.call(e,i)&&i!=="default"&&p(e,i,{get:()=>n[i],enumerable:!(t=w(n,i))||t.enumerable});return e},A=e=>U(h(p(e!=null?b(P(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);_(exports,{default:()=>N});var R=A(require("async_hooks")),S="@next/request-context",f=Symbol.for(S),C=Symbol.for("internal.storage");function O(){let e=globalThis;if(!e[f]){let n=new R.AsyncLocalStorage,t={get:()=>n.getStore(),[C]:n};e[f]=t}return e[f]}var q=O();function m(e,n){return q[C].run(e,n)}function y(e){let n={};return e&&e.forEach((t,i)=>{n[i]=t,i.toLowerCase()==="set-cookie"&&(n[i]=M(t))}),n}function M(e){let n=[],t=0,i,a,g,o,r;function x(){for(;t<e.length&&/\\s/.test(e.charAt(t));)t+=1;return t<e.length}function s(){return a=e.charAt(t),a!=="="&&a!==";"&&a!==","}for(;t<e.length;){for(i=t,r=!1;x();)if(a=e.charAt(t),a===","){for(g=t,t+=1,x(),o=t;t<e.length&&s();)t+=1;t<e.length&&e.charAt(t)==="="?(r=!0,t=o,n.push(e.substring(i,g)),i=t):t=g+1}else t+=1;(!r||t>=e.length)&&n.push(e.substring(i,e.length))}return n}function N(e){let n=e.staticRoutes.map(i=>({regexp:new RegExp(i.namedRegex),page:i.page})),t=e.dynamicRoutes?.map(i=>({regexp:new RegExp(i.namedRegex),page:i.page}))||[];return async function(a,g){let o=new URL(a.url).pathname,r={};if(e.nextConfig?.basePath&&o.startsWith(e.nextConfig.basePath)&&(o=o.replace(e.nextConfig.basePath,"")||"/"),e.nextConfig?.i18n)for(let s of e.nextConfig.i18n.locales){let u=new RegExp(`^/${s}($|/)`,"i");if(o.match(u)){o=o.replace(u,"/")||"/";break}}for(let s of n)if(s.regexp.exec(o)){r.name=s.page;break}if(!r.name){let s=E(o);for(let u of t||[]){if(s&&!E(u.page))continue;let d=u.regexp.exec(o);if(d){r={name:u.page,params:d.groups};break}}}let x=await m({waitUntil:g.waitUntil},()=>_ENTRIES[`middleware_${e.name}`].default.call({},{request:{url:a.url,method:a.method,headers:y(a.headers),ip:c(a.headers,l.Ip),geo:{city:c(a.headers,l.City,!0),country:c(a.headers,l.Country,!0),latitude:c(a.headers,l.Latitude),longitude:c(a.headers,l.Longitude),region:c(a.headers,l.Region,!0)},nextConfig:e.nextConfig,page:r,body:a.body}}));return x.waitUntil&&g.waitUntil(x.waitUntil),x.response}}function c(e,n,t=!1){let i=e.get(n)||void 0;return t&&i?decodeURIComponent(i):i}function E(e){return e==="/api"||e.startsWith("/api/")}var l;(function(o){o.City="x-vercel-ip-city",o.Country="x-vercel-ip-country",o.Ip="x-real-ip",o.Latitude="x-vercel-ip-latitude",o.Longitude="x-vercel-ip-longitude",o.Region="x-vercel-ip-country-region"})(l||(l={}));\n';
|
10248
10248
|
}
|
10249
10249
|
});
|
10250
10250
|
|
@@ -10367,7 +10367,7 @@ __export(src_exports, {
|
|
10367
10367
|
});
|
10368
10368
|
module.exports = __toCommonJS(src_exports);
|
10369
10369
|
var import_build_utils3 = require("@vercel/build-utils");
|
10370
|
-
var
|
10370
|
+
var import_superstatic = __toESM(require_superstatic());
|
10371
10371
|
var import_nft2 = require("@vercel/nft");
|
10372
10372
|
var import_async_sema3 = __toESM(require_lib());
|
10373
10373
|
var import_escape_string_regexp3 = __toESM(require_escape_string_regexp());
|
@@ -13083,7 +13083,6 @@ var import_resolve_from = __toESM(require_resolve_from());
|
|
13083
13083
|
var import_fs_extra5 = __toESM(require_lib2());
|
13084
13084
|
var import_escape_string_regexp2 = __toESM(require_escape_string_regexp());
|
13085
13085
|
var import_pretty_bytes3 = __toESM(require_pretty_bytes());
|
13086
|
-
var import_superstatic = __toESM(require_superstatic());
|
13087
13086
|
var CORRECT_NOT_FOUND_ROUTES_VERSION = "v12.0.1";
|
13088
13087
|
var CORRECT_MIDDLEWARE_ORDER_VERSION = "v12.1.7-canary.29";
|
13089
13088
|
var NEXT_DATA_MIDDLEWARE_RESOLVING_VERSION = "v12.1.7-canary.33";
|
@@ -13127,6 +13126,7 @@ async function serverBuild({
|
|
13127
13126
|
dynamicPrefix,
|
13128
13127
|
entryDirectory,
|
13129
13128
|
outputDirectory,
|
13129
|
+
redirects,
|
13130
13130
|
beforeFilesRewrites,
|
13131
13131
|
afterFilesRewrites,
|
13132
13132
|
fallbackRewrites,
|
@@ -13147,6 +13147,7 @@ async function serverBuild({
|
|
13147
13147
|
prerenderManifest,
|
13148
13148
|
appPathRoutesManifest,
|
13149
13149
|
omittedPrerenderRoutes,
|
13150
|
+
trailingSlashRedirects,
|
13150
13151
|
isCorrectLocaleAPIRoutes,
|
13151
13152
|
requiredServerFilesManifest,
|
13152
13153
|
variantsManifest,
|
@@ -13519,7 +13520,7 @@ async function serverBuild({
|
|
13519
13520
|
"utf8"
|
13520
13521
|
);
|
13521
13522
|
let launcher = launcherData.replace(
|
13522
|
-
|
13523
|
+
/(?:var|const) conf = __NEXT_CONFIG__/,
|
13523
13524
|
`const conf = ${JSON.stringify({
|
13524
13525
|
...requiredServerFilesManifest.config,
|
13525
13526
|
distDir: import_path4.default.relative(
|
@@ -14288,22 +14289,6 @@ ${JSON.stringify(
|
|
14288
14289
|
lambdas[dataPathname] = lambdas[srcPathname];
|
14289
14290
|
}
|
14290
14291
|
}
|
14291
|
-
const internalRedirects = [];
|
14292
|
-
const userRedirects = [];
|
14293
|
-
for (const redirect of routesManifest.redirects || []) {
|
14294
|
-
if (redirect.internal) {
|
14295
|
-
internalRedirects.push(redirect);
|
14296
|
-
} else {
|
14297
|
-
userRedirects.push(redirect);
|
14298
|
-
}
|
14299
|
-
}
|
14300
|
-
const internalRedirectRoutes = (0, import_superstatic.convertRedirects)(internalRedirects).map(
|
14301
|
-
(item) => {
|
14302
|
-
item.continue = true;
|
14303
|
-
return item;
|
14304
|
-
}
|
14305
|
-
);
|
14306
|
-
const userRedirectRoutes = (0, import_superstatic.convertRedirects)(userRedirects);
|
14307
14292
|
return {
|
14308
14293
|
wildcard: wildcardConfig,
|
14309
14294
|
images: getImagesConfig(imagesManifest),
|
@@ -14337,7 +14322,7 @@ ${JSON.stringify(
|
|
14337
14322
|
// force trailingSlashRedirect to the very top so it doesn't
|
14338
14323
|
// conflict with i18n routes that don't have or don't have the
|
14339
14324
|
// trailing slash
|
14340
|
-
...
|
14325
|
+
...trailingSlashRedirects,
|
14341
14326
|
...privateOutputs.routes,
|
14342
14327
|
// normalize _next/data URL before processing redirects
|
14343
14328
|
...normalizeNextDataRoute(true),
|
@@ -14442,7 +14427,7 @@ ${JSON.stringify(
|
|
14442
14427
|
}
|
14443
14428
|
] : [],
|
14444
14429
|
...headers,
|
14445
|
-
...
|
14430
|
+
...redirects,
|
14446
14431
|
// middleware comes directly after redirects but before
|
14447
14432
|
// beforeFiles rewrites as middleware is not a "file" route
|
14448
14433
|
...routesManifest?.skipMiddlewareUrlNormalize ? denormalizeNextDataRoute(true) : [],
|
@@ -15279,17 +15264,17 @@ More info: http://err.sh/vercel/vercel/next-functions-config-optimized-lambdas`
|
|
15279
15264
|
case 2:
|
15280
15265
|
case 3:
|
15281
15266
|
case 4: {
|
15282
|
-
redirects.push(...(0,
|
15267
|
+
redirects.push(...(0, import_superstatic.convertRedirects)(routesManifest.redirects));
|
15283
15268
|
if (Array.isArray(routesManifest.rewrites)) {
|
15284
15269
|
afterFilesRewrites.push(
|
15285
|
-
...(0,
|
15270
|
+
...(0, import_superstatic.convertRewrites)(
|
15286
15271
|
routesManifest.rewrites,
|
15287
15272
|
routesManifest.i18n ? ["nextInternalLocale"] : void 0
|
15288
15273
|
)
|
15289
15274
|
);
|
15290
15275
|
} else {
|
15291
15276
|
beforeFilesRewrites.push(
|
15292
|
-
...(0,
|
15277
|
+
...(0, import_superstatic.convertRewrites)(routesManifest.rewrites.beforeFiles).map((r) => {
|
15293
15278
|
if ("check" in r) {
|
15294
15279
|
if (beforeFilesShouldContinue) {
|
15295
15280
|
delete r.check;
|
@@ -15301,14 +15286,14 @@ More info: http://err.sh/vercel/vercel/next-functions-config-optimized-lambdas`
|
|
15301
15286
|
})
|
15302
15287
|
);
|
15303
15288
|
afterFilesRewrites.push(
|
15304
|
-
...(0,
|
15289
|
+
...(0, import_superstatic.convertRewrites)(routesManifest.rewrites.afterFiles)
|
15305
15290
|
);
|
15306
15291
|
fallbackRewrites.push(
|
15307
|
-
...(0,
|
15292
|
+
...(0, import_superstatic.convertRewrites)(routesManifest.rewrites.fallback)
|
15308
15293
|
);
|
15309
15294
|
}
|
15310
15295
|
if (routesManifest.headers) {
|
15311
|
-
headers.push(...(0,
|
15296
|
+
headers.push(...(0, import_superstatic.convertHeaders)(routesManifest.headers));
|
15312
15297
|
}
|
15313
15298
|
if (import_semver4.default.gte(nextVersion, REDIRECTS_NO_STATIC_NEXT_VERSION)) {
|
15314
15299
|
redirects.forEach(
|
@@ -15858,6 +15843,7 @@ More info: http://err.sh/vercel/vercel/next-functions-config-optimized-lambdas`
|
|
15858
15843
|
afterFilesRewrites,
|
15859
15844
|
fallbackRewrites,
|
15860
15845
|
workPath,
|
15846
|
+
redirects,
|
15861
15847
|
nodeVersion,
|
15862
15848
|
dynamicPrefix,
|
15863
15849
|
routesManifest,
|
@@ -15871,6 +15857,7 @@ More info: http://err.sh/vercel/vercel/next-functions-config-optimized-lambdas`
|
|
15871
15857
|
buildId,
|
15872
15858
|
escapedBuildId,
|
15873
15859
|
outputDirectory,
|
15860
|
+
trailingSlashRedirects,
|
15874
15861
|
requiredServerFilesManifest,
|
15875
15862
|
privateOutputs,
|
15876
15863
|
hasIsr404Page,
|
package/dist/server-launcher.js
CHANGED
@@ -1,6 +1,38 @@
|
|
1
1
|
"use strict";
|
2
|
+
|
3
|
+
// src/vercel-request-context.ts
|
4
|
+
var SYMBOL_FOR_REQ_CONTEXT = Symbol.for("@vercel/request-context");
|
5
|
+
function getContext() {
|
6
|
+
const fromSymbol = globalThis;
|
7
|
+
return fromSymbol[SYMBOL_FOR_REQ_CONTEXT]?.get?.() ?? {};
|
8
|
+
}
|
9
|
+
|
10
|
+
// src/next-request-context.ts
|
11
|
+
var import_async_hooks = require("async_hooks");
|
12
|
+
var name = "@next/request-context";
|
13
|
+
var NEXT_REQUEST_CONTEXT_SYMBOL = Symbol.for(name);
|
14
|
+
var INTERNAL_STORAGE_FIELD_SYMBOL = Symbol.for("internal.storage");
|
15
|
+
function getOrCreateContextSingleton() {
|
16
|
+
const _globalThis = globalThis;
|
17
|
+
if (!_globalThis[NEXT_REQUEST_CONTEXT_SYMBOL]) {
|
18
|
+
const storage = new import_async_hooks.AsyncLocalStorage();
|
19
|
+
const Context = {
|
20
|
+
get: () => storage.getStore(),
|
21
|
+
[INTERNAL_STORAGE_FIELD_SYMBOL]: storage
|
22
|
+
};
|
23
|
+
_globalThis[NEXT_REQUEST_CONTEXT_SYMBOL] = Context;
|
24
|
+
}
|
25
|
+
return _globalThis[NEXT_REQUEST_CONTEXT_SYMBOL];
|
26
|
+
}
|
27
|
+
var NextRequestContext = getOrCreateContextSingleton();
|
28
|
+
function withNextRequestContext(value, callback) {
|
29
|
+
const storage = NextRequestContext[INTERNAL_STORAGE_FIELD_SYMBOL];
|
30
|
+
return storage.run(value, callback);
|
31
|
+
}
|
32
|
+
|
33
|
+
// src/server-launcher.ts
|
2
34
|
process.chdir(__dirname);
|
3
|
-
|
35
|
+
var region = process.env.VERCEL_REGION || process.env.NOW_REGION;
|
4
36
|
if (!process.env.NODE_ENV) {
|
5
37
|
process.env.NODE_ENV = region === "dev1" ? "development" : "production";
|
6
38
|
}
|
@@ -11,19 +43,25 @@ if (process.env.NODE_ENV !== "production" && region !== "dev1") {
|
|
11
43
|
process.env.NODE_ENV = "production";
|
12
44
|
}
|
13
45
|
// @preserve pre-next-server-target
|
14
|
-
|
46
|
+
var NextServer = require("__NEXT_SERVER_PATH__").default;
|
15
47
|
// @preserve next-server-preload-target
|
16
|
-
|
17
|
-
|
48
|
+
var conf = __NEXT_CONFIG__;
|
49
|
+
var nextServer = new NextServer({
|
18
50
|
conf,
|
19
51
|
dir: ".",
|
20
52
|
minimalMode: true,
|
21
53
|
customServer: false
|
22
54
|
});
|
23
|
-
|
55
|
+
var serve = (handler) => async (req, res) => {
|
24
56
|
try {
|
25
|
-
|
26
|
-
await
|
57
|
+
const vercelContext = getContext();
|
58
|
+
await withNextRequestContext(
|
59
|
+
{ waitUntil: vercelContext.waitUntil },
|
60
|
+
() => {
|
61
|
+
// @preserve entryDirectory handler
|
62
|
+
return handler(req, res);
|
63
|
+
}
|
64
|
+
);
|
27
65
|
} catch (err) {
|
28
66
|
console.error(err);
|
29
67
|
process.exit(1);
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vercel/next",
|
3
|
-
"version": "4.
|
3
|
+
"version": "4.4.0",
|
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": "8.
|
33
|
+
"@vercel/build-utils": "8.6.0",
|
34
34
|
"@vercel/routing-utils": "3.1.0",
|
35
35
|
"async-sema": "3.0.1",
|
36
36
|
"buffer-crc32": "0.2.13",
|