@edgeone/opennextjs-pages 0.1.2 → 0.1.4
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.
|
@@ -3497,8 +3497,67 @@ var module = (function() {
|
|
|
3497
3497
|
// Middleware \u8BF7\u6C42\u5904\u7406
|
|
3498
3498
|
// ============================================================
|
|
3499
3499
|
|
|
3500
|
-
// \u5B58\u50A8 middleware \u51FD\u6570
|
|
3500
|
+
// \u5B58\u50A8 middleware \u51FD\u6570\u548C\u914D\u7F6E
|
|
3501
3501
|
let __middleware_fn__ = null;
|
|
3502
|
+
let __middleware_config__ = null;
|
|
3503
|
+
|
|
3504
|
+
/**
|
|
3505
|
+
* \u68C0\u67E5 URL \u662F\u5426\u5339\u914D matcher \u89C4\u5219
|
|
3506
|
+
* Next.js matcher \u652F\u6301\u8DEF\u5F84\u6A21\u5F0F\u548C\u6B63\u5219\u8868\u8FBE\u5F0F
|
|
3507
|
+
*/
|
|
3508
|
+
function matchesPath(pathname, matcher) {
|
|
3509
|
+
if (!matcher) return true;
|
|
3510
|
+
|
|
3511
|
+
const matchers = Array.isArray(matcher) ? matcher : [matcher];
|
|
3512
|
+
|
|
3513
|
+
for (const pattern of matchers) {
|
|
3514
|
+
if (typeof pattern === 'string') {
|
|
3515
|
+
let regex;
|
|
3516
|
+
|
|
3517
|
+
// \u68C0\u6D4B\u662F\u5426\u662F\u6B63\u5219\u8868\u8FBE\u5F0F\u683C\u5F0F
|
|
3518
|
+
const isRegexPattern = pattern.includes('(?') || pattern.includes('[^') || pattern.includes('.*') || pattern.endsWith('$');
|
|
3519
|
+
|
|
3520
|
+
if (isRegexPattern) {
|
|
3521
|
+
try {
|
|
3522
|
+
regex = new RegExp('^' + pattern + '$');
|
|
3523
|
+
} catch (e) {
|
|
3524
|
+
console.warn('[Middleware] Invalid regex pattern:', pattern, e);
|
|
3525
|
+
continue;
|
|
3526
|
+
}
|
|
3527
|
+
} else {
|
|
3528
|
+
// \u8DEF\u5F84\u6A21\u5F0F\uFF0C\u9700\u8981\u8F6C\u6362
|
|
3529
|
+
let regexPattern = pattern;
|
|
3530
|
+
regexPattern = regexPattern.split('/').join('\\\\/');
|
|
3531
|
+
|
|
3532
|
+
const parts = regexPattern.split(':');
|
|
3533
|
+
regexPattern = parts[0];
|
|
3534
|
+
for (let i = 1; i < parts.length; i++) {
|
|
3535
|
+
const part = parts[i];
|
|
3536
|
+
let j = 0;
|
|
3537
|
+
while (j < part.length && /[a-zA-Z0-9_]/.test(part[j])) {
|
|
3538
|
+
j++;
|
|
3539
|
+
}
|
|
3540
|
+
if (j < part.length && part[j] === '*') {
|
|
3541
|
+
regexPattern += '.*' + part.slice(j + 1);
|
|
3542
|
+
} else {
|
|
3543
|
+
regexPattern += '[^/]+' + part.slice(j);
|
|
3544
|
+
}
|
|
3545
|
+
}
|
|
3546
|
+
|
|
3547
|
+
regexPattern = regexPattern.split('**').join('.*');
|
|
3548
|
+
regexPattern = regexPattern.split('\\\\*').join('[^/]*');
|
|
3549
|
+
|
|
3550
|
+
regex = new RegExp('^' + regexPattern + '$');
|
|
3551
|
+
}
|
|
3552
|
+
|
|
3553
|
+
if (regex.test(pathname)) {
|
|
3554
|
+
return true;
|
|
3555
|
+
}
|
|
3556
|
+
}
|
|
3557
|
+
}
|
|
3558
|
+
|
|
3559
|
+
return false;
|
|
3560
|
+
}
|
|
3502
3561
|
|
|
3503
3562
|
/**
|
|
3504
3563
|
* \u8FD0\u884C\u4E2D\u95F4\u4EF6\u7684\u4E3B\u51FD\u6570
|
|
@@ -3508,6 +3567,7 @@ let __middleware_fn__ = null;
|
|
|
3508
3567
|
async function executeMiddleware({request}) {
|
|
3509
3568
|
try {
|
|
3510
3569
|
const url = new URL(request.url);
|
|
3570
|
+
const pathname = url.pathname;
|
|
3511
3571
|
|
|
3512
3572
|
// \u5982\u679C\u8FD8\u6CA1\u6709\u52A0\u8F7D middleware\uFF0C\u5C1D\u8BD5\u52A0\u8F7D
|
|
3513
3573
|
if (!__middleware_fn__) {
|
|
@@ -3518,6 +3578,12 @@ async function executeMiddleware({request}) {
|
|
|
3518
3578
|
// Turbopack \u5BFC\u51FA\u7684 default \u53EF\u80FD\u662F\u4E00\u4E2A\u5305\u88C5\u51FD\u6570
|
|
3519
3579
|
let exportedFn = entryModule.exports.default || entryModule.exports.middleware || entryModule.exports.proxy;
|
|
3520
3580
|
|
|
3581
|
+
// \u83B7\u53D6 middleware \u914D\u7F6E\uFF08\u5305\u542B matcher\uFF09
|
|
3582
|
+
// \u6CE8\u610F\uFF1ATurbopack \u53EF\u80FD\u5C06 config \u5BFC\u51FA\u5230\u5165\u53E3\u6A21\u5757\uFF0C\u4E5F\u53EF\u80FD\u5BFC\u51FA\u5230\u5176\u4ED6\u6A21\u5757
|
|
3583
|
+
if (entryModule.exports.config) {
|
|
3584
|
+
__middleware_config__ = entryModule.exports.config;
|
|
3585
|
+
}
|
|
3586
|
+
|
|
3521
3587
|
// \u5982\u679C\u5BFC\u51FA\u7684\u662F\u4E00\u4E2A\u5BF9\u8C61\uFF0C\u5C1D\u8BD5\u83B7\u53D6\u5176\u4E2D\u7684 handler \u6216 default
|
|
3522
3588
|
if (exportedFn && typeof exportedFn === 'object') {
|
|
3523
3589
|
exportedFn = exportedFn.handler || exportedFn.default || exportedFn.middleware || exportedFn.proxy;
|
|
@@ -3528,6 +3594,17 @@ async function executeMiddleware({request}) {
|
|
|
3528
3594
|
__middleware_fn__ = exportedFn;
|
|
3529
3595
|
}
|
|
3530
3596
|
}
|
|
3597
|
+
|
|
3598
|
+
// \u5982\u679C\u6CA1\u6709\u627E\u5230 config\uFF0C\u904D\u5386\u6240\u6709\u5DF2\u52A0\u8F7D\u7684\u6A21\u5757\u67E5\u627E
|
|
3599
|
+
// Turbopack \u6709\u65F6\u4F1A\u5C06 config \u5BFC\u51FA\u5230\u5355\u72EC\u7684\u6A21\u5757\u4E2D
|
|
3600
|
+
if (!__middleware_config__) {
|
|
3601
|
+
for (const [moduleId, mod] of Object.entries(moduleCache)) {
|
|
3602
|
+
if (mod && mod.exports && mod.exports.config && mod.exports.config.matcher) {
|
|
3603
|
+
__middleware_config__ = mod.exports.config;
|
|
3604
|
+
break;
|
|
3605
|
+
}
|
|
3606
|
+
}
|
|
3607
|
+
}
|
|
3531
3608
|
}
|
|
3532
3609
|
|
|
3533
3610
|
if (!__middleware_fn__ || typeof __middleware_fn__ !== 'function') {
|
|
@@ -3535,6 +3612,14 @@ async function executeMiddleware({request}) {
|
|
|
3535
3612
|
return fetch(request);
|
|
3536
3613
|
}
|
|
3537
3614
|
|
|
3615
|
+
// \u68C0\u67E5\u8DEF\u5F84\u662F\u5426\u5339\u914D matcher \u914D\u7F6E
|
|
3616
|
+
if (__middleware_config__ && __middleware_config__.matcher) {
|
|
3617
|
+
if (!matchesPath(pathname, __middleware_config__.matcher)) {
|
|
3618
|
+
// \u8DEF\u5F84\u4E0D\u5339\u914D\uFF0C\u8DF3\u8FC7\u4E2D\u95F4\u4EF6
|
|
3619
|
+
return null;
|
|
3620
|
+
}
|
|
3621
|
+
}
|
|
3622
|
+
|
|
3538
3623
|
// \u5C1D\u8BD5\u83B7\u53D6 NextRequest \u7C7B\uFF08\u4ECE\u5DF2\u52A0\u8F7D\u7684\u6A21\u5757\u4E2D\uFF09
|
|
3539
3624
|
let NextRequestClass = null;
|
|
3540
3625
|
let NextResponseClass = null;
|
package/dist/build/routes.js
CHANGED
|
@@ -200,7 +200,20 @@ var createRouteMeta = async (ctx) => {
|
|
|
200
200
|
fs.mkdirSync(serverHandlerDir, { recursive: true });
|
|
201
201
|
}
|
|
202
202
|
const metaFilePath = path.join(serverHandlerDir, "meta.json");
|
|
203
|
+
const updatedRedirects = [];
|
|
204
|
+
if (imagesManifest?.images?.path) {
|
|
205
|
+
const imagePath = imagesManifest.images.path;
|
|
206
|
+
const nextImageRedirect = {
|
|
207
|
+
source: `${imagePath}\\?url=*`,
|
|
208
|
+
destination: ":splat",
|
|
209
|
+
statusCode: 302
|
|
210
|
+
};
|
|
211
|
+
updatedRedirects.push(nextImageRedirect);
|
|
212
|
+
}
|
|
203
213
|
const metaData = {
|
|
214
|
+
conf: {
|
|
215
|
+
redirects: updatedRedirects
|
|
216
|
+
},
|
|
204
217
|
nextRoutes: routesArray
|
|
205
218
|
};
|
|
206
219
|
fs.writeFileSync(
|
|
@@ -28,7 +28,7 @@ module.exports = __toCommonJS(tags_handler_exports);
|
|
|
28
28
|
|
|
29
29
|
// package.json
|
|
30
30
|
var name = "@edgeone/opennextjs-pages";
|
|
31
|
-
var version = "0.1.
|
|
31
|
+
var version = "0.1.4";
|
|
32
32
|
|
|
33
33
|
// src/run/handlers/tags-handler.cts
|
|
34
34
|
var import_request_context = require("./request-context.cjs");
|