mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2025-12-23 20:00:00 +00:00
51 lines
1.2 KiB
TypeScript
51 lines
1.2 KiB
TypeScript
// Copyright 2025 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
import z from 'zod';
|
|
|
|
export enum NotificationType {
|
|
IncomingCall = 'IncomingCall',
|
|
IncomingGroupCall = 'IncomingGroupCall',
|
|
IsPresenting = 'IsPresenting',
|
|
Message = 'Message',
|
|
Reaction = 'Reaction',
|
|
MinimizedToTray = 'MinimizedToTray',
|
|
}
|
|
|
|
export const WindowsNotificationDataSchema = z.object({
|
|
avatarPath: z.string().optional(),
|
|
body: z.string(),
|
|
heading: z.string(),
|
|
token: z.string(),
|
|
type: z.nativeEnum(NotificationType),
|
|
});
|
|
|
|
export type WindowsNotificationData = z.infer<
|
|
typeof WindowsNotificationDataSchema
|
|
>;
|
|
|
|
export const WindowsNotificationWorkerDataSchema = z.object({
|
|
AUMID: z.string(),
|
|
});
|
|
|
|
export type WindowsNotificationWorkerDataType = z.infer<
|
|
typeof WindowsNotificationWorkerDataSchema
|
|
>;
|
|
|
|
export const WindowsNotificationRequestSchema = z.union([
|
|
z.object({
|
|
command: z.literal('show'),
|
|
notificationData: WindowsNotificationDataSchema,
|
|
}),
|
|
z.object({
|
|
command: z.literal('clearAll'),
|
|
}),
|
|
z.object({
|
|
command: z.literal('sendDummyKeystroke'),
|
|
}),
|
|
]);
|
|
|
|
export type WindowsNotificationRequestType = z.infer<
|
|
typeof WindowsNotificationRequestSchema
|
|
>;
|