@fedify/fedify
Version:
An ActivityPub server framework
96 lines (95 loc) • 2.87 kB
TypeScript
import { Temporal } from "@js-temporal/polyfill";
import { URLPattern } from "urlpattern-polyfill";
import { GetUserAgentOptions } from "./docloader-Q42SMRIB.js";
import { TracerProvider } from "@opentelemetry/api";
//#region webfinger/jrd.d.ts
/**
* Describes a resource. See also
* [RFC 7033 section 4.4](https://datatracker.ietf.org/doc/html/rfc7033#section-4.4).
*/
interface ResourceDescriptor {
/**
* A URI that identifies the entity that this descriptor describes.
*/
subject?: string;
/**
* URIs that identify the same entity as the `subject`.
*/
aliases?: string[];
/**
* Conveys additional information about the `subject` of this descriptor.
*/
properties?: Record<string, string>;
/**
* Links to other resources.
*/
links?: Link[];
}
/**
* Represents a link. See also
* [RFC 7033 section 4.4.4](https://datatracker.ietf.org/doc/html/rfc7033#section-4.4.4).
*/
interface Link {
/**
* The link's relation type, which is either a URI or a registered relation
* type (see [RFC 5988](https://datatracker.ietf.org/doc/html/rfc5988)).
*/
rel: string;
/**
* The media type of the target resource (see
* [RFC 6838](https://datatracker.ietf.org/doc/html/rfc6838)).
*/
type?: string;
/**
* A URI pointing to the target resource.
*/
href: string;
/**
* Human-readable titles describing the link relation. If the language is
* unknown or unspecified, the key is `"und"`.
*/
titles?: Record<string, string>;
/**
* Conveys additional information about the link relation.
*/
properties?: Record<string, string>;
}
//#endregion
//#region webfinger/lookup.d.ts
/**
* Options for {@link lookupWebFinger}.
* @since 1.3.0
*/
interface LookupWebFingerOptions {
/**
* The options for making `User-Agent` header.
* If a string is given, it is used as the `User-Agent` header value.
* If an object is given, it is passed to {@link getUserAgent} to generate
* the `User-Agent` header value.
*/
userAgent?: GetUserAgentOptions | string;
/**
* Whether to allow private IP addresses in the URL.
*
* Mostly useful for testing purposes. *Do not use this in production.*
*
* Turned off by default.
* @since 1.4.0
*/
allowPrivateAddress?: boolean;
/**
* The OpenTelemetry tracer provider. If omitted, the global tracer provider
* is used.
*/
tracerProvider?: TracerProvider;
}
/**
* Looks up a WebFinger resource.
* @param resource The resource URL to look up.
* @param options Extra options for looking up the resource.
* @returns The resource descriptor, or `null` if not found.
* @since 0.2.0
*/
declare function lookupWebFinger(resource: URL | string, options?: LookupWebFingerOptions): Promise<ResourceDescriptor | null>;
//#endregion
export { Link, LookupWebFingerOptions, ResourceDescriptor, lookupWebFinger };