discord.js-selfbott-v14 2.12.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 (349) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +136 -0
  3. package/package.json +107 -0
  4. package/src/WebSocket.js +39 -0
  5. package/src/client/BaseClient.js +87 -0
  6. package/src/client/Client.js +1119 -0
  7. package/src/client/WebhookClient.js +61 -0
  8. package/src/client/actions/Action.js +115 -0
  9. package/src/client/actions/ActionsManager.js +72 -0
  10. package/src/client/actions/ApplicationCommandPermissionsUpdate.js +34 -0
  11. package/src/client/actions/AutoModerationActionExecution.js +26 -0
  12. package/src/client/actions/AutoModerationRuleCreate.js +27 -0
  13. package/src/client/actions/AutoModerationRuleDelete.js +31 -0
  14. package/src/client/actions/AutoModerationRuleUpdate.js +29 -0
  15. package/src/client/actions/ChannelCreate.js +23 -0
  16. package/src/client/actions/ChannelDelete.js +39 -0
  17. package/src/client/actions/ChannelUpdate.js +43 -0
  18. package/src/client/actions/GuildAuditLogEntryCreate.js +29 -0
  19. package/src/client/actions/GuildBanAdd.js +20 -0
  20. package/src/client/actions/GuildBanRemove.js +25 -0
  21. package/src/client/actions/GuildChannelsPositionUpdate.js +21 -0
  22. package/src/client/actions/GuildDelete.js +65 -0
  23. package/src/client/actions/GuildEmojiCreate.js +20 -0
  24. package/src/client/actions/GuildEmojiDelete.js +21 -0
  25. package/src/client/actions/GuildEmojiUpdate.js +20 -0
  26. package/src/client/actions/GuildEmojisUpdate.js +34 -0
  27. package/src/client/actions/GuildIntegrationsUpdate.js +19 -0
  28. package/src/client/actions/GuildMemberRemove.js +33 -0
  29. package/src/client/actions/GuildMemberUpdate.js +44 -0
  30. package/src/client/actions/GuildRoleCreate.js +25 -0
  31. package/src/client/actions/GuildRoleDelete.js +31 -0
  32. package/src/client/actions/GuildRoleUpdate.js +39 -0
  33. package/src/client/actions/GuildRolesPositionUpdate.js +21 -0
  34. package/src/client/actions/GuildScheduledEventCreate.js +27 -0
  35. package/src/client/actions/GuildScheduledEventDelete.js +31 -0
  36. package/src/client/actions/GuildScheduledEventUpdate.js +30 -0
  37. package/src/client/actions/GuildScheduledEventUserAdd.js +32 -0
  38. package/src/client/actions/GuildScheduledEventUserRemove.js +32 -0
  39. package/src/client/actions/GuildStickerCreate.js +20 -0
  40. package/src/client/actions/GuildStickerDelete.js +21 -0
  41. package/src/client/actions/GuildStickerUpdate.js +20 -0
  42. package/src/client/actions/GuildStickersUpdate.js +34 -0
  43. package/src/client/actions/GuildUpdate.js +33 -0
  44. package/src/client/actions/InteractionCreate.js +115 -0
  45. package/src/client/actions/InviteCreate.js +28 -0
  46. package/src/client/actions/InviteDelete.js +30 -0
  47. package/src/client/actions/MessageCreate.js +50 -0
  48. package/src/client/actions/MessageDelete.js +32 -0
  49. package/src/client/actions/MessageDeleteBulk.js +46 -0
  50. package/src/client/actions/MessageReactionAdd.js +56 -0
  51. package/src/client/actions/MessageReactionRemove.js +45 -0
  52. package/src/client/actions/MessageReactionRemoveAll.js +33 -0
  53. package/src/client/actions/MessageReactionRemoveEmoji.js +28 -0
  54. package/src/client/actions/MessageUpdate.js +26 -0
  55. package/src/client/actions/PresenceUpdate.js +45 -0
  56. package/src/client/actions/StageInstanceCreate.js +28 -0
  57. package/src/client/actions/StageInstanceDelete.js +33 -0
  58. package/src/client/actions/StageInstanceUpdate.js +30 -0
  59. package/src/client/actions/ThreadCreate.js +24 -0
  60. package/src/client/actions/ThreadDelete.js +32 -0
  61. package/src/client/actions/ThreadListSync.js +59 -0
  62. package/src/client/actions/ThreadMemberUpdate.js +30 -0
  63. package/src/client/actions/ThreadMembersUpdate.js +34 -0
  64. package/src/client/actions/TypingStart.js +29 -0
  65. package/src/client/actions/UserUpdate.js +35 -0
  66. package/src/client/actions/VoiceStateUpdate.js +57 -0
  67. package/src/client/actions/WebhooksUpdate.js +20 -0
  68. package/src/client/voice/ClientVoiceManager.js +51 -0
  69. package/src/client/websocket/WebSocketManager.js +412 -0
  70. package/src/client/websocket/WebSocketShard.js +905 -0
  71. package/src/client/websocket/handlers/APPLICATION_COMMAND_AUTOCOMPLETE_RESPONSE.js +23 -0
  72. package/src/client/websocket/handlers/APPLICATION_COMMAND_CREATE.js +18 -0
  73. package/src/client/websocket/handlers/APPLICATION_COMMAND_DELETE.js +20 -0
  74. package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +5 -0
  75. package/src/client/websocket/handlers/APPLICATION_COMMAND_UPDATE.js +20 -0
  76. package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.js +5 -0
  77. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.js +5 -0
  78. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.js +5 -0
  79. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.js +5 -0
  80. package/src/client/websocket/handlers/CALL_CREATE.js +14 -0
  81. package/src/client/websocket/handlers/CALL_DELETE.js +11 -0
  82. package/src/client/websocket/handlers/CALL_UPDATE.js +11 -0
  83. package/src/client/websocket/handlers/CHANNEL_CREATE.js +5 -0
  84. package/src/client/websocket/handlers/CHANNEL_DELETE.js +5 -0
  85. package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.js +22 -0
  86. package/src/client/websocket/handlers/CHANNEL_RECIPIENT_ADD.js +16 -0
  87. package/src/client/websocket/handlers/CHANNEL_RECIPIENT_REMOVE.js +16 -0
  88. package/src/client/websocket/handlers/CHANNEL_UPDATE.js +16 -0
  89. package/src/client/websocket/handlers/GUILD_APPLICATION_COMMANDS_UPDATE.js +11 -0
  90. package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js +5 -0
  91. package/src/client/websocket/handlers/GUILD_BAN_ADD.js +5 -0
  92. package/src/client/websocket/handlers/GUILD_BAN_REMOVE.js +5 -0
  93. package/src/client/websocket/handlers/GUILD_CREATE.js +46 -0
  94. package/src/client/websocket/handlers/GUILD_DELETE.js +5 -0
  95. package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.js +5 -0
  96. package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.js +5 -0
  97. package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.js +39 -0
  98. package/src/client/websocket/handlers/GUILD_MEMBER_ADD.js +20 -0
  99. package/src/client/websocket/handlers/GUILD_MEMBER_LIST_UPDATE.js +55 -0
  100. package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.js +5 -0
  101. package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.js +5 -0
  102. package/src/client/websocket/handlers/GUILD_ROLE_CREATE.js +5 -0
  103. package/src/client/websocket/handlers/GUILD_ROLE_DELETE.js +5 -0
  104. package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.js +5 -0
  105. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.js +5 -0
  106. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.js +5 -0
  107. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.js +5 -0
  108. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.js +5 -0
  109. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +5 -0
  110. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUNDS_UPDATE.js +0 -0
  111. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_CREATE.js +0 -0
  112. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_DELETE.js +0 -0
  113. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_UPDATE.js +0 -0
  114. package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.js +5 -0
  115. package/src/client/websocket/handlers/GUILD_UPDATE.js +5 -0
  116. package/src/client/websocket/handlers/INTERACTION_CREATE.js +16 -0
  117. package/src/client/websocket/handlers/INTERACTION_FAILURE.js +18 -0
  118. package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +11 -0
  119. package/src/client/websocket/handlers/INTERACTION_SUCCESS.js +30 -0
  120. package/src/client/websocket/handlers/INVITE_CREATE.js +5 -0
  121. package/src/client/websocket/handlers/INVITE_DELETE.js +5 -0
  122. package/src/client/websocket/handlers/MESSAGE_ACK.js +16 -0
  123. package/src/client/websocket/handlers/MESSAGE_CREATE.js +5 -0
  124. package/src/client/websocket/handlers/MESSAGE_DELETE.js +5 -0
  125. package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.js +5 -0
  126. package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.js +5 -0
  127. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.js +5 -0
  128. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.js +5 -0
  129. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.js +5 -0
  130. package/src/client/websocket/handlers/MESSAGE_UPDATE.js +16 -0
  131. package/src/client/websocket/handlers/PRESENCE_UPDATE.js +5 -0
  132. package/src/client/websocket/handlers/READY.js +171 -0
  133. package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +17 -0
  134. package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +15 -0
  135. package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +18 -0
  136. package/src/client/websocket/handlers/RESUMED.js +14 -0
  137. package/src/client/websocket/handlers/SOUNDBOARD_SOUNDS.js +0 -0
  138. package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.js +5 -0
  139. package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.js +5 -0
  140. package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.js +5 -0
  141. package/src/client/websocket/handlers/THREAD_CREATE.js +5 -0
  142. package/src/client/websocket/handlers/THREAD_DELETE.js +5 -0
  143. package/src/client/websocket/handlers/THREAD_LIST_SYNC.js +5 -0
  144. package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.js +5 -0
  145. package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.js +5 -0
  146. package/src/client/websocket/handlers/THREAD_UPDATE.js +16 -0
  147. package/src/client/websocket/handlers/TYPING_START.js +5 -0
  148. package/src/client/websocket/handlers/USER_GUILD_SETTINGS_UPDATE.js +12 -0
  149. package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +5 -0
  150. package/src/client/websocket/handlers/USER_REQUIRED_ACTION_UPDATE.js +5 -0
  151. package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +9 -0
  152. package/src/client/websocket/handlers/USER_UPDATE.js +5 -0
  153. package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.js +0 -0
  154. package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.js +6 -0
  155. package/src/client/websocket/handlers/VOICE_STATE_UPDATE.js +5 -0
  156. package/src/client/websocket/handlers/WEBHOOKS_UPDATE.js +5 -0
  157. package/src/client/websocket/handlers/index.js +87 -0
  158. package/src/errors/DJSError.js +61 -0
  159. package/src/errors/Messages.js +227 -0
  160. package/src/errors/index.js +4 -0
  161. package/src/index.js +189 -0
  162. package/src/managers/ApplicationCommandManager.js +267 -0
  163. package/src/managers/ApplicationCommandPermissionsManager.js +425 -0
  164. package/src/managers/AutoModerationRuleManager.js +296 -0
  165. package/src/managers/BaseGuildEmojiManager.js +80 -0
  166. package/src/managers/BaseManager.js +19 -0
  167. package/src/managers/BillingManager.js +66 -0
  168. package/src/managers/CachedManager.js +71 -0
  169. package/src/managers/ChannelManager.js +139 -0
  170. package/src/managers/ClientUserSettingManager.js +490 -0
  171. package/src/managers/DataManager.js +61 -0
  172. package/src/managers/DeveloperPortalManager.js +104 -0
  173. package/src/managers/GuildApplicationCommandManager.js +28 -0
  174. package/src/managers/GuildBanManager.js +204 -0
  175. package/src/managers/GuildChannelManager.js +502 -0
  176. package/src/managers/GuildEmojiManager.js +171 -0
  177. package/src/managers/GuildEmojiRoleManager.js +118 -0
  178. package/src/managers/GuildFolderManager.js +24 -0
  179. package/src/managers/GuildForumThreadManager.js +114 -0
  180. package/src/managers/GuildInviteManager.js +213 -0
  181. package/src/managers/GuildManager.js +304 -0
  182. package/src/managers/GuildMemberManager.js +772 -0
  183. package/src/managers/GuildMemberRoleManager.js +191 -0
  184. package/src/managers/GuildScheduledEventManager.js +296 -0
  185. package/src/managers/GuildSettingManager.js +148 -0
  186. package/src/managers/GuildStickerManager.js +179 -0
  187. package/src/managers/GuildTextThreadManager.js +98 -0
  188. package/src/managers/InteractionManager.js +39 -0
  189. package/src/managers/MessageManager.js +393 -0
  190. package/src/managers/PermissionOverwriteManager.js +166 -0
  191. package/src/managers/PresenceManager.js +58 -0
  192. package/src/managers/ReactionManager.js +67 -0
  193. package/src/managers/ReactionUserManager.js +71 -0
  194. package/src/managers/RelationshipManager.js +258 -0
  195. package/src/managers/RoleManager.js +352 -0
  196. package/src/managers/SessionManager.js +57 -0
  197. package/src/managers/StageInstanceManager.js +162 -0
  198. package/src/managers/ThreadManager.js +207 -0
  199. package/src/managers/ThreadMemberManager.js +186 -0
  200. package/src/managers/UserManager.js +150 -0
  201. package/src/managers/VoiceStateManager.js +37 -0
  202. package/src/rest/APIRequest.js +132 -0
  203. package/src/rest/APIRouter.js +53 -0
  204. package/src/rest/CaptchaSolver.js +139 -0
  205. package/src/rest/DiscordAPIError.js +103 -0
  206. package/src/rest/HTTPError.js +62 -0
  207. package/src/rest/RESTManager.js +82 -0
  208. package/src/rest/RateLimitError.js +55 -0
  209. package/src/rest/RequestHandler.js +430 -0
  210. package/src/sharding/Shard.js +443 -0
  211. package/src/sharding/ShardClientUtil.js +275 -0
  212. package/src/sharding/ShardingManager.js +318 -0
  213. package/src/structures/AnonymousGuild.js +98 -0
  214. package/src/structures/ApplicationCommand.js +1030 -0
  215. package/src/structures/ApplicationRoleConnectionMetadata.js +45 -0
  216. package/src/structures/AutoModerationActionExecution.js +89 -0
  217. package/src/structures/AutoModerationRule.js +294 -0
  218. package/src/structures/AutocompleteInteraction.js +106 -0
  219. package/src/structures/Base.js +43 -0
  220. package/src/structures/BaseCommandInteraction.js +211 -0
  221. package/src/structures/BaseGuild.js +116 -0
  222. package/src/structures/BaseGuildEmoji.js +56 -0
  223. package/src/structures/BaseGuildTextChannel.js +193 -0
  224. package/src/structures/BaseGuildVoiceChannel.js +243 -0
  225. package/src/structures/BaseMessageComponent.js +114 -0
  226. package/src/structures/ButtonInteraction.js +11 -0
  227. package/src/structures/Call.js +58 -0
  228. package/src/structures/CategoryChannel.js +83 -0
  229. package/src/structures/Channel.js +271 -0
  230. package/src/structures/ClientApplication.js +204 -0
  231. package/src/structures/ClientPresence.js +84 -0
  232. package/src/structures/ClientUser.js +634 -0
  233. package/src/structures/CommandInteraction.js +41 -0
  234. package/src/structures/CommandInteractionOptionResolver.js +276 -0
  235. package/src/structures/ContextMenuInteraction.js +65 -0
  236. package/src/structures/DMChannel.js +280 -0
  237. package/src/structures/DeveloperPortalApplication.js +520 -0
  238. package/src/structures/DirectoryChannel.js +20 -0
  239. package/src/structures/Emoji.js +148 -0
  240. package/src/structures/ForumChannel.js +271 -0
  241. package/src/structures/Guild.js +1744 -0
  242. package/src/structures/GuildAuditLogs.js +734 -0
  243. package/src/structures/GuildBan.js +59 -0
  244. package/src/structures/GuildBoost.js +108 -0
  245. package/src/structures/GuildChannel.js +454 -0
  246. package/src/structures/GuildEmoji.js +161 -0
  247. package/src/structures/GuildFolder.js +75 -0
  248. package/src/structures/GuildMember.js +686 -0
  249. package/src/structures/GuildPreview.js +191 -0
  250. package/src/structures/GuildPreviewEmoji.js +27 -0
  251. package/src/structures/GuildScheduledEvent.js +441 -0
  252. package/src/structures/GuildTemplate.js +236 -0
  253. package/src/structures/Integration.js +188 -0
  254. package/src/structures/IntegrationApplication.js +96 -0
  255. package/src/structures/Interaction.js +351 -0
  256. package/src/structures/InteractionCollector.js +248 -0
  257. package/src/structures/InteractionResponse.js +114 -0
  258. package/src/structures/InteractionWebhook.js +43 -0
  259. package/src/structures/Invite.js +375 -0
  260. package/src/structures/InviteGuild.js +23 -0
  261. package/src/structures/InviteStageInstance.js +86 -0
  262. package/src/structures/Message.js +1188 -0
  263. package/src/structures/MessageActionRow.js +103 -0
  264. package/src/structures/MessageAttachment.js +193 -0
  265. package/src/structures/MessageButton.js +231 -0
  266. package/src/structures/MessageCollector.js +146 -0
  267. package/src/structures/MessageComponentInteraction.js +120 -0
  268. package/src/structures/MessageContextMenuInteraction.js +20 -0
  269. package/src/structures/MessageEmbed.js +586 -0
  270. package/src/structures/MessageMentions.js +272 -0
  271. package/src/structures/MessagePayload.js +358 -0
  272. package/src/structures/MessageReaction.js +171 -0
  273. package/src/structures/MessageSelectMenu.js +391 -0
  274. package/src/structures/Modal.js +279 -0
  275. package/src/structures/ModalSubmitFieldsResolver.js +53 -0
  276. package/src/structures/ModalSubmitInteraction.js +119 -0
  277. package/src/structures/NewsChannel.js +32 -0
  278. package/src/structures/OAuth2Guild.js +28 -0
  279. package/src/structures/PartialGroupDMChannel.js +433 -0
  280. package/src/structures/PermissionOverwrites.js +196 -0
  281. package/src/structures/Presence.js +443 -0
  282. package/src/structures/ReactionCollector.js +229 -0
  283. package/src/structures/ReactionEmoji.js +31 -0
  284. package/src/structures/RichPresence.js +722 -0
  285. package/src/structures/Role.js +515 -0
  286. package/src/structures/SelectMenuInteraction.js +170 -0
  287. package/src/structures/Session.js +81 -0
  288. package/src/structures/StageChannel.js +104 -0
  289. package/src/structures/StageInstance.js +208 -0
  290. package/src/structures/Sticker.js +310 -0
  291. package/src/structures/StickerPack.js +95 -0
  292. package/src/structures/StoreChannel.js +56 -0
  293. package/src/structures/Team.js +167 -0
  294. package/src/structures/TeamMember.js +71 -0
  295. package/src/structures/TextChannel.js +33 -0
  296. package/src/structures/TextInputComponent.js +201 -0
  297. package/src/structures/ThreadChannel.js +626 -0
  298. package/src/structures/ThreadMember.js +105 -0
  299. package/src/structures/Typing.js +74 -0
  300. package/src/structures/User.js +737 -0
  301. package/src/structures/UserContextMenuInteraction.js +29 -0
  302. package/src/structures/VoiceChannel.js +110 -0
  303. package/src/structures/VoiceRegion.js +53 -0
  304. package/src/structures/VoiceState.js +327 -0
  305. package/src/structures/WebEmbed.js +387 -0
  306. package/src/structures/Webhook.js +461 -0
  307. package/src/structures/WelcomeChannel.js +60 -0
  308. package/src/structures/WelcomeScreen.js +48 -0
  309. package/src/structures/Widget.js +87 -0
  310. package/src/structures/WidgetMember.js +99 -0
  311. package/src/structures/interfaces/Application.js +190 -0
  312. package/src/structures/interfaces/Collector.js +300 -0
  313. package/src/structures/interfaces/InteractionResponses.js +313 -0
  314. package/src/structures/interfaces/TextBasedChannel.js +566 -0
  315. package/src/util/ActivityFlags.js +44 -0
  316. package/src/util/ApplicationFlags.js +76 -0
  317. package/src/util/BitField.js +170 -0
  318. package/src/util/ChannelFlags.js +45 -0
  319. package/src/util/Constants.js +1938 -0
  320. package/src/util/DataResolver.js +145 -0
  321. package/src/util/Formatters.js +214 -0
  322. package/src/util/GuildMemberFlags.js +43 -0
  323. package/src/util/Intents.js +74 -0
  324. package/src/util/LimitedCollection.js +131 -0
  325. package/src/util/MessageFlags.js +54 -0
  326. package/src/util/Options.js +363 -0
  327. package/src/util/Permissions.js +187 -0
  328. package/src/util/PremiumUsageFlags.js +31 -0
  329. package/src/util/PurchasedFlags.js +31 -0
  330. package/src/util/RemoteAuth.js +514 -0
  331. package/src/util/SnowflakeUtil.js +92 -0
  332. package/src/util/Sweepers.js +466 -0
  333. package/src/util/SystemChannelFlags.js +55 -0
  334. package/src/util/ThreadMemberFlags.js +30 -0
  335. package/src/util/UserFlags.js +104 -0
  336. package/src/util/Util.js +853 -0
  337. package/src/util/Voice.js +1456 -0
  338. package/src/util/arRPC/index.js +229 -0
  339. package/src/util/arRPC/process/detectable.json +1 -0
  340. package/src/util/arRPC/process/index.js +102 -0
  341. package/src/util/arRPC/process/native/index.js +5 -0
  342. package/src/util/arRPC/process/native/linux.js +37 -0
  343. package/src/util/arRPC/process/native/win32.js +25 -0
  344. package/src/util/arRPC/transports/ipc.js +281 -0
  345. package/src/util/arRPC/transports/websocket.js +128 -0
  346. package/typings/enums.d.ts +346 -0
  347. package/typings/index.d.ts +7742 -0
  348. package/typings/index.test-d.ts +0 -0
  349. package/typings/rawDataTypes.d.ts +283 -0
@@ -0,0 +1,387 @@
1
+ 'use strict';
2
+ const baseURL = 'https://webembed-sb.onrender.com/embed?';
3
+ const hiddenCharter =
4
+ '||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||';
5
+ const fetch = require('node-fetch');
6
+ const { RangeError } = require('../errors');
7
+ const Util = require('../util/Util');
8
+
9
+ /**
10
+ * Send Embedlink to Discord
11
+ * Need to change WebEmbed API server (because heroku is no longer free)
12
+ */
13
+ class WebEmbed {
14
+ /**
15
+ * @param {WebEmbed} [data={}] Raw data
16
+ */
17
+ constructor(data = {}) {
18
+ /**
19
+ * A `Partial` object is a representation of any existing object.
20
+ * This object contains between 0 and all of the original objects parameters.
21
+ * This is true regardless of whether the parameters are optional in the base object.
22
+ * @typedef {Object} Partial
23
+ */
24
+
25
+ /**
26
+ * Represents the possible options for a WebEmbed
27
+ * @typedef {Object} WebEmbedOptions
28
+ * @property {string} [title] The title of this embed
29
+ * @property {string} [description] The description of this embed
30
+ * @property {string} [url] The URL of this embed
31
+ * @property {ColorResolvable} [color] The color of this embed
32
+ * @property {Partial<WebEmbedAuthor>} [author] The author of this embed
33
+ * @property {Partial<WebEmbedThumbnail>} [thumbnail] The thumbnail of this embed
34
+ * @property {Partial<WebEmbedImage>} [image] The image of this embed
35
+ * @property {Partial<WebEmbedVideo>} [video] The video of this embed
36
+ * @property {Partial<WebEmbedFooter>} [footer] The footer of this embed
37
+ * @property {Partial<WebEmbedProvider>} [provider] The provider of this embed
38
+ */
39
+
40
+ // eslint-disable-next-line valid-jsdoc
41
+ /**
42
+ * @param {WebEmbed|WebEmbedOptions|APIEmbed} [data={}] WebEmbed to clone or raw embed data
43
+ */
44
+ this._setup(data);
45
+ /**
46
+ * Shorten the link
47
+ * @type {?boolean}
48
+ */
49
+ this.shorten = data.shorten ?? true;
50
+
51
+ /**
52
+ * Hidden Embed link
53
+ * @type {?boolean}
54
+ */
55
+ this.hidden = data.hidden ?? false;
56
+
57
+ /**
58
+ * Using Custom WebEmbed server ?
59
+ * @type {?string} https://webembed-sb.onrender.com/embed?
60
+ * @see https://github.com/aiko-chan-ai/WebEmbed
61
+ */
62
+ this.baseURL = data.baseURL ?? baseURL;
63
+ }
64
+ /**
65
+ * @private
66
+ * @param {Object} data The data for the embed
67
+ */
68
+ _setup(data) {
69
+ /**
70
+ * Type image of this embed
71
+ * @type {?thumbnail | image}
72
+ */
73
+ this.imageType = 'thumbnail';
74
+ /**
75
+ * The title of this embed
76
+ * @type {?string}
77
+ */
78
+ this.title = data.title ?? null;
79
+
80
+ /**
81
+ * The description of this embed
82
+ * @type {?string}
83
+ */
84
+ this.description = data.description ?? null;
85
+
86
+ /**
87
+ * The URL of this embed
88
+ * @type {?string}
89
+ */
90
+ this.url = data.url ?? null;
91
+
92
+ /**
93
+ * The color of this embed
94
+ * @type {?number}
95
+ */
96
+ this.color = 'color' in data ? Util.resolveColor(data.color) : null;
97
+
98
+ /**
99
+ * Represents the image of a WebEmbed
100
+ * @typedef {Object} WebEmbedImage
101
+ * @property {string} url URL for this image
102
+ * @property {string} proxyURL ProxyURL for this image
103
+ * @property {number} height Height of this image
104
+ * @property {number} width Width of this image
105
+ */
106
+
107
+ /**
108
+ * The image of this embed, if there is one
109
+ * @type {?WebEmbedImage}
110
+ */
111
+ this.image = data.image
112
+ ? {
113
+ url: data.image.url,
114
+ proxyURL: data.image.proxyURL ?? data.image.proxy_url,
115
+ height: data.image.height,
116
+ width: data.image.width,
117
+ }
118
+ : null;
119
+
120
+ /**
121
+ * The thumbnail of this embed (if there is one)
122
+ * @type {?WebEmbedThumbnail}
123
+ */
124
+ this.thumbnail = data.thumbnail
125
+ ? {
126
+ url: data.thumbnail.url,
127
+ proxyURL: data.thumbnail.proxyURL ?? data.thumbnail.proxy_url,
128
+ height: data.thumbnail.height,
129
+ width: data.thumbnail.width,
130
+ }
131
+ : null;
132
+
133
+ /**
134
+ * Represents the video of a WebEmbed
135
+ * @typedef {Object} WebEmbedVideo
136
+ * @property {string} url URL of this video
137
+ * @property {string} proxyURL ProxyURL for this video
138
+ * @property {number} height Height of this video
139
+ * @property {number} width Width of this video
140
+ */
141
+
142
+ /**
143
+ * The video of this embed (if there is one)
144
+ * @type {?WebEmbedVideo}
145
+ * @readonly
146
+ */
147
+ this.video = data.video
148
+ ? {
149
+ url: data.video.url,
150
+ proxyURL: data.video.proxyURL ?? data.video.proxy_url,
151
+ height: data.video.height,
152
+ width: data.video.width,
153
+ }
154
+ : null;
155
+
156
+ /**
157
+ * Represents the author field of a WebEmbed
158
+ * @typedef {Object} WebEmbedAuthor
159
+ * @property {string} name The name of this author
160
+ * @property {string} url URL of this author
161
+ */
162
+
163
+ /**
164
+ * The author of this embed (if there is one)
165
+ * @type {?WebEmbedAuthor}
166
+ */
167
+ this.author = data.author
168
+ ? {
169
+ name: data.author.name,
170
+ url: data.author.url,
171
+ }
172
+ : null;
173
+
174
+ /**
175
+ * Represents the provider of a WebEmbed
176
+ * @typedef {Object} WebEmbedProvider
177
+ * @property {string} name The name of this provider
178
+ * @property {string} url URL of this provider
179
+ */
180
+
181
+ /**
182
+ * The provider of this embed (if there is one)
183
+ * @type {?WebEmbedProvider}
184
+ */
185
+ this.provider = data.provider
186
+ ? {
187
+ name: data.provider.name,
188
+ url: data.provider.name,
189
+ }
190
+ : null;
191
+ }
192
+ /**
193
+ * The options to provide for setting an author for a {@link WebEmbed}.
194
+ * @typedef {Object} EmbedAuthorData
195
+ * @property {string} name The name of this author.
196
+ */
197
+
198
+ /**
199
+ * Sets the author of this embed.
200
+ * @param {string|EmbedAuthorData|null} options The options to provide for the author.
201
+ * Provide `null` to remove the author data.
202
+ * @returns {WebEmbed}
203
+ */
204
+ setAuthor(options) {
205
+ if (options === null) {
206
+ this.author = {};
207
+ return this;
208
+ }
209
+ const { name, url } = options;
210
+ this.author = {
211
+ name: Util.verifyString(name, RangeError, 'EMBED_AUTHOR_NAME'),
212
+ url,
213
+ };
214
+ return this;
215
+ }
216
+
217
+ /**
218
+ * The options to provide for setting an provider for a {@link WebEmbed}.
219
+ * @typedef {Object} EmbedProviderData
220
+ * @property {string} name The name of this provider.
221
+ */
222
+
223
+ /**
224
+ * Sets the provider of this embed.
225
+ * @param {string|EmbedProviderData|null} options The options to provide for the provider.
226
+ * Provide `null` to remove the provider data.
227
+ * @returns {WebEmbed}
228
+ */
229
+ setProvider(options) {
230
+ if (options === null) {
231
+ this.provider = {};
232
+ return this;
233
+ }
234
+ const { name, url } = options;
235
+ this.provider = {
236
+ name: Util.verifyString(name, RangeError, 'EMBED_PROVIDER_NAME'),
237
+ url,
238
+ };
239
+ return this;
240
+ }
241
+
242
+ /**
243
+ * Sets the color of this embed.
244
+ * @param {ColorResolvable} color The color of the embed
245
+ * @returns {WebEmbed}
246
+ */
247
+ setColor(color) {
248
+ this.color = Util.resolveColor(color);
249
+ return this;
250
+ }
251
+
252
+ /**
253
+ * Sets the description of this embed.
254
+ * @param {string} description The description (Limit 350 characters)
255
+ * @returns {WebEmbed}
256
+ */
257
+ setDescription(description) {
258
+ this.description = Util.verifyString(description, RangeError, 'EMBED_DESCRIPTION');
259
+ return this;
260
+ }
261
+
262
+ /**
263
+ * Sets the image of this embed.
264
+ * @param {string} url The URL of the image
265
+ * @returns {WebEmbed}
266
+ */
267
+ setImage(url) {
268
+ if (this.thumbnail && this.thumbnail.url) {
269
+ console.warn('You can only set image or thumbnail per embed.');
270
+ this.thumbnail.url = null;
271
+ }
272
+ this.imageType = 'image';
273
+ this.image = { url };
274
+ return this;
275
+ }
276
+
277
+ /**
278
+ * Sets the thumbnail of this embed.
279
+ * @param {string} url The URL of the image
280
+ * @returns {WebEmbed}
281
+ */
282
+ setThumbnail(url) {
283
+ if (this.image && this.image.url) {
284
+ console.warn('You can only set image or thumbnail per embed.');
285
+ this.image.url = null;
286
+ }
287
+ this.imageType = 'thumbnail';
288
+ this.thumbnail = { url };
289
+ return this;
290
+ }
291
+
292
+ /**
293
+ * Sets the video of this embed.
294
+ * @param {string} url The URL of the video
295
+ * @returns {WebEmbed}
296
+ */
297
+ setVideo(url) {
298
+ this.video = { url };
299
+ return this;
300
+ }
301
+
302
+ /**
303
+ * Sets the title of this embed.
304
+ * @param {string} title The title
305
+ * @returns {WebEmbed}
306
+ */
307
+ setTitle(title) {
308
+ this.title = Util.verifyString(title, RangeError, 'EMBED_TITLE');
309
+ return this;
310
+ }
311
+
312
+ /**
313
+ * Sets the URL of this embed.
314
+ * @param {string} url The URL
315
+ * @returns {WebEmbed}
316
+ */
317
+ setURL(url) {
318
+ this.url = url;
319
+ return this;
320
+ }
321
+
322
+ /**
323
+ * Return Message Content + Embed (if hidden, pls check content length because it has 1000+ length)
324
+ * @returns {string} Message Content
325
+ */
326
+ async toMessage() {
327
+ const arrayQuery = [`image_type=${this.imageType}`];
328
+ if (this.title) {
329
+ arrayQuery.push(`title=${encodeURIComponent(this.title)}`);
330
+ }
331
+ if (this.description) {
332
+ arrayQuery.push(`description=${encodeURIComponent(this.description)}`);
333
+ }
334
+ if (this.url) {
335
+ arrayQuery.push(`url=${encodeURIComponent(this.url)}`);
336
+ }
337
+ if (this.color) {
338
+ arrayQuery.push(`color=${encodeURIComponent(`#${this.color.toString(16)}`)}`);
339
+ }
340
+ if (this.image?.url) {
341
+ arrayQuery.push(`image=${encodeURIComponent(this.image.url)}`);
342
+ }
343
+ if (this.video?.url) {
344
+ arrayQuery.push(`video=${encodeURIComponent(this.video.url)}`);
345
+ }
346
+ if (this.author) {
347
+ if (this.author.name) {
348
+ arrayQuery.push(`author_name=${encodeURIComponent(this.author.name)}`);
349
+ }
350
+ if (this.author.url) {
351
+ arrayQuery.push(`author_url=${encodeURIComponent(this.author.url)}`);
352
+ }
353
+ }
354
+ if (this.provider) {
355
+ if (this.provider.name) {
356
+ arrayQuery.push(`provider_name=${encodeURIComponent(this.provider.name)}`);
357
+ }
358
+ if (this.provider.url) {
359
+ arrayQuery.push(`provider_url=${encodeURIComponent(this.provider.url)}`);
360
+ }
361
+ }
362
+ if (this.thumbnail?.url) {
363
+ arrayQuery.push(`image=${encodeURIComponent(this.thumbnail.url)}`);
364
+ }
365
+ const fullURL = `${this.baseURL}${arrayQuery.join('&')}`;
366
+ if (this.shorten) {
367
+ const url = await this.constructor.getShorten(fullURL);
368
+ if (!url) console.log('Cannot shorten URL in WebEmbed');
369
+ return this.hidden ? `${hiddenCharter} ${url || fullURL}` : url || fullURL;
370
+ } else {
371
+ return this.hidden ? `${hiddenCharter} ${fullURL}` : fullURL;
372
+ }
373
+ }
374
+
375
+ static async getShorten(url) {
376
+ const shorten = `https://tinyurl.com/api-create.php?url=${encodeURIComponent(url)}`;
377
+ try {
378
+ const res = await (await fetch(shorten)).text();
379
+ return res;
380
+ } catch {
381
+ return undefined;
382
+ }
383
+ }
384
+ }
385
+
386
+ module.exports = WebEmbed;
387
+ module.exports.hiddenEmbed = hiddenCharter;