mirror of
https://github.com/woodchen-ink/proxy-go.git
synced 2025-07-18 08:31:55 +08:00
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:
parent
f7a52a1be5
commit
627a63caad
@ -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
102
web/package-lock.json
generated
@ -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": {
|
||||
|
@ -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",
|
||||
|
Loading…
x
Reference in New Issue
Block a user