Files
uptime.link/ts_interfaces/data/domainsnapshot.ts
T

73 lines
1.7 KiB
TypeScript

import * as plugins from '../ul-interfaces.plugins.js';
import type { ILinkSnapshot } from './linksnapshot.js';
export interface IDomainSnapshot {
registration: {
isRegistered: boolean;
updatedDate: number;
createdDate: number;
expiryDate: number;
};
delegation: plugins.tsclass.network.IDomainDelegation;
phishingFlags: {
listName: string;
}[];
recordScans: {
identifier: string;
nameservers: string[];
aRecords: plugins.tsclass.network.IDnsRecord[];
aaaaRecords: plugins.tsclass.network.IDnsRecord[];
txtRecords: plugins.tsclass.network.IDnsRecord[];
mxRecords: plugins.tsclass.network.IDnsRecord[];
specialRecords: {
dmarc: plugins.tsclass.network.IDnsRecord[];
}
}[];
linkSnapshots: ILinkSnapshot[];
whoisServers: {
serverUrl: string;
content: string;
}[];
rdap?: {
raw: any;
registrar?: string;
status?: string[];
events?: Array<{ action: string; date: string }>;
entities?: Array<{ role: string; name?: string }>;
};
certificates?: Array<{
issuerName: string;
commonName: string;
notBefore: string;
notAfter: string;
serialNumber: string;
sans: string[];
}>;
httpProbe?: {
httpStatus?: number;
httpsStatus?: number;
httpToHttpsRedirect: boolean;
sslCertificate?: {
issuer: string;
subject: string;
validFrom: string;
validTo: string;
protocol: string;
sans: string[];
};
securityHeaders: {
hsts: boolean;
csp: boolean;
xFrameOptions: string | null;
xContentTypeOptions: boolean;
};
redirectChain: string[];
};
dnssec?: {
enabled: boolean;
valid: boolean;
keyRecords: number;
dsRecords: number;
};
}