@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
TypeScript
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;
}