Release 202505281348
This commit is contained in:
@@ -113,3 +113,28 @@ export function urlDomain(url: URL | string) {
|
||||
}
|
||||
return url.origin
|
||||
}
|
||||
|
||||
export function separateServiceUrlsByType(allServiceUrls: string[]) {
|
||||
const result: {
|
||||
web: string[]
|
||||
onion: string[]
|
||||
i2p: string[]
|
||||
} = {
|
||||
web: [],
|
||||
onion: [],
|
||||
i2p: [],
|
||||
}
|
||||
|
||||
for (const url of allServiceUrls) {
|
||||
const parsedUrl = new URL(url)
|
||||
if (parsedUrl.origin.endsWith('.onion')) {
|
||||
result.onion.push(url)
|
||||
} else if (parsedUrl.origin.endsWith('.b32.i2p')) {
|
||||
result.i2p.push(url)
|
||||
} else {
|
||||
result.web.push(url)
|
||||
}
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ export const zodUrlOptionalProtocol = z.preprocess(
|
||||
const cleanInput = input.trim().replace(/\/$/, '')
|
||||
return !/^\w+:\/\//i.test(cleanInput) ? `https://${cleanInput}` : cleanInput
|
||||
},
|
||||
z.string().refine((value) => /^(https?):\/\/(?=.*\.[a-z]{2,})[^\s$.?#].[^\s]*$/i.test(value), {
|
||||
z.string().refine((value) => /^(https?):\/\/(?=.*\.[a-z0-9]{2,})[^\s$.?#].[^\s]*$/i.test(value), {
|
||||
message: 'Invalid URL',
|
||||
})
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user