chore(deps): Update Next.js and related dependencies to version 15.1.7

- Upgrade Next.js from 15.1.0 to 15.1.7
- Update package.json and package-lock.json with new dependency versions
- Modify dev script to specify localhost and port 13001
- Rename project from "proxy-go-web" to "web"
This commit is contained in:
wood chen 2025-02-17 18:38:21 +08:00
parent f7a52a1be5
commit 627a63caad
3 changed files with 144 additions and 145 deletions

View File

@ -82,7 +82,8 @@ export default function ConfigPage() {
extensionMap: {} as Record<string, string>,
sizeThreshold: 0,
maxSize: 0,
sizeUnit: 'MB' as 'B' | 'KB' | 'MB' | 'GB',
sizeThresholdUnit: 'MB' as 'B' | 'KB' | 'MB' | 'GB',
maxSizeUnit: 'MB' as 'B' | 'KB' | 'MB' | 'GB',
})
const [fixedPathDialogOpen, setFixedPathDialogOpen] = useState(false)
const [editingFixedPath, setEditingFixedPath] = useState<FixedPath | null>(null)
@ -101,7 +102,8 @@ export default function ConfigPage() {
defaultTarget: string;
sizeThreshold: number;
maxSize: number;
sizeUnit: 'B' | 'KB' | 'MB' | 'GB';
sizeThresholdUnit: 'B' | 'KB' | 'MB' | 'GB';
maxSizeUnit: 'B' | 'KB' | 'MB' | 'GB';
} | null>(null);
const [deletingPath, setDeletingPath] = useState<string | null>(null)
@ -222,7 +224,8 @@ export default function ConfigPage() {
extensionMap: {},
sizeThreshold: 0,
maxSize: 0,
sizeUnit: 'MB',
sizeThresholdUnit: 'MB',
maxSizeUnit: 'MB',
})
}
})
@ -257,7 +260,7 @@ export default function ConfigPage() {
if (!config) return
const data = editingPathData || newPathData
const { path, defaultTarget, sizeThreshold, maxSize, sizeUnit } = data
const { path, defaultTarget, sizeThreshold, maxSize, sizeThresholdUnit, maxSizeUnit } = data
if (!path || !defaultTarget) {
toast({
@ -269,8 +272,8 @@ export default function ConfigPage() {
}
// 转换大小为字节
const sizeThresholdBytes = convertToBytes(sizeThreshold, sizeUnit)
const maxSizeBytes = convertToBytes(maxSize, sizeUnit)
const sizeThresholdBytes = convertToBytes(sizeThreshold, sizeThresholdUnit)
const maxSizeBytes = convertToBytes(maxSize, maxSizeUnit)
// 验证阈值
if (maxSizeBytes > 0 && sizeThresholdBytes >= maxSizeBytes) {
@ -308,7 +311,8 @@ export default function ConfigPage() {
extensionMap: {},
sizeThreshold: 0,
maxSize: 0,
sizeUnit: 'MB',
sizeThresholdUnit: 'MB',
maxSizeUnit: 'MB',
})
}
@ -547,7 +551,8 @@ export default function ConfigPage() {
extensionMap: {},
sizeThreshold: 0,
maxSize: 0,
sizeUnit: 'MB',
sizeThresholdUnit: 'MB',
maxSizeUnit: 'MB',
})
setPathDialogOpen(true)
}
@ -667,18 +672,19 @@ export default function ConfigPage() {
defaultTarget: target,
sizeThreshold: 0,
maxSize: 0,
sizeUnit: 'MB'
sizeThresholdUnit: 'MB',
maxSizeUnit: 'MB'
})
} else {
const sizeThreshold = target.SizeThreshold || 0
const maxSize = target.MaxSize || 0
const { value, unit } = convertBytesToUnit(sizeThreshold)
const { value: thresholdValue, unit: thresholdUnit } = convertBytesToUnit(target.SizeThreshold || 0)
const { value: maxValue, unit: maxUnit } = convertBytesToUnit(target.MaxSize || 0)
setEditingPathData({
path,
defaultTarget: target.DefaultTarget,
sizeThreshold: value,
maxSize: maxSize,
sizeUnit: unit
sizeThreshold: thresholdValue,
maxSize: maxValue,
sizeThresholdUnit: thresholdUnit,
maxSizeUnit: maxUnit
})
}
setPathDialogOpen(true)
@ -809,18 +815,18 @@ export default function ConfigPage() {
/>
<select
className="w-24 rounded-md border border-input bg-background px-3"
value={editingPathData?.sizeUnit ?? newPathData.sizeUnit}
value={editingPathData?.sizeThresholdUnit ?? newPathData.sizeThresholdUnit}
onChange={(e) => {
const unit = e.target.value as 'B' | 'KB' | 'MB' | 'GB'
if (editingPathData) {
setEditingPathData({
...editingPathData,
sizeUnit: unit,
sizeThresholdUnit: unit,
})
} else {
setNewPathData({
...newPathData,
sizeUnit: unit,
sizeThresholdUnit: unit,
})
}
}}
@ -855,18 +861,18 @@ export default function ConfigPage() {
/>
<select
className="w-24 rounded-md border border-input bg-background px-3"
value={editingPathData?.sizeUnit ?? newPathData.sizeUnit}
value={editingPathData?.maxSizeUnit ?? newPathData.maxSizeUnit}
onChange={(e) => {
const unit = e.target.value as 'B' | 'KB' | 'MB' | 'GB'
if (editingPathData) {
setEditingPathData({
...editingPathData,
sizeUnit: unit,
maxSizeUnit: unit,
})
} else {
setNewPathData({
...newPathData,
sizeUnit: unit,
maxSizeUnit: unit,
})
}
}}
@ -892,7 +898,8 @@ export default function ConfigPage() {
<TableRow>
<TableHead></TableHead>
<TableHead></TableHead>
<TableHead></TableHead>
<TableHead></TableHead>
<TableHead></TableHead>
<TableHead></TableHead>
<TableHead></TableHead>
</TableRow>
@ -905,78 +912,70 @@ export default function ConfigPage() {
{typeof target === 'string' ? target : target.DefaultTarget}
</TableCell>
<TableCell>
{typeof target === 'object' && target.SizeThreshold ? (
<span title={`${target.SizeThreshold} 字节`}>
{formatBytes(target.SizeThreshold)}
</span>
) : '-'}
</TableCell>
<TableCell>
{typeof target === 'object' && target.ExtensionMap ? (
<div className="space-y-4">
<Table>
<TableHeader>
<TableRow>
<TableHead className="w-1/3"></TableHead>
<TableHead className="w-1/2"></TableHead>
<TableHead className="w-1/6"></TableHead>
</TableRow>
</TableHeader>
<TableBody>
{Object.entries(target.ExtensionMap).map(([ext, url]) => (
<TableRow key={ext}>
<TableCell>{ext}</TableCell>
<TableCell>
<span title={url}>{truncateUrl(url)}</span>
</TableCell>
<TableCell>
<div className="flex space-x-2">
<Button
variant="ghost"
size="icon"
className="h-6 w-6"
onClick={() => handleExtensionMapEdit(path, ext, url)}
>
<Edit className="h-3 w-3" />
</Button>
<Button
variant="ghost"
size="icon"
className="h-6 w-6"
onClick={() => deleteExtensionMap(path, ext)}
>
<Trash2 className="h-3 w-3" />
</Button>
</div>
</TableCell>
</TableRow>
))}
</TableBody>
</Table>
<div className="flex justify-end">
<Button
variant="outline"
size="sm"
onClick={() => handleExtensionMapEdit(path)}
>
<Plus className="w-3 h-3 mr-2" />
</Button>
</div>
</div>
) : (
<div className="flex justify-end">
<Button
variant="outline"
size="sm"
onClick={() => handleExtensionMapEdit(path)}
>
<Plus className="w-3 h-3 mr-2" />
</Button>
{typeof target === 'object' && (
<div>
<div>: {target.SizeThreshold ? formatBytes(target.SizeThreshold) : '-'}</div>
<div>: {target.MaxSize ? formatBytes(target.MaxSize) : '-'}</div>
</div>
)}
</TableCell>
<TableCell>
{typeof target === 'object' && target.ExtensionMap && Object.keys(target.ExtensionMap).length > 0 ? (
<Table>
<TableHeader>
<TableRow>
<TableHead className="w-1/3"></TableHead>
<TableHead className="w-1/2"></TableHead>
<TableHead className="w-1/6"></TableHead>
</TableRow>
</TableHeader>
<TableBody>
{Object.entries(target.ExtensionMap).map(([ext, url]) => (
<TableRow key={ext}>
<TableCell className="py-2">{ext}</TableCell>
<TableCell className="py-2">
<span title={url}>{truncateUrl(url)}</span>
</TableCell>
<TableCell className="py-2">
<div className="flex space-x-2">
<Button
variant="ghost"
size="icon"
className="h-6 w-6"
onClick={() => handleExtensionMapEdit(path, ext, url)}
>
<Edit className="h-3 w-3" />
</Button>
<Button
variant="ghost"
size="icon"
className="h-6 w-6"
onClick={() => deleteExtensionMap(path, ext)}
>
<Trash2 className="h-3 w-3" />
</Button>
</div>
</TableCell>
</TableRow>
))}
</TableBody>
</Table>
) : (
<div className="text-center text-sm text-muted-foreground">
</div>
)}
<div className="mt-2 flex justify-end">
<Button
variant="outline"
size="sm"
onClick={() => handleExtensionMapEdit(path)}
>
<Plus className="w-3 h-3 mr-2" />
</Button>
</div>
</TableCell>
<TableCell>
<div className="flex space-x-2">
<Button

102
web/package-lock.json generated
View File

@ -1,11 +1,11 @@
{
"name": "proxy-go-web",
"name": "web",
"version": "0.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "proxy-go-web",
"name": "web",
"version": "0.1.0",
"dependencies": {
"@radix-ui/react-alert-dialog": "^1.1.6",
@ -20,7 +20,7 @@
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"lucide-react": "^0.475.0",
"next": "15.1.0",
"next": "^15.1.7",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"recharts": "^2.15.1",
@ -745,9 +745,9 @@
}
},
"node_modules/@next/env": {
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.0.tgz",
"integrity": "sha512-UcCO481cROsqJuszPPXJnb7GGuLq617ve4xuAyyNG4VSSocJNtMU5Fsx+Lp6mlN8c7W58aZLc5y6D/2xNmaK+w==",
"version": "15.1.7",
"resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.7.tgz",
"integrity": "sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==",
"license": "MIT"
},
"node_modules/@next/eslint-plugin-next": {
@ -761,9 +761,9 @@
}
},
"node_modules/@next/swc-darwin-arm64": {
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.0.tgz",
"integrity": "sha512-ZU8d7xxpX14uIaFC3nsr4L++5ZS/AkWDm1PzPO6gD9xWhFkOj2hzSbSIxoncsnlJXB1CbLOfGVN4Zk9tg83PUw==",
"version": "15.1.7",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.7.tgz",
"integrity": "sha512-hPFwzPJDpA8FGj7IKV3Yf1web3oz2YsR8du4amKw8d+jAOHfYHYFpMkoF6vgSY4W6vB29RtZEklK9ayinGiCmQ==",
"cpu": [
"arm64"
],
@ -777,9 +777,9 @@
}
},
"node_modules/@next/swc-darwin-x64": {
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.0.tgz",
"integrity": "sha512-DQ3RiUoW2XC9FcSM4ffpfndq1EsLV0fj0/UY33i7eklW5akPUCo6OX2qkcLXZ3jyPdo4sf2flwAED3AAq3Om2Q==",
"version": "15.1.7",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.7.tgz",
"integrity": "sha512-2qoas+fO3OQKkU0PBUfwTiw/EYpN+kdAx62cePRyY1LqKtP09Vp5UcUntfZYajop5fDFTjSxCHfZVRxzi+9FYQ==",
"cpu": [
"x64"
],
@ -793,9 +793,9 @@
}
},
"node_modules/@next/swc-linux-arm64-gnu": {
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.0.tgz",
"integrity": "sha512-M+vhTovRS2F//LMx9KtxbkWk627l5Q7AqXWWWrfIzNIaUFiz2/NkOFkxCFyNyGACi5YbA8aekzCLtbDyfF/v5Q==",
"version": "15.1.7",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.7.tgz",
"integrity": "sha512-sKLLwDX709mPdzxMnRIXLIT9zaX2w0GUlkLYQnKGoXeWUhcvpCrK+yevcwCJPdTdxZEUA0mOXGLdPsGkudGdnA==",
"cpu": [
"arm64"
],
@ -809,9 +809,9 @@
}
},
"node_modules/@next/swc-linux-arm64-musl": {
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.0.tgz",
"integrity": "sha512-Qn6vOuwaTCx3pNwygpSGtdIu0TfS1KiaYLYXLH5zq1scoTXdwYfdZtwvJTpB1WrLgiQE2Ne2kt8MZok3HlFqmg==",
"version": "15.1.7",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.7.tgz",
"integrity": "sha512-zblK1OQbQWdC8fxdX4fpsHDw+VSpBPGEUX4PhSE9hkaWPrWoeIJn+baX53vbsbDRaDKd7bBNcXRovY1hEhFd7w==",
"cpu": [
"arm64"
],
@ -825,9 +825,9 @@
}
},
"node_modules/@next/swc-linux-x64-gnu": {
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.0.tgz",
"integrity": "sha512-yeNh9ofMqzOZ5yTOk+2rwncBzucc6a1lyqtg8xZv0rH5znyjxHOWsoUtSq4cUTeeBIiXXX51QOOe+VoCjdXJRw==",
"version": "15.1.7",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.7.tgz",
"integrity": "sha512-GOzXutxuLvLHFDAPsMP2zDBMl1vfUHHpdNpFGhxu90jEzH6nNIgmtw/s1MDwpTOiM+MT5V8+I1hmVFeAUhkbgQ==",
"cpu": [
"x64"
],
@ -841,9 +841,9 @@
}
},
"node_modules/@next/swc-linux-x64-musl": {
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.0.tgz",
"integrity": "sha512-t9IfNkHQs/uKgPoyEtU912MG6a1j7Had37cSUyLTKx9MnUpjj+ZDKw9OyqTI9OwIIv0wmkr1pkZy+3T5pxhJPg==",
"version": "15.1.7",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.7.tgz",
"integrity": "sha512-WrZ7jBhR7ATW1z5iEQ0ZJfE2twCNSXbpCSaAunF3BKcVeHFADSI/AW1y5Xt3DzTqPF1FzQlwQTewqetAABhZRQ==",
"cpu": [
"x64"
],
@ -857,9 +857,9 @@
}
},
"node_modules/@next/swc-win32-arm64-msvc": {
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.0.tgz",
"integrity": "sha512-WEAoHyG14t5sTavZa1c6BnOIEukll9iqFRTavqRVPfYmfegOAd5MaZfXgOGG6kGo1RduyGdTHD4+YZQSdsNZXg==",
"version": "15.1.7",
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.7.tgz",
"integrity": "sha512-LDnj1f3OVbou1BqvvXVqouJZKcwq++mV2F+oFHptToZtScIEnhNRJAhJzqAtTE2dB31qDYL45xJwrc+bLeKM2Q==",
"cpu": [
"arm64"
],
@ -873,9 +873,9 @@
}
},
"node_modules/@next/swc-win32-x64-msvc": {
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.0.tgz",
"integrity": "sha512-J1YdKuJv9xcixzXR24Dv+4SaDKc2jj31IVUEMdO5xJivMTXuE6MAdIi4qPjSymHuFG8O5wbfWKnhJUcHHpj5CA==",
"version": "15.1.7",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.7.tgz",
"integrity": "sha512-dC01f1quuf97viOfW05/K8XYv2iuBgAxJZl7mbCKEjMgdQl5JjAKJ0D2qMKZCgPWDeFbFT0Q0nYWwytEW0DWTQ==",
"cpu": [
"x64"
],
@ -1812,9 +1812,9 @@
}
},
"node_modules/@types/react": {
"version": "19.0.8",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.8.tgz",
"integrity": "sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==",
"version": "19.0.10",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz",
"integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==",
"devOptional": true,
"license": "MIT",
"dependencies": {
@ -1822,9 +1822,9 @@
}
},
"node_modules/@types/react-dom": {
"version": "19.0.3",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.3.tgz",
"integrity": "sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==",
"version": "19.0.4",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz",
"integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==",
"devOptional": true,
"license": "MIT",
"peerDependencies": {
@ -2520,9 +2520,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001699",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz",
"integrity": "sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==",
"version": "1.0.30001700",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz",
"integrity": "sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==",
"funding": [
{
"type": "opencollective",
@ -4995,12 +4995,12 @@
"license": "MIT"
},
"node_modules/next": {
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/next/-/next-15.1.0.tgz",
"integrity": "sha512-QKhzt6Y8rgLNlj30izdMbxAwjHMFANnLwDwZ+WQh5sMhyt4lEBqDK9QpvWHtIM4rINKPoJ8aiRZKg5ULSybVHw==",
"version": "15.1.7",
"resolved": "https://registry.npmjs.org/next/-/next-15.1.7.tgz",
"integrity": "sha512-GNeINPGS9c6OZKCvKypbL8GTsT5GhWPp4DM0fzkXJuXMilOO2EeFxuAY6JZbtk6XIl6Ws10ag3xRINDjSO5+wg==",
"license": "MIT",
"dependencies": {
"@next/env": "15.1.0",
"@next/env": "15.1.7",
"@swc/counter": "0.1.3",
"@swc/helpers": "0.5.15",
"busboy": "1.6.0",
@ -5015,14 +5015,14 @@
"node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
},
"optionalDependencies": {
"@next/swc-darwin-arm64": "15.1.0",
"@next/swc-darwin-x64": "15.1.0",
"@next/swc-linux-arm64-gnu": "15.1.0",
"@next/swc-linux-arm64-musl": "15.1.0",
"@next/swc-linux-x64-gnu": "15.1.0",
"@next/swc-linux-x64-musl": "15.1.0",
"@next/swc-win32-arm64-msvc": "15.1.0",
"@next/swc-win32-x64-msvc": "15.1.0",
"@next/swc-darwin-arm64": "15.1.7",
"@next/swc-darwin-x64": "15.1.7",
"@next/swc-linux-arm64-gnu": "15.1.7",
"@next/swc-linux-arm64-musl": "15.1.7",
"@next/swc-linux-x64-gnu": "15.1.7",
"@next/swc-linux-x64-musl": "15.1.7",
"@next/swc-win32-arm64-msvc": "15.1.7",
"@next/swc-win32-x64-msvc": "15.1.7",
"sharp": "^0.33.5"
},
"peerDependencies": {

View File

@ -1,9 +1,9 @@
{
"name": "proxy-go-web",
"name": "web",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"dev": "next dev --hostname localhost --port 13001",
"build": "next build",
"start": "next start",
"lint": "next lint"
@ -21,7 +21,7 @@
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"lucide-react": "^0.475.0",
"next": "15.1.0",
"next": "^15.1.7",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"recharts": "^2.15.1",