Spaces:
Running
Running
| import type { ChannelMessageActionName } from "./types.js"; | |
| export type BlueBubblesActionSpec = { | |
| gate: string; | |
| groupOnly?: boolean; | |
| unsupportedOnMacOS26?: boolean; | |
| }; | |
| export const BLUEBUBBLES_ACTIONS = { | |
| react: { gate: "reactions" }, | |
| edit: { gate: "edit", unsupportedOnMacOS26: true }, | |
| unsend: { gate: "unsend" }, | |
| reply: { gate: "reply" }, | |
| sendWithEffect: { gate: "sendWithEffect" }, | |
| renameGroup: { gate: "renameGroup", groupOnly: true }, | |
| setGroupIcon: { gate: "setGroupIcon", groupOnly: true }, | |
| addParticipant: { gate: "addParticipant", groupOnly: true }, | |
| removeParticipant: { gate: "removeParticipant", groupOnly: true }, | |
| leaveGroup: { gate: "leaveGroup", groupOnly: true }, | |
| sendAttachment: { gate: "sendAttachment" }, | |
| } as const satisfies Partial<Record<ChannelMessageActionName, BlueBubblesActionSpec>>; | |
| const BLUEBUBBLES_ACTION_SPECS = BLUEBUBBLES_ACTIONS as Record< | |
| keyof typeof BLUEBUBBLES_ACTIONS, | |
| BlueBubblesActionSpec | |
| >; | |
| export const BLUEBUBBLES_ACTION_NAMES = Object.keys( | |
| BLUEBUBBLES_ACTIONS, | |
| ) as (keyof typeof BLUEBUBBLES_ACTIONS)[]; | |
| export const BLUEBUBBLES_GROUP_ACTIONS = new Set<ChannelMessageActionName>( | |
| BLUEBUBBLES_ACTION_NAMES.filter((action) => BLUEBUBBLES_ACTION_SPECS[action]?.groupOnly), | |
| ); | |