micro-stacks
Version:
Tiny libraries for building Stacks apps.
84 lines (79 loc) • 1.76 kB
TypeScript
interface SoaType {
name?: string;
ttl?: number | string;
minimum?: number;
expire?: number;
retry?: number;
refresh?: number;
serial?: number;
rname?: string;
mname?: string;
}
interface NSType {
name: string;
ttl?: number;
host: string;
fullname?: string;
}
interface AType {
name: string;
ttl?: number;
ip: string;
}
interface CNAMEType {
name: string;
ttl?: number;
alias: string;
}
interface MXType {
name: string;
ttl?: number;
host: string;
preference: number;
}
interface TXTType {
name: string;
ttl?: number;
txt: string | string[];
}
interface SRVType {
name: string;
ttl?: number;
priority: number;
weight: number;
port: number;
target: string;
}
interface SPFType {
name: string;
ttl?: number;
data: string;
}
interface URIType {
name: string;
ttl?: number;
priority: number;
weight: number;
target: string;
}
interface ZoneFileObject {
$origin?: string;
$ttl?: number;
soa?: SoaType;
ns?: NSType[];
a?: AType[];
aaaa?: AType[];
cname?: CNAMEType[];
mx?: MXType[];
ptr?: NSType[];
txt?: TXTType[];
srv?: SRVType[];
spf?: SPFType[];
uri?: URIType[];
$domain?: string;
}
declare function parseZoneFile(text: string): ZoneFileObject;
declare function makeProfileZoneFile(origin: string, tokenFileUrl: string): string;
declare function makeZoneFile(jsonZoneFile: ZoneFileObject, template?: string): string;
declare function getZoneFileTemplate(): string;
export { AType, CNAMEType, MXType, NSType, SPFType, SRVType, SoaType, TXTType, URIType, ZoneFileObject, getZoneFileTemplate, makeProfileZoneFile, makeZoneFile, parseZoneFile };