kopia lustrzana https://gitlab.com/soapbox-pub/soapbox
24 wiersze
778 B
TypeScript
24 wiersze
778 B
TypeScript
![]() |
import { z } from 'zod';
|
||
|
|
||
|
/** https://docs.joinmastodon.org/entities/WebPushSubscription/ */
|
||
|
const webPushSubscriptionSchema = z.object({
|
||
|
id: z.coerce.string(),
|
||
|
endpoint: z.string().url(),
|
||
|
alerts: z.object({
|
||
|
mention: z.boolean().optional(),
|
||
|
status: z.boolean().optional(),
|
||
|
reblog: z.boolean().optional(),
|
||
|
follow: z.boolean().optional(),
|
||
|
follow_request: z.boolean().optional(),
|
||
|
favourite: z.boolean().optional(),
|
||
|
poll: z.boolean().optional(),
|
||
|
update: z.boolean().optional(),
|
||
|
'admin.sign_up': z.boolean().optional(),
|
||
|
'admin.report': z.boolean().optional(),
|
||
|
}).optional(),
|
||
|
server_key: z.string(),
|
||
|
});
|
||
|
|
||
|
type WebPushSubscription = z.infer<typeof webPushSubscriptionSchema>;
|
||
|
|
||
|
export { webPushSubscriptionSchema, WebPushSubscription };
|