// Permissions and search command registration for channel message surfaces. import type { Command } from "commander"; import { collectOption } from "../helpers.js"; import type { MessageCliHelpers } from "./helpers.js"; /** Register the channel permissions inspection command. */ export function registerMessagePermissionsCommand(message: Command, helpers: MessageCliHelpers) { helpers .withMessageBase( helpers.withRequiredMessageTarget( message.command("permissions").description("Fetch channel permissions"), ), ) .action((opts) => helpers.runMessageAction("permissions", opts)); } /** Register the channel message search command and repeatable filters. */ export function registerMessageSearchCommand(message: Command, helpers: MessageCliHelpers) { helpers .withMessageBase(message.command("search").description("Search messages")) .requiredOption("--query ", "Search query") .option("--guild-id ", "Guild id (Discord)") .option( "--channel-id ", "Channel id (Discord) or Graph team-id/channel-id (Microsoft Teams)", ) .option("--channel-ids ", "Channel id (repeat)", collectOption, [] as string[]) .option("--author-id ", "Author id") .option("--author-ids ", "Author id (repeat)", collectOption, [] as string[]) .option("--limit ", "Result limit") .action((opts) => helpers.runMessageAction("search", opts)); }