66 lines
1.3 KiB
TypeScript
66 lines
1.3 KiB
TypeScript
|
declare module 'webfinger.js' {
|
||
|
interface IWebFingerConstructorConfig {
|
||
|
tls_only?: boolean;
|
||
|
webfist_fallback?: boolean;
|
||
|
uri_fallback?: boolean;
|
||
|
request_timeout?: number;
|
||
|
}
|
||
|
|
||
|
type JRDProperties = { [type: string]: string };
|
||
|
|
||
|
interface IJRDLink {
|
||
|
rel: string;
|
||
|
type?: string;
|
||
|
href?: string;
|
||
|
template?: string;
|
||
|
titles?: { [lang: string]: string };
|
||
|
properties?: JRDProperties;
|
||
|
}
|
||
|
|
||
|
interface IJRD {
|
||
|
subject?: string;
|
||
|
expires?: Date;
|
||
|
aliases?: string[];
|
||
|
properties?: JRDProperties;
|
||
|
links?: IJRDLink[];
|
||
|
}
|
||
|
|
||
|
interface IIDXLinks {
|
||
|
'avatar': IJRDLink[];
|
||
|
'remotestorage': IJRDLink[];
|
||
|
'blog': IJRDLink[];
|
||
|
'vcard': IJRDLink[];
|
||
|
'updates': IJRDLink[];
|
||
|
'share': IJRDLink[];
|
||
|
'profile': IJRDLink[];
|
||
|
'webfist': IJRDLink[];
|
||
|
'camlistore': IJRDLink[];
|
||
|
[type: string]: IJRDLink[];
|
||
|
}
|
||
|
|
||
|
interface IIDXProperties {
|
||
|
'name': string;
|
||
|
[type: string]: string;
|
||
|
}
|
||
|
|
||
|
interface IIDX {
|
||
|
links: IIDXLinks;
|
||
|
properties: IIDXProperties;
|
||
|
}
|
||
|
|
||
|
interface ILookupCallbackResult {
|
||
|
object: IJRD;
|
||
|
json: string;
|
||
|
idx: IIDX;
|
||
|
}
|
||
|
|
||
|
type LookupCallback = (err: Error | string, result?: ILookupCallbackResult) => void;
|
||
|
|
||
|
export class WebFinger {
|
||
|
constructor(config?: IWebFingerConstructorConfig);
|
||
|
|
||
|
public lookup(address: string, cb: LookupCallback): NodeJS.Timeout;
|
||
|
public lookupLink(address: string, rel: string, cb: IJRDLink): void;
|
||
|
}
|
||
|
}
|