masto
Version:
Mastodon API client for JavaScript, TypeScript, Node.js, browsers
45 lines (44 loc) • 1.88 kB
TypeScript
export interface WebPushSubscriptionPolicyRegistry {
all: never;
followed: never;
follower: never;
none: never;
}
export type WebPushSubscriptionPolicy = keyof WebPushSubscriptionPolicyRegistry;
/**
* Represents a subscription to the push streaming server.
* @see https://docs.joinmastodon.org/entities/WebPushSubscription/
*/
export interface WebPushSubscription {
/** The id of the push subscription in the database. */
id: string;
/** Where push alerts will be sent to. */
endpoint: string;
/** The streaming server's VAPID key. */
serverKey: string;
/** Which alerts should be delivered to the `endpoint`. */
alerts: WebPushSubscriptionAlerts;
policy: WebPushSubscriptionPolicy;
}
export interface WebPushSubscriptionAlerts {
/** Receive a push notification when someone has followed you? Boolean. */
follow: boolean;
/** Receive a push notification when a status you created has been favourited by someone else? Boolean. */
favourite: boolean;
/** Receive a push notification when someone else has mentioned you in a status? Boolean. */
reblog: boolean;
/** Receive a push notification when a status you created has been boosted by someone else? Boolean. */
mention: boolean;
/** Receive a push notification when a poll you voted in or created has ended? Boolean. */
poll: boolean;
/** Receive new subscribed account notifications? Defaults to false. */
status: boolean;
/** Receive status edited notifications? Defaults to false. */
update: boolean;
admin: {
/** Receive new user signup notifications? Defaults to false. Must have a role with the appropriate permissions. */
signUp: boolean;
/** Receive new report notifications? Defaults to false. Must have a role with the appropriate permissions. */
report: boolean;
};
}