feat: add search for a tld via RDAP

This commit is contained in:
Maël Gangloff
2024-12-20 17:43:35 +01:00
parent 7c606e2697
commit 1dc16d769b
9 changed files with 86 additions and 21 deletions

View File

@@ -12,16 +12,22 @@ export function DomainDiagram({domain}: { domain: Domain }) {
useEffect(() => {
const e = getLayoutedElements([
const nodes = [
domainToNode(domain),
...domainEntitiesToNode(domain, true),
tldToNode(domain.tld),
...domain.nameservers.map(nsToNode)
].flat(), [
].flat()
const edges = [
domainEntitiesToEdges(domain, true),
tldToEdge(domain),
...domainNSToEdges(domain)
].flat())
].flat()
if (domain.tld.tld !== '.') {
nodes.push(tldToNode(domain.tld))
edges.push(tldToEdge(domain))
}
const e = getLayoutedElements(nodes, edges)
setNodes(e.nodes)
setEdges(e.edges)

View File

@@ -23,7 +23,7 @@ export function DomainResult({domain}: { domain: Domain }) {
<Badge.Ribbon text={
<Tooltip
title={tld.type === 'ccTLD' ? regionNames.of(getCountryCode(tld.tld)) : tld.type === 'gTLD' ? tld?.registryOperator : undefined}>
{`.${domain.tld.tld.toUpperCase()} (${tld.type})`}
{`${(domain.tld.tld === '.' ? '' : '.') + domain.tld.tld.toUpperCase()} (${tld.type})`}
</Tooltip>
}
color={

View File

@@ -19,7 +19,7 @@ export function DomainSearchBar({onFinish}: { onFinish: (values: FieldType) => v
required: true,
message: t`Required`
}, {
pattern: /^(?=.*\.)\S*[^.\s]$/,
pattern: /^(?=.*\.)?\S*[^.\s]$/,
message: t`This domain name does not appear to be valid`,
max: 63,
min: 2

View File

@@ -47,7 +47,7 @@ export function watchlistToNodes(watchlist: Watchlist, withRegistrar = false, wi
const domains = watchlist.domains.map(domainToNode)
const entities = [...new Set(watchlist.domains.map(d => domainEntitiesToNode(d, withRegistrar)).flat())]
const tlds = [...new Set(watchlist.domains.map(d => d.tld))].map(tldToNode)
const tlds = [...new Set(watchlist.domains.map(d => d.tld))].filter(t => t.tld !== '.').map(tldToNode)
const nameservers = [...new Set(watchlist.domains.map(d => d.nameservers))].flat().map(nsToNode, withRegistrar)
return [...domains, ...entities, ...nameservers, ...(withTld ? tlds : [])]