-
-
Notifications
You must be signed in to change notification settings - Fork 82
Closed
Labels
component/webfingerWebFinger relatedWebFinger relateddifficulty/intermediateIntermediate levelIntermediate leveltype/enhancementImprovements to existing featuresImprovements to existing featurestype/featureRequests for new featuresRequests for new features
Description
Summary
- Add a new type or add a 'template' field to
Link
- Make
href
field inLink
optional
Problem
Before handling #119, we need to extend our type definition of the return type of lookupWebFinger()
, ResourceDescriptor
that supports non-RFC standard, OStatus 1.0 Draft 2.
And According to the RFC 7033 Section 4.4.4.3, href is also OPTIONAL, so it needed to be changed.
Proposed Solution
Add type like OStatusSubscribeLink
export interface ResourceDescriptor {
subject?: string;
aliases?: string[];
properties?: Record<string, string>;
links?: Array<Link | OStatusSubscribeLink>;
}
/**
* References a link. See also
* [OStatus 1.0 Draft 2](https://www.w3.org/community/ostatus/wiki/images/9/93/OStatus_1.0_Draft_2.pdf)
*/
export interface OStatusSubscribeLink {
rel: "http://ostatus.org/schema/1.0/subscribe";
/**
* A URI template (RFC 6570) that can be used to construct URIs by
* substituting variables. Used primarily for subscription endpoints
* where parameters like account URIs need to be dynamically inserted.
*/
template: string;
}
Alternatives Considered
/**
* Describes a resource. See also
* [RFC 7033 section 4.4](https://datatracker.ietf.org/doc/html/rfc7033#section-4.4).
*/
export interface ResourceDescriptor {
subject?: string;
aliases?: string[];
properties?: Record<string, string>;
links?: Link[];
}
/**
* Represents a link. See also
* [RFC 7033 section 4.4.4](https://datatracker.ietf.org/doc/html/rfc7033#section-4.4.4).
*/
export interface Link {
rel: string;
type?: string;
href?: string;
titles?: Record<string, string>;
properties?: Record<string, string>;
template?: string;
}
Scope / Dependencies
packages/cli/webfinger.ts
packages/fedify/src/webfinger/*
(especiallyjrd.ts
)
Metadata
Metadata
Assignees
Labels
component/webfingerWebFinger relatedWebFinger relateddifficulty/intermediateIntermediate levelIntermediate leveltype/enhancementImprovements to existing featuresImprovements to existing featurestype/featureRequests for new featuresRequests for new features