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
package/README.md ADDED
@@ -0,0 +1,41 @@
1
+ # hischool.js
2
+
3
+ **hischool.js** is a JavaScript (TypeScript) library for interacting with Hischool.
4
+
5
+ ## Example Usage
6
+
7
+ ```javascript
8
+ // esm / typescript
9
+ import { Client } from "hischool.js";
10
+ // ...or commonjs
11
+ const { Client } = require("hischool.js");
12
+
13
+ let client = new Client();
14
+
15
+ client.on("ready", async () =>
16
+ console.info(`Logged in as ${client.user.username}!`)
17
+ );
18
+
19
+ client.on("messageCreate", async (message) => {
20
+ if (message.content === "hello") {
21
+ message.channel.sendMessage("world");
22
+ }
23
+ });
24
+
25
+ client.loginBot("..");
26
+ ```
27
+
28
+ ## Reactivity with Signals & Solid.js Primitives
29
+
30
+ All objects have reactivity built-in and can be dropped straight into any Solid.js project.
31
+
32
+ ```tsx
33
+ const client = new Client();
34
+ // initialise the client
35
+
36
+ function MyApp() {
37
+ return (
38
+ <h1>Your username is: {client.user?.username ?? "[logging in...]"}</h1>
39
+ );
40
+ }
41
+ ```
@@ -0,0 +1,166 @@
1
+ import type { DataLogin, HischoolConfig } from "./api";
2
+ import { API, Role } from "./api";
3
+ import { Channel, Emoji, Message, Server, ServerMember, User } from "./classes/index.js";
4
+ import { AccountCollection } from "./collections/AccountCollection.js";
5
+ import { BotCollection, ChannelCollection, ChannelUnreadCollection, ChannelWebhookCollection, EmojiCollection, MessageCollection, ServerCollection, ServerMemberCollection, SessionCollection, UserCollection } from "./collections/index.js";
6
+ import { EventClient, EventClientOptions } from "./events/index.js";
7
+ import { HydratedChannel, HydratedEmoji, HydratedMessage, HydratedServer, HydratedServerMember, HydratedUser } from "./hydration/index.js";
8
+ import EventEmitter from "eventemitter3";
9
+ import { Accessor } from "solid-js";
10
+ export type Session = {
11
+ _id: string;
12
+ token: string;
13
+ user_id: string;
14
+ } | string;
15
+ /**
16
+ * Events provided by the client
17
+ */
18
+ export type Events = {
19
+ error(error: Error): void;
20
+ connected(): void;
21
+ connecting(): void;
22
+ disconnected(): void;
23
+ ready(): void;
24
+ logout(): void;
25
+ messageCreate(message: Message): void;
26
+ messageUpdate(message: Message, previousMessage: HydratedMessage): void;
27
+ messageDelete(message: HydratedMessage): void;
28
+ messageDeleteBulk(messages: HydratedMessage[], channel?: Channel): void;
29
+ messageReactionAdd(message: Message, userId: string, emoji: string): void;
30
+ messageReactionRemove(message: Message, userId: string, emoji: string): void;
31
+ messageReactionRemoveEmoji(message: Message, emoji: string): void;
32
+ channelCreate(channel: Channel): void;
33
+ channelUpdate(channel: Channel, previousChannel: HydratedChannel): void;
34
+ channelDelete(channel: HydratedChannel): void;
35
+ channelGroupJoin(channel: Channel, user: User): void;
36
+ channelGroupLeave(channel: Channel, user?: User): void;
37
+ channelStartTyping(channel: Channel, user?: User): void;
38
+ channelStopTyping(channel: Channel, user?: User): void;
39
+ channelAcknowledged(channel: Channel, messageId: string): void;
40
+ serverCreate(server: Server): void;
41
+ serverUpdate(server: Server, previousServer: HydratedServer): void;
42
+ serverDelete(server: HydratedServer): void;
43
+ serverLeave(server: HydratedServer): void;
44
+ serverRoleUpdate(server: Server, roleId: string, previousRole: Role): void;
45
+ serverRoleDelete(server: Server, roleId: string, role: Role): void;
46
+ serverMemberUpdate(member: ServerMember, previousMember: HydratedServerMember): void;
47
+ serverMemberJoin(member: ServerMember): void;
48
+ serverMemberLeave(member: HydratedServerMember): void;
49
+ userUpdate(user: User, previousUser: HydratedUser): void;
50
+ userSettingsUpdate(id: string, update: Record<string, [number, string]>): void;
51
+ emojiCreate(emoji: Emoji): void;
52
+ emojiDelete(emoji: HydratedEmoji): void;
53
+ };
54
+ /**
55
+ * Client options object
56
+ */
57
+ export type ClientOptions = Partial<EventClientOptions> & {
58
+ /**
59
+ * Base URL of the API server
60
+ */
61
+ baseURL: string;
62
+ /**
63
+ * Whether to allow partial objects to emit from events
64
+ * @default false
65
+ */
66
+ partials: boolean;
67
+ /**
68
+ * Whether to eagerly fetch users and members for incoming events
69
+ * @default true
70
+ * @deprecated
71
+ */
72
+ eagerFetching: boolean;
73
+ /**
74
+ * Whether to automatically sync unreads information
75
+ * @default false
76
+ */
77
+ syncUnreads: boolean;
78
+ /**
79
+ * Whether to reconnect when disconnected
80
+ * @default true
81
+ */
82
+ autoReconnect: boolean;
83
+ /**
84
+ * Whether to rewrite sent messages that include identifiers such as @silent
85
+ * @default true
86
+ */
87
+ messageRewrites: boolean;
88
+ /**
89
+ * Retry delay function
90
+ * @param retryCount Count
91
+ * @returns Delay in seconds
92
+ * @default (2^x-1) ±20%
93
+ */
94
+ retryDelayFunction(retryCount: number): number;
95
+ /**
96
+ * Check whether a channel is muted
97
+ * @param channel Channel
98
+ * @return Whether it is muted
99
+ * @default false
100
+ */
101
+ channelIsMuted(channel: Channel): boolean;
102
+ };
103
+ /**
104
+ * Hischool.js Clients
105
+ */
106
+ export declare class Client extends EventEmitter<Events> {
107
+ #private;
108
+ readonly account: AccountCollection;
109
+ readonly bots: BotCollection;
110
+ readonly channels: ChannelCollection;
111
+ readonly channelUnreads: ChannelUnreadCollection;
112
+ readonly channelWebhooks: ChannelWebhookCollection;
113
+ readonly emojis: EmojiCollection;
114
+ readonly messages: MessageCollection;
115
+ readonly servers: ServerCollection;
116
+ readonly serverMembers: ServerMemberCollection;
117
+ readonly sessions: SessionCollection;
118
+ readonly users: UserCollection;
119
+ readonly api: API;
120
+ readonly options: ClientOptions;
121
+ readonly events: EventClient<1>;
122
+ configuration: HischoolConfig | undefined;
123
+ user: User | undefined;
124
+ readonly ready: Accessor<boolean>;
125
+ readonly connectionFailureCount: Accessor<number>;
126
+ /**
127
+ * Create Hischool.js Client
128
+ */
129
+ constructor(options?: Partial<ClientOptions>, configuration?: HischoolConfig);
130
+ /**
131
+ * Current session id
132
+ */
133
+ get sessionId(): string | undefined;
134
+ /**
135
+ * Connect to Hischool
136
+ */
137
+ connect(): void;
138
+ /**
139
+ * Log in with auth data, creating a new session in the process.
140
+ * @param details Login data object
141
+ * @returns An on-boarding function if on-boarding is required, undefined otherwise
142
+ */
143
+ login(details: DataLogin): Promise<void>;
144
+ /**
145
+ * Use an existing session
146
+ */
147
+ useExistingSession(session: Session): Promise<void>;
148
+ /**
149
+ * Log in as a bot
150
+ * @param token Bot token
151
+ */
152
+ loginBot(token: string): Promise<void>;
153
+ /**
154
+ * Prepare a markdown-based message to be displayed to the user as plain text.
155
+ * @param source Source markdown text
156
+ * @returns Modified plain text
157
+ */
158
+ markdownToText(source: string): string;
159
+ /**
160
+ * Proxy a file through January.
161
+ * @param url URL to proxy
162
+ * @returns Proxied media URL
163
+ */
164
+ proxyFile(url: string): string | undefined;
165
+ }
166
+ //# sourceMappingURL=Client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../src/Client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
12
+ if (kind === "m") throw new TypeError("Private method is not writable");
13
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
14
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
15
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
16
+ };
17
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
18
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
19
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
20
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ var _Client_instances, _Client_session, _Client_setReady, _Client_setConnectionFailureCount, _Client_reconnectTimeout, _Client_fetchConfiguration, _Client_updateHeaders;
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.Client = void 0;
28
+ const api_1 = require("./api");
29
+ const AccountCollection_js_1 = require("./collections/AccountCollection.js");
30
+ const index_js_1 = require("./collections/index.js");
31
+ const index_js_2 = require("./events/index.js");
32
+ const regex_js_1 = require("./lib/regex.js");
33
+ const eventemitter3_1 = __importDefault(require("eventemitter3"));
34
+ const solid_js_1 = require("solid-js");
35
+ /**
36
+ * Hischool.js Clients
37
+ */
38
+ class Client extends eventemitter3_1.default {
39
+ /**
40
+ * Create Hischool.js Client
41
+ */
42
+ constructor(options, configuration) {
43
+ super();
44
+ _Client_instances.add(this);
45
+ _Client_session.set(this, void 0);
46
+ _Client_setReady.set(this, void 0);
47
+ _Client_setConnectionFailureCount.set(this, void 0);
48
+ _Client_reconnectTimeout.set(this, void 0);
49
+ this.options = Object.assign({ baseURL: "https://api.hischool.mn", partials: false, eagerFetching: true, syncUnreads: false, autoReconnect: true, messageRewrites: true,
50
+ /**
51
+ * Retry delay function
52
+ * @param retryCount Count
53
+ * @returns Delay in seconds
54
+ */
55
+ retryDelayFunction(retryCount) {
56
+ return (Math.pow(2, retryCount) - 1) * (0.8 + Math.random() * 0.4);
57
+ },
58
+ /**
59
+ * Check whether a channel is muted
60
+ * @param channel Channel
61
+ * @return Whether it is muted
62
+ */
63
+ channelIsMuted() {
64
+ return false;
65
+ } }, options);
66
+ this.configuration = configuration;
67
+ this.api = new api_1.API({
68
+ baseURL: this.options.baseURL,
69
+ });
70
+ const [ready, setReady] = (0, solid_js_1.createSignal)(false);
71
+ this.ready = ready;
72
+ __classPrivateFieldSet(this, _Client_setReady, setReady, "f");
73
+ const [connectionFailureCount, setConnectionFailureCount] = (0, solid_js_1.createSignal)(0);
74
+ this.connectionFailureCount = connectionFailureCount;
75
+ __classPrivateFieldSet(this, _Client_setConnectionFailureCount, setConnectionFailureCount, "f");
76
+ this.account = new AccountCollection_js_1.AccountCollection(this);
77
+ this.bots = new index_js_1.BotCollection(this);
78
+ this.channels = new index_js_1.ChannelCollection(this);
79
+ this.channelUnreads = new index_js_1.ChannelUnreadCollection(this);
80
+ this.channelWebhooks = new index_js_1.ChannelWebhookCollection(this);
81
+ this.emojis = new index_js_1.EmojiCollection(this);
82
+ this.messages = new index_js_1.MessageCollection(this);
83
+ this.servers = new index_js_1.ServerCollection(this);
84
+ this.serverMembers = new index_js_1.ServerMemberCollection(this);
85
+ this.sessions = new index_js_1.SessionCollection(this);
86
+ this.users = new index_js_1.UserCollection(this);
87
+ this.events = new index_js_2.EventClient(1, "json", this.options);
88
+ this.events.on("error", (error) => this.emit("error", error));
89
+ this.events.on("state", (state) => {
90
+ switch (state) {
91
+ case index_js_2.ConnectionState.Connected:
92
+ (0, solid_js_1.batch)(() => {
93
+ this.servers.forEach((server) => server.resetSyncStatus());
94
+ __classPrivateFieldGet(this, _Client_setConnectionFailureCount, "f").call(this, 0);
95
+ this.emit("connected");
96
+ });
97
+ break;
98
+ case index_js_2.ConnectionState.Connecting:
99
+ this.emit("connecting");
100
+ break;
101
+ case index_js_2.ConnectionState.Disconnected:
102
+ this.emit("disconnected");
103
+ if (this.options.autoReconnect) {
104
+ __classPrivateFieldSet(this, _Client_reconnectTimeout, setTimeout(() => this.connect(), this.options.retryDelayFunction(this.connectionFailureCount()) *
105
+ 1e3), "f");
106
+ __classPrivateFieldGet(this, _Client_setConnectionFailureCount, "f").call(this, (count) => count + 1);
107
+ }
108
+ break;
109
+ }
110
+ });
111
+ this.events.on("event", (event) => (0, index_js_2.handleEventV1)(this, event, __classPrivateFieldGet(this, _Client_setReady, "f")));
112
+ }
113
+ /**
114
+ * Current session id
115
+ */
116
+ get sessionId() {
117
+ var _a;
118
+ return typeof __classPrivateFieldGet(this, _Client_session, "f") === "string" ? undefined : (_a = __classPrivateFieldGet(this, _Client_session, "f")) === null || _a === void 0 ? void 0 : _a._id;
119
+ }
120
+ /**
121
+ * Connect to Hischool
122
+ */
123
+ connect() {
124
+ var _a, _b;
125
+ clearTimeout(__classPrivateFieldGet(this, _Client_reconnectTimeout, "f"));
126
+ this.events.disconnect();
127
+ __classPrivateFieldGet(this, _Client_setReady, "f").call(this, false);
128
+ this.events.connect((_b = (_a = this.configuration) === null || _a === void 0 ? void 0 : _a.ws) !== null && _b !== void 0 ? _b : "wss://ws.hischool.mn", typeof __classPrivateFieldGet(this, _Client_session, "f") === "string" ? __classPrivateFieldGet(this, _Client_session, "f") : __classPrivateFieldGet(this, _Client_session, "f").token);
129
+ }
130
+ /**
131
+ * Log in with auth data, creating a new session in the process.
132
+ * @param details Login data object
133
+ * @returns An on-boarding function if on-boarding is required, undefined otherwise
134
+ */
135
+ login(details) {
136
+ return __awaiter(this, void 0, void 0, function* () {
137
+ yield __classPrivateFieldGet(this, _Client_instances, "m", _Client_fetchConfiguration).call(this);
138
+ const data = yield this.api.post("/auth/session/login", details);
139
+ if (data.result === "Success") {
140
+ __classPrivateFieldSet(this, _Client_session, data, "f");
141
+ // TODO: return await this.connect();
142
+ }
143
+ else {
144
+ throw "MFA not implemented!";
145
+ }
146
+ });
147
+ }
148
+ /**
149
+ * Use an existing session
150
+ */
151
+ useExistingSession(session) {
152
+ return __awaiter(this, void 0, void 0, function* () {
153
+ __classPrivateFieldSet(this, _Client_session, session, "f");
154
+ __classPrivateFieldGet(this, _Client_instances, "m", _Client_updateHeaders).call(this);
155
+ });
156
+ }
157
+ /**
158
+ * Log in as a bot
159
+ * @param token Bot token
160
+ */
161
+ loginBot(token) {
162
+ return __awaiter(this, void 0, void 0, function* () {
163
+ yield __classPrivateFieldGet(this, _Client_instances, "m", _Client_fetchConfiguration).call(this);
164
+ __classPrivateFieldSet(this, _Client_session, token, "f");
165
+ __classPrivateFieldGet(this, _Client_instances, "m", _Client_updateHeaders).call(this);
166
+ this.connect();
167
+ });
168
+ }
169
+ /**
170
+ * Prepare a markdown-based message to be displayed to the user as plain text.
171
+ * @param source Source markdown text
172
+ * @returns Modified plain text
173
+ */
174
+ markdownToText(source) {
175
+ return source
176
+ .replace(regex_js_1.RE_MENTIONS, (sub, id) => {
177
+ const user = this.users.get(id);
178
+ if (user) {
179
+ return `@${user.username}`;
180
+ }
181
+ return sub;
182
+ })
183
+ .replace(regex_js_1.RE_CHANNELS, (sub, id) => {
184
+ const channel = this.channels.get(id);
185
+ if (channel) {
186
+ return `#${channel.displayName}`;
187
+ }
188
+ return sub;
189
+ })
190
+ .replace(regex_js_1.RE_SPOILER, "<spoiler>");
191
+ }
192
+ /**
193
+ * Proxy a file through January.
194
+ * @param url URL to proxy
195
+ * @returns Proxied media URL
196
+ */
197
+ proxyFile(url) {
198
+ var _a;
199
+ if ((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.features.january.enabled) {
200
+ return `${this.configuration.features.january.url}/proxy?url=${encodeURIComponent(url)}`;
201
+ }
202
+ else {
203
+ return url;
204
+ }
205
+ }
206
+ }
207
+ exports.Client = Client;
208
+ _Client_session = new WeakMap(), _Client_setReady = new WeakMap(), _Client_setConnectionFailureCount = new WeakMap(), _Client_reconnectTimeout = new WeakMap(), _Client_instances = new WeakSet(), _Client_fetchConfiguration = function _Client_fetchConfiguration() {
209
+ return __awaiter(this, void 0, void 0, function* () {
210
+ if (!this.configuration) {
211
+ this.configuration = yield this.api.get("/");
212
+ }
213
+ });
214
+ }, _Client_updateHeaders = function _Client_updateHeaders() {
215
+ this.api = new api_1.API({
216
+ baseURL: this.options.baseURL,
217
+ authentication: {
218
+ hischool: __classPrivateFieldGet(this, _Client_session, "f"),
219
+ },
220
+ });
221
+ };
@@ -0,0 +1,2 @@
1
+ export declare const defaultBaseURL = "https://api.hischool.mn";
2
+ //# sourceMappingURL=baseURL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseURL.d.ts","sourceRoot":"","sources":["../../../src/api/baseURL.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultBaseURL = void 0;
4
+ // API Base URL
5
+ exports.defaultBaseURL = "https://api.hischool.mn";
@@ -0,0 +1,177 @@
1
+ import type { APIRoutes } from "./routes";
2
+ import type { AxiosRequestConfig } from "axios";
3
+ export * from "./types";
4
+ type Methods = APIRoutes["method"];
5
+ type PickRoutes<Method extends Methods> = APIRoutes & {
6
+ method: Method;
7
+ };
8
+ type GetRoutes = PickRoutes<"get">;
9
+ type PatchRoutes = PickRoutes<"patch">;
10
+ type PutRoutes = PickRoutes<"put">;
11
+ type DeleteRoutes = PickRoutes<"delete">;
12
+ type PostRoutes = PickRoutes<"post">;
13
+ type Count<Str extends string, SubStr extends string, Matches extends null[] = []> = Str extends `${infer _}${SubStr}${infer After}` ? Count<After, SubStr, [...Matches, null]> : Matches["length"];
14
+ /**
15
+ * Get the specific path name of any given path.
16
+ * @param anyPath Any path
17
+ * @returns Specific path
18
+ */
19
+ export declare function getPathName(anyPath: string): string | undefined;
20
+ /**
21
+ * Client configuration options
22
+ */
23
+ export interface Options {
24
+ /**
25
+ * Base URL of the Hischool node
26
+ */
27
+ baseURL: string;
28
+ /**
29
+ * Authentication used for requests
30
+ */
31
+ authentication: {
32
+ rauth?: string | undefined;
33
+ hischool?: {
34
+ token: string;
35
+ } | string | undefined;
36
+ };
37
+ }
38
+ /**
39
+ * API Client
40
+ */
41
+ export declare class API {
42
+ private baseURL;
43
+ private authentication;
44
+ constructor({ baseURL, authentication }?: Partial<Options>);
45
+ /**
46
+ * Generate authentication options.
47
+ */
48
+ get auth(): AxiosRequestConfig;
49
+ /**
50
+ * Generate config to pass through to API.
51
+ */
52
+ get config(): AxiosRequestConfig;
53
+ /**
54
+ * Send any arbitrary request.
55
+ * @param method HTTP Method
56
+ * @param path Path
57
+ * @param params Body or Query Parameters
58
+ * @param config Axios configuration
59
+ * @returns Typed Response Data
60
+ */
61
+ req<Method extends Methods, Routes extends PickRoutes<Method>, Path extends Routes["path"], Route extends Routes & {
62
+ path: Path;
63
+ parts: Count<Path, "/">;
64
+ }>(method: Method, path: Path, params: Route["params"], config?: AxiosRequestConfig): Promise<Route["response"]>;
65
+ /**
66
+ * Send HTTP GET request.
67
+ * @param path Path
68
+ * @param params Body or Query Parameters
69
+ * @param config Axios configuration
70
+ * @returns Typed Response Data
71
+ */
72
+ get<Path extends GetRoutes["path"], Route extends GetRoutes & {
73
+ path: Path;
74
+ parts: Count<Path, "/">;
75
+ }>(path: Path, params: Route["params"], config?: AxiosRequestConfig): Promise<Route["response"]>;
76
+ /**
77
+ * Send HTTP GET request.
78
+ * @param path Path
79
+ * @returns Typed Response Data
80
+ */
81
+ get<Path extends (GetRoutes & {
82
+ params: undefined;
83
+ })["path"], Route extends GetRoutes & {
84
+ path: Path;
85
+ parts: Count<Path, "/">;
86
+ }>(path: Path): Promise<Route["response"]>;
87
+ /**
88
+ * Send HTTP PATCH request.
89
+ * @param path Path
90
+ * @param params Body or Query Parameters
91
+ * @param config Axios configuration
92
+ * @returns Typed Response Data
93
+ */
94
+ patch<Path extends PatchRoutes["path"], Route extends PatchRoutes & {
95
+ path: Path;
96
+ parts: Count<Path, "/">;
97
+ }>(path: Path, params: Route["params"], config?: AxiosRequestConfig): Promise<Route["response"]>;
98
+ /**
99
+ * Send HTTP PATCH request.
100
+ * @param path Path
101
+ * @returns Typed Response Data
102
+ */
103
+ patch<Path extends (PatchRoutes & {
104
+ params: undefined;
105
+ })["path"], Route extends PatchRoutes & {
106
+ path: Path;
107
+ parts: Count<Path, "/">;
108
+ }>(path: Path): Promise<Route["response"]>;
109
+ /**
110
+ * Send HTTP PUT request.
111
+ * @param path Path
112
+ * @param params Body or Query Parameters
113
+ * @param config Axios configuration
114
+ * @returns Typed Response Data
115
+ */
116
+ put<Path extends PutRoutes["path"], Route extends PutRoutes & {
117
+ path: Path;
118
+ parts: Count<Path, "/">;
119
+ }>(path: Path, params: Route["params"], config?: AxiosRequestConfig): Promise<Route["response"]>;
120
+ /**
121
+ * Send HTTP PUT request.
122
+ * @param path Path
123
+ * @returns Typed Response Data
124
+ */
125
+ put<Path extends (PutRoutes & {
126
+ params: undefined;
127
+ })["path"], Route extends PutRoutes & {
128
+ path: Path;
129
+ parts: Count<Path, "/">;
130
+ }>(path: Path): Promise<Route["response"]>;
131
+ /**
132
+ * Send HTTP DELETE request.
133
+ * @param path Path
134
+ * @param params Body or Query Parameters
135
+ * @param config Axios configuration
136
+ * @returns Typed Response Data
137
+ */
138
+ delete<Path extends DeleteRoutes["path"], Route extends DeleteRoutes & {
139
+ path: Path;
140
+ parts: Count<Path, "/">;
141
+ }>(path: Path, params?: any, config?: AxiosRequestConfig): Promise<Route["response"]>;
142
+ /**
143
+ * Send HTTP DELETE request.
144
+ * @param path Path
145
+ * @param params Body or Query Parameters
146
+ * @returns Typed Response Data
147
+ */
148
+ delete<Path extends (DeleteRoutes & {
149
+ params: undefined;
150
+ })["path"], Route extends DeleteRoutes & {
151
+ path: Path;
152
+ parts: Count<Path, "/">;
153
+ }>(path: Path, params?: any): Promise<Route["response"]>;
154
+ /**
155
+ * Send HTTP POST request.
156
+ * @param path Path
157
+ * @param params Body or Query Parameters
158
+ * @param config Axios configuration
159
+ * @returns Typed Response Data
160
+ */
161
+ post<Path extends PostRoutes["path"], Route extends PostRoutes & {
162
+ path: Path;
163
+ parts: Count<Path, "/">;
164
+ }>(path: Path, params: Route["params"], config?: AxiosRequestConfig): Promise<Route["response"]>;
165
+ /**
166
+ * Send HTTP POST request.
167
+ * @param path Path
168
+ * @returns Typed Response Data
169
+ */
170
+ post<Path extends (PostRoutes & {
171
+ params: undefined;
172
+ })["path"], Route extends PostRoutes & {
173
+ path: Path;
174
+ parts: Count<Path, "/">;
175
+ }>(path: Path): Promise<Route["response"]>;
176
+ }
177
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"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"}