seyfert 1.5.0 → 2.1.0

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 (439) hide show
  1. package/LICENSE +21 -190
  2. package/README.md +18 -10
  3. package/lib/api/Router.js +2 -2
  4. package/lib/api/Routes/applications.d.ts +23 -1
  5. package/lib/api/Routes/channels.d.ts +1 -1
  6. package/lib/api/Routes/gateway.d.ts +1 -1
  7. package/lib/api/Routes/guilds.d.ts +5 -2
  8. package/lib/api/Routes/interactions.d.ts +8 -2
  9. package/lib/api/Routes/invites.d.ts +1 -1
  10. package/lib/api/Routes/skus.d.ts +11 -0
  11. package/lib/api/Routes/skus.js +2 -0
  12. package/lib/api/Routes/stage-instances.d.ts +1 -1
  13. package/lib/api/Routes/stickers.d.ts +2 -2
  14. package/lib/api/Routes/users.d.ts +1 -1
  15. package/lib/api/Routes/voice.d.ts +1 -1
  16. package/lib/api/Routes/webhooks.d.ts +2 -2
  17. package/lib/api/api.d.ts +3 -3
  18. package/lib/api/api.js +15 -25
  19. package/lib/api/bucket.d.ts +0 -1
  20. package/lib/api/shared.d.ts +1 -2
  21. package/lib/api/utils/constants.d.ts +2 -5
  22. package/lib/api/utils/constants.js +3 -7
  23. package/lib/api/utils/utils.d.ts +1 -2
  24. package/lib/api/utils/utils.js +2 -3
  25. package/lib/builders/ActionRow.d.ts +1 -1
  26. package/lib/builders/ActionRow.js +3 -3
  27. package/lib/builders/Attachment.d.ts +3 -4
  28. package/lib/builders/Attachment.js +24 -25
  29. package/lib/builders/Base.d.ts +2 -2
  30. package/lib/builders/Base.js +1 -1
  31. package/lib/builders/Button.d.ts +7 -7
  32. package/lib/builders/Button.js +11 -9
  33. package/lib/builders/Embed.d.ts +1 -1
  34. package/lib/builders/Modal.d.ts +1 -1
  35. package/lib/builders/Modal.js +2 -2
  36. package/lib/builders/Poll.d.ts +2 -2
  37. package/lib/builders/Poll.js +5 -6
  38. package/lib/builders/SelectMenu.d.ts +1 -1
  39. package/lib/builders/SelectMenu.js +17 -18
  40. package/lib/builders/index.d.ts +1 -1
  41. package/lib/builders/index.js +10 -11
  42. package/lib/cache/adapters/default.d.ts +16 -9
  43. package/lib/cache/adapters/default.js +42 -31
  44. package/lib/cache/adapters/index.d.ts +0 -1
  45. package/lib/cache/adapters/index.js +0 -1
  46. package/lib/cache/adapters/limited.d.ts +17 -12
  47. package/lib/cache/adapters/limited.js +80 -36
  48. package/lib/cache/adapters/types.d.ts +6 -7
  49. package/lib/cache/adapters/workeradapter.d.ts +6 -6
  50. package/lib/cache/adapters/workeradapter.js +13 -0
  51. package/lib/cache/index.d.ts +20 -8
  52. package/lib/cache/index.js +328 -22
  53. package/lib/cache/resources/bans.d.ts +9 -6
  54. package/lib/cache/resources/bans.js +13 -4
  55. package/lib/cache/resources/channels.d.ts +6 -4
  56. package/lib/cache/resources/channels.js +13 -7
  57. package/lib/cache/resources/default/base.d.ts +7 -7
  58. package/lib/cache/resources/default/base.js +2 -2
  59. package/lib/cache/resources/default/guild-based.d.ts +6 -6
  60. package/lib/cache/resources/default/guild-based.js +6 -6
  61. package/lib/cache/resources/default/guild-related.d.ts +7 -7
  62. package/lib/cache/resources/default/guild-related.js +10 -8
  63. package/lib/cache/resources/emojis.d.ts +15 -6
  64. package/lib/cache/resources/emojis.js +13 -4
  65. package/lib/cache/resources/guilds.d.ts +9 -6
  66. package/lib/cache/resources/guilds.js +27 -6
  67. package/lib/cache/resources/members.d.ts +9 -6
  68. package/lib/cache/resources/members.js +22 -6
  69. package/lib/cache/resources/messages.d.ts +11 -7
  70. package/lib/cache/resources/messages.js +19 -7
  71. package/lib/cache/resources/overwrites.d.ts +11 -2
  72. package/lib/cache/resources/overwrites.js +9 -0
  73. package/lib/cache/resources/presence.d.ts +3 -2
  74. package/lib/cache/resources/roles.d.ts +9 -6
  75. package/lib/cache/resources/roles.js +13 -4
  76. package/lib/cache/resources/stage-instances.d.ts +2 -2
  77. package/lib/cache/resources/stickers.d.ts +9 -6
  78. package/lib/cache/resources/stickers.js +13 -4
  79. package/lib/cache/resources/threads.d.ts +9 -6
  80. package/lib/cache/resources/threads.js +13 -4
  81. package/lib/cache/resources/users.d.ts +9 -6
  82. package/lib/cache/resources/users.js +13 -4
  83. package/lib/cache/resources/voice-states.d.ts +11 -8
  84. package/lib/cache/resources/voice-states.js +15 -4
  85. package/lib/client/base.d.ts +29 -21
  86. package/lib/client/base.js +64 -57
  87. package/lib/client/client.d.ts +11 -16
  88. package/lib/client/client.js +51 -37
  89. package/lib/client/collectors.d.ts +10 -10
  90. package/lib/client/collectors.js +26 -1
  91. package/lib/client/httpclient.d.ts +8 -13
  92. package/lib/client/httpclient.js +27 -218
  93. package/lib/client/index.d.ts +1 -0
  94. package/lib/client/index.js +1 -0
  95. package/lib/client/transformers.d.ts +68 -0
  96. package/lib/client/transformers.js +99 -0
  97. package/lib/client/types.d.ts +5 -0
  98. package/lib/client/types.js +2 -0
  99. package/lib/client/workerclient.d.ts +16 -15
  100. package/lib/client/workerclient.js +130 -72
  101. package/lib/commands/applications/chat.d.ts +35 -34
  102. package/lib/commands/applications/chat.js +5 -9
  103. package/lib/commands/applications/chatcontext.d.ts +17 -17
  104. package/lib/commands/applications/chatcontext.js +5 -5
  105. package/lib/commands/applications/entryPoint.d.ts +46 -0
  106. package/lib/commands/applications/entryPoint.js +56 -0
  107. package/lib/commands/applications/entrycontext.d.ts +40 -0
  108. package/lib/commands/applications/entrycontext.js +85 -0
  109. package/lib/commands/applications/menu.d.ts +2 -3
  110. package/lib/commands/applications/menu.js +2 -5
  111. package/lib/commands/applications/menucontext.d.ts +14 -13
  112. package/lib/commands/applications/menucontext.js +9 -9
  113. package/lib/commands/applications/options.d.ts +4 -3
  114. package/lib/commands/applications/options.js +20 -21
  115. package/lib/commands/applications/shared.d.ts +3 -1
  116. package/lib/commands/decorators.d.ts +47 -35
  117. package/lib/commands/decorators.js +20 -18
  118. package/lib/commands/handle.d.ts +65 -0
  119. package/lib/commands/handle.js +727 -0
  120. package/lib/commands/handler.d.ts +29 -18
  121. package/lib/commands/handler.js +295 -164
  122. package/lib/commands/index.d.ts +2 -0
  123. package/lib/commands/index.js +2 -0
  124. package/lib/commands/optionresolver.d.ts +13 -13
  125. package/lib/commands/optionresolver.js +24 -29
  126. package/lib/common/bot/watcher.d.ts +4 -33
  127. package/lib/common/bot/watcher.js +0 -109
  128. package/lib/common/index.d.ts +1 -0
  129. package/lib/common/index.js +1 -0
  130. package/lib/common/it/colors.js +48 -49
  131. package/lib/common/it/formatter.d.ts +32 -0
  132. package/lib/common/it/formatter.js +42 -0
  133. package/lib/common/it/logger.d.ts +0 -1
  134. package/lib/common/it/logger.js +3 -3
  135. package/lib/common/it/utils.d.ts +24 -4
  136. package/lib/common/it/utils.js +88 -17
  137. package/lib/common/shorters/application.d.ts +56 -0
  138. package/lib/common/shorters/application.js +81 -0
  139. package/lib/common/shorters/bans.d.ts +4 -5
  140. package/lib/common/shorters/bans.js +3 -3
  141. package/lib/common/shorters/channels.d.ts +7 -6
  142. package/lib/common/shorters/channels.js +19 -15
  143. package/lib/common/shorters/emojis.d.ts +5 -6
  144. package/lib/common/shorters/emojis.js +5 -5
  145. package/lib/common/shorters/guilds.d.ts +18 -16
  146. package/lib/common/shorters/guilds.js +31 -26
  147. package/lib/common/shorters/interaction.d.ts +7 -7
  148. package/lib/common/shorters/interaction.js +3 -2
  149. package/lib/common/shorters/members.d.ts +29 -12
  150. package/lib/common/shorters/members.js +55 -16
  151. package/lib/common/shorters/messages.d.ts +7 -8
  152. package/lib/common/shorters/messages.js +8 -7
  153. package/lib/common/shorters/reactions.d.ts +3 -3
  154. package/lib/common/shorters/reactions.js +11 -11
  155. package/lib/common/shorters/roles.d.ts +9 -7
  156. package/lib/common/shorters/roles.js +26 -7
  157. package/lib/common/shorters/templates.d.ts +7 -8
  158. package/lib/common/shorters/templates.js +7 -7
  159. package/lib/common/shorters/threads.d.ts +6 -7
  160. package/lib/common/shorters/threads.js +6 -9
  161. package/lib/common/shorters/users.d.ts +4 -4
  162. package/lib/common/shorters/users.js +8 -4
  163. package/lib/common/shorters/webhook.d.ts +10 -10
  164. package/lib/common/shorters/webhook.js +10 -9
  165. package/lib/common/types/resolvables.d.ts +2 -2
  166. package/lib/common/types/util.d.ts +4 -2
  167. package/lib/common/types/write.d.ts +3 -3
  168. package/lib/components/ActionRow.d.ts +1 -1
  169. package/lib/components/BaseComponent.d.ts +1 -1
  170. package/lib/components/BaseComponent.js +1 -1
  171. package/lib/components/BaseSelectMenuComponent.d.ts +1 -1
  172. package/lib/components/ButtonComponent.d.ts +17 -7
  173. package/lib/components/ButtonComponent.js +19 -2
  174. package/lib/components/ChannelSelectMenuComponent.d.ts +3 -3
  175. package/lib/components/MentionableSelectMenuComponent.d.ts +2 -2
  176. package/lib/components/RoleSelectMenuComponent.d.ts +2 -2
  177. package/lib/components/StringSelectMenuComponent.d.ts +2 -2
  178. package/lib/components/TextInputComponent.d.ts +2 -2
  179. package/lib/components/UserSelectMenuComponent.d.ts +2 -2
  180. package/lib/components/componentcommand.js +2 -2
  181. package/lib/components/componentcontext.d.ts +10 -9
  182. package/lib/components/componentcontext.js +8 -8
  183. package/lib/components/handler.d.ts +15 -14
  184. package/lib/components/handler.js +89 -93
  185. package/lib/components/index.d.ts +3 -3
  186. package/lib/components/index.js +12 -10
  187. package/lib/components/modalcontext.d.ts +12 -11
  188. package/lib/components/modalcontext.js +2 -2
  189. package/lib/deps/mixer.d.ts +8 -0
  190. package/lib/deps/mixer.js +71 -0
  191. package/lib/events/handler.d.ts +35 -13
  192. package/lib/events/handler.js +57 -24
  193. package/lib/events/hooks/application_command.d.ts +2 -2
  194. package/lib/events/hooks/auto_moderation.d.ts +6 -7
  195. package/lib/events/hooks/auto_moderation.js +4 -4
  196. package/lib/events/hooks/channel.d.ts +2 -2
  197. package/lib/events/hooks/channel.js +4 -7
  198. package/lib/events/hooks/custom.d.ts +4 -3
  199. package/lib/events/hooks/custom.js +5 -1
  200. package/lib/events/hooks/dispatch.d.ts +3 -4
  201. package/lib/events/hooks/dispatch.js +2 -2
  202. package/lib/events/hooks/entitlement.d.ts +5 -37
  203. package/lib/events/hooks/entitlement.js +7 -7
  204. package/lib/events/hooks/guild.d.ts +125 -125
  205. package/lib/events/hooks/guild.js +13 -15
  206. package/lib/events/hooks/integration.d.ts +27 -28
  207. package/lib/events/hooks/integration.js +3 -3
  208. package/lib/events/hooks/interactions.d.ts +2 -2
  209. package/lib/events/hooks/invite.d.ts +18 -17
  210. package/lib/events/hooks/message.d.ts +69 -54
  211. package/lib/events/hooks/message.js +4 -8
  212. package/lib/events/hooks/presence.d.ts +17 -16
  213. package/lib/events/hooks/stage.d.ts +4 -4
  214. package/lib/events/hooks/subscriptions.d.ts +35 -0
  215. package/lib/events/hooks/subscriptions.js +16 -0
  216. package/lib/events/hooks/thread.d.ts +132 -63
  217. package/lib/events/hooks/thread.js +4 -4
  218. package/lib/events/hooks/typing.d.ts +28 -6
  219. package/lib/events/hooks/typing.js +2 -2
  220. package/lib/events/hooks/user.d.ts +3 -3
  221. package/lib/events/hooks/user.js +2 -2
  222. package/lib/events/hooks/voice.d.ts +28 -3
  223. package/lib/events/hooks/voice.js +8 -4
  224. package/lib/events/hooks/webhook.d.ts +1 -1
  225. package/lib/index.d.ts +5 -14
  226. package/lib/index.js +7 -12
  227. package/lib/langs/handler.d.ts +14 -10
  228. package/lib/langs/handler.js +40 -9
  229. package/lib/structures/AutoModerationRule.d.ts +4 -4
  230. package/lib/structures/AutoModerationRule.js +1 -2
  231. package/lib/structures/ClientUser.d.ts +1 -1
  232. package/lib/structures/Entitlement.d.ts +10 -0
  233. package/lib/structures/Entitlement.js +16 -0
  234. package/lib/structures/Guild.d.ts +33 -34
  235. package/lib/structures/Guild.js +5 -2
  236. package/lib/structures/GuildBan.d.ts +6 -6
  237. package/lib/structures/GuildBan.js +2 -1
  238. package/lib/structures/GuildEmoji.d.ts +4 -4
  239. package/lib/structures/GuildEmoji.js +3 -2
  240. package/lib/structures/GuildMember.d.ts +20 -17
  241. package/lib/structures/GuildMember.js +18 -8
  242. package/lib/structures/GuildPreview.d.ts +1 -1
  243. package/lib/structures/GuildRole.d.ts +5 -3
  244. package/lib/structures/GuildRole.js +8 -1
  245. package/lib/structures/GuildTemplate.d.ts +2 -2
  246. package/lib/structures/GuildTemplate.js +1 -1
  247. package/lib/structures/Interaction.d.ts +76 -39
  248. package/lib/structures/Interaction.js +179 -94
  249. package/lib/structures/Message.d.ts +29 -33
  250. package/lib/structures/Message.js +8 -12
  251. package/lib/structures/Poll.d.ts +4 -3
  252. package/lib/structures/Poll.js +6 -2
  253. package/lib/structures/Sticker.d.ts +7 -7
  254. package/lib/structures/Sticker.js +7 -7
  255. package/lib/structures/User.d.ts +5 -4
  256. package/lib/structures/User.js +2 -1
  257. package/lib/structures/VoiceState.d.ts +15 -11
  258. package/lib/structures/VoiceState.js +35 -17
  259. package/lib/structures/Webhook.d.ts +6 -7
  260. package/lib/structures/Webhook.js +6 -7
  261. package/lib/structures/channels.d.ts +11 -10
  262. package/lib/structures/channels.js +70 -65
  263. package/lib/structures/extra/BaseGuild.d.ts +12 -2
  264. package/lib/structures/extra/BaseGuild.js +30 -3
  265. package/lib/structures/extra/BitField.d.ts +1 -1
  266. package/lib/structures/extra/BitField.js +3 -2
  267. package/lib/structures/extra/DiscordBase.js +2 -2
  268. package/lib/structures/extra/Permissions.d.ts +3 -1
  269. package/lib/structures/extra/Permissions.js +8 -3
  270. package/lib/types/gateway.d.ts +1554 -0
  271. package/lib/types/gateway.js +4 -0
  272. package/lib/types/index.d.ts +9 -1
  273. package/lib/types/index.js +28 -1
  274. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/attachment.d.ts +5 -0
  275. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/attachment.js +2 -0
  276. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/base.d.ts +22 -0
  277. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/base.js +2 -0
  278. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/boolean.d.ts +4 -0
  279. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/boolean.js +2 -0
  280. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/channel.d.ts +7 -0
  281. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/channel.js +2 -0
  282. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/integer.d.ts +17 -0
  283. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/integer.js +2 -0
  284. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/mentionable.d.ts +5 -0
  285. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/mentionable.js +2 -0
  286. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/number.d.ts +17 -0
  287. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/number.js +2 -0
  288. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/role.d.ts +5 -0
  289. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/role.js +2 -0
  290. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/shared.d.ts +25 -0
  291. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/shared.js +20 -0
  292. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/string.d.ts +17 -0
  293. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/string.js +2 -0
  294. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommand.d.ts +11 -0
  295. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommand.js +2 -0
  296. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts +11 -0
  297. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommandGroup.js +2 -0
  298. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/user.d.ts +5 -0
  299. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/user.js +2 -0
  300. package/lib/types/payloads/_interactions/_applicationCommands/chatInput.d.ts +65 -0
  301. package/lib/types/payloads/_interactions/_applicationCommands/chatInput.js +29 -0
  302. package/lib/types/payloads/_interactions/_applicationCommands/contextMenu.d.ts +65 -0
  303. package/lib/types/payloads/_interactions/_applicationCommands/contextMenu.js +2 -0
  304. package/lib/types/payloads/_interactions/_applicationCommands/internals.d.ts +8 -0
  305. package/lib/types/payloads/_interactions/_applicationCommands/internals.js +2 -0
  306. package/lib/types/payloads/_interactions/_applicationCommands/permissions.d.ts +54 -0
  307. package/lib/types/payloads/_interactions/_applicationCommands/permissions.js +20 -0
  308. package/lib/types/payloads/_interactions/applicationCommands.d.ts +188 -0
  309. package/lib/types/payloads/_interactions/applicationCommands.js +88 -0
  310. package/lib/types/payloads/_interactions/autocomplete.d.ts +10 -0
  311. package/lib/types/payloads/_interactions/autocomplete.js +2 -0
  312. package/lib/types/payloads/_interactions/base.d.ts +197 -0
  313. package/lib/types/payloads/_interactions/base.js +2 -0
  314. package/lib/types/payloads/_interactions/messageComponents.d.ts +41 -0
  315. package/lib/types/payloads/_interactions/messageComponents.js +2 -0
  316. package/lib/types/payloads/_interactions/modalSubmit.d.ts +35 -0
  317. package/lib/types/payloads/_interactions/modalSubmit.js +2 -0
  318. package/lib/types/payloads/_interactions/ping.d.ts +3 -0
  319. package/lib/types/payloads/_interactions/ping.js +2 -0
  320. package/lib/types/payloads/_interactions/responses.d.ts +184 -0
  321. package/lib/types/payloads/_interactions/responses.js +58 -0
  322. package/lib/types/payloads/application.d.ts +292 -0
  323. package/lib/types/payloads/application.js +117 -0
  324. package/lib/types/payloads/auditLog.d.ts +644 -0
  325. package/lib/types/payloads/auditLog.js +80 -0
  326. package/lib/types/payloads/autoModeration.d.ts +219 -0
  327. package/lib/types/payloads/autoModeration.js +87 -0
  328. package/lib/types/payloads/channel.d.ts +1748 -0
  329. package/lib/types/payloads/channel.js +376 -0
  330. package/lib/types/payloads/emoji.d.ts +48 -0
  331. package/lib/types/payloads/emoji.js +5 -0
  332. package/lib/types/payloads/gateway.d.ts +373 -0
  333. package/lib/types/payloads/gateway.js +82 -0
  334. package/lib/types/payloads/guild.d.ts +1060 -0
  335. package/lib/types/payloads/guild.js +324 -0
  336. package/lib/types/payloads/guildScheduledEvent.d.ts +138 -0
  337. package/lib/types/payloads/guildScheduledEvent.js +32 -0
  338. package/lib/types/payloads/index.d.ts +64 -0
  339. package/lib/types/payloads/index.js +37 -0
  340. package/lib/types/payloads/interactions.d.ts +24 -0
  341. package/lib/types/payloads/interactions.js +23 -0
  342. package/lib/types/payloads/invite.d.ts +121 -0
  343. package/lib/types/payloads/invite.js +23 -0
  344. package/lib/types/payloads/monetization.d.ts +178 -0
  345. package/lib/types/payloads/monetization.js +88 -0
  346. package/lib/types/payloads/oauth2.d.ts +131 -0
  347. package/lib/types/payloads/oauth2.js +135 -0
  348. package/lib/types/payloads/permissions.d.ts +97 -0
  349. package/lib/types/payloads/permissions.js +16 -0
  350. package/lib/types/payloads/poll.d.ts +104 -0
  351. package/lib/types/payloads/poll.js +16 -0
  352. package/lib/types/payloads/stageInstance.d.ts +77 -0
  353. package/lib/types/payloads/stageInstance.js +19 -0
  354. package/lib/types/payloads/sticker.d.ts +123 -0
  355. package/lib/types/payloads/sticker.js +30 -0
  356. package/lib/types/payloads/teams.d.ts +78 -0
  357. package/lib/types/payloads/teams.js +23 -0
  358. package/lib/types/payloads/template.d.ts +62 -0
  359. package/lib/types/payloads/template.js +5 -0
  360. package/lib/types/payloads/user.d.ts +337 -0
  361. package/lib/types/payloads/user.js +167 -0
  362. package/lib/types/payloads/voice.d.ts +89 -0
  363. package/lib/types/payloads/voice.js +5 -0
  364. package/lib/types/payloads/webhook.d.ts +76 -0
  365. package/lib/types/payloads/webhook.js +21 -0
  366. package/lib/types/rest/application.d.ts +57 -0
  367. package/lib/types/rest/application.js +2 -0
  368. package/lib/types/rest/auditLog.d.ts +30 -0
  369. package/lib/types/rest/auditLog.js +2 -0
  370. package/lib/types/rest/autoModeration.d.ts +66 -0
  371. package/lib/types/rest/autoModeration.js +2 -0
  372. package/lib/types/rest/channel.d.ts +699 -0
  373. package/lib/types/rest/channel.js +11 -0
  374. package/lib/types/rest/emoji.d.ts +54 -0
  375. package/lib/types/rest/emoji.js +2 -0
  376. package/lib/types/rest/gateway.d.ts +9 -0
  377. package/lib/types/rest/gateway.js +2 -0
  378. package/lib/types/rest/guild.d.ts +865 -0
  379. package/lib/types/rest/guild.js +2 -0
  380. package/lib/types/rest/guildScheduledEvent.d.ts +126 -0
  381. package/lib/types/rest/guildScheduledEvent.js +2 -0
  382. package/lib/types/rest/index.d.ts +296 -0
  383. package/lib/types/rest/index.js +292 -0
  384. package/lib/types/rest/interactions.d.ts +216 -0
  385. package/lib/types/rest/interactions.js +2 -0
  386. package/lib/types/rest/invite.d.ts +24 -0
  387. package/lib/types/rest/invite.js +2 -0
  388. package/lib/types/rest/monetization.d.ts +103 -0
  389. package/lib/types/rest/monetization.js +11 -0
  390. package/lib/types/rest/oauth2.d.ts +172 -0
  391. package/lib/types/rest/oauth2.js +2 -0
  392. package/lib/types/rest/poll.d.ts +44 -0
  393. package/lib/types/rest/poll.js +2 -0
  394. package/lib/types/rest/stageInstance.d.ts +58 -0
  395. package/lib/types/rest/stageInstance.js +2 -0
  396. package/lib/types/rest/sticker.d.ts +77 -0
  397. package/lib/types/rest/sticker.js +2 -0
  398. package/lib/types/rest/template.d.ts +62 -0
  399. package/lib/types/rest/template.js +2 -0
  400. package/lib/types/rest/user.d.ts +120 -0
  401. package/lib/types/rest/user.js +2 -0
  402. package/lib/types/rest/voice.d.ts +17 -0
  403. package/lib/types/rest/voice.js +2 -0
  404. package/lib/types/rest/webhook.d.ts +250 -0
  405. package/lib/types/rest/webhook.js +2 -0
  406. package/lib/types/utils/index.d.ts +808 -0
  407. package/lib/types/utils/index.js +810 -0
  408. package/lib/websocket/SharedTypes.d.ts +12 -5
  409. package/lib/websocket/SharedTypes.js +1 -1
  410. package/lib/websocket/constants/index.d.ts +3 -3
  411. package/lib/websocket/constants/index.js +11 -1
  412. package/lib/websocket/discord/basesocket.d.ts +7 -7
  413. package/lib/websocket/discord/basesocket.js +34 -22
  414. package/lib/websocket/discord/events/memberUpdate.d.ts +1 -6
  415. package/lib/websocket/discord/events/memberUpdate.js +2 -1
  416. package/lib/websocket/discord/events/presenceUpdate.d.ts +5 -18
  417. package/lib/websocket/discord/events/presenceUpdate.js +5 -6
  418. package/lib/websocket/discord/shard.d.ts +9 -8
  419. package/lib/websocket/discord/shard.js +83 -57
  420. package/lib/websocket/discord/sharder.d.ts +6 -5
  421. package/lib/websocket/discord/sharder.js +70 -11
  422. package/lib/websocket/discord/shared.d.ts +34 -6
  423. package/lib/websocket/discord/socket/custom.d.ts +52 -0
  424. package/lib/websocket/discord/socket/custom.js +300 -0
  425. package/lib/websocket/discord/worker.d.ts +6 -10
  426. package/lib/websocket/discord/workermanager.d.ts +10 -16
  427. package/lib/websocket/discord/workermanager.js +63 -50
  428. package/lib/websocket/structures/index.d.ts +0 -1
  429. package/lib/websocket/structures/index.js +1 -1
  430. package/lib/websocket/structures/timeout.d.ts +0 -1
  431. package/package.json +70 -74
  432. package/lib/cache/adapters/redis.d.ts +0 -37
  433. package/lib/cache/adapters/redis.js +0 -218
  434. package/lib/client/oninteractioncreate.d.ts +0 -4
  435. package/lib/client/oninteractioncreate.js +0 -198
  436. package/lib/client/onmessagecreate.d.ts +0 -13
  437. package/lib/client/onmessagecreate.js +0 -410
  438. package/lib/structures/extra/functions.d.ts +0 -12
  439. package/lib/structures/extra/functions.js +0 -70
@@ -13,16 +13,13 @@ const common_1 = require("../../common");
13
13
  const constants_1 = require("../constants");
14
14
  const structures_1 = require("../structures");
15
15
  const timeout_1 = require("../structures/timeout");
16
- const memberUpdate_1 = require("./events/memberUpdate");
17
- const presenceUpdate_1 = require("./events/presenceUpdate");
18
16
  class WorkerManager extends Map {
19
17
  options;
20
18
  debugger;
21
19
  connectQueue;
20
+ workerQueue = [];
22
21
  cacheAdapter;
23
22
  promises = new Map();
24
- memberUpdateHandler = new memberUpdate_1.MemberUpdateHandler();
25
- presenceUpdateHandler = new presenceUpdate_1.PresenceUpdateHandler();
26
23
  rest;
27
24
  constructor(options) {
28
25
  super();
@@ -103,38 +100,33 @@ class WorkerManager extends Map {
103
100
  case 'threads':
104
101
  worker.postMessage(body);
105
102
  break;
103
+ case 'custom':
104
+ this.options.adapter.postMessage(id, body);
105
+ break;
106
106
  }
107
107
  }
108
108
  async prepareWorkers(shards) {
109
+ const worker_threads = (0, common_1.lazyLoadPackage)('node:worker_threads');
110
+ if (!worker_threads)
111
+ throw new Error('Cannot prepare workers without worker_threads.');
109
112
  for (let i = 0; i < shards.length; i++) {
110
- let worker = this.get(i);
111
- if (!worker) {
112
- worker = this.createWorker({
113
- path: this.options.path,
114
- debug: this.options.debug,
115
- token: this.options.token,
116
- shards: shards[i],
117
- intents: this.options.intents,
118
- workerId: i,
119
- workerProxy: this.options.workerProxy,
113
+ const workerExists = this.has(i);
114
+ if (!workerExists) {
115
+ this.workerQueue.push(() => {
116
+ const worker = this.createWorker({
117
+ path: this.options.path,
118
+ debug: this.options.debug,
119
+ token: this.options.token,
120
+ shards: shards[i],
121
+ intents: this.options.intents,
122
+ workerId: i,
123
+ workerProxy: this.options.workerProxy,
124
+ totalShards: this.totalShards,
125
+ mode: this.options.mode,
126
+ });
127
+ this.set(i, worker);
120
128
  });
121
- this.set(i, worker);
122
129
  }
123
- const listener = (message) => {
124
- if (message.type !== 'WORKER_START')
125
- return;
126
- worker.removeListener('message', listener);
127
- this.postMessage(i, {
128
- type: 'SPAWN_SHARDS',
129
- compress: this.options.compress ?? false,
130
- info: {
131
- ...this.options.info,
132
- shards: this.totalShards,
133
- },
134
- properties: this.options.properties,
135
- });
136
- };
137
- worker.on('message', listener);
138
130
  }
139
131
  }
140
132
  createWorker(workerData) {
@@ -163,11 +155,16 @@ class WorkerManager extends Map {
163
155
  worker.on('message', data => this.handleWorkerMessage(data));
164
156
  return worker;
165
157
  }
158
+ case 'custom':
159
+ this.options.adapter.spawn(workerData, env);
160
+ return {
161
+ ready: false,
162
+ };
166
163
  }
167
164
  }
168
165
  spawn(workerId, shardId) {
169
166
  this.connectQueue.push(() => {
170
- const worker = this.get(workerId);
167
+ const worker = this.has(workerId);
171
168
  if (!worker) {
172
169
  this.debugger?.fatal("Trying spawn with worker doesn't exist");
173
170
  return;
@@ -181,12 +178,28 @@ class WorkerManager extends Map {
181
178
  }
182
179
  async handleWorkerMessage(message) {
183
180
  switch (message.type) {
181
+ case 'WORKER_START':
182
+ {
183
+ this.postMessage(message.workerId, {
184
+ type: 'SPAWN_SHARDS',
185
+ compress: this.options.compress ?? false,
186
+ info: {
187
+ ...this.options.info,
188
+ shards: this.totalShards,
189
+ },
190
+ properties: {
191
+ ...constants_1.properties,
192
+ ...this.options.properties,
193
+ },
194
+ });
195
+ }
196
+ break;
184
197
  case 'CONNECT_QUEUE':
185
198
  this.spawn(message.workerId, message.shardId);
186
199
  break;
187
200
  case 'CACHE_REQUEST':
188
201
  {
189
- const worker = this.get(message.workerId);
202
+ const worker = this.has(message.workerId);
190
203
  if (!worker) {
191
204
  throw new Error('Invalid request from unavailable worker');
192
205
  }
@@ -200,21 +213,7 @@ class WorkerManager extends Map {
200
213
  }
201
214
  break;
202
215
  case 'RECEIVE_PAYLOAD':
203
- {
204
- switch (message.payload.t) {
205
- case 'GUILD_MEMBER_UPDATE':
206
- if (!this.memberUpdateHandler.check(message.payload.d)) {
207
- return;
208
- }
209
- break;
210
- case 'PRESENCE_UPDATE':
211
- if (!this.presenceUpdateHandler.check(message.payload.d)) {
212
- return;
213
- }
214
- break;
215
- }
216
- this.options.handlePayload(message.shardId, message.workerId, message.payload);
217
- }
216
+ await this.options.handlePayload(message.shardId, message.workerId, message.payload);
218
217
  break;
219
218
  case 'RESULT_PAYLOAD':
220
219
  {
@@ -264,6 +263,18 @@ class WorkerManager extends Map {
264
263
  }
265
264
  }
266
265
  break;
266
+ case 'WORKER_SHARDS_CONNECTED':
267
+ {
268
+ const nextWorker = this.workerQueue.shift();
269
+ if (nextWorker) {
270
+ this.debugger?.info('Spawning next worker');
271
+ nextWorker();
272
+ }
273
+ else {
274
+ this.debugger?.info('No more workers to spawn left');
275
+ }
276
+ }
277
+ break;
267
278
  case 'WORKER_API_REQUEST':
268
279
  {
269
280
  const response = await this.rest.request(message.method, message.url, message.requestOptions);
@@ -322,7 +333,7 @@ class WorkerManager extends Map {
322
333
  }
323
334
  async send(data, shardId) {
324
335
  const workerId = this.calculateWorkerId(shardId);
325
- const worker = this.get(workerId);
336
+ const worker = this.has(workerId);
326
337
  if (!worker) {
327
338
  throw new Error(`Worker #${workerId} doesnt exist`);
328
339
  }
@@ -337,7 +348,7 @@ class WorkerManager extends Map {
337
348
  }
338
349
  async getShardInfo(shardId) {
339
350
  const workerId = this.calculateWorkerId(shardId);
340
- const worker = this.get(workerId);
351
+ const worker = this.has(workerId);
341
352
  if (!worker) {
342
353
  throw new Error(`Worker #${workerId} doesnt exist`);
343
354
  }
@@ -346,7 +357,7 @@ class WorkerManager extends Map {
346
357
  return this.generateSendPromise(nonce, 'Get shard info timeout');
347
358
  }
348
359
  async getWorkerInfo(workerId) {
349
- const worker = this.get(workerId);
360
+ const worker = this.has(workerId);
350
361
  if (!worker) {
351
362
  throw new Error(`Worker #${workerId} doesnt exist`);
352
363
  }
@@ -381,6 +392,8 @@ class WorkerManager extends Map {
381
392
  }
382
393
  const spaces = this.prepareSpaces();
383
394
  await this.prepareWorkers(spaces);
395
+ // Start workers queue
396
+ return this.workerQueue.shift()?.();
384
397
  }
385
398
  }
386
399
  exports.WorkerManager = WorkerManager;
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { type Logger } from '../../common';
3
2
  /**
4
3
  * options of the dynamic bucket
@@ -62,7 +62,7 @@ class DynamicBucket {
62
62
  acquire(force = false) {
63
63
  return new Promise(res => {
64
64
  this.queue[force ? 'unshift' : 'push'](res);
65
- void this.processQueue();
65
+ this.processQueue();
66
66
  });
67
67
  }
68
68
  static chunk(array, chunks) {
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  export declare class ConnectTimeout {
3
2
  intervalTime: number;
4
3
  readonly promises: ((x: boolean) => any)[];
package/package.json CHANGED
@@ -1,74 +1,70 @@
1
- {
2
- "name": "seyfert",
3
- "version": "1.5.0",
4
- "description": "The most advanced framework for discord bots",
5
- "main": "./lib/index.js",
6
- "module": "./lib/index.js",
7
- "types": "./lib/index.d.ts",
8
- "files": [
9
- "lib/**"
10
- ],
11
- "scripts": {
12
- "build": "tsc --outDir ./lib",
13
- "prepublishOnly": "npm run build",
14
- "prepare": "npm run build && husky install",
15
- "lint": "biome lint --apply ./src",
16
- "format": "biome format --write ./src",
17
- "check-h": "biome check --apply ./src",
18
- "check": "biome check --apply --no-errors-on-unmatched ./src"
19
- },
20
- "author": "MARCROCK22",
21
- "license": "Apache-2.0",
22
- "dependencies": {
23
- "chokidar": "^3.6.0",
24
- "discord-api-types": "^0.37.86",
25
- "magic-bytes.js": "^1.10.0",
26
- "ts-mixer": "^6.0.4",
27
- "ws": "^8.17.0"
28
- },
29
- "lint-staged": {
30
- "*.ts": [
31
- "biome check --apply",
32
- "biome format --write"
33
- ]
34
- },
35
- "devDependencies": {
36
- "@biomejs/biome": "1.7.3",
37
- "@commitlint/cli": "^19.3.0",
38
- "@commitlint/config-conventional": "^19.2.2",
39
- "@types/node": "^20.12.12",
40
- "@types/ws": "^8.5.10",
41
- "husky": "^9.0.11",
42
- "lint-staged": "^15.2.5",
43
- "typescript": "^5.4.5"
44
- },
45
- "optionalDependencies": {
46
- "ioredis": "^5.4.1",
47
- "tweetnacl": "^1.0.3",
48
- "uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.42.0"
49
- },
50
- "homepage": "https://seyfert.dev",
51
- "repository": {
52
- "type": "git",
53
- "url": "git+https://github.com/tiramisulabs/seyfert.git"
54
- },
55
- "bugs": {
56
- "url": "https://github.com/tiramisulabs/seyfert"
57
- },
58
- "keywords": [
59
- "api",
60
- "discord",
61
- "bots",
62
- "typescript",
63
- "botdev"
64
- ],
65
- "publishConfig": {
66
- "access": "public"
67
- },
68
- "contributors": [
69
- {
70
- "name": "socram03",
71
- "url": "https://github.com/socram03"
72
- }
73
- ]
74
- }
1
+ {
2
+ "name": "seyfert",
3
+ "version": "2.1.0",
4
+ "description": "The most advanced framework for discord bots",
5
+ "main": "./lib/index.js",
6
+ "module": "./lib/index.js",
7
+ "types": "./lib/index.d.ts",
8
+ "files": [
9
+ "lib/**"
10
+ ],
11
+ "scripts": {
12
+ "build": "tsc --outDir ./lib",
13
+ "prepublishOnly": "npm run build",
14
+ "prepare": "npm run build && husky",
15
+ "lint": "biome lint --write ./src",
16
+ "format": "biome format --write ./src",
17
+ "check-h": "biome check --write ./src",
18
+ "check": "biome check --write --no-errors-on-unmatched ./src"
19
+ },
20
+ "author": "MARCROCK22",
21
+ "license": "MIT",
22
+ "devDependencies": {
23
+ "@biomejs/biome": "1.8.3",
24
+ "@commitlint/cli": "^19.4.0",
25
+ "@commitlint/config-conventional": "^19.2.2",
26
+ "@types/node": "^22.5.0",
27
+ "husky": "^9.1.5",
28
+ "lint-staged": "^15.2.9",
29
+ "typescript": "^5.5.4"
30
+ },
31
+ "homepage": "https://seyfert.dev",
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "git+https://github.com/tiramisulabs/seyfert.git"
35
+ },
36
+ "bugs": {
37
+ "url": "https://github.com/tiramisulabs/seyfert"
38
+ },
39
+ "keywords": [
40
+ "api",
41
+ "discord",
42
+ "bots",
43
+ "typescript",
44
+ "botdev"
45
+ ],
46
+ "publishConfig": {
47
+ "access": "public"
48
+ },
49
+ "maintainers": [
50
+ {
51
+ "name": "socram03",
52
+ "url": "https://github.com/socram03"
53
+ }
54
+ ],
55
+ "contributors": [
56
+ {
57
+ "name": "Free 公園",
58
+ "url": "https://github.com/FreeAoi"
59
+ },
60
+ {
61
+ "name": "David",
62
+ "url": "https://github.com/Drylozu"
63
+ }
64
+ ],
65
+ "lint-staged": {
66
+ "*.ts": [
67
+ "biome check --write"
68
+ ]
69
+ }
70
+ }
@@ -1,37 +0,0 @@
1
- import type { RedisOptions } from 'ioredis';
2
- import type { Adapter } from './types';
3
- interface RedisAdapterOptions {
4
- namespace?: string;
5
- }
6
- export declare class RedisAdapter implements Adapter {
7
- isAsync: boolean;
8
- client: import('ioredis').Redis;
9
- namespace: string;
10
- constructor(data: ({
11
- client: import('ioredis').Redis;
12
- } | {
13
- redisOptions: RedisOptions;
14
- }) & RedisAdapterOptions);
15
- private __scanSets;
16
- scan(query: string, returnKeys?: false): Promise<any[]>;
17
- scan(query: string, returnKeys: true): Promise<string[]>;
18
- get(keys: string[]): Promise<any[]>;
19
- get(keys: string): Promise<any>;
20
- set(id: [string, any][]): Promise<void>;
21
- set(id: string, data: any): Promise<void>;
22
- patch(updateOnly: boolean, id: [string, any][]): Promise<void>;
23
- patch(updateOnly: boolean, id: string, data: any): Promise<void>;
24
- values(to: string): Promise<any[]>;
25
- keys(to: string): Promise<string[]>;
26
- count(to: string): Promise<number>;
27
- remove(keys: string | string[]): Promise<void>;
28
- flush(): Promise<void>;
29
- contains(to: string, keys: string): Promise<boolean>;
30
- getToRelationship(to: string): Promise<string[]>;
31
- bulkAddToRelationShip(data: Record<string, string[]>): Promise<void>;
32
- addToRelationship(to: string, keys: string | string[]): Promise<void>;
33
- removeToRelationship(to: string, keys: string | string[]): Promise<void>;
34
- removeRelationship(to: string | string[]): Promise<void>;
35
- protected buildKey(key: string): string;
36
- }
37
- export {};
@@ -1,218 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RedisAdapter = void 0;
4
- let Redis;
5
- try {
6
- Redis = require('ioredis').Redis;
7
- }
8
- catch {
9
- // potocuit > seyfert
10
- }
11
- class RedisAdapter {
12
- isAsync = true;
13
- client;
14
- namespace;
15
- constructor(data) {
16
- if (!Redis) {
17
- throw new Error('No ioredis installed');
18
- }
19
- this.client = 'client' in data ? data.client : new Redis(data.redisOptions);
20
- this.namespace = data.namespace ?? 'seyfert';
21
- }
22
- __scanSets(query, returnKeys = false) {
23
- const match = this.buildKey(query);
24
- return new Promise((r, j) => {
25
- const stream = this.client.scanStream({
26
- match,
27
- type: 'set',
28
- });
29
- const keys = [];
30
- stream
31
- .on('data', resultKeys => keys.push(...resultKeys))
32
- .on('end', () => (returnKeys ? r(keys.map(x => this.buildKey(x))) : r(this.get(keys))))
33
- .on('error', err => j(err));
34
- });
35
- }
36
- scan(query, returnKeys = false) {
37
- const match = this.buildKey(query);
38
- return new Promise((r, j) => {
39
- const stream = this.client.scanStream({
40
- match,
41
- // omit relationships
42
- type: 'hash',
43
- });
44
- const keys = [];
45
- stream
46
- .on('data', resultKeys => keys.push(...resultKeys))
47
- .on('end', () => (returnKeys ? r(keys.map(x => this.buildKey(x))) : r(this.get(keys))))
48
- .on('error', err => j(err));
49
- });
50
- }
51
- async get(keys) {
52
- if (!Array.isArray(keys)) {
53
- const value = await this.client.hgetall(this.buildKey(keys));
54
- if (value) {
55
- return toNormal(value);
56
- }
57
- return;
58
- }
59
- const pipeline = this.client.pipeline();
60
- for (const key of keys) {
61
- pipeline.hgetall(this.buildKey(key));
62
- }
63
- return (await pipeline.exec())?.filter(x => !!x[1]).map(x => toNormal(x[1])) ?? [];
64
- }
65
- async set(id, data) {
66
- if (!Array.isArray(id)) {
67
- await this.client.hset(this.buildKey(id), toDb(data));
68
- return;
69
- }
70
- const pipeline = this.client.pipeline();
71
- for (const [k, v] of id) {
72
- pipeline.hset(this.buildKey(k), toDb(v));
73
- }
74
- await pipeline.exec();
75
- }
76
- async patch(updateOnly, id, data) {
77
- if (!Array.isArray(id)) {
78
- if (updateOnly) {
79
- await this.client.eval(`if redis.call('exists',KEYS[1]) == 1 then redis.call('hset', KEYS[1], ${Array.from({ length: Object.keys(data).length * 2 }, (_, i) => `ARGV[${i + 1}]`)}) end`, 1, this.buildKey(id), ...Object.entries(toDb(data)).flat());
80
- }
81
- else {
82
- await this.client.hset(this.buildKey(id), toDb(data));
83
- }
84
- return;
85
- }
86
- const pipeline = this.client.pipeline();
87
- for (const [k, v] of id) {
88
- if (updateOnly) {
89
- pipeline.eval(`if redis.call('exists',KEYS[1]) == 1 then redis.call('hset', KEYS[1], ${Array.from({ length: Object.keys(v).length * 2 }, (_, i) => `ARGV[${i + 1}]`)}) end`, 1, this.buildKey(k), ...Object.entries(toDb(v)).flat());
90
- }
91
- else {
92
- pipeline.hset(this.buildKey(k), toDb(v));
93
- }
94
- }
95
- await pipeline.exec();
96
- }
97
- async values(to) {
98
- const array = [];
99
- const data = await this.keys(to);
100
- if (data.length) {
101
- const items = await this.get(data);
102
- for (const item of items) {
103
- if (item) {
104
- array.push(item);
105
- }
106
- }
107
- }
108
- return array;
109
- }
110
- async keys(to) {
111
- const data = await this.getToRelationship(to);
112
- return data.map(id => this.buildKey(`${to}.${id}`));
113
- }
114
- async count(to) {
115
- return this.client.scard(`${this.buildKey(to)}:set`);
116
- }
117
- async remove(keys) {
118
- if (!Array.isArray(keys)) {
119
- await this.client.del(this.buildKey(keys));
120
- return;
121
- }
122
- await this.client.del(...keys.map(x => this.buildKey(x)));
123
- }
124
- async flush() {
125
- const keys = await Promise.all([
126
- this.scan(this.buildKey('*'), true),
127
- this.__scanSets(this.buildKey('*'), true),
128
- ]).then(x => x.flat());
129
- if (!keys.length)
130
- return;
131
- await this.remove(keys);
132
- }
133
- async contains(to, keys) {
134
- return (await this.client.sismember(`${this.buildKey(to)}:set`, keys)) === 1;
135
- }
136
- async getToRelationship(to) {
137
- return this.client.smembers(`${this.buildKey(to)}:set`);
138
- }
139
- async bulkAddToRelationShip(data) {
140
- const pipeline = this.client.pipeline();
141
- for (const [key, value] of Object.entries(data)) {
142
- pipeline.sadd(`${this.buildKey(key)}:set`, ...value);
143
- }
144
- await pipeline.exec();
145
- }
146
- async addToRelationship(to, keys) {
147
- await this.client.sadd(`${this.buildKey(to)}:set`, ...(Array.isArray(keys) ? keys : [keys]));
148
- }
149
- async removeToRelationship(to, keys) {
150
- await this.client.srem(`${this.buildKey(to)}:set`, ...(Array.isArray(keys) ? keys : [keys]));
151
- }
152
- async removeRelationship(to) {
153
- await this.client.del(...(Array.isArray(to) ? to.map(x => `${this.buildKey(x)}:set`) : [`${this.buildKey(to)}:set`]));
154
- }
155
- buildKey(key) {
156
- return key.startsWith(this.namespace) ? key : `${this.namespace}:${key}`;
157
- }
158
- }
159
- exports.RedisAdapter = RedisAdapter;
160
- const isObject = (o) => {
161
- return !!o && typeof o === 'object' && !Array.isArray(o);
162
- };
163
- function toNormal(target) {
164
- if (typeof target.ARRAY_OF === 'string')
165
- return JSON.parse(target.ARRAY_OF).map(toNormal);
166
- if (!Object.keys(target).length)
167
- return undefined;
168
- const result = {};
169
- for (const [key, value] of Object.entries(target)) {
170
- if (key.startsWith('O_')) {
171
- result[key.slice(2)] = JSON.parse(value);
172
- }
173
- else if (key.startsWith('N_')) {
174
- result[key.slice(2)] = Number(value);
175
- }
176
- else if (key.startsWith('B_')) {
177
- result[key.slice(2)] = value === 'true';
178
- }
179
- else {
180
- result[key] = value;
181
- }
182
- }
183
- return result;
184
- }
185
- function toDb(target) {
186
- if (Array.isArray(target))
187
- return { ARRAY_OF: JSON.stringify(target.map(toDb)) };
188
- const result = {};
189
- for (const [key, value] of Object.entries(target)) {
190
- switch (typeof value) {
191
- case 'boolean':
192
- result[`B_${key}`] = value;
193
- break;
194
- case 'number':
195
- result[`N_${key}`] = `${value}`;
196
- break;
197
- case 'object':
198
- if (Array.isArray(value)) {
199
- result[`O_${key}`] = JSON.stringify(value);
200
- break;
201
- }
202
- if (isObject(value)) {
203
- result[`O_${key}`] = JSON.stringify(value);
204
- break;
205
- }
206
- if (!Number.isNaN(value)) {
207
- result[`O_${key}`] = 'null';
208
- break;
209
- }
210
- result[`O_${key}`] = JSON.stringify(value);
211
- break;
212
- default:
213
- result[key] = value;
214
- break;
215
- }
216
- }
217
- return result;
218
- }
@@ -1,4 +0,0 @@
1
- import { type APIInteraction } from 'discord-api-types/v10';
2
- import { type UsingClient } from '../commands';
3
- import type { __InternalReplyFunction } from '../structures';
4
- export declare function onInteractionCreate(self: UsingClient, body: APIInteraction, shardId: number, __reply?: __InternalReplyFunction): Promise<any>;