from ...models import DesiredRecord from ...normalizer import normalize_hostname from ...npm_client import NpmClient class Plugin: name = "npm" def __init__(self, config): self.config = config self.client = NpmClient(config) def discover(self): records: list[DesiredRecord] = [] for host in self.client.proxy_hosts(): enabled = bool(host.get("enabled", False)) if not enabled and not self.config.include_disabled: continue source_id = str(host.get("id", "")) or None for raw_domain in host.get("domain_names", []): hostname, wildcard = normalize_hostname( str(raw_domain), allow_wildcard=True, ) records.append( DesiredRecord( hostname=hostname, ip=self.config.target_ip, record_type="A", wildcard=wildcard, source=self.name, source_id=source_id, ) ) return records