mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-03-15 05:41:51 +00:00
refactor: simplify logs plugin types; remove deprecated format.timestamp field
This commit is contained in:
parent
b28ca170ed
commit
805234acc1
75 changed files with 81 additions and 102 deletions
|
@ -9,7 +9,7 @@ import { findRecentSpam } from "./findRecentSpam";
|
||||||
import { getMatchingMessageRecentActions } from "./getMatchingMessageRecentActions";
|
import { getMatchingMessageRecentActions } from "./getMatchingMessageRecentActions";
|
||||||
import { getMessageSpamIdentifier } from "./getSpamIdentifier";
|
import { getMessageSpamIdentifier } from "./getSpamIdentifier";
|
||||||
|
|
||||||
interface TMessageSpamMatchResultType {
|
export interface TMessageSpamMatchResultType {
|
||||||
archiveId: string;
|
archiveId: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -118,10 +118,7 @@ function getCasesPlugin(): Promise<any> {
|
||||||
const defaultOptions: PluginOptions<LogsPluginType> = {
|
const defaultOptions: PluginOptions<LogsPluginType> = {
|
||||||
config: {
|
config: {
|
||||||
channels: {},
|
channels: {},
|
||||||
format: {
|
format: DefaultLogMessages,
|
||||||
timestamp: FORMAT_NO_TIMESTAMP,
|
|
||||||
...DefaultLogMessages,
|
|
||||||
},
|
|
||||||
ping_user: true,
|
ping_user: true,
|
||||||
allow_user_mentions: false,
|
allow_user_mentions: false,
|
||||||
timestamp_format: "[<t:]X[>]",
|
timestamp_format: "[<t:]X[>]",
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogAutomodActionData {
|
export interface LogAutomodActionData {
|
||||||
rule: string;
|
rule: string;
|
||||||
user?: User | null;
|
user?: User | null;
|
||||||
users: User[];
|
users: User[];
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { createTypedTemplateSafeValueContainer } from "../../../templateFormatte
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogBotAlertData {
|
export interface LogBotAlertData {
|
||||||
body: string;
|
body: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogCaseCreateData {
|
export interface LogCaseCreateData {
|
||||||
mod: User;
|
mod: User;
|
||||||
userId: string;
|
userId: string;
|
||||||
caseNum: number;
|
caseNum: number;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { caseToTemplateSafeCase, memberToTemplateSafeMember } from "../../../uti
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogCaseDeleteData {
|
export interface LogCaseDeleteData {
|
||||||
mod: GuildMember;
|
mod: GuildMember;
|
||||||
case: Case;
|
case: Case;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogCaseUpdateData {
|
export interface LogCaseUpdateData {
|
||||||
mod: User;
|
mod: User;
|
||||||
caseNumber: number;
|
caseNumber: number;
|
||||||
caseType: string;
|
caseType: string;
|
||||||
|
|
|
@ -14,7 +14,7 @@ import {
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogCensorData {
|
export interface LogCensorData {
|
||||||
user: User | UnknownUser;
|
user: User | UnknownUser;
|
||||||
channel: GuildTextBasedChannel;
|
channel: GuildTextBasedChannel;
|
||||||
reason: string;
|
reason: string;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogChannelCreateData {
|
export interface LogChannelCreateData {
|
||||||
channel: GuildBasedChannel;
|
channel: GuildBasedChannel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogChannelDeleteData {
|
export interface LogChannelDeleteData {
|
||||||
channel: GuildBasedChannel;
|
channel: GuildBasedChannel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogChannelUpdateData {
|
export interface LogChannelUpdateData {
|
||||||
oldChannel: GuildBasedChannel;
|
oldChannel: GuildBasedChannel;
|
||||||
newChannel: GuildBasedChannel;
|
newChannel: GuildBasedChannel;
|
||||||
differenceString: string;
|
differenceString: string;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../u
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogCleanData {
|
export interface LogCleanData {
|
||||||
mod: User;
|
mod: User;
|
||||||
channel: GuildTextBasedChannel;
|
channel: GuildTextBasedChannel;
|
||||||
count: number;
|
count: number;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogDmFailedData {
|
export interface LogDmFailedData {
|
||||||
source: string;
|
source: string;
|
||||||
user: User | UnknownUser;
|
user: User | UnknownUser;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { emojiToTemplateSafeEmoji } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogEmojiCreateData {
|
export interface LogEmojiCreateData {
|
||||||
emoji: Emoji;
|
emoji: Emoji;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { emojiToTemplateSafeEmoji } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogEmojiDeleteData {
|
export interface LogEmojiDeleteData {
|
||||||
emoji: Emoji;
|
emoji: Emoji;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { emojiToTemplateSafeEmoji } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogEmojiUpdateData {
|
export interface LogEmojiUpdateData {
|
||||||
oldEmoji: Emoji;
|
oldEmoji: Emoji;
|
||||||
newEmoji: Emoji;
|
newEmoji: Emoji;
|
||||||
differenceString: string;
|
differenceString: string;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMassBanData {
|
export interface LogMassBanData {
|
||||||
mod: User;
|
mod: User;
|
||||||
count: number;
|
count: number;
|
||||||
reason: string;
|
reason: string;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMassMuteData {
|
export interface LogMassMuteData {
|
||||||
mod: User;
|
mod: User;
|
||||||
count: number;
|
count: number;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMassUnbanData {
|
export interface LogMassUnbanData {
|
||||||
mod: User;
|
mod: User;
|
||||||
count: number;
|
count: number;
|
||||||
reason: string;
|
reason: string;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberBanData {
|
export interface LogMemberBanData {
|
||||||
mod: User | UnknownUser | null;
|
mod: User | UnknownUser | null;
|
||||||
user: User | UnknownUser;
|
user: User | UnknownUser;
|
||||||
caseNumber: number;
|
caseNumber: number;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberForcebanData {
|
export interface LogMemberForcebanData {
|
||||||
mod: GuildMember;
|
mod: GuildMember;
|
||||||
userId: Snowflake;
|
userId: Snowflake;
|
||||||
caseNumber: number;
|
caseNumber: number;
|
||||||
|
|
|
@ -8,7 +8,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberJoinData {
|
export interface LogMemberJoinData {
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberJoinWithPriorRecordsData {
|
export interface LogMemberJoinWithPriorRecordsData {
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
recentCaseSummary: string;
|
recentCaseSummary: string;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberKickData {
|
export interface LogMemberKickData {
|
||||||
mod: User | UnknownUser | null;
|
mod: User | UnknownUser | null;
|
||||||
user: User;
|
user: User;
|
||||||
caseNumber: number;
|
caseNumber: number;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberLeaveData {
|
export interface LogMemberLeaveData {
|
||||||
member: GuildMember | PartialGuildMember;
|
member: GuildMember | PartialGuildMember;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberMuteData {
|
export interface LogMemberMuteData {
|
||||||
mod: User | UnknownUser;
|
mod: User | UnknownUser;
|
||||||
user: User | UnknownUser;
|
user: User | UnknownUser;
|
||||||
caseNumber: number;
|
caseNumber: number;
|
||||||
|
|
|
@ -11,7 +11,7 @@ import {
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberMuteExpiredData {
|
export interface LogMemberMuteExpiredData {
|
||||||
member: GuildMember | UnknownUser;
|
member: GuildMember | UnknownUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberMuteRejoinData {
|
export interface LogMemberMuteRejoinData {
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberNickChangeData {
|
export interface LogMemberNickChangeData {
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
oldNick: string;
|
oldNick: string;
|
||||||
newNick: string;
|
newNick: string;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberNoteData {
|
export interface LogMemberNoteData {
|
||||||
mod: User;
|
mod: User;
|
||||||
user: User | UnknownUser;
|
user: User | UnknownUser;
|
||||||
caseNumber: number;
|
caseNumber: number;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberRestoreData {
|
export interface LogMemberRestoreData {
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
restoredData: string;
|
restoredData: string;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../uti
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberRoleAddData {
|
export interface LogMemberRoleAddData {
|
||||||
mod: User | null;
|
mod: User | null;
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
roles: Array<Role | UnknownRole>;
|
roles: Array<Role | UnknownRole>;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../uti
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberRoleChangesData {
|
export interface LogMemberRoleChangesData {
|
||||||
mod: User | UnknownUser | null;
|
mod: User | UnknownUser | null;
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
addedRoles: Role[];
|
addedRoles: Role[];
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../uti
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberRoleRemoveData {
|
export interface LogMemberRoleRemoveData {
|
||||||
mod: User | null;
|
mod: User | null;
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
roles: Array<Role | UnknownRole>;
|
roles: Array<Role | UnknownRole>;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberTimedBanData {
|
export interface LogMemberTimedBanData {
|
||||||
mod: User | UnknownUser;
|
mod: User | UnknownUser;
|
||||||
user: User | UnknownUser;
|
user: User | UnknownUser;
|
||||||
banTime: string;
|
banTime: string;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberTimedMuteData {
|
export interface LogMemberTimedMuteData {
|
||||||
mod: User | UnknownUser;
|
mod: User | UnknownUser;
|
||||||
user: User | UnknownUser;
|
user: User | UnknownUser;
|
||||||
time: string;
|
time: string;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberTimedUnbanData {
|
export interface LogMemberTimedUnbanData {
|
||||||
mod: User | UnknownUser;
|
mod: User | UnknownUser;
|
||||||
userId: string;
|
userId: string;
|
||||||
banTime: string;
|
banTime: string;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberTimedUnmuteData {
|
export interface LogMemberTimedUnmuteData {
|
||||||
mod: User;
|
mod: User;
|
||||||
user: User | UnknownUser;
|
user: User | UnknownUser;
|
||||||
time: string;
|
time: string;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberUnbanData {
|
export interface LogMemberUnbanData {
|
||||||
mod: User | UnknownUser | null;
|
mod: User | UnknownUser | null;
|
||||||
userId: Snowflake;
|
userId: Snowflake;
|
||||||
caseNumber: number;
|
caseNumber: number;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberUnmuteData {
|
export interface LogMemberUnmuteData {
|
||||||
mod: User;
|
mod: User;
|
||||||
user: User | UnknownUser;
|
user: User | UnknownUser;
|
||||||
caseNumber: number;
|
caseNumber: number;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMemberWarnData {
|
export interface LogMemberWarnData {
|
||||||
mod: GuildMember;
|
mod: GuildMember;
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
caseNumber: number;
|
caseNumber: number;
|
||||||
|
|
|
@ -15,7 +15,7 @@ import { TimeAndDatePlugin } from "../../TimeAndDate/TimeAndDatePlugin";
|
||||||
import { FORMAT_NO_TIMESTAMP, LogsPluginType } from "../types";
|
import { FORMAT_NO_TIMESTAMP, LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMessageDeleteData {
|
export interface LogMessageDeleteData {
|
||||||
user: User | UnknownUser;
|
user: User | UnknownUser;
|
||||||
channel: GuildTextBasedChannel;
|
channel: GuildTextBasedChannel;
|
||||||
message: SavedMessage;
|
message: SavedMessage;
|
||||||
|
@ -31,10 +31,7 @@ export function logMessageDelete(pluginData: GuildPluginData<LogsPluginType>, da
|
||||||
|
|
||||||
// See comment on FORMAT_NO_TIMESTAMP in types.ts
|
// See comment on FORMAT_NO_TIMESTAMP in types.ts
|
||||||
const config = pluginData.config.get();
|
const config = pluginData.config.get();
|
||||||
const timestampFormat =
|
const timestampFormat = config.timestamp_format ?? undefined;
|
||||||
(config.format.timestamp !== FORMAT_NO_TIMESTAMP ? config.format.timestamp : null) ??
|
|
||||||
config.timestamp_format ??
|
|
||||||
undefined;
|
|
||||||
|
|
||||||
return log(
|
return log(
|
||||||
pluginData,
|
pluginData,
|
||||||
|
|
|
@ -13,7 +13,7 @@ import {
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMessageDeleteAutoData {
|
export interface LogMessageDeleteAutoData {
|
||||||
message: SavedMessage;
|
message: SavedMessage;
|
||||||
user: User | UnknownUser;
|
user: User | UnknownUser;
|
||||||
channel: GuildBasedChannel;
|
channel: GuildBasedChannel;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMessageDeleteBareData {
|
export interface LogMessageDeleteBareData {
|
||||||
messageId: string;
|
messageId: string;
|
||||||
channel: GuildTextBasedChannel;
|
channel: GuildTextBasedChannel;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMessageDeleteBulkData {
|
export interface LogMessageDeleteBulkData {
|
||||||
count: number;
|
count: number;
|
||||||
authorIds: string[];
|
authorIds: string[];
|
||||||
channel: GuildTextBasedChannel;
|
channel: GuildTextBasedChannel;
|
||||||
|
|
|
@ -13,7 +13,7 @@ import {
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMessageEditData {
|
export interface LogMessageEditData {
|
||||||
user: User | UnknownUser;
|
user: User | UnknownUser;
|
||||||
channel: GuildTextBasedChannel;
|
channel: GuildTextBasedChannel;
|
||||||
before: SavedMessage;
|
before: SavedMessage;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogMessageSpamDetectedData {
|
export interface LogMessageSpamDetectedData {
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
channel: GuildTextBasedChannel;
|
channel: GuildTextBasedChannel;
|
||||||
description: string;
|
description: string;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogOtherSpamDetectedData {
|
export interface LogOtherSpamDetectedData {
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
description: string;
|
description: string;
|
||||||
limit: number;
|
limit: number;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../u
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogPostedScheduledMessageData {
|
export interface LogPostedScheduledMessageData {
|
||||||
author: User;
|
author: User;
|
||||||
channel: GuildTextBasedChannel;
|
channel: GuildTextBasedChannel;
|
||||||
messageId: string;
|
messageId: string;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../u
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogRepeatedMessageData {
|
export interface LogRepeatedMessageData {
|
||||||
author: User;
|
author: User;
|
||||||
channel: GuildTextBasedChannel;
|
channel: GuildTextBasedChannel;
|
||||||
datetime: string;
|
datetime: string;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { roleToTemplateSafeRole } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogRoleCreateData {
|
export interface LogRoleCreateData {
|
||||||
role: Role;
|
role: Role;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { roleToTemplateSafeRole } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogRoleDeleteData {
|
export interface LogRoleDeleteData {
|
||||||
role: Role;
|
role: Role;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { roleToTemplateSafeRole } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogRoleUpdateData {
|
export interface LogRoleUpdateData {
|
||||||
oldRole: Role;
|
oldRole: Role;
|
||||||
newRole: Role;
|
newRole: Role;
|
||||||
differenceString: string;
|
differenceString: string;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../u
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogScheduledMessageData {
|
export interface LogScheduledMessageData {
|
||||||
author: User;
|
author: User;
|
||||||
channel: GuildTextBasedChannel;
|
channel: GuildTextBasedChannel;
|
||||||
datetime: string;
|
datetime: string;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../u
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogScheduledRepeatedMessageData {
|
export interface LogScheduledRepeatedMessageData {
|
||||||
author: User;
|
author: User;
|
||||||
channel: GuildTextBasedChannel;
|
channel: GuildTextBasedChannel;
|
||||||
datetime: string;
|
datetime: string;
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { createTypedTemplateSafeValueContainer } from "../../../templateFormatte
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogSetAntiraidAutoData {
|
export interface LogSetAntiraidAutoData {
|
||||||
level: string;
|
level: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogSetAntiraidUserData {
|
export interface LogSetAntiraidUserData {
|
||||||
level: string;
|
level: string;
|
||||||
user: User;
|
user: User;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../..
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogStageInstanceCreateData {
|
export interface LogStageInstanceCreateData {
|
||||||
stageInstance: StageInstance;
|
stageInstance: StageInstance;
|
||||||
stageChannel: StageChannel;
|
stageChannel: StageChannel;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../..
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogStageInstanceDeleteData {
|
export interface LogStageInstanceDeleteData {
|
||||||
stageInstance: StageInstance;
|
stageInstance: StageInstance;
|
||||||
stageChannel: StageChannel;
|
stageChannel: StageChannel;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../..
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogStageInstanceUpdateData {
|
export interface LogStageInstanceUpdateData {
|
||||||
oldStageInstance: StageInstance | null;
|
oldStageInstance: StageInstance | null;
|
||||||
newStageInstance: StageInstance;
|
newStageInstance: StageInstance;
|
||||||
stageChannel: StageChannel;
|
stageChannel: StageChannel;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { stickerToTemplateSafeSticker } from "../../../utils/templateSafeObjects
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogStickerCreateData {
|
export interface LogStickerCreateData {
|
||||||
sticker: Sticker;
|
sticker: Sticker;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { stickerToTemplateSafeSticker } from "../../../utils/templateSafeObjects
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogStickerDeleteData {
|
export interface LogStickerDeleteData {
|
||||||
sticker: Sticker;
|
sticker: Sticker;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { stickerToTemplateSafeSticker } from "../../../utils/templateSafeObjects
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogStickerUpdateData {
|
export interface LogStickerUpdateData {
|
||||||
oldSticker: Sticker;
|
oldSticker: Sticker;
|
||||||
newSticker: Sticker;
|
newSticker: Sticker;
|
||||||
differenceString: string;
|
differenceString: string;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogThreadCreateData {
|
export interface LogThreadCreateData {
|
||||||
thread: AnyThreadChannel;
|
thread: AnyThreadChannel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogThreadDeleteData {
|
export interface LogThreadDeleteData {
|
||||||
thread: AnyThreadChannel;
|
thread: AnyThreadChannel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogThreadUpdateData {
|
export interface LogThreadUpdateData {
|
||||||
oldThread: AnyThreadChannel;
|
oldThread: AnyThreadChannel;
|
||||||
newThread: AnyThreadChannel;
|
newThread: AnyThreadChannel;
|
||||||
differenceString: string;
|
differenceString: string;
|
||||||
|
|
|
@ -11,7 +11,7 @@ import {
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogVoiceChannelForceDisconnectData {
|
export interface LogVoiceChannelForceDisconnectData {
|
||||||
mod: User;
|
mod: User;
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
oldChannel: VoiceBasedChannel;
|
oldChannel: VoiceBasedChannel;
|
||||||
|
|
|
@ -11,7 +11,7 @@ import {
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogVoiceChannelForceMoveData {
|
export interface LogVoiceChannelForceMoveData {
|
||||||
mod: User;
|
mod: User;
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
oldChannel: VoiceBasedChannel;
|
oldChannel: VoiceBasedChannel;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogVoiceChannelJoinData {
|
export interface LogVoiceChannelJoinData {
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
channel: VoiceBasedChannel;
|
channel: VoiceBasedChannel;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogVoiceChannelLeaveData {
|
export interface LogVoiceChannelLeaveData {
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
channel: VoiceBasedChannel;
|
channel: VoiceBasedChannel;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../
|
||||||
import { LogsPluginType } from "../types";
|
import { LogsPluginType } from "../types";
|
||||||
import { log } from "../util/log";
|
import { log } from "../util/log";
|
||||||
|
|
||||||
interface LogVoiceChannelMoveData {
|
export interface LogVoiceChannelMoveData {
|
||||||
member: GuildMember;
|
member: GuildMember;
|
||||||
oldChannel: VoiceBasedChannel;
|
oldChannel: VoiceBasedChannel;
|
||||||
newChannel: VoiceBasedChannel;
|
newChannel: VoiceBasedChannel;
|
||||||
|
|
|
@ -26,16 +26,9 @@ const DEFAULT_BATCH_TIME = 1000;
|
||||||
const MIN_BATCH_TIME = 250;
|
const MIN_BATCH_TIME = 250;
|
||||||
const MAX_BATCH_TIME = 5000;
|
const MAX_BATCH_TIME = 5000;
|
||||||
|
|
||||||
type ZLogFormatsHelper = {
|
// A bit of a workaround so we can pass LogType keys to z.enum()
|
||||||
-readonly [K in keyof typeof LogType]: typeof zMessageContent;
|
const logTypes = Object.keys(LogType) as [keyof typeof LogType, ...Array<keyof typeof LogType>];
|
||||||
};
|
const zLogFormats = z.record(z.enum(logTypes), zMessageContent);
|
||||||
export const zLogFormats = z.strictObject(
|
|
||||||
keys(LogType).reduce((map, logType) => {
|
|
||||||
map[logType] = zMessageContent;
|
|
||||||
return map;
|
|
||||||
}, {} as ZLogFormatsHelper),
|
|
||||||
);
|
|
||||||
export type TLogFormats = z.infer<typeof zLogFormats>;
|
|
||||||
|
|
||||||
const zLogChannel = z.strictObject({
|
const zLogChannel = z.strictObject({
|
||||||
include: z.array(zBoundedCharacters(1, 255)).default([]),
|
include: z.array(zBoundedCharacters(1, 255)).default([]),
|
||||||
|
@ -49,7 +42,7 @@ const zLogChannel = z.strictObject({
|
||||||
excluded_threads: z.array(zSnowflake).nullable().default(null),
|
excluded_threads: z.array(zSnowflake).nullable().default(null),
|
||||||
exclude_bots: z.boolean().default(false),
|
exclude_bots: z.boolean().default(false),
|
||||||
excluded_roles: z.array(zSnowflake).nullable().default(null),
|
excluded_roles: z.array(zSnowflake).nullable().default(null),
|
||||||
format: zLogFormats.partial().default({}),
|
format: zLogFormats.default({}),
|
||||||
timestamp_format: z.string().nullable().default(null),
|
timestamp_format: z.string().nullable().default(null),
|
||||||
include_embed_timestamp: z.boolean().nullable().default(null),
|
include_embed_timestamp: z.boolean().nullable().default(null),
|
||||||
});
|
});
|
||||||
|
@ -60,12 +53,7 @@ export type TLogChannelMap = z.infer<typeof zLogChannelMap>;
|
||||||
|
|
||||||
export const zLogsConfig = z.strictObject({
|
export const zLogsConfig = z.strictObject({
|
||||||
channels: zLogChannelMap,
|
channels: zLogChannelMap,
|
||||||
format: zLogFormats.merge(
|
format: zLogFormats,
|
||||||
z.strictObject({
|
|
||||||
// Legacy/deprecated, use timestamp_format below instead
|
|
||||||
timestamp: zBoundedCharacters(0, 64).nullable(),
|
|
||||||
}),
|
|
||||||
),
|
|
||||||
// Legacy/deprecated, if below is false mentions wont actually ping. In case you really want the old behavior, set below to true
|
// Legacy/deprecated, if below is false mentions wont actually ping. In case you really want the old behavior, set below to true
|
||||||
ping_user: z.boolean(),
|
ping_user: z.boolean(),
|
||||||
allow_user_mentions: z.boolean(),
|
allow_user_mentions: z.boolean(),
|
||||||
|
|
|
@ -38,10 +38,7 @@ export async function getLogMessage<TLogType extends keyof ILogTypeData>(
|
||||||
if (format === "" || format == null) return null;
|
if (format === "" || format == null) return null;
|
||||||
|
|
||||||
// See comment on FORMAT_NO_TIMESTAMP in types.ts
|
// See comment on FORMAT_NO_TIMESTAMP in types.ts
|
||||||
const timestampFormat =
|
const timestampFormat = opts?.timestamp_format ?? config.timestamp_format;
|
||||||
opts?.timestamp_format ??
|
|
||||||
(config.format.timestamp !== FORMAT_NO_TIMESTAMP ? config.format.timestamp : null) ??
|
|
||||||
config.timestamp_format;
|
|
||||||
|
|
||||||
const includeEmbedTimestamp = opts?.include_embed_timestamp ?? config.include_embed_timestamp;
|
const includeEmbedTimestamp = opts?.include_embed_timestamp ?? config.include_embed_timestamp;
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ export enum RecentActionType {
|
||||||
VoiceChannelMove,
|
VoiceChannelMove,
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IRecentAction<T> {
|
export interface IRecentAction<T> {
|
||||||
type: RecentActionType;
|
type: RecentActionType;
|
||||||
userId: string;
|
userId: string;
|
||||||
actionGroupId: string;
|
actionGroupId: string;
|
||||||
|
|
|
@ -285,9 +285,9 @@ export type StrictMessageContent = {
|
||||||
embeds?: APIEmbed[];
|
embeds?: APIEmbed[];
|
||||||
};
|
};
|
||||||
|
|
||||||
export const zMessageContent = z.union([zBoundedCharacters(0, 4000), zStrictMessageContent]);
|
|
||||||
|
|
||||||
export type MessageContent = string | StrictMessageContent;
|
export type MessageContent = string | StrictMessageContent;
|
||||||
|
export const zMessageContent = z.union([zBoundedCharacters(0, 4000), zStrictMessageContent]) as z.ZodType<MessageContent>;
|
||||||
|
|
||||||
|
|
||||||
export function validateAndParseMessageContent(input: unknown): StrictMessageContent {
|
export function validateAndParseMessageContent(input: unknown): StrictMessageContent {
|
||||||
if (input == null) {
|
if (input == null) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue