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,80 @@
1
+ import { ServerMember } from "../index.js";
2
+ import { ClassCollection } from "./index.js";
3
+ /**
4
+ * Collection of Server Members
5
+ */
6
+ export class ServerMemberCollection extends ClassCollection {
7
+ /**
8
+ * Check if member exists by composite key
9
+ * @param id Id
10
+ * @returns Whether it exists
11
+ */
12
+ hasByKey(id) {
13
+ return super.has(id.server + id.user);
14
+ }
15
+ /**
16
+ * Get member by composite key
17
+ * @param id Id
18
+ * @returns Member
19
+ */
20
+ getByKey(id) {
21
+ return super.get(id.server + id.user);
22
+ }
23
+ /**
24
+ * check partial status by composite key
25
+ * @param id Id
26
+ * @returns Member
27
+ */
28
+ isPartialByKey(id) {
29
+ return super.isPartial(id.server + id.user);
30
+ }
31
+ /**
32
+ * Fetch server member by Id
33
+ * @param serverId Server Id
34
+ * @param userId User Id
35
+ * @returns Message
36
+ */
37
+ async fetch(serverId, userId) {
38
+ const member = this.get(serverId + userId);
39
+ if (member && !this.isPartial(serverId + userId))
40
+ return member;
41
+ const data = (await this.client.api.get(`/servers/${serverId}/members/${userId}`, {
42
+ roles: false,
43
+ }
44
+ // TODO: fix typings in ./api
45
+ ));
46
+ return this.getOrCreate(data._id, data);
47
+ }
48
+ /**
49
+ * Get or create
50
+ * @param id Id
51
+ * @param data Data
52
+ */
53
+ getOrCreate(id, data) {
54
+ if (this.hasByKey(id) && !this.isPartialByKey(id)) {
55
+ return this.getByKey(id);
56
+ }
57
+ else {
58
+ const instance = new ServerMember(this, id);
59
+ this.create(id.server + id.user, "serverMember", instance, this.client, data);
60
+ return instance;
61
+ }
62
+ }
63
+ /**
64
+ * Get or return partial
65
+ * @param id Id
66
+ */
67
+ getOrPartial(id) {
68
+ if (this.hasByKey(id)) {
69
+ return this.getByKey(id);
70
+ }
71
+ else if (this.client.options.partials) {
72
+ const instance = new ServerMember(this, id);
73
+ this.create(id.server + id.user, "serverMember", instance, this.client, {
74
+ id,
75
+ partial: true,
76
+ });
77
+ return instance;
78
+ }
79
+ }
80
+ }
@@ -0,0 +1,27 @@
1
+ import { Session } from "../classes/index.js";
2
+ import { HydratedSession } from "../hydration/session.js";
3
+ import { API } from "../index.js";
4
+ import { ClassCollection } from "./index.js";
5
+ /**
6
+ * Collection of Sessions
7
+ */
8
+ export declare class SessionCollection extends ClassCollection<Session, HydratedSession> {
9
+ /**
10
+ * Fetch active sessions
11
+ * @returns List of sessions
12
+ */
13
+ fetch(): Promise<Session[]>;
14
+ /**
15
+ * Delete all sessions, optionally including self
16
+ * @param revokeSelf Whether to remove current session too
17
+ */
18
+ deleteAll(revokeSelf?: boolean): Promise<void>;
19
+ /**
20
+ * Get or create
21
+ * @param id Id
22
+ * @param data Data
23
+ * @returns Session
24
+ */
25
+ getOrCreate(id: string, data: API.SessionInfo): Session;
26
+ }
27
+ //# sourceMappingURL=SessionCollection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionCollection.d.ts","sourceRoot":"","sources":["../../../src/collections/SessionCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,eAAe,CACpD,OAAO,EACP,eAAe,CAChB;IACC;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOjC;;;OAGG;IACG,SAAS,CAAC,UAAU,UAAQ;IAWlC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW;CAS9C"}
@@ -0,0 +1,46 @@
1
+ import { Session } from "../classes/index.js";
2
+ import { ClassCollection } from "./index.js";
3
+ import { batch } from "solid-js";
4
+ /**
5
+ * Collection of Sessions
6
+ */
7
+ export class SessionCollection extends ClassCollection {
8
+ /**
9
+ * Fetch active sessions
10
+ * @returns List of sessions
11
+ */
12
+ async fetch() {
13
+ const data = await this.client.api.get("/auth/session/all");
14
+ return batch(() => data.map((session) => this.getOrCreate(session._id, session)));
15
+ }
16
+ /**
17
+ * Delete all sessions, optionally including self
18
+ * @param revokeSelf Whether to remove current session too
19
+ */
20
+ async deleteAll(revokeSelf = false) {
21
+ await this.client.api.delete("/auth/session/all", {
22
+ revoke_self: revokeSelf,
23
+ });
24
+ for (const entry of this.toList()) {
25
+ if (!revokeSelf && entry.current)
26
+ continue;
27
+ this.delete(entry.id);
28
+ }
29
+ }
30
+ /**
31
+ * Get or create
32
+ * @param id Id
33
+ * @param data Data
34
+ * @returns Session
35
+ */
36
+ getOrCreate(id, data) {
37
+ if (this.has(id)) {
38
+ return this.get(id);
39
+ }
40
+ else {
41
+ const instance = new Session(this, id);
42
+ this.create(id, "session", instance, this.client, data);
43
+ return instance;
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,31 @@
1
+ import { HydratedUser } from "../hydration/index.js";
2
+ import { API, Client, User } from "../index.js";
3
+ import { ClassCollection } from "./index.js";
4
+ /**
5
+ * Collection of Users
6
+ */
7
+ export declare class UserCollection extends ClassCollection<User, HydratedUser> {
8
+ /**
9
+ * Construct User collection
10
+ */
11
+ constructor(client: Client);
12
+ /**
13
+ * Fetch user by ID
14
+ * @param id Id
15
+ * @returns User
16
+ */
17
+ fetch(id: string): Promise<User>;
18
+ /**
19
+ * Get or create
20
+ * @param id Id
21
+ * @param data Data
22
+ * @param isNew Whether this object is new
23
+ */
24
+ getOrCreate(id: string, data: API.User): User;
25
+ /**
26
+ * Get or return partial
27
+ * @param id Id
28
+ */
29
+ getOrPartial(id: string): User | undefined;
30
+ }
31
+ //# sourceMappingURL=UserCollection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserCollection.d.ts","sourceRoot":"","sources":["../../../src/collections/UserCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,qBAAa,cAAe,SAAQ,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC;IACrE;;OAEG;gBACS,MAAM,EAAE,MAAM;IAa1B;;;;OAIG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI;IAUtC;;;OAGG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM;CAYxB"}
@@ -0,0 +1,66 @@
1
+ import { User } from "../index.js";
2
+ import { ClassCollection } from "./index.js";
3
+ /**
4
+ * Collection of Users
5
+ */
6
+ export class UserCollection extends ClassCollection {
7
+ /**
8
+ * Construct User collection
9
+ */
10
+ constructor(client) {
11
+ super(client);
12
+ const SYSTEM_ID = "0".repeat(26);
13
+ this.getOrCreate(SYSTEM_ID, {
14
+ _id: SYSTEM_ID,
15
+ username: "Hischool",
16
+ discriminator: "0000",
17
+ online: true,
18
+ relationship: "None",
19
+ });
20
+ }
21
+ /**
22
+ * Fetch user by ID
23
+ * @param id Id
24
+ * @returns User
25
+ */
26
+ async fetch(id) {
27
+ const user = this.get(id);
28
+ if (user && !this.isPartial(id))
29
+ return user;
30
+ const data = await this.client.api.get(`/users/${id}`);
31
+ return this.getOrCreate(data._id, data);
32
+ }
33
+ /**
34
+ * Get or create
35
+ * @param id Id
36
+ * @param data Data
37
+ * @param isNew Whether this object is new
38
+ */
39
+ getOrCreate(id, data) {
40
+ if (this.has(id) && !this.isPartial(id)) {
41
+ return this.get(id);
42
+ }
43
+ else {
44
+ const instance = new User(this, id);
45
+ this.create(id, "user", instance, this.client, data);
46
+ return instance;
47
+ }
48
+ }
49
+ /**
50
+ * Get or return partial
51
+ * @param id Id
52
+ */
53
+ getOrPartial(id) {
54
+ if (this.has(id)) {
55
+ return this.get(id);
56
+ }
57
+ else if (this.client.options.partials) {
58
+ const instance = new User(this, id);
59
+ this.create(id, "user", instance, this.client, {
60
+ id,
61
+ partial: true,
62
+ });
63
+ return instance;
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,12 @@
1
+ export * from "./Collection.js";
2
+ export { BotCollection } from "./BotCollection.js";
3
+ export { ChannelCollection } from "./ChannelCollection.js";
4
+ export { ChannelUnreadCollection } from "./ChannelUnreadCollection.js";
5
+ export { ChannelWebhookCollection } from "./ChannelWebhookCollection.js";
6
+ export { EmojiCollection } from "./EmojiCollection.js";
7
+ export { MessageCollection } from "./MessageCollection.js";
8
+ export { ServerCollection } from "./ServerCollection.js";
9
+ export { ServerMemberCollection } from "./ServerMemberCollection.js";
10
+ export { SessionCollection } from "./SessionCollection.js";
11
+ export { UserCollection } from "./UserCollection.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/collections/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export * from "./Collection.js";
2
+ export { BotCollection } from "./BotCollection.js";
3
+ export { ChannelCollection } from "./ChannelCollection.js";
4
+ export { ChannelUnreadCollection } from "./ChannelUnreadCollection.js";
5
+ export { ChannelWebhookCollection } from "./ChannelWebhookCollection.js";
6
+ export { EmojiCollection } from "./EmojiCollection.js";
7
+ export { MessageCollection } from "./MessageCollection.js";
8
+ export { ServerCollection } from "./ServerCollection.js";
9
+ export { ServerMemberCollection } from "./ServerMemberCollection.js";
10
+ export { SessionCollection } from "./SessionCollection.js";
11
+ export { UserCollection } from "./UserCollection.js";
@@ -0,0 +1,89 @@
1
+ import type { AvailableProtocols, EventProtocol } from "./index.js";
2
+ import EventEmitter from "eventemitter3";
3
+ import { Accessor } from "solid-js";
4
+ /**
5
+ * All possible event client states.
6
+ */
7
+ export declare enum ConnectionState {
8
+ Idle = 0,
9
+ Connecting = 1,
10
+ Connected = 2,
11
+ Disconnected = 3
12
+ }
13
+ /**
14
+ * Event client options object
15
+ */
16
+ export interface EventClientOptions {
17
+ /**
18
+ * Whether to log events
19
+ * @default false
20
+ */
21
+ debug: boolean;
22
+ /**
23
+ * Time in seconds between Ping packets sent to the server
24
+ * @default 30
25
+ */
26
+ heartbeatInterval: number;
27
+ /**
28
+ * Maximum time in seconds between Ping and corresponding Pong
29
+ * @default 10
30
+ */
31
+ pongTimeout: number;
32
+ /**
33
+ * Maximum time in seconds between init and first message
34
+ * @default 10
35
+ */
36
+ connectTimeout: number;
37
+ }
38
+ /**
39
+ * Events provided by the client.
40
+ */
41
+ type Events<T extends AvailableProtocols, P extends EventProtocol<T>> = {
42
+ error: (error: Error) => void;
43
+ event: (event: P["server"]) => void;
44
+ state: (state: ConnectionState) => void;
45
+ };
46
+ /**
47
+ * Simple wrapper around the Hischool websocket service.
48
+ */
49
+ export declare class EventClient<T extends AvailableProtocols> extends EventEmitter<Events<T, EventProtocol<T>>> {
50
+ #private;
51
+ readonly options: EventClientOptions;
52
+ readonly ping: Accessor<number>;
53
+ readonly state: Accessor<ConnectionState>;
54
+ /**
55
+ * Create a new event client.
56
+ * @param protocolVersion Target protocol version
57
+ * @param transportFormat Communication format
58
+ * @param options Configuration options
59
+ */
60
+ constructor(protocolVersion: T, transportFormat?: "json", options?: Partial<EventClientOptions>);
61
+ /**
62
+ * Set the current state
63
+ * @param state state
64
+ */
65
+ private setState;
66
+ /**
67
+ * Connect to the websocket service.
68
+ * @param uri WebSocket URI
69
+ * @param token Authentication token
70
+ */
71
+ connect(uri: string, token: string): void;
72
+ /**
73
+ * Disconnect the websocket client.
74
+ */
75
+ disconnect(): void;
76
+ /**
77
+ * Send an event to the server.
78
+ * @param event Event
79
+ */
80
+ send(event: EventProtocol<T>["client"]): void;
81
+ /**
82
+ * Handle events intended for client before passing them along.
83
+ * @param event Event
84
+ */
85
+ handle(event: EventProtocol<T>["server"]): void;
86
+ get lastError(): any;
87
+ }
88
+ export {};
89
+ //# sourceMappingURL=EventClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventClient.d.ts","sourceRoot":"","sources":["../../../src/events/EventClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAwB,MAAM,UAAU,CAAC;AAE1D;;GAEG;AACH,oBAAY,eAAe;IACzB,IAAI,IAAA;IACJ,UAAU,IAAA;IACV,SAAS,IAAA;IACT,YAAY,IAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,KAAK,MAAM,CAAC,CAAC,SAAS,kBAAkB,EAAE,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,IAAI;IACtE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9B,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IACpC,KAAK,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,kBAAkB,CAAE,SAAQ,YAAY,CACzE,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAC5B;;IACC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAKrC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAGhC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAU1C;;;;;OAKG;gBAED,eAAe,EAAE,CAAC,EAClB,eAAe,GAAE,MAAe,EAChC,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;IA0BvC;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAKhB;;;;OAIG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAkDlC;;OAEG;IACH,UAAU;IAUV;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAMtC;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IA6CxC,IAAI,SAAS,QAEZ;CACF"}
@@ -0,0 +1,175 @@
1
+ import EventEmitter from "eventemitter3";
2
+ import WebSocket from "isomorphic-ws";
3
+ import { createSignal } from "solid-js";
4
+ /**
5
+ * All possible event client states.
6
+ */
7
+ export var ConnectionState;
8
+ (function (ConnectionState) {
9
+ ConnectionState[ConnectionState["Idle"] = 0] = "Idle";
10
+ ConnectionState[ConnectionState["Connecting"] = 1] = "Connecting";
11
+ ConnectionState[ConnectionState["Connected"] = 2] = "Connected";
12
+ ConnectionState[ConnectionState["Disconnected"] = 3] = "Disconnected";
13
+ })(ConnectionState || (ConnectionState = {}));
14
+ /**
15
+ * Simple wrapper around the Hischool websocket service.
16
+ */
17
+ export class EventClient extends EventEmitter {
18
+ options;
19
+ #protocolVersion;
20
+ #transportFormat;
21
+ ping;
22
+ #setPing;
23
+ state;
24
+ #setStateSetter;
25
+ #socket;
26
+ #heartbeatIntervalReference;
27
+ #pongTimeoutReference;
28
+ #connectTimeoutReference;
29
+ #lastError;
30
+ /**
31
+ * Create a new event client.
32
+ * @param protocolVersion Target protocol version
33
+ * @param transportFormat Communication format
34
+ * @param options Configuration options
35
+ */
36
+ constructor(protocolVersion, transportFormat = "json", options) {
37
+ super();
38
+ this.#protocolVersion = protocolVersion;
39
+ this.#transportFormat = transportFormat;
40
+ this.options = {
41
+ heartbeatInterval: 30,
42
+ pongTimeout: 10,
43
+ connectTimeout: 10,
44
+ debug: false,
45
+ ...options,
46
+ };
47
+ const [state, setState] = createSignal(ConnectionState.Idle);
48
+ this.state = state;
49
+ this.#setStateSetter = setState;
50
+ const [ping, setPing] = createSignal(-1);
51
+ this.ping = ping;
52
+ this.#setPing = setPing;
53
+ this.disconnect = this.disconnect.bind(this);
54
+ }
55
+ /**
56
+ * Set the current state
57
+ * @param state state
58
+ */
59
+ setState(state) {
60
+ this.#setStateSetter(state);
61
+ this.emit("state", state);
62
+ }
63
+ /**
64
+ * Connect to the websocket service.
65
+ * @param uri WebSocket URI
66
+ * @param token Authentication token
67
+ */
68
+ connect(uri, token) {
69
+ this.disconnect();
70
+ this.#lastError = undefined;
71
+ this.setState(ConnectionState.Connecting);
72
+ this.#connectTimeoutReference = setTimeout(() => this.disconnect(), this.options.pongTimeout * 1e3);
73
+ this.#socket = new WebSocket(`${uri}?version=${this.#protocolVersion}&format=${this.#transportFormat}&token=${token}`);
74
+ this.#socket.onopen = () => {
75
+ this.#heartbeatIntervalReference = setInterval(() => {
76
+ this.send({ type: "Ping", data: +new Date() });
77
+ this.#pongTimeoutReference = setTimeout(() => this.disconnect(), this.options.pongTimeout * 1e3);
78
+ }, this.options.heartbeatInterval * 1e3);
79
+ };
80
+ this.#socket.onerror = (error) => {
81
+ this.#lastError = error;
82
+ this.emit("error", error);
83
+ };
84
+ this.#socket.onmessage = (event) => {
85
+ clearInterval(this.#connectTimeoutReference);
86
+ if (this.#transportFormat === "json") {
87
+ if (typeof event.data === "string") {
88
+ this.handle(JSON.parse(event.data));
89
+ }
90
+ }
91
+ };
92
+ let closed = false;
93
+ this.#socket.onclose = () => {
94
+ if (closed)
95
+ return;
96
+ closed = true;
97
+ this.setState(ConnectionState.Disconnected);
98
+ this.disconnect();
99
+ };
100
+ }
101
+ /**
102
+ * Disconnect the websocket client.
103
+ */
104
+ disconnect() {
105
+ if (!this.#socket)
106
+ return;
107
+ clearInterval(this.#heartbeatIntervalReference);
108
+ clearInterval(this.#connectTimeoutReference);
109
+ clearInterval(this.#pongTimeoutReference);
110
+ const socket = this.#socket;
111
+ this.#socket = undefined;
112
+ socket.close();
113
+ }
114
+ /**
115
+ * Send an event to the server.
116
+ * @param event Event
117
+ */
118
+ send(event) {
119
+ this.options.debug && console.debug("[C->S]", event);
120
+ if (!this.#socket)
121
+ throw "Socket closed, trying to send.";
122
+ this.#socket.send(JSON.stringify(event));
123
+ }
124
+ /**
125
+ * Handle events intended for client before passing them along.
126
+ * @param event Event
127
+ */
128
+ handle(event) {
129
+ this.options.debug && console.debug("[S->C]", event);
130
+ switch (event.type) {
131
+ case "Ping":
132
+ this.send({
133
+ type: "Pong",
134
+ data: event.data,
135
+ });
136
+ return;
137
+ case "Pong":
138
+ clearTimeout(this.#pongTimeoutReference);
139
+ this.#setPing(+new Date() - event.data);
140
+ this.options.debug && console.debug(`[ping] ${this.ping()}ms`);
141
+ return;
142
+ case "Error":
143
+ this.emit("error", event);
144
+ this.disconnect();
145
+ return;
146
+ }
147
+ switch (this.state()) {
148
+ case ConnectionState.Connecting:
149
+ if (event.type === "Authenticated") {
150
+ // no-op
151
+ }
152
+ else if (event.type === "Ready") {
153
+ this.emit("event", event);
154
+ this.setState(ConnectionState.Connected);
155
+ }
156
+ else {
157
+ throw `Unreachable code. Received ${event.type} in Connecting state.`;
158
+ }
159
+ break;
160
+ case ConnectionState.Connected:
161
+ if (event.type === "Authenticated" || event.type === "Ready") {
162
+ throw `Unreachable code. Received ${event.type} in Connected state.`;
163
+ }
164
+ else {
165
+ this.emit("event", event);
166
+ }
167
+ break;
168
+ default:
169
+ throw `Unreachable code. Received ${event.type} in state ${this.state()}.`;
170
+ }
171
+ }
172
+ get lastError() {
173
+ return this.#lastError;
174
+ }
175
+ }
@@ -0,0 +1,18 @@
1
+ import type { ProtocolV1 } from "./v1.js";
2
+ export { handleEvent as handleEventV1 } from "./v1.js";
3
+ export * from "./EventClient.js";
4
+ /**
5
+ * Available protocols to connect with
6
+ */
7
+ export type AvailableProtocols = 1;
8
+ /**
9
+ * Protocol mapping
10
+ */
11
+ type Protocols = {
12
+ 1: ProtocolV1;
13
+ };
14
+ /**
15
+ * Select a protocol by its key
16
+ */
17
+ export type EventProtocol<T extends AvailableProtocols> = Protocols[T];
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAEvD,cAAc,kBAAkB,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEnC;;GAEG;AACH,KAAK,SAAS,GAAG;IACf,CAAC,EAAE,UAAU,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,kBAAkB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { handleEvent as handleEventV1 } from "./v1.js";
2
+ export * from "./EventClient.js";