@notidotbot/noti-api-client 1.9.32 → 1.9.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/classes/guildFishing.d.ts +11 -0
  2. package/dist/classes/guildGiveaway.d.ts +23 -0
  3. package/dist/classes/guildPlatform.d.ts +3 -3
  4. package/dist/classes/guildPlatformAction.d.ts +2 -2
  5. package/dist/classes/guildStatChannels.d.ts +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/modules/stripe.js +1 -0
  8. package/dist/other/bitfields.d.ts +8 -2
  9. package/dist/other/bitfields.js +4 -0
  10. package/dist/other/enums.d.ts +24 -0
  11. package/dist/other/enums.js +12 -0
  12. package/dist/other/features.d.ts +1 -1
  13. package/dist/other/features.js +1 -0
  14. package/dist/other/prisma.d.ts +3 -0
  15. package/dist/other/types.d.ts +1 -0
  16. package/dist/other/zod/client.zod.d.ts +4 -0
  17. package/dist/other/zod/clipForward.zod.d.ts +15 -0
  18. package/dist/other/zod/clubStreamer.zod.d.ts +10 -0
  19. package/dist/other/zod/drops.zod.d.ts +2 -0
  20. package/dist/other/zod/guild.zod.d.ts +23 -0
  21. package/dist/other/zod/guild.zod.js +1 -0
  22. package/dist/other/zod/kickStreamer.zod.d.ts +10 -0
  23. package/dist/other/zod/rumbleStreamer.zod.d.ts +10 -0
  24. package/dist/other/zod/schema.zod.d.ts +12 -0
  25. package/dist/other/zod/schema.zod.js +12 -0
  26. package/dist/other/zod/tiktokStreamer.zod.d.ts +10 -0
  27. package/dist/other/zod/twitchStreamer.zod.d.ts +10 -0
  28. package/dist/other/zod/twitterStreamer.zod.d.ts +159 -0
  29. package/dist/other/zod/twitterStreamer.zod.js +58 -0
  30. package/dist/other/zod/youtubeStreamer.zod.d.ts +10 -0
  31. package/dist/tsconfig.tsbuildinfo +1 -1
  32. package/package.json +1 -1
  33. package/prisma/generated/ts-prisma.d.ts +5803 -869
  34. package/prisma/schema/models/guild.prisma +1 -0
  35. package/prisma/schema/models/twitterStreamer.prisma +157 -0
  36. package/prisma/schema/schema.prisma +12 -0
@@ -643,6 +643,17 @@ export type GuildFishingLeaderboard = {
643
643
  maxRows: number;
644
644
  /** Null when the viewer is not on the board, which is the common case. */
645
645
  viewerRank: number | null;
646
+ /**
647
+ * The viewer's OWN row, for pinning below the visible entries. A rank with no score cannot be
648
+ * rendered, which is what `viewerRank` alone gives you.
649
+ *
650
+ * NULL WHEN THEY ARE ALREADY IN `rows` - render this or their entry there, never both. Also null
651
+ * when they have no score on this axis or the owner has excluded them.
652
+ *
653
+ * `rank` here is competition ranking (`count(value > theirs) + 1`), so ties share a place. The page
654
+ * ranks by array index, so for tied values the two can differ by one.
655
+ */
656
+ viewerRow: FishingBoardRow | null;
646
657
  axes: FishingBoardAxis[];
647
658
  scopes: FishingBoardScope[];
648
659
  };
@@ -107,6 +107,29 @@ export type GuildGiveawaysType = {
107
107
  data: GuildGiveawayCreateSchema;
108
108
  shouldStartAt: Date;
109
109
  }[];
110
+ /**
111
+ * The guild's effective giveaway caps, served rather than resolved by the caller.
112
+ *
113
+ * MINUTES, not hours: the create form's inputs are minutes, and hours would make every consumer
114
+ * convert. The `can*` flags come from the guild's FEATURE BITS rather than from the numbers -
115
+ * `maxScheduleAheadMinutes` is 0 on Free, and rendering that as a cap shows a "0 minutes" limit
116
+ * with no explanation. Gate the control on `canSchedule`; use the number only to bound the input.
117
+ */
118
+ limits: {
119
+ maxDurationMinutes: number;
120
+ maxScheduleAheadMinutes: number;
121
+ maxRequirements: number;
122
+ canSchedule: boolean;
123
+ canLimitEntries: boolean;
124
+ canBonusEntries: boolean;
125
+ canRequirements: boolean;
126
+ canModifyWhileRunning: boolean;
127
+ };
128
+ /** Which tier those caps came from, so the UI can name the plan in a limit message. */
129
+ premium: {
130
+ tierId: string | null;
131
+ tierName: string | null;
132
+ };
110
133
  };
111
134
  export type GuildGiveawayEntriesType = GuildGiveaway['currentEntries'];
112
135
  export type GuildGiveawayWithEntry = Omit<GuildGiveaway, 'currentEntries'> & {
@@ -1,4 +1,4 @@
1
- import { AllPlatforms, ClubStreamer, ClubStreamerZod, KickStreamer, KickStreamerZod, RumbleStreamer, RumbleStreamerZod, TikTokStreamer, TikTokStreamerZod, TwitchStreamer, TwitchStreamerZod, YouTubeStreamer, YouTubeStreamerZod } from '../other/prisma';
1
+ import { AllPlatforms, ClubStreamer, ClubStreamerZod, TwitterStreamer, TwitterStreamerZod, KickStreamer, KickStreamerZod, RumbleStreamer, RumbleStreamerZod, TikTokStreamer, TikTokStreamerZod, TwitchStreamer, TwitchStreamerZod, YouTubeStreamer, YouTubeStreamerZod } from '../other/prisma';
2
2
  import { CancelOutWebResponses, DeepPartial } from '../types';
3
3
  import { WebDataManager } from '../core/manager';
4
4
  export declare class APIGuildPlatform {
@@ -77,8 +77,8 @@ export type UsersForLiveRole = {
77
77
  id: string;
78
78
  name: string;
79
79
  }[];
80
- export type GuildSingleStreamer<T extends AllPlatforms> = T extends 'kick' ? KickStreamerZod : T extends 'twitch' ? TwitchStreamerZod : T extends 'rumble' ? RumbleStreamerZod : T extends 'tiktok' ? TikTokStreamerZod : T extends 'youtube' ? YouTubeStreamerZod : T extends 'club' ? ClubStreamerZod : never;
81
- export type GuildSingleStreamerWithFormatedRole<T extends AllPlatforms> = T extends 'kick' ? KickStreamer & UsersForLiveRole : T extends 'twitch' ? TwitchStreamer & UsersForLiveRole : T extends 'rumble' ? RumbleStreamer & UsersForLiveRole : T extends 'tiktok' ? TikTokStreamer & UsersForLiveRole : T extends 'youtube' ? YouTubeStreamerZod & UsersForLiveRole : T extends 'club' ? ClubStreamer & UsersForLiveRole : never;
80
+ export type GuildSingleStreamer<T extends AllPlatforms> = T extends 'kick' ? KickStreamerZod : T extends 'twitch' ? TwitchStreamerZod : T extends 'rumble' ? RumbleStreamerZod : T extends 'tiktok' ? TikTokStreamerZod : T extends 'youtube' ? YouTubeStreamerZod : T extends 'club' ? ClubStreamerZod : T extends 'twitter' ? TwitterStreamerZod : never;
81
+ export type GuildSingleStreamerWithFormatedRole<T extends AllPlatforms> = T extends 'kick' ? KickStreamer & UsersForLiveRole : T extends 'twitch' ? TwitchStreamer & UsersForLiveRole : T extends 'rumble' ? RumbleStreamer & UsersForLiveRole : T extends 'tiktok' ? TikTokStreamer & UsersForLiveRole : T extends 'youtube' ? YouTubeStreamerZod & UsersForLiveRole : T extends 'club' ? ClubStreamer & UsersForLiveRole : T extends 'twitter' ? TwitterStreamer & UsersForLiveRole : never;
82
82
  export type Platformstreamers<T extends boolean, P extends AllPlatforms> = {
83
83
  streamers: T extends true ? P extends 'kick' ? {
84
84
  streamerUserName: string;
@@ -1,4 +1,4 @@
1
- import { AllPlatforms, ClubStreamerZod, KickStreamerZod, RumbleStreamerZod, TikTokStreamerZod, TwitchStreamerZod, YouTubeStreamerZod } from '../other/prisma';
1
+ import { AllPlatforms, ClubStreamerZod, TwitterStreamerZod, KickStreamerZod, RumbleStreamerZod, TikTokStreamerZod, TwitchStreamerZod, YouTubeStreamerZod } from '../other/prisma';
2
2
  import { LeaderBoardTypesEnum, StreamerMessageTypeEnum } from '@prisma/client';
3
3
  import { RumbleType } from './guildPlatform';
4
4
  import { CancelOutWebResponses } from '../types';
@@ -80,7 +80,7 @@ export type PlatformActionReturnTypes = {
80
80
  'deleteKickStreamerRolesRaw': Awaited<ReturnType<APIPlatformAction['deleteKickStreamerRoles']>>;
81
81
  'deleteKickStreamerRolesSuccess': CancelOutWebResponses<Awaited<ReturnType<APIPlatformAction['deleteKickStreamerRoles']>>>;
82
82
  };
83
- export type StreamerUpdateMessage = (KickStreamerZod | TwitchStreamerZod | RumbleStreamerZod | TikTokStreamerZod | YouTubeStreamerZod | ClubStreamerZod)['customMessages'][number];
83
+ export type StreamerUpdateMessage = (KickStreamerZod | TwitchStreamerZod | RumbleStreamerZod | TikTokStreamerZod | YouTubeStreamerZod | ClubStreamerZod | TwitterStreamerZod)['customMessages'][number];
84
84
  export type KickRolesType = 'leaderboardSyncRoles' | 'giftedSubRoles';
85
85
  export type KickRolesSubType<T extends KickRolesType> = T extends 'leaderboardSyncRoles' ? LeaderBoardTypesEnum : T extends 'giftedSubRoles' ? string : never;
86
86
  export type KickRolesData<T extends KickRolesType> = T extends 'leaderboardSyncRoles' ? KickStreamerZod['leaderBoardSyncRoles'][number] : T extends 'giftedSubRoles' ? KickStreamerZod['giftedSubRoles'][number] : never;
@@ -7,7 +7,7 @@ import { WebDataManager } from '../core/manager';
7
7
  * checked against the Prisma schema by a guard there. Nothing links this copy to that one, so diff
8
8
  * both when either changes - a platform missing here is one the dashboard cannot configure.
9
9
  */
10
- export type StatChannelPlatform = 'kick' | 'twitch' | 'youtube' | 'tiktok' | 'rumble' | 'whatnot';
10
+ export type StatChannelPlatform = 'kick' | 'twitch' | 'youtube' | 'tiktok' | 'rumble' | 'whatnot' | 'twitter';
11
11
  /** Only Kick has a follower counter. Every other model has `isLive` alone. */
12
12
  export type StatChannelKind = 'isLive' | 'followers';
13
13
  /**
package/dist/index.d.ts CHANGED
@@ -38,4 +38,4 @@ export { OFFLINE_GRACE_CHOICES, OFFLINE_GRACE_DEFAULT, } from './other/offlineGr
38
38
  export type { OfflineGraceMinutes } from './other/offlineGrace';
39
39
  export type { FeatureName, FeatureStatus, ResolvedFeature, } from './other/features';
40
40
  export type { Prisma, TSPrisma } from '@prisma/client';
41
- export type { ClientChangelog, Guild, User, Team, Member, KickStreamer, TwitchStreamer, YoutubeStreamer, TiktokStreamer, RumbleStreamer, ClubStreamer, GuildGiveaway, GuildRolePanel, GuildClipForward } from '@prisma/client';
41
+ export type { ClientChangelog, Guild, User, Team, Member, KickStreamer, TwitchStreamer, YoutubeStreamer, TiktokStreamer, RumbleStreamer, ClubStreamer, TwitterStreamer, GuildGiveaway, GuildRolePanel, GuildClipForward } from '@prisma/client';
@@ -16,6 +16,7 @@ exports.addonKeys = [
16
16
  'additionalTiktokConnections',
17
17
  'additionalWhatnotConnections',
18
18
  'additionalClubConnections',
19
+ 'additionalTwitterConnections',
19
20
  'additionalKickClips',
20
21
  'additionalTwitchClips',
21
22
  'customBot'
@@ -114,6 +114,8 @@ export declare const GuildFeatures: {
114
114
  FishingWebhooks: bigint;
115
115
  StreamRoles: bigint;
116
116
  RoleFilters: bigint;
117
+ TwitterNotifications: bigint;
118
+ TwitterLiveNotifications: bigint;
117
119
  };
118
120
  export declare const GuildFeaturesText: Record<keyof typeof GuildFeatures, string>;
119
121
  export declare const UserFeatures: {
@@ -215,8 +217,10 @@ export declare class GuildFeaturesManager extends BitFieldManager<typeof GuildFe
215
217
  FishingWebhooks: bigint;
216
218
  StreamRoles: bigint;
217
219
  RoleFilters: bigint;
220
+ TwitterNotifications: bigint;
221
+ TwitterLiveNotifications: bigint;
218
222
  };
219
- t: Record<"BaseSyncableRoles" | "FullSyncableRoles" | "LiveRole" | "StatCounters" | "VoteSkipping" | "KickAuditLogs" | "LeaderboardCommand" | "RefreshingLeaderboard" | "LeaderBoardSyncRoles" | "BetaAccess" | "PriorityNotifications" | "KickClips" | "KickNotifications" | "TwitchNotifications" | "ImportEmojis" | "ImportEmojisWithSub" | "CustomWebhooks" | "AnyMessageEditor" | "SyncSocialUsernames" | "AutoDeleteNotifications" | "TestNotificationCommand" | "CustomCooldowns" | "WelcomeAndLeaveNotifications" | "NotificationPingRoleId" | "SwitchStreamerAndGuildEmbeds" | "BirthdayNotifications" | "AllowNotSendingOfflineNotifications" | "AutoStatusLiveRoles" | "RumbleNotifications" | "AllowAutoPublishNotifications" | "NotificationOverrides" | "UseCustomButtons" | "AllowVodFeatures" | "TikTokNotifications" | "StatusRoles" | "ManageBranding" | "StickyMessages" | "Starboards" | "CustomStarboards" | "AutoThreadOnStarboard" | "StarboardRewardRole" | "Giveaways" | "GiveawayLogs" | "ModifyGiveawayWhileRunning" | "ScheduleGiveaways" | "GiveawayRequirements" | "GiveawayBonusEntries" | "GiveawayEntryLimit" | "DisableDoubleVoteEntry" | "YouTubeNotifications" | "LinkedRoles" | "RandomMessages" | "WeeklyBirthdayPanel" | "GameNotifications" | "GameCategoryRouting" | "GameAllTimeLowAlerts" | "GameChangelogs" | "GameRobloxTracking" | "FixUrlWebhook" | "FixUrlCustomRules" | "KickClipperSubscribe" | "WhatnotNotifications" | "ScheduledEventMessages" | "ScheduledMessageWebhooks" | "ReactionRoles" | "AdvancedRolePanels" | "KickClipForwarding" | "TwitchClipForwarding" | "ClubNotifications" | "RolePanelWebhooks" | "Fishing" | "FishingCustomization" | "FishingWebhooks" | "StreamRoles" | "RoleFilters", string>;
223
+ t: Record<"BaseSyncableRoles" | "FullSyncableRoles" | "LiveRole" | "StatCounters" | "VoteSkipping" | "KickAuditLogs" | "LeaderboardCommand" | "RefreshingLeaderboard" | "LeaderBoardSyncRoles" | "BetaAccess" | "PriorityNotifications" | "KickClips" | "KickNotifications" | "TwitchNotifications" | "ImportEmojis" | "ImportEmojisWithSub" | "CustomWebhooks" | "AnyMessageEditor" | "SyncSocialUsernames" | "AutoDeleteNotifications" | "TestNotificationCommand" | "CustomCooldowns" | "WelcomeAndLeaveNotifications" | "NotificationPingRoleId" | "SwitchStreamerAndGuildEmbeds" | "BirthdayNotifications" | "AllowNotSendingOfflineNotifications" | "AutoStatusLiveRoles" | "RumbleNotifications" | "AllowAutoPublishNotifications" | "NotificationOverrides" | "UseCustomButtons" | "AllowVodFeatures" | "TikTokNotifications" | "StatusRoles" | "ManageBranding" | "StickyMessages" | "Starboards" | "CustomStarboards" | "AutoThreadOnStarboard" | "StarboardRewardRole" | "Giveaways" | "GiveawayLogs" | "ModifyGiveawayWhileRunning" | "ScheduleGiveaways" | "GiveawayRequirements" | "GiveawayBonusEntries" | "GiveawayEntryLimit" | "DisableDoubleVoteEntry" | "YouTubeNotifications" | "LinkedRoles" | "RandomMessages" | "WeeklyBirthdayPanel" | "GameNotifications" | "GameCategoryRouting" | "GameAllTimeLowAlerts" | "GameChangelogs" | "GameRobloxTracking" | "FixUrlWebhook" | "FixUrlCustomRules" | "KickClipperSubscribe" | "WhatnotNotifications" | "ScheduledEventMessages" | "ScheduledMessageWebhooks" | "ReactionRoles" | "AdvancedRolePanels" | "KickClipForwarding" | "TwitchClipForwarding" | "ClubNotifications" | "RolePanelWebhooks" | "Fishing" | "FishingCustomization" | "FishingWebhooks" | "StreamRoles" | "RoleFilters" | "TwitterNotifications" | "TwitterLiveNotifications", string>;
220
224
  all: bigint;
221
225
  static b: {
222
226
  BaseSyncableRoles: bigint;
@@ -294,8 +298,10 @@ export declare class GuildFeaturesManager extends BitFieldManager<typeof GuildFe
294
298
  FishingWebhooks: bigint;
295
299
  StreamRoles: bigint;
296
300
  RoleFilters: bigint;
301
+ TwitterNotifications: bigint;
302
+ TwitterLiveNotifications: bigint;
297
303
  };
298
- static t: Record<"BaseSyncableRoles" | "FullSyncableRoles" | "LiveRole" | "StatCounters" | "VoteSkipping" | "KickAuditLogs" | "LeaderboardCommand" | "RefreshingLeaderboard" | "LeaderBoardSyncRoles" | "BetaAccess" | "PriorityNotifications" | "KickClips" | "KickNotifications" | "TwitchNotifications" | "ImportEmojis" | "ImportEmojisWithSub" | "CustomWebhooks" | "AnyMessageEditor" | "SyncSocialUsernames" | "AutoDeleteNotifications" | "TestNotificationCommand" | "CustomCooldowns" | "WelcomeAndLeaveNotifications" | "NotificationPingRoleId" | "SwitchStreamerAndGuildEmbeds" | "BirthdayNotifications" | "AllowNotSendingOfflineNotifications" | "AutoStatusLiveRoles" | "RumbleNotifications" | "AllowAutoPublishNotifications" | "NotificationOverrides" | "UseCustomButtons" | "AllowVodFeatures" | "TikTokNotifications" | "StatusRoles" | "ManageBranding" | "StickyMessages" | "Starboards" | "CustomStarboards" | "AutoThreadOnStarboard" | "StarboardRewardRole" | "Giveaways" | "GiveawayLogs" | "ModifyGiveawayWhileRunning" | "ScheduleGiveaways" | "GiveawayRequirements" | "GiveawayBonusEntries" | "GiveawayEntryLimit" | "DisableDoubleVoteEntry" | "YouTubeNotifications" | "LinkedRoles" | "RandomMessages" | "WeeklyBirthdayPanel" | "GameNotifications" | "GameCategoryRouting" | "GameAllTimeLowAlerts" | "GameChangelogs" | "GameRobloxTracking" | "FixUrlWebhook" | "FixUrlCustomRules" | "KickClipperSubscribe" | "WhatnotNotifications" | "ScheduledEventMessages" | "ScheduledMessageWebhooks" | "ReactionRoles" | "AdvancedRolePanels" | "KickClipForwarding" | "TwitchClipForwarding" | "ClubNotifications" | "RolePanelWebhooks" | "Fishing" | "FishingCustomization" | "FishingWebhooks" | "StreamRoles" | "RoleFilters", string>;
304
+ static t: Record<"BaseSyncableRoles" | "FullSyncableRoles" | "LiveRole" | "StatCounters" | "VoteSkipping" | "KickAuditLogs" | "LeaderboardCommand" | "RefreshingLeaderboard" | "LeaderBoardSyncRoles" | "BetaAccess" | "PriorityNotifications" | "KickClips" | "KickNotifications" | "TwitchNotifications" | "ImportEmojis" | "ImportEmojisWithSub" | "CustomWebhooks" | "AnyMessageEditor" | "SyncSocialUsernames" | "AutoDeleteNotifications" | "TestNotificationCommand" | "CustomCooldowns" | "WelcomeAndLeaveNotifications" | "NotificationPingRoleId" | "SwitchStreamerAndGuildEmbeds" | "BirthdayNotifications" | "AllowNotSendingOfflineNotifications" | "AutoStatusLiveRoles" | "RumbleNotifications" | "AllowAutoPublishNotifications" | "NotificationOverrides" | "UseCustomButtons" | "AllowVodFeatures" | "TikTokNotifications" | "StatusRoles" | "ManageBranding" | "StickyMessages" | "Starboards" | "CustomStarboards" | "AutoThreadOnStarboard" | "StarboardRewardRole" | "Giveaways" | "GiveawayLogs" | "ModifyGiveawayWhileRunning" | "ScheduleGiveaways" | "GiveawayRequirements" | "GiveawayBonusEntries" | "GiveawayEntryLimit" | "DisableDoubleVoteEntry" | "YouTubeNotifications" | "LinkedRoles" | "RandomMessages" | "WeeklyBirthdayPanel" | "GameNotifications" | "GameCategoryRouting" | "GameAllTimeLowAlerts" | "GameChangelogs" | "GameRobloxTracking" | "FixUrlWebhook" | "FixUrlCustomRules" | "KickClipperSubscribe" | "WhatnotNotifications" | "ScheduledEventMessages" | "ScheduledMessageWebhooks" | "ReactionRoles" | "AdvancedRolePanels" | "KickClipForwarding" | "TwitchClipForwarding" | "ClubNotifications" | "RolePanelWebhooks" | "Fishing" | "FishingCustomization" | "FishingWebhooks" | "StreamRoles" | "RoleFilters" | "TwitterNotifications" | "TwitterLiveNotifications", string>;
299
305
  static all: bigint;
300
306
  convertBitToField<T extends EnumValues<typeof GuildFeatures>>(bit: T): string | null;
301
307
  }
@@ -207,6 +207,8 @@ exports.GuildFeatures = {
207
207
  // Role FILTERS - restricting a status/live/stream role to members who do (or do not) hold given
208
208
  // roles. Premium Plus. Bit 75 is the next unused shift; never reuse a gap.
209
209
  RoleFilters: 1n << 75n,
210
+ TwitterNotifications: 1n << 76n,
211
+ TwitterLiveNotifications: 1n << 77n,
210
212
  };
211
213
  exports.GuildFeaturesText = {
212
214
  BaseSyncableRoles: 'Basic Syncable Roles',
@@ -286,6 +288,8 @@ exports.GuildFeaturesText = {
286
288
  FishingWebhooks: 'Fishing Webhooks',
287
289
  StreamRoles: 'Stream Roles',
288
290
  RoleFilters: 'Role Filters',
291
+ TwitterNotifications: 'X Post Notifications',
292
+ TwitterLiveNotifications: 'X Live Notifications',
289
293
  };
290
294
  exports.UserFeatures = {
291
295
  HasOneServerPremium: 1n << 0n,
@@ -28,7 +28,12 @@ export declare const StreamerMessageTypeEnum: {
28
28
  readonly tiktokVideo: "tiktokVideo";
29
29
  readonly youtubeLive: "youtubeLive";
30
30
  readonly youtubeVideo: "youtubeVideo";
31
+ readonly whatnotLive: "whatnotLive";
32
+ readonly whatnotOffline: "whatnotOffline";
31
33
  readonly clubPost: "clubPost";
34
+ readonly twitterPost: "twitterPost";
35
+ readonly twitterLive: "twitterLive";
36
+ readonly twitterOffline: "twitterOffline";
32
37
  };
33
38
  export declare const GuildMessageTypeEnum: {
34
39
  readonly giveawayRerolled: "giveawayRerolled";
@@ -55,7 +60,12 @@ export declare const GuildMessageTypeEnum: {
55
60
  readonly tiktokVideo: "tiktokVideo";
56
61
  readonly youtubeLive: "youtubeLive";
57
62
  readonly youtubeVideo: "youtubeVideo";
63
+ readonly whatnotLive: "whatnotLive";
64
+ readonly whatnotOffline: "whatnotOffline";
58
65
  readonly clubPost: "clubPost";
66
+ readonly twitterPost: "twitterPost";
67
+ readonly twitterLive: "twitterLive";
68
+ readonly twitterOffline: "twitterOffline";
59
69
  };
60
70
  export declare const GuildSingleMessageTypeEnum: {
61
71
  readonly autoLiveRoleAdded: "autoLiveRoleAdded";
@@ -77,7 +87,9 @@ export declare const PlatformEnum: {
77
87
  readonly rumble: "rumble";
78
88
  readonly tiktok: "tiktok";
79
89
  readonly youtube: "youtube";
90
+ readonly whatnot: "whatnot";
80
91
  readonly club: "club";
92
+ readonly twitter: "twitter";
81
93
  };
82
94
  export declare const ClipperCategoryEnum: {
83
95
  readonly vip: "vip";
@@ -177,7 +189,12 @@ export declare const $Enums: {
177
189
  readonly tiktokVideo: "tiktokVideo";
178
190
  readonly youtubeLive: "youtubeLive";
179
191
  readonly youtubeVideo: "youtubeVideo";
192
+ readonly whatnotLive: "whatnotLive";
193
+ readonly whatnotOffline: "whatnotOffline";
180
194
  readonly clubPost: "clubPost";
195
+ readonly twitterPost: "twitterPost";
196
+ readonly twitterLive: "twitterLive";
197
+ readonly twitterOffline: "twitterOffline";
181
198
  };
182
199
  readonly GuildMessageTypeEnum: {
183
200
  readonly giveawayRerolled: "giveawayRerolled";
@@ -204,7 +221,12 @@ export declare const $Enums: {
204
221
  readonly tiktokVideo: "tiktokVideo";
205
222
  readonly youtubeLive: "youtubeLive";
206
223
  readonly youtubeVideo: "youtubeVideo";
224
+ readonly whatnotLive: "whatnotLive";
225
+ readonly whatnotOffline: "whatnotOffline";
207
226
  readonly clubPost: "clubPost";
227
+ readonly twitterPost: "twitterPost";
228
+ readonly twitterLive: "twitterLive";
229
+ readonly twitterOffline: "twitterOffline";
208
230
  };
209
231
  readonly GuildSingleMessageTypeEnum: {
210
232
  readonly autoLiveRoleAdded: "autoLiveRoleAdded";
@@ -226,7 +248,9 @@ export declare const $Enums: {
226
248
  readonly rumble: "rumble";
227
249
  readonly tiktok: "tiktok";
228
250
  readonly youtube: "youtube";
251
+ readonly whatnot: "whatnot";
229
252
  readonly club: "club";
253
+ readonly twitter: "twitter";
230
254
  };
231
255
  readonly ClipperCategoryEnum: {
232
256
  readonly vip: "vip";
@@ -34,7 +34,12 @@ exports.StreamerMessageTypeEnum = {
34
34
  tiktokVideo: 'tiktokVideo',
35
35
  youtubeLive: 'youtubeLive',
36
36
  youtubeVideo: 'youtubeVideo',
37
+ whatnotLive: 'whatnotLive',
38
+ whatnotOffline: 'whatnotOffline',
37
39
  clubPost: 'clubPost',
40
+ twitterPost: 'twitterPost',
41
+ twitterLive: 'twitterLive',
42
+ twitterOffline: 'twitterOffline',
38
43
  };
39
44
  exports.GuildMessageTypeEnum = {
40
45
  giveawayRerolled: 'giveawayRerolled',
@@ -62,7 +67,12 @@ exports.GuildMessageTypeEnum = {
62
67
  tiktokVideo: 'tiktokVideo',
63
68
  youtubeLive: 'youtubeLive',
64
69
  youtubeVideo: 'youtubeVideo',
70
+ whatnotLive: 'whatnotLive',
71
+ whatnotOffline: 'whatnotOffline',
65
72
  clubPost: 'clubPost',
73
+ twitterPost: 'twitterPost',
74
+ twitterLive: 'twitterLive',
75
+ twitterOffline: 'twitterOffline',
66
76
  };
67
77
  exports.GuildSingleMessageTypeEnum = {
68
78
  autoLiveRoleAdded: 'autoLiveRoleAdded',
@@ -84,7 +94,9 @@ exports.PlatformEnum = {
84
94
  rumble: 'rumble',
85
95
  tiktok: 'tiktok',
86
96
  youtube: 'youtube',
97
+ whatnot: 'whatnot',
87
98
  club: 'club',
99
+ twitter: 'twitter',
88
100
  };
89
101
  exports.ClipperCategoryEnum = {
90
102
  vip: 'vip',
@@ -1,4 +1,4 @@
1
- export declare const FEATURE_NAMES: readonly ["freeGames", "gameChangelogs", "robloxNotifications", "fixLinks", "clipperNotifications", "scheduledMessages", "linkedRoles", "reactionRoles", "clipForwarding", "club", "whatnot", "fishing", "giveaways", "starboards", "syncedRoles", "birthdays", "statusRoles", "autoStatusLiveRoles", "streamRoles", "offlineGracePeriod", "emotes", "liveRoles", "stickyMessages", "welcomeLeave", "statCounters", "voteSkipping"];
1
+ export declare const FEATURE_NAMES: readonly ["freeGames", "gameChangelogs", "robloxNotifications", "fixLinks", "clipperNotifications", "scheduledMessages", "linkedRoles", "reactionRoles", "clipForwarding", "club", "whatnot", "fishing", "giveaways", "starboards", "syncedRoles", "birthdays", "statusRoles", "autoStatusLiveRoles", "streamRoles", "offlineGracePeriod", "twitter", "emotes", "liveRoles", "stickyMessages", "welcomeLeave", "statCounters", "voteSkipping"];
2
2
  export type FeatureName = (typeof FEATURE_NAMES)[number];
3
3
  export type FeatureStatus = 'off' | 'beta' | 'public';
4
4
  export type ResolvedFeature = 'public' | 'beta' | 'hidden';
@@ -25,6 +25,7 @@ exports.FEATURE_NAMES = [
25
25
  'autoStatusLiveRoles',
26
26
  'streamRoles',
27
27
  'offlineGracePeriod',
28
+ 'twitter',
28
29
  'emotes',
29
30
  'liveRoles',
30
31
  'stickyMessages',
@@ -6,6 +6,7 @@ import { TwitchStreamerZod } from './zod/twitchStreamer.zod';
6
6
  import { TiktokStreamerZod } from './zod/tiktokStreamer.zod';
7
7
  import { RumbleStreamerZod } from './zod/rumbleStreamer.zod';
8
8
  import { ClubStreamerZod } from './zod/clubStreamer.zod';
9
+ import { TwitterStreamerZod } from './zod/twitterStreamer.zod';
9
10
  import { KickStreamerZod } from './zod/kickStreamer.zod';
10
11
  import { GuildStarboardZod } from './zod/starboard.zod';
11
12
  import { GuildGiveawayZod } from './zod/giveaways.zod';
@@ -35,6 +36,7 @@ export type RumbleStreamer = TSPrisma.TSPrismaModelsFull['RumbleStreamer'];
35
36
  export type TikTokStreamer = TSPrisma.TSPrismaModelsFull['TiktokStreamer'];
36
37
  export type YouTubeStreamer = TSPrisma.TSPrismaModelsFull['YoutubeStreamer'];
37
38
  export type ClubStreamer = TSPrisma.TSPrismaModelsFull['ClubStreamer'];
39
+ export type TwitterStreamer = TSPrisma.TSPrismaModelsFull['TwitterStreamer'];
38
40
  export type GuildStarboard = TSPrisma.TSPrismaModelsFull['GuildStarboard'];
39
41
  export type GuildGiveaway = TSPrisma.TSPrismaModelsFull['GuildGiveaway'];
40
42
  export type GuildRolePanel = TSPrisma.TSPrismaModelsFull['GuildRolePanel'];
@@ -62,6 +64,7 @@ export type RumbleStreamerZod = z.infer<typeof RumbleStreamerZod.RumbleStreamerS
62
64
  export type TikTokStreamerZod = z.infer<typeof TiktokStreamerZod.TiktokStreamerSchema>;
63
65
  export type YouTubeStreamerZod = z.infer<typeof YoutubeStreamerZod.YoutubeStreamerSchema>;
64
66
  export type ClubStreamerZod = z.infer<typeof ClubStreamerZod.ClubStreamerSchema>;
67
+ export type TwitterStreamerZod = z.infer<typeof TwitterStreamerZod.TwitterStreamerSchema>;
65
68
  export type GuildStarboardZod = z.infer<typeof GuildStarboardZod.GuildStarboardSchema>;
66
69
  export type GuildGiveawayZod = z.infer<typeof GuildGiveawayZod.GuildGiveawaySchema>;
67
70
  export type GuildGiveawayCreateSchema = z.infer<typeof GuildGiveawayZod.GuildGiveawayCreateSchema>;
@@ -30,6 +30,7 @@ export type GuildPlanType = {
30
30
  defaultTiktokConnections: number | null;
31
31
  defaultWhatnotConnections: number | null;
32
32
  defaultClubConnections: number | null;
33
+ defaultTwitterConnections: number | null;
33
34
  defaultGameConnections: number | null;
34
35
  defaultKickClips: number | null;
35
36
  defaultTwitchClips: number | null;
@@ -53,7 +53,9 @@ export declare const ClientZod: {
53
53
  rumble: "rumble";
54
54
  tiktok: "tiktok";
55
55
  youtube: "youtube";
56
+ whatnot: "whatnot";
56
57
  club: "club";
58
+ twitter: "twitter";
57
59
  }>;
58
60
  }, z.core.$strip>>>;
59
61
  twitchCredentials: z.ZodNullable<z.ZodLazy<z.ZodObject<{
@@ -112,7 +114,9 @@ export declare const ClientZod: {
112
114
  rumble: "rumble";
113
115
  tiktok: "tiktok";
114
116
  youtube: "youtube";
117
+ whatnot: "whatnot";
115
118
  club: "club";
119
+ twitter: "twitter";
116
120
  }>;
117
121
  }, z.core.$strip>;
118
122
  };
@@ -73,7 +73,12 @@ export declare const GuildClipForwardZod: {
73
73
  tiktokVideo: "tiktokVideo";
74
74
  youtubeLive: "youtubeLive";
75
75
  youtubeVideo: "youtubeVideo";
76
+ whatnotLive: "whatnotLive";
77
+ whatnotOffline: "whatnotOffline";
76
78
  clubPost: "clubPost";
79
+ twitterPost: "twitterPost";
80
+ twitterLive: "twitterLive";
81
+ twitterOffline: "twitterOffline";
77
82
  }>;
78
83
  }, z.core.$strip>>>;
79
84
  lastClipAt: z.ZodNullable<z.ZodDate>;
@@ -147,7 +152,12 @@ export declare const GuildClipForwardZod: {
147
152
  tiktokVideo: "tiktokVideo";
148
153
  youtubeLive: "youtubeLive";
149
154
  youtubeVideo: "youtubeVideo";
155
+ whatnotLive: "whatnotLive";
156
+ whatnotOffline: "whatnotOffline";
150
157
  clubPost: "clubPost";
158
+ twitterPost: "twitterPost";
159
+ twitterLive: "twitterLive";
160
+ twitterOffline: "twitterOffline";
151
161
  }>;
152
162
  }, z.core.$strip>>>>;
153
163
  lastClipAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
@@ -200,7 +210,12 @@ export declare const GuildClipForwardZod: {
200
210
  tiktokVideo: "tiktokVideo";
201
211
  youtubeLive: "youtubeLive";
202
212
  youtubeVideo: "youtubeVideo";
213
+ whatnotLive: "whatnotLive";
214
+ whatnotOffline: "whatnotOffline";
203
215
  clubPost: "clubPost";
216
+ twitterPost: "twitterPost";
217
+ twitterLive: "twitterLive";
218
+ twitterOffline: "twitterOffline";
204
219
  }>;
205
220
  }, z.core.$strip>;
206
221
  };
@@ -57,7 +57,12 @@ export declare const ClubStreamerZod: {
57
57
  tiktokVideo: "tiktokVideo";
58
58
  youtubeLive: "youtubeLive";
59
59
  youtubeVideo: "youtubeVideo";
60
+ whatnotLive: "whatnotLive";
61
+ whatnotOffline: "whatnotOffline";
60
62
  clubPost: "clubPost";
63
+ twitterPost: "twitterPost";
64
+ twitterLive: "twitterLive";
65
+ twitterOffline: "twitterOffline";
61
66
  }>;
62
67
  }, z.core.$strip>>>;
63
68
  notificationChannelId: z.ZodNullable<z.ZodString>;
@@ -114,7 +119,12 @@ export declare const ClubStreamerZod: {
114
119
  tiktokVideo: "tiktokVideo";
115
120
  youtubeLive: "youtubeLive";
116
121
  youtubeVideo: "youtubeVideo";
122
+ whatnotLive: "whatnotLive";
123
+ whatnotOffline: "whatnotOffline";
117
124
  clubPost: "clubPost";
125
+ twitterPost: "twitterPost";
126
+ twitterLive: "twitterLive";
127
+ twitterOffline: "twitterOffline";
118
128
  }>;
119
129
  }, z.core.$strip>;
120
130
  };
@@ -26,7 +26,9 @@ export declare const DropsZod: {
26
26
  rumble: "rumble";
27
27
  tiktok: "tiktok";
28
28
  youtube: "youtube";
29
+ whatnot: "whatnot";
29
30
  club: "club";
31
+ twitter: "twitter";
30
32
  }>;
31
33
  channelId: z.ZodNullable<z.ZodString>;
32
34
  messageId: z.ZodNullable<z.ZodString>;
@@ -27,6 +27,7 @@ export declare const GuildZod: {
27
27
  additionalTiktokConnections: z.ZodNumber;
28
28
  additionalWhatnotConnections: z.ZodNumber;
29
29
  additionalClubConnections: z.ZodNumber;
30
+ additionalTwitterConnections: z.ZodNumber;
30
31
  additionalKickClips: z.ZodNumber;
31
32
  additionalTwitchClips: z.ZodNumber;
32
33
  customBot: z.ZodBoolean;
@@ -91,7 +92,12 @@ export declare const GuildZod: {
91
92
  tiktokVideo: "tiktokVideo";
92
93
  youtubeLive: "youtubeLive";
93
94
  youtubeVideo: "youtubeVideo";
95
+ whatnotLive: "whatnotLive";
96
+ whatnotOffline: "whatnotOffline";
94
97
  clubPost: "clubPost";
98
+ twitterPost: "twitterPost";
99
+ twitterLive: "twitterLive";
100
+ twitterOffline: "twitterOffline";
95
101
  }>;
96
102
  messages: z.ZodArray<z.ZodString>;
97
103
  }, z.core.$strip>>>;
@@ -136,7 +142,9 @@ export declare const GuildZod: {
136
142
  rumble: "rumble";
137
143
  tiktok: "tiktok";
138
144
  youtube: "youtube";
145
+ whatnot: "whatnot";
139
146
  club: "club";
147
+ twitter: "twitter";
140
148
  }>>;
141
149
  applyToStreamers: z.ZodArray<z.ZodString>;
142
150
  filter: z.ZodNullable<z.ZodLazy<z.ZodObject<{
@@ -168,7 +176,9 @@ export declare const GuildZod: {
168
176
  rumble: "rumble";
169
177
  tiktok: "tiktok";
170
178
  youtube: "youtube";
179
+ whatnot: "whatnot";
171
180
  club: "club";
181
+ twitter: "twitter";
172
182
  }>>;
173
183
  applyToStreamers: z.ZodArray<z.ZodString>;
174
184
  durationMinutes: z.ZodNullable<z.ZodNumber>;
@@ -257,7 +267,12 @@ export declare const GuildZod: {
257
267
  tiktokVideo: "tiktokVideo";
258
268
  youtubeLive: "youtubeLive";
259
269
  youtubeVideo: "youtubeVideo";
270
+ whatnotLive: "whatnotLive";
271
+ whatnotOffline: "whatnotOffline";
260
272
  clubPost: "clubPost";
273
+ twitterPost: "twitterPost";
274
+ twitterLive: "twitterLive";
275
+ twitterOffline: "twitterOffline";
261
276
  }>;
262
277
  }, z.core.$strip>>>;
263
278
  stickyMessages: z.ZodArray<z.ZodLazy<z.ZodObject<{
@@ -325,6 +340,7 @@ export declare const GuildZod: {
325
340
  additionalTiktokConnections: z.ZodNumber;
326
341
  additionalWhatnotConnections: z.ZodNumber;
327
342
  additionalClubConnections: z.ZodNumber;
343
+ additionalTwitterConnections: z.ZodNumber;
328
344
  additionalKickClips: z.ZodNumber;
329
345
  additionalTwitchClips: z.ZodNumber;
330
346
  customBot: z.ZodBoolean;
@@ -396,7 +412,9 @@ export declare const GuildZod: {
396
412
  rumble: "rumble";
397
413
  tiktok: "tiktok";
398
414
  youtube: "youtube";
415
+ whatnot: "whatnot";
399
416
  club: "club";
417
+ twitter: "twitter";
400
418
  }>>;
401
419
  applyToStreamers: z.ZodArray<z.ZodString>;
402
420
  durationMinutes: z.ZodNullable<z.ZodNumber>;
@@ -489,7 +507,12 @@ export declare const GuildZod: {
489
507
  tiktokVideo: "tiktokVideo";
490
508
  youtubeLive: "youtubeLive";
491
509
  youtubeVideo: "youtubeVideo";
510
+ whatnotLive: "whatnotLive";
511
+ whatnotOffline: "whatnotOffline";
492
512
  clubPost: "clubPost";
513
+ twitterPost: "twitterPost";
514
+ twitterLive: "twitterLive";
515
+ twitterOffline: "twitterOffline";
493
516
  }>;
494
517
  }, z.core.$strip>;
495
518
  readonly GuildStickyMessageSchema: z.ZodObject<{
@@ -69,6 +69,7 @@ const GuildPremiumSchema = zod_2.z.object({
69
69
  additionalTiktokConnections: zod_2.z.number().min(0),
70
70
  additionalWhatnotConnections: zod_2.z.number().min(0),
71
71
  additionalClubConnections: zod_2.z.number().min(0),
72
+ additionalTwitterConnections: zod_2.z.number().min(0),
72
73
  additionalKickClips: zod_2.z.number().min(0),
73
74
  additionalTwitchClips: zod_2.z.number().min(0),
74
75
  customBot: zod_2.z.boolean(),
@@ -61,7 +61,12 @@ export declare const KickStreamerZod: {
61
61
  tiktokVideo: "tiktokVideo";
62
62
  youtubeLive: "youtubeLive";
63
63
  youtubeVideo: "youtubeVideo";
64
+ whatnotLive: "whatnotLive";
65
+ whatnotOffline: "whatnotOffline";
64
66
  clubPost: "clubPost";
67
+ twitterPost: "twitterPost";
68
+ twitterLive: "twitterLive";
69
+ twitterOffline: "twitterOffline";
65
70
  }>;
66
71
  }, z.core.$strip>>>;
67
72
  clipEnabled: z.ZodNullable<z.ZodBoolean>;
@@ -179,7 +184,12 @@ export declare const KickStreamerZod: {
179
184
  tiktokVideo: "tiktokVideo";
180
185
  youtubeLive: "youtubeLive";
181
186
  youtubeVideo: "youtubeVideo";
187
+ whatnotLive: "whatnotLive";
188
+ whatnotOffline: "whatnotOffline";
182
189
  clubPost: "clubPost";
190
+ twitterPost: "twitterPost";
191
+ twitterLive: "twitterLive";
192
+ twitterOffline: "twitterOffline";
183
193
  }>;
184
194
  }, z.core.$strip>;
185
195
  readonly KSRoleWithUsersSchema: z.ZodObject<{
@@ -63,7 +63,12 @@ export declare const RumbleStreamerZod: {
63
63
  tiktokVideo: "tiktokVideo";
64
64
  youtubeLive: "youtubeLive";
65
65
  youtubeVideo: "youtubeVideo";
66
+ whatnotLive: "whatnotLive";
67
+ whatnotOffline: "whatnotOffline";
66
68
  clubPost: "clubPost";
69
+ twitterPost: "twitterPost";
70
+ twitterLive: "twitterLive";
71
+ twitterOffline: "twitterOffline";
67
72
  }>;
68
73
  }, z.core.$strip>>>;
69
74
  notificationChannelId: z.ZodNullable<z.ZodString>;
@@ -136,7 +141,12 @@ export declare const RumbleStreamerZod: {
136
141
  tiktokVideo: "tiktokVideo";
137
142
  youtubeLive: "youtubeLive";
138
143
  youtubeVideo: "youtubeVideo";
144
+ whatnotLive: "whatnotLive";
145
+ whatnotOffline: "whatnotOffline";
139
146
  clubPost: "clubPost";
147
+ twitterPost: "twitterPost";
148
+ twitterLive: "twitterLive";
149
+ twitterOffline: "twitterOffline";
140
150
  }>;
141
151
  }, z.core.$strip>;
142
152
  readonly RSStatsChannelIdSchema: z.ZodObject<{
@@ -36,7 +36,12 @@ export declare const StreamerMessageTypeEnum: z.ZodEnum<{
36
36
  tiktokVideo: "tiktokVideo";
37
37
  youtubeLive: "youtubeLive";
38
38
  youtubeVideo: "youtubeVideo";
39
+ whatnotLive: "whatnotLive";
40
+ whatnotOffline: "whatnotOffline";
39
41
  clubPost: "clubPost";
42
+ twitterPost: "twitterPost";
43
+ twitterLive: "twitterLive";
44
+ twitterOffline: "twitterOffline";
40
45
  }>;
41
46
  export declare const GuildMessageTypeEnum: z.ZodEnum<{
42
47
  birthday: "birthday";
@@ -63,7 +68,12 @@ export declare const GuildMessageTypeEnum: z.ZodEnum<{
63
68
  tiktokVideo: "tiktokVideo";
64
69
  youtubeLive: "youtubeLive";
65
70
  youtubeVideo: "youtubeVideo";
71
+ whatnotLive: "whatnotLive";
72
+ whatnotOffline: "whatnotOffline";
66
73
  clubPost: "clubPost";
74
+ twitterPost: "twitterPost";
75
+ twitterLive: "twitterLive";
76
+ twitterOffline: "twitterOffline";
67
77
  }>;
68
78
  export declare const GuildSingleMessageTypeEnum: z.ZodEnum<{
69
79
  autoLiveRoleAdded: "autoLiveRoleAdded";
@@ -85,7 +95,9 @@ export declare const PlatformEnum: z.ZodEnum<{
85
95
  rumble: "rumble";
86
96
  tiktok: "tiktok";
87
97
  youtube: "youtube";
98
+ whatnot: "whatnot";
88
99
  club: "club";
100
+ twitter: "twitter";
89
101
  }>;
90
102
  export declare const ClipForwardPlatformEnum: z.ZodEnum<{
91
103
  kick: "kick";