amazon-route-53-dns-zone-file
Version:
Makes DNS Zone File easy. Parses and validates BIND zone files and can be extended for custom features. Functionality is modular. Features are made open for extension and closed for runtime mutation. Written in TypeScript.
135 lines • 4.68 kB
TypeScript
/** @perf use const enums */
export declare enum DirectiveKind {
Origin = "$ORIGIN",
TimeToLive = "$TTL"
}
export declare const SUPPORTED_RECORD_TYPES: readonly ["TXT", "NS", "A", "AAAA", "CNAME", "MX", "PTR", "SPF", "SRV", "CAA", "NAPTR"];
export declare const ALL_RECORD_TYPES: readonly ["SOA", "TXT", "NS", "A", "AAAA", "CNAME", "MX", "PTR", "SPF", "SRV", "CAA", "NAPTR"];
/** @private */
export declare const INSTRUCTION_TYPES: readonly ["TXT", "NS", "A", "AAAA", "CNAME", "MX", "PTR", "SPF", "SRV", "CAA", "NAPTR", "$TTL", "$ORIGIN"];
export declare type RecordType = typeof SUPPORTED_RECORD_TYPES[number];
export declare type InstructionType = typeof INSTRUCTION_TYPES[number];
/** @perf const enum */
export declare enum RecordMinLengthKind {
/**
* treemonkey1.ca. 3W IN TXT "v=DKIM1\; k=rsa\; p=MIGf..."
* TXT "eh=true"
*/
TXT = 1,
/**
* www 1h IN CNAME \\008\\99.igloo.com.
* CNAME igloo.igloo.com.
*/
CNAME = 1,
/**
* eh 1w A 127.0.0.1
* eh A 127.0.0.1
* A 127.0.0.1
*/
A = 1,
/**
* eh 3W AAAA ::1
* @ AAAA ::1
*/
AAAA = 1,
/**
* @ 1W NS ns.igloo.com.
* @ NS NS2.NAMESERVER.NET.
* 1W NS ns.igloo.com.
*/
NS = 1,
/**
* 1 3W PTR HOST1.igloo.com.
* 10.3 PTR HOST3.igloo.com.
* @ PTR HOST3.igloo.com.
* PTR HOST3.igloo.com.
*/
PTR = 1,
/**
* igloo.com. MX 10 mail.igloo.com.
* MX 10 mail.igloo.com.
*/
MX = 2,
/**
* test1 3w IN SPF "v=spf2" "mx:gcloud-node.com." "-all"
* SPF "v=spf3" "mx:gcloud-node.com." "-all "
* SPF "v=spf4" "mx:gcloud-node.com." "-all"
* SPF "v=spf4 mx:gcloud-node.com."
*/
SPF = 1,
/**
* igloo.com 3W CAA 0 iodef "mailto:security@igloo.com"
* CAA 0 iodef "mailto:security@igloo.com"
*/
CAA = 3,
/**
* _foobar._tcp SRV 0 1 9 old-slow-box.igloo.com.
* _foobar._tcp 1W SRV 0 1 9 old-slow-box.igloo.com.
*/
SRV = 4,
/**
* rfc3403-1 86400 IN NAPTR 100 10 "u" "sip+E2U" "!^.*$!sip:information@foo.se!i" .
* 69 42 "u" "sip" ".*" .
*/
NAPTR = 6,
/**
* or 6 | 7...
*/
SOA = 7
}
/** @perf const enum */
export declare enum RecordMaxLengthKind {
/**
* @example SPF v=spf1 ip:4:192.168.0.1/16-all
* @example SPF v=spf1 ip4:192.0.2.0/24 ip4:198.51.100.123 a -all
*/
SPF = Infinity,
SOA = Infinity,
TXT = 1,
CNAME = 1,
A = 1,
AAAA = 1,
NS = 1,
PTR = 1,
MX = 2,
CAA = 3,
SRV = 4,
NAPTR = 6
}
/** @perf use numbers here in production & const enum */
export declare enum ErrorKeyKind {
/** api error, unused */
Api = "API",
/** nothing in the input */
EmptyInput = "EMPTY",
/** nothing to create */
NoRecords = "NO_RECORDS_TO_CREATE",
/** we have records, but none are valid */
NoValidRecords = "NO_VALID_RECORDS_TO_CREATE",
/** not standard */
BadDirective = "BAD_DIRECTIVE",
/** exists either in already created records or twice here */
Duplicated = "DUPLICATED",
/** unknown */
Unknown = "UNKNOWN",
/** fallback case */
Missing = "",
/** Invalid ttl format */
TtlInvalidFormat = "TTL_INVALID_FORMAT",
/** Value too large */
TtlOverflow = "TTL_OVERFLOW",
/** Invalid format & missing default value as a number */
TtlMissingDefault = "TTL_INVALID_FORMAT_MISSING_DEFAULT",
/** wrong number of args for this instruction */
WrongLength = "WRONG_LENGTH",
/** format of an instruction is wrong */
WrongNameArgsLength = "EXTRA_NAME_TTL_ARGS"
}
export declare const ERROR_KEYS: readonly [ErrorKeyKind.Api, ErrorKeyKind.EmptyInput, ErrorKeyKind.NoRecords, ErrorKeyKind.NoValidRecords, ErrorKeyKind.BadDirective, ErrorKeyKind.TtlInvalidFormat, ErrorKeyKind.TtlOverflow, ErrorKeyKind.TtlMissingDefault, ErrorKeyKind.WrongLength, ErrorKeyKind.WrongNameArgsLength, ErrorKeyKind.Duplicated, ErrorKeyKind.Unknown];
/** @idea move `warnings` to `errors` and make => `problems` + `severity` */
export declare enum WarningKeyKind {
NsIgnored = "SOA_IGNORED",
SoaIgnored = "NS_IGNORED"
}
export declare type TtlErrorKeyType = ErrorKeyKind.TtlInvalidFormat | ErrorKeyKind.TtlMissingDefault | ErrorKeyKind.TtlOverflow;
//# sourceMappingURL=constants_domain_specific.d.ts.map