hischool.js 0.0.1

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 (369) hide show
  1. package/README.md +41 -0
  2. package/lib/cjs/Client.d.ts +166 -0
  3. package/lib/cjs/Client.d.ts.map +1 -0
  4. package/lib/cjs/Client.js +221 -0
  5. package/lib/cjs/api/baseURL.d.ts +2 -0
  6. package/lib/cjs/api/baseURL.d.ts.map +1 -0
  7. package/lib/cjs/api/baseURL.js +5 -0
  8. package/lib/cjs/api/index.d.ts +177 -0
  9. package/lib/cjs/api/index.d.ts.map +1 -0
  10. package/lib/cjs/api/index.js +150 -0
  11. package/lib/cjs/api/params.d.ts +285 -0
  12. package/lib/cjs/api/params.d.ts.map +1 -0
  13. package/lib/cjs/api/params.js +194 -0
  14. package/lib/cjs/api/routes.d.ts +1089 -0
  15. package/lib/cjs/api/routes.d.ts.map +1 -0
  16. package/lib/cjs/api/routes.js +2 -0
  17. package/lib/cjs/api/schema.d.ts +4705 -0
  18. package/lib/cjs/api/schema.d.ts.map +1 -0
  19. package/lib/cjs/api/schema.js +2 -0
  20. package/lib/cjs/api/types.d.ts +131 -0
  21. package/lib/cjs/api/types.d.ts.map +1 -0
  22. package/lib/cjs/api/types.js +2 -0
  23. package/lib/cjs/classes/BannedUser.d.ts +18 -0
  24. package/lib/cjs/classes/BannedUser.d.ts.map +1 -0
  25. package/lib/cjs/classes/BannedUser.js +21 -0
  26. package/lib/cjs/classes/Bot.d.ts +82 -0
  27. package/lib/cjs/classes/Bot.d.ts.map +1 -0
  28. package/lib/cjs/classes/Bot.js +145 -0
  29. package/lib/cjs/classes/Channel.d.ts +465 -0
  30. package/lib/cjs/classes/Channel.d.ts.map +1 -0
  31. package/lib/cjs/classes/Channel.js +599 -0
  32. package/lib/cjs/classes/ChannelUnread.d.ts +27 -0
  33. package/lib/cjs/classes/ChannelUnread.d.ts.map +1 -0
  34. package/lib/cjs/classes/ChannelUnread.js +50 -0
  35. package/lib/cjs/classes/ChannelWebhook.d.ts +53 -0
  36. package/lib/cjs/classes/ChannelWebhook.d.ts.map +1 -0
  37. package/lib/cjs/classes/ChannelWebhook.js +113 -0
  38. package/lib/cjs/classes/Emoji.d.ts +57 -0
  39. package/lib/cjs/classes/Emoji.d.ts.map +1 -0
  40. package/lib/cjs/classes/Emoji.js +104 -0
  41. package/lib/cjs/classes/File.d.ts +67 -0
  42. package/lib/cjs/classes/File.d.ts.map +1 -0
  43. package/lib/cjs/classes/File.js +102 -0
  44. package/lib/cjs/classes/Invite.d.ts +60 -0
  45. package/lib/cjs/classes/Invite.d.ts.map +1 -0
  46. package/lib/cjs/classes/Invite.js +91 -0
  47. package/lib/cjs/classes/MFA.d.ts +83 -0
  48. package/lib/cjs/classes/MFA.d.ts.map +1 -0
  49. package/lib/cjs/classes/MFA.js +196 -0
  50. package/lib/cjs/classes/Message.d.ts +484 -0
  51. package/lib/cjs/classes/Message.d.ts.map +1 -0
  52. package/lib/cjs/classes/Message.js +341 -0
  53. package/lib/cjs/classes/MessageEmbed.d.ts +122 -0
  54. package/lib/cjs/classes/MessageEmbed.d.ts.map +1 -0
  55. package/lib/cjs/classes/MessageEmbed.js +181 -0
  56. package/lib/cjs/classes/PublicBot.d.ts +28 -0
  57. package/lib/cjs/classes/PublicBot.d.ts.map +1 -0
  58. package/lib/cjs/classes/PublicBot.js +60 -0
  59. package/lib/cjs/classes/PublicInvite.d.ts +57 -0
  60. package/lib/cjs/classes/PublicInvite.d.ts.map +1 -0
  61. package/lib/cjs/classes/PublicInvite.js +104 -0
  62. package/lib/cjs/classes/Server.d.ts +473 -0
  63. package/lib/cjs/classes/Server.d.ts.map +1 -0
  64. package/lib/cjs/classes/Server.js +585 -0
  65. package/lib/cjs/classes/ServerBan.d.ts +26 -0
  66. package/lib/cjs/classes/ServerBan.d.ts.map +1 -0
  67. package/lib/cjs/classes/ServerBan.js +44 -0
  68. package/lib/cjs/classes/ServerMember.d.ts +138 -0
  69. package/lib/cjs/classes/ServerMember.d.ts.map +1 -0
  70. package/lib/cjs/classes/ServerMember.js +234 -0
  71. package/lib/cjs/classes/Session.d.ts +45 -0
  72. package/lib/cjs/classes/Session.d.ts.map +1 -0
  73. package/lib/cjs/classes/Session.js +94 -0
  74. package/lib/cjs/classes/SystemMessage.d.ts +127 -0
  75. package/lib/cjs/classes/SystemMessage.d.ts.map +1 -0
  76. package/lib/cjs/classes/SystemMessage.js +172 -0
  77. package/lib/cjs/classes/User.d.ts +203 -0
  78. package/lib/cjs/classes/User.d.ts.map +1 -0
  79. package/lib/cjs/classes/User.js +299 -0
  80. package/lib/cjs/classes/UserProfile.d.ts +23 -0
  81. package/lib/cjs/classes/UserProfile.d.ts.map +1 -0
  82. package/lib/cjs/classes/UserProfile.js +35 -0
  83. package/lib/cjs/classes/index.d.ts +21 -0
  84. package/lib/cjs/classes/index.d.ts.map +1 -0
  85. package/lib/cjs/classes/index.js +36 -0
  86. package/lib/cjs/collections/AccountCollection.d.ts +91 -0
  87. package/lib/cjs/collections/AccountCollection.d.ts.map +1 -0
  88. package/lib/cjs/collections/AccountCollection.js +150 -0
  89. package/lib/cjs/collections/BotCollection.d.ts +39 -0
  90. package/lib/cjs/collections/BotCollection.d.ts.map +1 -0
  91. package/lib/cjs/collections/BotCollection.js +89 -0
  92. package/lib/cjs/collections/ChannelCollection.d.ts +39 -0
  93. package/lib/cjs/collections/ChannelCollection.d.ts.map +1 -0
  94. package/lib/cjs/collections/ChannelCollection.js +93 -0
  95. package/lib/cjs/collections/ChannelUnreadCollection.d.ts +24 -0
  96. package/lib/cjs/collections/ChannelUnreadCollection.d.ts.map +1 -0
  97. package/lib/cjs/collections/ChannelUnreadCollection.js +56 -0
  98. package/lib/cjs/collections/ChannelWebhookCollection.d.ts +29 -0
  99. package/lib/cjs/collections/ChannelWebhookCollection.d.ts.map +1 -0
  100. package/lib/cjs/collections/ChannelWebhookCollection.js +69 -0
  101. package/lib/cjs/collections/Collection.d.ts +153 -0
  102. package/lib/cjs/collections/Collection.d.ts.map +1 -0
  103. package/lib/cjs/collections/Collection.js +170 -0
  104. package/lib/cjs/collections/EmojiCollection.d.ts +27 -0
  105. package/lib/cjs/collections/EmojiCollection.d.ts.map +1 -0
  106. package/lib/cjs/collections/EmojiCollection.js +67 -0
  107. package/lib/cjs/collections/MessageCollection.d.ts +28 -0
  108. package/lib/cjs/collections/MessageCollection.d.ts.map +1 -0
  109. package/lib/cjs/collections/MessageCollection.js +69 -0
  110. package/lib/cjs/collections/ServerCollection.d.ts +36 -0
  111. package/lib/cjs/collections/ServerCollection.d.ts.map +1 -0
  112. package/lib/cjs/collections/ServerCollection.js +96 -0
  113. package/lib/cjs/collections/ServerMemberCollection.d.ts +45 -0
  114. package/lib/cjs/collections/ServerMemberCollection.d.ts.map +1 -0
  115. package/lib/cjs/collections/ServerMemberCollection.js +95 -0
  116. package/lib/cjs/collections/SessionCollection.d.ts +27 -0
  117. package/lib/cjs/collections/SessionCollection.d.ts.map +1 -0
  118. package/lib/cjs/collections/SessionCollection.js +63 -0
  119. package/lib/cjs/collections/UserCollection.d.ts +31 -0
  120. package/lib/cjs/collections/UserCollection.d.ts.map +1 -0
  121. package/lib/cjs/collections/UserCollection.js +81 -0
  122. package/lib/cjs/collections/index.d.ts +12 -0
  123. package/lib/cjs/collections/index.d.ts.map +1 -0
  124. package/lib/cjs/collections/index.js +38 -0
  125. package/lib/cjs/events/EventClient.d.ts +89 -0
  126. package/lib/cjs/events/EventClient.d.ts.map +1 -0
  127. package/lib/cjs/events/EventClient.js +186 -0
  128. package/lib/cjs/events/index.d.ts +18 -0
  129. package/lib/cjs/events/index.d.ts.map +1 -0
  130. package/lib/cjs/events/index.js +20 -0
  131. package/lib/cjs/events/v1.d.ts +214 -0
  132. package/lib/cjs/events/v1.d.ts.map +1 -0
  133. package/lib/cjs/events/v1.js +502 -0
  134. package/lib/cjs/hydration/bot.d.ts +21 -0
  135. package/lib/cjs/hydration/bot.d.ts.map +1 -0
  136. package/lib/cjs/hydration/bot.js +31 -0
  137. package/lib/cjs/hydration/channel.d.ts +25 -0
  138. package/lib/cjs/hydration/channel.d.ts.map +1 -0
  139. package/lib/cjs/hydration/channel.js +40 -0
  140. package/lib/cjs/hydration/channelUnread.d.ts +11 -0
  141. package/lib/cjs/hydration/channelUnread.d.ts.map +1 -0
  142. package/lib/cjs/hydration/channelUnread.js +19 -0
  143. package/lib/cjs/hydration/channelWebhook.d.ts +12 -0
  144. package/lib/cjs/hydration/channelWebhook.d.ts.map +1 -0
  145. package/lib/cjs/hydration/channelWebhook.js +21 -0
  146. package/lib/cjs/hydration/emoji.d.ts +13 -0
  147. package/lib/cjs/hydration/emoji.d.ts.map +1 -0
  148. package/lib/cjs/hydration/emoji.js +18 -0
  149. package/lib/cjs/hydration/index.d.ts +1404 -0
  150. package/lib/cjs/hydration/index.d.ts.map +1 -0
  151. package/lib/cjs/hydration/index.js +68 -0
  152. package/lib/cjs/hydration/message.d.ts +25 -0
  153. package/lib/cjs/hydration/message.d.ts.map +1 -0
  154. package/lib/cjs/hydration/message.js +48 -0
  155. package/lib/cjs/hydration/server.d.ts +31 -0
  156. package/lib/cjs/hydration/server.d.ts.map +1 -0
  157. package/lib/cjs/hydration/server.js +44 -0
  158. package/lib/cjs/hydration/serverMember.d.ts +14 -0
  159. package/lib/cjs/hydration/serverMember.d.ts.map +1 -0
  160. package/lib/cjs/hydration/serverMember.js +21 -0
  161. package/lib/cjs/hydration/session.d.ts +8 -0
  162. package/lib/cjs/hydration/session.d.ts.map +1 -0
  163. package/lib/cjs/hydration/session.js +13 -0
  164. package/lib/cjs/hydration/user.d.ts +43 -0
  165. package/lib/cjs/hydration/user.d.ts.map +1 -0
  166. package/lib/cjs/hydration/user.js +53 -0
  167. package/lib/cjs/index.d.ts +9 -0
  168. package/lib/cjs/index.d.ts.map +1 -0
  169. package/lib/cjs/index.js +43 -0
  170. package/lib/cjs/lib/merge.d.ts +15 -0
  171. package/lib/cjs/lib/merge.d.ts.map +1 -0
  172. package/lib/cjs/lib/merge.js +2 -0
  173. package/lib/cjs/lib/regex.d.ts +13 -0
  174. package/lib/cjs/lib/regex.d.ts.map +1 -0
  175. package/lib/cjs/lib/regex.js +15 -0
  176. package/lib/cjs/permissions/calculator.d.ts +19 -0
  177. package/lib/cjs/permissions/calculator.d.ts.map +1 -0
  178. package/lib/cjs/permissions/calculator.js +136 -0
  179. package/lib/cjs/permissions/definitions.d.ts +73 -0
  180. package/lib/cjs/permissions/definitions.d.ts.map +1 -0
  181. package/lib/cjs/permissions/definitions.js +124 -0
  182. package/lib/cjs/storage/ObjectStorage.d.ts +28 -0
  183. package/lib/cjs/storage/ObjectStorage.d.ts.map +1 -0
  184. package/lib/cjs/storage/ObjectStorage.js +41 -0
  185. package/lib/esm/Client.d.ts +166 -0
  186. package/lib/esm/Client.d.ts.map +1 -0
  187. package/lib/esm/Client.js +214 -0
  188. package/lib/esm/api/baseURL.d.ts +2 -0
  189. package/lib/esm/api/baseURL.d.ts.map +1 -0
  190. package/lib/esm/api/baseURL.js +2 -0
  191. package/lib/esm/api/index.d.ts +177 -0
  192. package/lib/esm/api/index.d.ts.map +1 -0
  193. package/lib/esm/api/index.js +139 -0
  194. package/lib/esm/api/params.d.ts +285 -0
  195. package/lib/esm/api/params.d.ts.map +1 -0
  196. package/lib/esm/api/params.js +191 -0
  197. package/lib/esm/api/routes.d.ts +1089 -0
  198. package/lib/esm/api/routes.d.ts.map +1 -0
  199. package/lib/esm/api/routes.js +1 -0
  200. package/lib/esm/api/schema.d.ts +4705 -0
  201. package/lib/esm/api/schema.d.ts.map +1 -0
  202. package/lib/esm/api/schema.js +1 -0
  203. package/lib/esm/api/types.d.ts +131 -0
  204. package/lib/esm/api/types.d.ts.map +1 -0
  205. package/lib/esm/api/types.js +1 -0
  206. package/lib/esm/classes/BannedUser.d.ts +18 -0
  207. package/lib/esm/classes/BannedUser.d.ts.map +1 -0
  208. package/lib/esm/classes/BannedUser.js +21 -0
  209. package/lib/esm/classes/Bot.d.ts +82 -0
  210. package/lib/esm/classes/Bot.d.ts.map +1 -0
  211. package/lib/esm/classes/Bot.js +116 -0
  212. package/lib/esm/classes/Channel.d.ts +465 -0
  213. package/lib/esm/classes/Channel.d.ts.map +1 -0
  214. package/lib/esm/classes/Channel.js +529 -0
  215. package/lib/esm/classes/ChannelUnread.d.ts +27 -0
  216. package/lib/esm/classes/ChannelUnread.d.ts.map +1 -0
  217. package/lib/esm/classes/ChannelUnread.js +34 -0
  218. package/lib/esm/classes/ChannelWebhook.d.ts +53 -0
  219. package/lib/esm/classes/ChannelWebhook.d.ts.map +1 -0
  220. package/lib/esm/classes/ChannelWebhook.js +83 -0
  221. package/lib/esm/classes/Emoji.d.ts +57 -0
  222. package/lib/esm/classes/Emoji.d.ts.map +1 -0
  223. package/lib/esm/classes/Emoji.js +77 -0
  224. package/lib/esm/classes/File.d.ts +67 -0
  225. package/lib/esm/classes/File.d.ts.map +1 -0
  226. package/lib/esm/classes/File.js +105 -0
  227. package/lib/esm/classes/Invite.d.ts +60 -0
  228. package/lib/esm/classes/Invite.d.ts.map +1 -0
  229. package/lib/esm/classes/Invite.js +80 -0
  230. package/lib/esm/classes/MFA.d.ts +83 -0
  231. package/lib/esm/classes/MFA.d.ts.map +1 -0
  232. package/lib/esm/classes/MFA.js +165 -0
  233. package/lib/esm/classes/Message.d.ts +484 -0
  234. package/lib/esm/classes/Message.d.ts.map +1 -0
  235. package/lib/esm/classes/Message.js +300 -0
  236. package/lib/esm/classes/MessageEmbed.d.ts +122 -0
  237. package/lib/esm/classes/MessageEmbed.d.ts.map +1 -0
  238. package/lib/esm/classes/MessageEmbed.js +192 -0
  239. package/lib/esm/classes/PublicBot.d.ts +28 -0
  240. package/lib/esm/classes/PublicBot.d.ts.map +1 -0
  241. package/lib/esm/classes/PublicBot.js +47 -0
  242. package/lib/esm/classes/PublicInvite.d.ts +57 -0
  243. package/lib/esm/classes/PublicInvite.d.ts.map +1 -0
  244. package/lib/esm/classes/PublicInvite.js +100 -0
  245. package/lib/esm/classes/Server.d.ts +473 -0
  246. package/lib/esm/classes/Server.d.ts.map +1 -0
  247. package/lib/esm/classes/Server.js +522 -0
  248. package/lib/esm/classes/ServerBan.d.ts +26 -0
  249. package/lib/esm/classes/ServerBan.d.ts.map +1 -0
  250. package/lib/esm/classes/ServerBan.js +33 -0
  251. package/lib/esm/classes/ServerMember.d.ts +138 -0
  252. package/lib/esm/classes/ServerMember.d.ts.map +1 -0
  253. package/lib/esm/classes/ServerMember.js +199 -0
  254. package/lib/esm/classes/Session.d.ts +45 -0
  255. package/lib/esm/classes/Session.d.ts.map +1 -0
  256. package/lib/esm/classes/Session.js +65 -0
  257. package/lib/esm/classes/SystemMessage.d.ts +127 -0
  258. package/lib/esm/classes/SystemMessage.d.ts.map +1 -0
  259. package/lib/esm/classes/SystemMessage.js +171 -0
  260. package/lib/esm/classes/User.d.ts +203 -0
  261. package/lib/esm/classes/User.d.ts.map +1 -0
  262. package/lib/esm/classes/User.js +252 -0
  263. package/lib/esm/classes/UserProfile.d.ts +23 -0
  264. package/lib/esm/classes/UserProfile.d.ts.map +1 -0
  265. package/lib/esm/classes/UserProfile.js +31 -0
  266. package/lib/esm/classes/index.d.ts +21 -0
  267. package/lib/esm/classes/index.d.ts.map +1 -0
  268. package/lib/esm/classes/index.js +20 -0
  269. package/lib/esm/collections/AccountCollection.d.ts +91 -0
  270. package/lib/esm/collections/AccountCollection.d.ts.map +1 -0
  271. package/lib/esm/collections/AccountCollection.js +139 -0
  272. package/lib/esm/collections/BotCollection.d.ts +39 -0
  273. package/lib/esm/collections/BotCollection.d.ts.map +1 -0
  274. package/lib/esm/collections/BotCollection.js +68 -0
  275. package/lib/esm/collections/ChannelCollection.d.ts +39 -0
  276. package/lib/esm/collections/ChannelCollection.d.ts.map +1 -0
  277. package/lib/esm/collections/ChannelCollection.js +75 -0
  278. package/lib/esm/collections/ChannelUnreadCollection.d.ts +24 -0
  279. package/lib/esm/collections/ChannelUnreadCollection.d.ts.map +1 -0
  280. package/lib/esm/collections/ChannelUnreadCollection.js +41 -0
  281. package/lib/esm/collections/ChannelWebhookCollection.d.ts +29 -0
  282. package/lib/esm/collections/ChannelWebhookCollection.d.ts.map +1 -0
  283. package/lib/esm/collections/ChannelWebhookCollection.js +52 -0
  284. package/lib/esm/collections/Collection.d.ts +153 -0
  285. package/lib/esm/collections/Collection.d.ts.map +1 -0
  286. package/lib/esm/collections/Collection.js +160 -0
  287. package/lib/esm/collections/EmojiCollection.d.ts +27 -0
  288. package/lib/esm/collections/EmojiCollection.d.ts.map +1 -0
  289. package/lib/esm/collections/EmojiCollection.js +52 -0
  290. package/lib/esm/collections/MessageCollection.d.ts +28 -0
  291. package/lib/esm/collections/MessageCollection.d.ts.map +1 -0
  292. package/lib/esm/collections/MessageCollection.js +54 -0
  293. package/lib/esm/collections/ServerCollection.d.ts +36 -0
  294. package/lib/esm/collections/ServerCollection.d.ts.map +1 -0
  295. package/lib/esm/collections/ServerCollection.js +79 -0
  296. package/lib/esm/collections/ServerMemberCollection.d.ts +45 -0
  297. package/lib/esm/collections/ServerMemberCollection.d.ts.map +1 -0
  298. package/lib/esm/collections/ServerMemberCollection.js +80 -0
  299. package/lib/esm/collections/SessionCollection.d.ts +27 -0
  300. package/lib/esm/collections/SessionCollection.d.ts.map +1 -0
  301. package/lib/esm/collections/SessionCollection.js +46 -0
  302. package/lib/esm/collections/UserCollection.d.ts +31 -0
  303. package/lib/esm/collections/UserCollection.d.ts.map +1 -0
  304. package/lib/esm/collections/UserCollection.js +66 -0
  305. package/lib/esm/collections/index.d.ts +12 -0
  306. package/lib/esm/collections/index.d.ts.map +1 -0
  307. package/lib/esm/collections/index.js +11 -0
  308. package/lib/esm/events/EventClient.d.ts +89 -0
  309. package/lib/esm/events/EventClient.d.ts.map +1 -0
  310. package/lib/esm/events/EventClient.js +175 -0
  311. package/lib/esm/events/index.d.ts +18 -0
  312. package/lib/esm/events/index.d.ts.map +1 -0
  313. package/lib/esm/events/index.js +2 -0
  314. package/lib/esm/events/v1.d.ts +214 -0
  315. package/lib/esm/events/v1.d.ts.map +1 -0
  316. package/lib/esm/events/v1.js +514 -0
  317. package/lib/esm/hydration/bot.d.ts +21 -0
  318. package/lib/esm/hydration/bot.d.ts.map +1 -0
  319. package/lib/esm/hydration/bot.js +28 -0
  320. package/lib/esm/hydration/channel.d.ts +25 -0
  321. package/lib/esm/hydration/channel.d.ts.map +1 -0
  322. package/lib/esm/hydration/channel.js +37 -0
  323. package/lib/esm/hydration/channelUnread.d.ts +11 -0
  324. package/lib/esm/hydration/channelUnread.d.ts.map +1 -0
  325. package/lib/esm/hydration/channelUnread.js +16 -0
  326. package/lib/esm/hydration/channelWebhook.d.ts +12 -0
  327. package/lib/esm/hydration/channelWebhook.d.ts.map +1 -0
  328. package/lib/esm/hydration/channelWebhook.js +18 -0
  329. package/lib/esm/hydration/emoji.d.ts +13 -0
  330. package/lib/esm/hydration/emoji.d.ts.map +1 -0
  331. package/lib/esm/hydration/emoji.js +15 -0
  332. package/lib/esm/hydration/index.d.ts +1404 -0
  333. package/lib/esm/hydration/index.d.ts.map +1 -0
  334. package/lib/esm/hydration/index.js +65 -0
  335. package/lib/esm/hydration/message.d.ts +25 -0
  336. package/lib/esm/hydration/message.d.ts.map +1 -0
  337. package/lib/esm/hydration/message.js +45 -0
  338. package/lib/esm/hydration/server.d.ts +31 -0
  339. package/lib/esm/hydration/server.d.ts.map +1 -0
  340. package/lib/esm/hydration/server.js +41 -0
  341. package/lib/esm/hydration/serverMember.d.ts +14 -0
  342. package/lib/esm/hydration/serverMember.d.ts.map +1 -0
  343. package/lib/esm/hydration/serverMember.js +18 -0
  344. package/lib/esm/hydration/session.d.ts +8 -0
  345. package/lib/esm/hydration/session.d.ts.map +1 -0
  346. package/lib/esm/hydration/session.js +10 -0
  347. package/lib/esm/hydration/user.d.ts +43 -0
  348. package/lib/esm/hydration/user.d.ts.map +1 -0
  349. package/lib/esm/hydration/user.js +50 -0
  350. package/lib/esm/index.d.ts +9 -0
  351. package/lib/esm/index.d.ts.map +1 -0
  352. package/lib/esm/index.js +8 -0
  353. package/lib/esm/lib/merge.d.ts +15 -0
  354. package/lib/esm/lib/merge.d.ts.map +1 -0
  355. package/lib/esm/lib/merge.js +1 -0
  356. package/lib/esm/lib/regex.d.ts +13 -0
  357. package/lib/esm/lib/regex.d.ts.map +1 -0
  358. package/lib/esm/lib/regex.js +12 -0
  359. package/lib/esm/package.json +3 -0
  360. package/lib/esm/permissions/calculator.d.ts +19 -0
  361. package/lib/esm/permissions/calculator.d.ts.map +1 -0
  362. package/lib/esm/permissions/calculator.js +129 -0
  363. package/lib/esm/permissions/definitions.d.ts +73 -0
  364. package/lib/esm/permissions/definitions.d.ts.map +1 -0
  365. package/lib/esm/permissions/definitions.js +121 -0
  366. package/lib/esm/storage/ObjectStorage.d.ts +28 -0
  367. package/lib/esm/storage/ObjectStorage.d.ts.map +1 -0
  368. package/lib/esm/storage/ObjectStorage.js +39 -0
  369. package/package.json +59 -0
@@ -0,0 +1,522 @@
1
+ import { hydrate } from "../hydration/index.js";
2
+ import { ServerMember, User } from "../index.js";
3
+ import { bitwiseAndEq, calculatePermission, } from "../permissions/calculator.js";
4
+ import { Permission } from "../permissions/definitions.js";
5
+ import { ChannelInvite } from "./Invite.js";
6
+ import { ServerBan } from "./ServerBan.js";
7
+ import { batch } from "solid-js";
8
+ import { decodeTime } from "ulid";
9
+ /**
10
+ * Server Class
11
+ */
12
+ export class Server {
13
+ #collection;
14
+ id;
15
+ /**
16
+ * Construct Server
17
+ * @param collection Collection
18
+ * @param id Id
19
+ */
20
+ constructor(collection, id) {
21
+ this.#collection = collection;
22
+ this.id = id;
23
+ }
24
+ /**
25
+ * Convert to string
26
+ * @returns String
27
+ */
28
+ toString() {
29
+ return `<%${this.id}>`;
30
+ }
31
+ /**
32
+ * Whether this object exists
33
+ */
34
+ get $exists() {
35
+ return !!this.#collection.getUnderlyingObject(this.id).id;
36
+ }
37
+ /**
38
+ * Time when this server was created
39
+ */
40
+ get createdAt() {
41
+ return new Date(decodeTime(this.id));
42
+ }
43
+ /**
44
+ * Owner's user ID
45
+ */
46
+ get ownerId() {
47
+ return this.#collection.getUnderlyingObject(this.id).ownerId;
48
+ }
49
+ /**
50
+ * Owner
51
+ */
52
+ get owner() {
53
+ return this.#collection.client.users.get(this.#collection.getUnderlyingObject(this.id).ownerId);
54
+ }
55
+ /**
56
+ * Name
57
+ */
58
+ get name() {
59
+ return this.#collection.getUnderlyingObject(this.id).name;
60
+ }
61
+ /**
62
+ * Description
63
+ */
64
+ get description() {
65
+ return this.#collection.getUnderlyingObject(this.id).description;
66
+ }
67
+ /**
68
+ * Icon
69
+ */
70
+ get icon() {
71
+ return this.#collection.getUnderlyingObject(this.id).icon;
72
+ }
73
+ /**
74
+ * Banner
75
+ */
76
+ get banner() {
77
+ return this.#collection.getUnderlyingObject(this.id).banner;
78
+ }
79
+ /**
80
+ * Channel IDs
81
+ */
82
+ get channelIds() {
83
+ return this.#collection.getUnderlyingObject(this.id).channelIds;
84
+ }
85
+ /**
86
+ * Channels
87
+ */
88
+ get channels() {
89
+ return [
90
+ ...this.#collection.getUnderlyingObject(this.id).channelIds.values(),
91
+ ]
92
+ .map((id) => this.#collection.client.channels.get(id))
93
+ .filter((x) => x);
94
+ }
95
+ /**
96
+ * Categories
97
+ */
98
+ get categories() {
99
+ return this.#collection.getUnderlyingObject(this.id).categories;
100
+ }
101
+ /**
102
+ * System message channels
103
+ */
104
+ get systemMessages() {
105
+ return this.#collection.getUnderlyingObject(this.id).systemMessages;
106
+ }
107
+ /**
108
+ * Roles
109
+ */
110
+ get roles() {
111
+ return this.#collection.getUnderlyingObject(this.id).roles;
112
+ }
113
+ /**
114
+ * Default permissions
115
+ */
116
+ get defaultPermissions() {
117
+ return this.#collection.getUnderlyingObject(this.id).defaultPermissions;
118
+ }
119
+ /**
120
+ * Server flags
121
+ */
122
+ get flags() {
123
+ return this.#collection.getUnderlyingObject(this.id).flags;
124
+ }
125
+ /**
126
+ * Whether analytics are enabled for this server
127
+ */
128
+ get analytics() {
129
+ return this.#collection.getUnderlyingObject(this.id).analytics;
130
+ }
131
+ /**
132
+ * Whether this server is publicly discoverable
133
+ */
134
+ get discoverable() {
135
+ return this.#collection.getUnderlyingObject(this.id).discoverable;
136
+ }
137
+ /**
138
+ * Whether this server is marked as mature
139
+ */
140
+ get mature() {
141
+ return this.#collection.getUnderlyingObject(this.id).nsfw;
142
+ }
143
+ /**
144
+ * Get an array of ordered categories with their respective channels.
145
+ * Uncategorised channels are returned in `id="default"` category.
146
+ */
147
+ get orderedChannels() {
148
+ const uncategorised = new Set(this.channels.map((channel) => channel.id));
149
+ const elements = [];
150
+ let defaultCategory;
151
+ const categories = this.categories;
152
+ if (categories) {
153
+ for (const category of categories) {
154
+ const channels = [];
155
+ for (const key of category.channels) {
156
+ if (uncategorised.delete(key)) {
157
+ channels.push(this.#collection.client.channels.get(key));
158
+ }
159
+ }
160
+ const cat = {
161
+ ...category,
162
+ channels,
163
+ };
164
+ if (cat.id === "default") {
165
+ if (channels.length === 0)
166
+ continue;
167
+ defaultCategory = cat;
168
+ }
169
+ elements.push(cat);
170
+ }
171
+ }
172
+ if (uncategorised.size > 0) {
173
+ const channels = [...uncategorised].map((key) => this.#collection.client.channels.get(key));
174
+ if (defaultCategory) {
175
+ defaultCategory.channels = [...defaultCategory.channels, ...channels];
176
+ }
177
+ else {
178
+ elements.unshift({
179
+ id: "default",
180
+ title: "Default",
181
+ channels,
182
+ });
183
+ }
184
+ }
185
+ return elements;
186
+ }
187
+ /**
188
+ * Default channel for this server
189
+ */
190
+ get defaultChannel() {
191
+ return this.orderedChannels.find((cat) => cat.channels.length)?.channels[0];
192
+ }
193
+ /**
194
+ * Get an ordered array of roles with their IDs attached.
195
+ * The highest ranking roles will be first followed by lower
196
+ * ranking roles. This is dictated by the "rank" property
197
+ * which is smaller for higher priority roles.
198
+ */
199
+ get orderedRoles() {
200
+ const roles = this.roles;
201
+ return roles
202
+ ? [...roles.entries()]
203
+ .map(([id, role]) => ({ id, ...role }))
204
+ .sort((a, b) => (a.rank || 0) - (b.rank || 0))
205
+ : [];
206
+ }
207
+ /**
208
+ * Check whether the server is currently unread
209
+ * @returns Whether the server is unread
210
+ */
211
+ get unread() {
212
+ return this.channels.find((channel) => channel.unread);
213
+ }
214
+ /**
215
+ * Find all message IDs of unread messages
216
+ * @returns Array of message IDs which are unread
217
+ */
218
+ get mentions() {
219
+ const arr = this.channels.map((channel) => Array.from(channel.mentions?.values() ?? []));
220
+ return [].concat(...arr);
221
+ }
222
+ /**
223
+ * URL to the server's icon
224
+ */
225
+ get iconURL() {
226
+ return this.icon?.createFileURL({ max_side: 256 });
227
+ }
228
+ /**
229
+ * URL to the server's animated icon
230
+ */
231
+ get animatedIconURL() {
232
+ return this.icon?.createFileURL({ max_side: 256 }, true);
233
+ }
234
+ /**
235
+ * URL to the server's banner
236
+ */
237
+ get bannerURL() {
238
+ return this.banner?.createFileURL({ max_side: 256 }, true);
239
+ }
240
+ /**
241
+ * Own member object for this server
242
+ */
243
+ get member() {
244
+ return this.#collection.client.serverMembers.getByKey({
245
+ server: this.id,
246
+ user: this.#collection.client.user.id,
247
+ });
248
+ }
249
+ /**
250
+ * Permission the currently authenticated user has against this server
251
+ */
252
+ get permission() {
253
+ return calculatePermission(this.#collection.client, this);
254
+ }
255
+ /**
256
+ * Check whether we have a given permission in a server
257
+ * @param permission Permission Names
258
+ * @returns Whether we have this permission
259
+ */
260
+ havePermission(...permission) {
261
+ return bitwiseAndEq(this.permission, ...permission.map((x) => Permission[x]));
262
+ }
263
+ /**
264
+ * Check whether we have at least one of the given permissions in a server
265
+ * @param permission Permission Names
266
+ * @returns Whether we have one of the permissions
267
+ */
268
+ orPermission(...permission) {
269
+ return (permission.findIndex((x) => bitwiseAndEq(this.permission, Permission[x])) !== -1);
270
+ }
271
+ /**
272
+ * Helper function to retrieve cached server member by their ID in this server
273
+ * @param userId User's ID
274
+ * @returns Server Member (if cached)
275
+ */
276
+ getMember(userId) {
277
+ return this.#collection.client.serverMembers.getByKey({
278
+ server: this.id,
279
+ user: userId,
280
+ });
281
+ }
282
+ /**
283
+ * Create a channel
284
+ * @param data Channel create route data
285
+ * @returns The newly-created channel
286
+ */
287
+ async createChannel(data) {
288
+ const channel = await this.#collection.client.api.post(`/servers/${this.id}/channels`, data);
289
+ return this.#collection.client.channels.getOrCreate(channel._id, channel);
290
+ }
291
+ /**
292
+ * Edit a server
293
+ * @param data Changes
294
+ */
295
+ async edit(data) {
296
+ this.#collection.updateUnderlyingObject(this.id, hydrate("server", await this.#collection.client.api.patch(`/servers/${this.id}`, data), this.#collection.client, false));
297
+ }
298
+ /**
299
+ * Delete the underlying server
300
+ * @param leaveEvent Whether we are leaving
301
+ */
302
+ $delete(leaveEvent) {
303
+ batch(() => {
304
+ const server = this.#collection.client.servers.getUnderlyingObject(this.id);
305
+ // Avoid race conditions
306
+ if (server.id) {
307
+ this.#collection.client.emit(leaveEvent ? "serverLeave" : "serverDelete", server);
308
+ for (const channel of this.channelIds) {
309
+ this.#collection.client.channels.delete(channel);
310
+ }
311
+ this.#collection.delete(this.id);
312
+ }
313
+ // TODO: delete members, emoji, etc
314
+ });
315
+ }
316
+ /**
317
+ * Delete or leave a server
318
+ * @param leaveSilently Whether to not send a message on leave
319
+ */
320
+ async delete(leaveSilently) {
321
+ await this.#collection.client.api.delete(`/servers/${this.id}`, {
322
+ leave_silently: leaveSilently,
323
+ });
324
+ this.$delete();
325
+ }
326
+ /**
327
+ * Mark a server as read
328
+ */
329
+ async ack() {
330
+ batch(() => {
331
+ for (const channel of this.channels) {
332
+ channel.ack(undefined, false, true);
333
+ }
334
+ });
335
+ await this.#collection.client.api.put(`/servers/${this.id}/ack`);
336
+ }
337
+ /**
338
+ * Ban user from this server
339
+ * @param user User
340
+ * @param options Ban options
341
+ */
342
+ async banUser(user, options = {}) {
343
+ const userId = user instanceof User
344
+ ? user.id
345
+ : user instanceof ServerMember
346
+ ? user.id.user
347
+ : user;
348
+ const ban = await this.#collection.client.api.put(`/servers/${this.id}/bans/${userId}`, options);
349
+ return new ServerBan(this.#collection.client, ban);
350
+ }
351
+ /**
352
+ * Kick user from this server
353
+ * @param user User
354
+ */
355
+ async kickUser(user) {
356
+ return await this.#collection.client.api.delete(`/servers/${this.id}/members/${typeof user === "string"
357
+ ? user
358
+ : user instanceof User
359
+ ? user.id
360
+ : user.id.user}`);
361
+ }
362
+ /**
363
+ * Pardon user's ban
364
+ * @param user User
365
+ */
366
+ async unbanUser(user) {
367
+ const userId = user instanceof User ? user.id : user;
368
+ return await this.#collection.client.api.delete(`/servers/${this.id}/bans/${userId}`);
369
+ }
370
+ /**
371
+ * Fetch a server's invites
372
+ * @returns An array of the server's invites
373
+ */
374
+ async fetchInvites() {
375
+ const invites = await this.#collection.client.api.get(`/servers/${this.id}/invites`);
376
+ return invites.map((invite) => ChannelInvite.from(this.#collection.client, invite));
377
+ }
378
+ /**
379
+ * Fetch a server's bans
380
+ * @returns An array of the server's bans.
381
+ */
382
+ async fetchBans() {
383
+ const { users, bans } = await this.#collection.client.api.get(`/servers/${this.id}/bans`);
384
+ const userDict = users.reduce((d, c) => ({ ...d, [c._id]: c }), {});
385
+ return bans.map((ban) => new ServerBan(this.#collection.client, ban, userDict[ban._id.user]));
386
+ }
387
+ /**
388
+ * Set role permissions
389
+ * @param roleId Role Id, set to 'default' to affect all users
390
+ * @param permissions Permission value
391
+ */
392
+ async setPermissions(roleId = "default", permissions) {
393
+ return await this.#collection.client.api.put(`/servers/${this.id}/permissions/${roleId}`, { permissions: permissions });
394
+ }
395
+ /**
396
+ * Create role
397
+ * @param name Role name
398
+ */
399
+ async createRole(name) {
400
+ return await this.#collection.client.api.post(`/servers/${this.id}/roles`, {
401
+ name,
402
+ });
403
+ }
404
+ /**
405
+ * Edit a role
406
+ * @param roleId Role ID
407
+ * @param data Role editing route data
408
+ */
409
+ async editRole(roleId, data) {
410
+ return await this.#collection.client.api.patch(`/servers/${this.id}/roles/${roleId}`, data);
411
+ }
412
+ /**
413
+ * Delete role
414
+ * @param roleId Role ID
415
+ */
416
+ async deleteRole(roleId) {
417
+ return await this.#collection.client.api.delete(`/servers/${this.id}/roles/${roleId}`);
418
+ }
419
+ /**
420
+ * Fetch a server member
421
+ * @param user User
422
+ * @returns Server member object
423
+ */
424
+ async fetchMember(user) {
425
+ const userId = typeof user === "string" ? user : user.id;
426
+ const existing = this.#collection.client.serverMembers.getByKey({
427
+ server: this.id,
428
+ user: userId,
429
+ });
430
+ if (existing)
431
+ return existing;
432
+ return this.#collection.client.serverMembers.fetch(this.id, userId);
433
+ }
434
+ #synced;
435
+ /**
436
+ * Optimised member fetch route
437
+ * @param excludeOffline
438
+ */
439
+ async syncMembers(excludeOffline) {
440
+ if (this.#synced && (this.#synced === "full" || excludeOffline))
441
+ return;
442
+ const data = await this.#collection.client.api.get(`/servers/${this.id}/members`, { exclude_offline: excludeOffline });
443
+ batch(() => {
444
+ if (excludeOffline) {
445
+ for (let i = 0; i < data.users.length; i++) {
446
+ const user = data.users[i];
447
+ if (user.online) {
448
+ this.#collection.client.users.getOrCreate(user._id, user);
449
+ this.#collection.client.serverMembers.getOrCreate(data.members[i]._id, data.members[i]);
450
+ }
451
+ }
452
+ }
453
+ else {
454
+ for (let i = 0; i < data.users.length; i++) {
455
+ this.#collection.client.users.getOrCreate(data.users[i]._id, data.users[i]);
456
+ this.#collection.client.serverMembers.getOrCreate(data.members[i]._id, data.members[i]);
457
+ }
458
+ }
459
+ });
460
+ }
461
+ /**
462
+ * Reset member sync status
463
+ */
464
+ resetSyncStatus() {
465
+ this.#synced = undefined;
466
+ }
467
+ /**
468
+ * Fetch a server's members
469
+ * @returns List of the server's members and their user objects
470
+ */
471
+ async fetchMembers() {
472
+ const data = (await this.#collection.client.api.get(
473
+ // @ts-expect-error TODO weird typing issue
474
+ `/servers/${this.id}/members`));
475
+ return batch(() => ({
476
+ members: data.members.map((member) => this.#collection.client.serverMembers.getOrCreate(member._id, member)),
477
+ users: data.users.map((user) => this.#collection.client.users.getOrCreate(user._id, user)),
478
+ }));
479
+ }
480
+ /**
481
+ * Query members from a server by name
482
+ * @param query Name
483
+ * @returns List of the server's members and their user objects
484
+ */
485
+ async queryMembersExperimental(query) {
486
+ const data = (await this.#collection.client.api.get(`/servers/${this.id}/members_experimental_query?experimental_api=true&query=${encodeURIComponent(query)}`));
487
+ return batch(() => ({
488
+ members: data.members.map((member) => this.#collection.client.serverMembers.getOrCreate(member._id, member)),
489
+ users: data.users.map((user) => this.#collection.client.users.getOrCreate(user._id, user)),
490
+ }));
491
+ }
492
+ /**
493
+ * Create an emoji on the server
494
+ * @param autumnId Autumn Id
495
+ * @param options Options
496
+ */
497
+ async createEmoji(autumnId, options) {
498
+ const emoji = await this.#collection.client.api.put(`/custom/emoji/${autumnId}`, {
499
+ parent: {
500
+ type: "Server",
501
+ id: this.id,
502
+ },
503
+ ...options,
504
+ });
505
+ return this.#collection.client.emojis.getOrCreate(emoji._id, emoji, true);
506
+ }
507
+ /**
508
+ * Fetch a server's emoji
509
+ * @returns List of server emoji
510
+ */
511
+ async fetchEmojis() {
512
+ const emojis = await this.#collection.client.api.get(`/servers/${this.id}/emojis`);
513
+ return batch(() => emojis.map((emoji) => this.#collection.client.emojis.getOrCreate(emoji._id, emoji)));
514
+ }
515
+ /**
516
+ * Delete emoji
517
+ * @param emojiId Emoji ID
518
+ */
519
+ async deleteEmoji(emojiId) {
520
+ return await this.#collection.client.api.delete(`/custom/emoji/${emojiId}`);
521
+ }
522
+ }
@@ -0,0 +1,26 @@
1
+ import { BannedUser as ApiBannedUser, ServerBan as ApiServerBan, MemberCompositeKey } from "../api";
2
+ import { BannedUser, Client } from "../index.js";
3
+ /**
4
+ * Server Ban
5
+ */
6
+ export declare class ServerBan {
7
+ protected client: Client;
8
+ readonly id: MemberCompositeKey;
9
+ readonly reason?: string;
10
+ readonly user?: BannedUser;
11
+ /**
12
+ * Construct Server Ban
13
+ * @param client Client
14
+ * @param data Data
15
+ */
16
+ constructor(client: Client, data: ApiServerBan, user?: ApiBannedUser);
17
+ /**
18
+ * Server
19
+ */
20
+ get server(): import("./Server").Server | undefined;
21
+ /**
22
+ * Remove this server ban
23
+ */
24
+ pardon(): Promise<void>;
25
+ }
26
+ //# sourceMappingURL=ServerBan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerBan.d.ts","sourceRoot":"","sources":["../../../src/classes/ServerBan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,IAAI,aAAa,EAC3B,SAAS,IAAI,YAAY,EACzB,kBAAkB,EACnB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD;;GAEG;AACH,qBAAa,SAAS;IACpB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,kBAAkB,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAE3B;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,aAAa;IAOpE;;OAEG;IACH,IAAI,MAAM,0CAET;IAED;;OAEG;IACG,MAAM;CAKb"}
@@ -0,0 +1,33 @@
1
+ import { BannedUser } from "../index.js";
2
+ /**
3
+ * Server Ban
4
+ */
5
+ export class ServerBan {
6
+ client;
7
+ id;
8
+ reason;
9
+ user;
10
+ /**
11
+ * Construct Server Ban
12
+ * @param client Client
13
+ * @param data Data
14
+ */
15
+ constructor(client, data, user) {
16
+ this.client = client;
17
+ this.id = data._id;
18
+ this.reason = data.reason;
19
+ this.user = user ? new BannedUser(client, user) : undefined;
20
+ }
21
+ /**
22
+ * Server
23
+ */
24
+ get server() {
25
+ return this.client.servers.get(this.id.server);
26
+ }
27
+ /**
28
+ * Remove this server ban
29
+ */
30
+ async pardon() {
31
+ await this.client.api.delete(`/servers/${this.id.server}/bans/${this.id.user}`);
32
+ }
33
+ }