From f10f8af0f66d8005cb8152d201d2cbca212c70ff Mon Sep 17 00:00:00 2001 From: oiov Date: Mon, 26 May 2025 17:42:37 +0800 Subject: [PATCH] chore --- lib/geo.ts | 2 ++ middleware.ts | 11 ++----- public/sitemap-0.xml | 72 ++++++++++++++++++++++---------------------- public/sw.js.map | 2 +- 4 files changed, 41 insertions(+), 46 deletions(-) diff --git a/lib/geo.ts b/lib/geo.ts index 55bb55c..fdcb482 100644 --- a/lib/geo.ts +++ b/lib/geo.ts @@ -6,6 +6,8 @@ import UAParser from "ua-parser-js"; const isVercel = process.env.VERCEL; export async function getGeolocation(req: NextAuthRequest) { + console.log("[Runtime Env]", isVercel ? "Vercel" : "Other"); + if (isVercel) { return geolocation(req); } else { diff --git a/middleware.ts b/middleware.ts index 90d7ffb..1c6e34f 100644 --- a/middleware.ts +++ b/middleware.ts @@ -1,16 +1,9 @@ -import { NextResponse, userAgent } from "next/server"; -import { geolocation } from "@vercel/functions"; +import { NextResponse } from "next/server"; import { auth } from "auth"; import { NextAuthRequest } from "next-auth/lib"; -import UAParser from "ua-parser-js"; import { siteConfig } from "./config/site"; -import { - extractRealIP, - getClientGeolocation, - getGeolocation, - getUserAgent, -} from "./lib/geo"; +import { extractRealIP, getGeolocation, getUserAgent } from "./lib/geo"; export const config = { matcher: ["/((?!api|_next/static|_next/image|favicon.ico).*)"], diff --git a/public/sitemap-0.xml b/public/sitemap-0.xml index 4ccd89a..4ff8978 100644 --- a/public/sitemap-0.xml +++ b/public/sitemap-0.xml @@ -1,39 +1,39 @@ -https://wr.do/robots.txt2025-05-26T08:07:23.282Zdaily0.7 -https://wr.do/pricing2025-05-26T08:07:23.282Zdaily0.7 -https://wr.do/privacy2025-05-26T08:07:23.282Zdaily0.7 -https://wr.do/terms2025-05-26T08:07:23.282Zdaily0.7 -https://wr.do/docs2025-05-26T08:07:23.282Zdaily0.7 -https://wr.do/docs/developer/authentification2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/developer/cloudflare2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/developer/cloudflare-email-worker2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/developer/components2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/developer/config-files2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/developer/database2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/developer/email2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/developer/installation2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/developer/markdown-files2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/developer/quick-start2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/dns-records2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/emails2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/examples/cloudflare2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/examples/other2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/examples/vercel2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/examples/zeabur2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/open-api2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/open-api/icon2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/open-api/markdown2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/open-api/meta-info2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/open-api/qrcode2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/open-api/screenshot2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/open-api/text2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/plan2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/quick-start2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/short-urls2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/docs/wroom2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/manifest.json2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/chat2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/password-prompt2025-05-26T08:07:23.283Zdaily0.7 -https://wr.do/opengraph-image.jpg2025-05-26T08:07:23.283Zdaily0.7 +https://wr.do/robots.txt2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/pricing2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/privacy2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/terms2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/developer/authentification2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/developer/cloudflare2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/developer/cloudflare-email-worker2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/developer/components2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/developer/config-files2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/developer/database2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/developer/email2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/developer/installation2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/developer/markdown-files2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/developer/quick-start2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/dns-records2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/emails2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/examples/cloudflare2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/examples/other2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/examples/vercel2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/examples/zeabur2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/open-api2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/open-api/icon2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/open-api/markdown2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/open-api/meta-info2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/open-api/qrcode2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/open-api/screenshot2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/open-api/text2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/plan2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/quick-start2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/short-urls2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/docs/wroom2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/chat2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/password-prompt2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/manifest.json2025-05-26T09:40:46.922Zdaily0.7 +https://wr.do/opengraph-image.jpg2025-05-26T09:40:46.922Zdaily0.7 \ No newline at end of file diff --git a/public/sw.js.map b/public/sw.js.map index 365d8ea..320a40e 100644 --- a/public/sw.js.map +++ b/public/sw.js.map @@ -1 +1 @@ -{"version":3,"file":"sw.js","sources":["../../../../../../private/var/folders/9b/3qmyp8zd2xvdspdrp149fyg00000gn/T/338d65af352b502e056913b2abb196e3/sw.js"],"sourcesContent":["import {registerRoute as workbox_routing_registerRoute} from '/Users/songjunxi/Desktop/repos/wrdo-app/wr.do/node_modules/.pnpm/workbox-routing@6.6.0/node_modules/workbox-routing/registerRoute.mjs';\nimport {NetworkFirst as workbox_strategies_NetworkFirst} from '/Users/songjunxi/Desktop/repos/wrdo-app/wr.do/node_modules/.pnpm/workbox-strategies@6.6.0/node_modules/workbox-strategies/NetworkFirst.mjs';\nimport {NetworkOnly as workbox_strategies_NetworkOnly} from '/Users/songjunxi/Desktop/repos/wrdo-app/wr.do/node_modules/.pnpm/workbox-strategies@6.6.0/node_modules/workbox-strategies/NetworkOnly.mjs';\nimport {clientsClaim as workbox_core_clientsClaim} from '/Users/songjunxi/Desktop/repos/wrdo-app/wr.do/node_modules/.pnpm/workbox-core@6.6.0/node_modules/workbox-core/clientsClaim.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\nimportScripts(\n \n);\n\n\n\n\n\n\n\nself.skipWaiting();\n\nworkbox_core_clientsClaim();\n\n\n\nworkbox_routing_registerRoute(\"/\", new workbox_strategies_NetworkFirst({ \"cacheName\":\"start-url\", plugins: [{ cacheWillUpdate: async ({ request, response, event, state }) => { if (response && response.type === 'opaqueredirect') { return new Response(response.body, { status: 200, statusText: 'OK', headers: response.headers }) } return response } }] }), 'GET');\nworkbox_routing_registerRoute(/.*/i, new workbox_strategies_NetworkOnly({ \"cacheName\":\"dev\", plugins: [] }), 'GET');\n\n\n\n\n"],"names":["importScripts","self","skipWaiting","workbox_core_clientsClaim","workbox_routing_registerRoute","workbox_strategies_NetworkFirst","plugins","cacheWillUpdate","request","response","event","state","type","Response","body","status","statusText","headers","workbox_strategies_NetworkOnly"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"sw.js","sources":["../../../../../../private/var/folders/9b/3qmyp8zd2xvdspdrp149fyg00000gn/T/9a29f1036cab5cd3cb023bad213cb18a/sw.js"],"sourcesContent":["import {registerRoute as workbox_routing_registerRoute} from '/Users/songjunxi/Desktop/repos/wrdo-app/wr.do/node_modules/.pnpm/workbox-routing@6.6.0/node_modules/workbox-routing/registerRoute.mjs';\nimport {NetworkFirst as workbox_strategies_NetworkFirst} from '/Users/songjunxi/Desktop/repos/wrdo-app/wr.do/node_modules/.pnpm/workbox-strategies@6.6.0/node_modules/workbox-strategies/NetworkFirst.mjs';\nimport {NetworkOnly as workbox_strategies_NetworkOnly} from '/Users/songjunxi/Desktop/repos/wrdo-app/wr.do/node_modules/.pnpm/workbox-strategies@6.6.0/node_modules/workbox-strategies/NetworkOnly.mjs';\nimport {clientsClaim as workbox_core_clientsClaim} from '/Users/songjunxi/Desktop/repos/wrdo-app/wr.do/node_modules/.pnpm/workbox-core@6.6.0/node_modules/workbox-core/clientsClaim.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\nimportScripts(\n \n);\n\n\n\n\n\n\n\nself.skipWaiting();\n\nworkbox_core_clientsClaim();\n\n\n\nworkbox_routing_registerRoute(\"/\", new workbox_strategies_NetworkFirst({ \"cacheName\":\"start-url\", plugins: [{ cacheWillUpdate: async ({ request, response, event, state }) => { if (response && response.type === 'opaqueredirect') { return new Response(response.body, { status: 200, statusText: 'OK', headers: response.headers }) } return response } }] }), 'GET');\nworkbox_routing_registerRoute(/.*/i, new workbox_strategies_NetworkOnly({ \"cacheName\":\"dev\", plugins: [] }), 'GET');\n\n\n\n\n"],"names":["importScripts","self","skipWaiting","workbox_core_clientsClaim","workbox_routing_registerRoute","workbox_strategies_NetworkFirst","plugins","cacheWillUpdate","request","response","event","state","type","Response","body","status","statusText","headers","workbox_strategies_NetworkOnly"],"mappings":"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"} \ No newline at end of file