UNPKG

@push.rocks/smartdns

Version:

A robust TypeScript library providing advanced DNS management and resolution capabilities including support for DNSSEC, custom DNS servers, and integration with various DNS providers.

68 lines (67 loc) 2.34 kB
import * as plugins from './plugins.js'; export type TDnsProvider = 'google' | 'cloudflare'; export declare const makeNodeProcessUseDnsProvider: (providerArg: TDnsProvider) => void; export interface ISmartDnsConstructorOptions { } export interface IDnsJsonResponse { Status: number; TC: boolean; RD: boolean; RA: boolean; AD: boolean; CD: boolean; Question: Array<{ name: string; type: number; }>; Answer: Array<{ name: string; type: number; TTL: number; data: string; }>; Additional: []; Comment: string; } /** * class dnsly offers methods for working with dns from a dns provider like Google DNS */ export declare class Smartdns { dnsServerIp: string; dnsServerPort: number; dnsTypeMap: { [key: string]: number; }; /** * constructor for class dnsly */ constructor(optionsArg: ISmartDnsConstructorOptions); /** * check a dns record until it has propagated to Google DNS * should be considerably fast * @param recordNameArg * @param recordTypeArg * @param expectedValue */ checkUntilAvailable(recordNameArg: string, recordTypeArg: plugins.tsclass.network.TDnsRecordType, expectedValue: string, cyclesArg?: number, intervalArg?: number): Promise<boolean>; /** * get A Dns Record */ getRecordsA(recordNameArg: string): Promise<plugins.tsclass.network.IDnsRecord[]>; /** * get AAAA Record */ getRecordsAAAA(recordNameArg: string): Promise<plugins.tsclass.network.IDnsRecord[]>; /** * gets a txt record */ getRecordsTxt(recordNameArg: string): Promise<plugins.tsclass.network.IDnsRecord[]>; getRecords(recordNameArg: string, recordTypeArg: plugins.tsclass.network.TDnsRecordType, retriesCounterArg?: number): Promise<plugins.tsclass.network.IDnsRecord[]>; /** * gets a record using nodejs dns resolver */ getRecordWithNodeDNS(recordNameArg: string, recordTypeArg: plugins.tsclass.network.TDnsRecordType): Promise<plugins.tsclass.network.IDnsRecord[]>; getNameServers(domainNameArg: string): Promise<string[]>; convertDnsTypeNameToTypeNumber(dnsTypeNameArg: string): number; convertDnsTypeNumberToTypeName(dnsTypeNumberArg: number): plugins.tsclass.network.TDnsRecordType; }