@sapphire/plugin-api 5.2.1-next.f01b974.0 → 6.0.0-next.dede596.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/dist/cjs/index.cjs +134 -0
  2. package/dist/cjs/index.cjs.map +1 -0
  3. package/dist/cjs/index.d.ts +1134 -0
  4. package/dist/cjs/lib/structures/Augmentations.d.cjs +4 -0
  5. package/dist/cjs/lib/structures/Augmentations.d.cjs.map +1 -0
  6. package/dist/cjs/lib/structures/MediaParser.cjs +83 -0
  7. package/dist/cjs/lib/structures/MediaParser.cjs.map +1 -0
  8. package/dist/cjs/lib/structures/MediaParserStore.cjs +27 -0
  9. package/dist/cjs/lib/structures/MediaParserStore.cjs.map +1 -0
  10. package/dist/cjs/lib/structures/Middleware.cjs +34 -0
  11. package/dist/cjs/lib/structures/Middleware.cjs.map +1 -0
  12. package/dist/cjs/lib/structures/MiddlewareStore.cjs +53 -0
  13. package/dist/cjs/lib/structures/MiddlewareStore.cjs.map +1 -0
  14. package/dist/cjs/lib/structures/Route.cjs +72 -0
  15. package/dist/cjs/lib/structures/Route.cjs.map +1 -0
  16. package/dist/cjs/lib/structures/RouteStore.cjs +68 -0
  17. package/dist/cjs/lib/structures/RouteStore.cjs.map +1 -0
  18. package/dist/cjs/lib/structures/api/ApiRequest.cjs +42 -0
  19. package/dist/cjs/lib/structures/api/ApiRequest.cjs.map +1 -0
  20. package/dist/cjs/lib/structures/api/ApiResponse.cjs +126 -0
  21. package/dist/cjs/lib/structures/api/ApiResponse.cjs.map +1 -0
  22. package/dist/cjs/lib/structures/api/CookieStore.cjs +106 -0
  23. package/dist/cjs/lib/structures/api/CookieStore.cjs.map +1 -0
  24. package/dist/cjs/lib/structures/http/Auth.cjs +152 -0
  25. package/dist/cjs/lib/structures/http/Auth.cjs.map +1 -0
  26. package/dist/cjs/lib/structures/http/HttpCodes.cjs +70 -0
  27. package/dist/cjs/lib/structures/http/HttpCodes.cjs.map +1 -0
  28. package/dist/cjs/lib/structures/http/HttpMethods.cjs +12 -0
  29. package/dist/cjs/lib/structures/http/HttpMethods.cjs.map +1 -0
  30. package/dist/cjs/lib/structures/http/Server.cjs +127 -0
  31. package/dist/cjs/lib/structures/http/Server.cjs.map +1 -0
  32. package/dist/cjs/lib/utils/MimeTypes.cjs +26 -0
  33. package/dist/cjs/lib/utils/MimeTypes.cjs.map +1 -0
  34. package/dist/cjs/lib/utils/RouteData.cjs +73 -0
  35. package/dist/cjs/lib/utils/RouteData.cjs.map +1 -0
  36. package/dist/cjs/listeners/PluginRouteError.cjs +24 -0
  37. package/dist/cjs/listeners/PluginRouteError.cjs.map +1 -0
  38. package/dist/cjs/listeners/PluginServerMatch.cjs +26 -0
  39. package/dist/cjs/listeners/PluginServerMatch.cjs.map +1 -0
  40. package/dist/cjs/listeners/PluginServerMiddlewareError.cjs +24 -0
  41. package/dist/cjs/listeners/PluginServerMiddlewareError.cjs.map +1 -0
  42. package/dist/cjs/listeners/PluginServerMiddlewareSuccess.cjs +25 -0
  43. package/dist/cjs/listeners/PluginServerMiddlewareSuccess.cjs.map +1 -0
  44. package/dist/cjs/listeners/PluginServerNoMatch.cjs +22 -0
  45. package/dist/cjs/listeners/PluginServerNoMatch.cjs.map +1 -0
  46. package/dist/cjs/listeners/PluginServerRequest.cjs +32 -0
  47. package/dist/cjs/listeners/PluginServerRequest.cjs.map +1 -0
  48. package/dist/cjs/listeners/_load.cjs +26 -0
  49. package/dist/cjs/listeners/_load.cjs.map +1 -0
  50. package/dist/cjs/mediaParsers/_load.cjs +20 -0
  51. package/dist/cjs/mediaParsers/_load.cjs.map +1 -0
  52. package/dist/cjs/mediaParsers/applicationFormUrlEncoded.cjs +23 -0
  53. package/dist/cjs/mediaParsers/applicationFormUrlEncoded.cjs.map +1 -0
  54. package/dist/cjs/mediaParsers/applicationJson.cjs +22 -0
  55. package/dist/cjs/mediaParsers/applicationJson.cjs.map +1 -0
  56. package/dist/cjs/mediaParsers/textPlain.cjs +22 -0
  57. package/dist/cjs/mediaParsers/textPlain.cjs.map +1 -0
  58. package/dist/cjs/middlewares/_load.cjs +22 -0
  59. package/dist/cjs/middlewares/_load.cjs.map +1 -0
  60. package/dist/cjs/middlewares/auth.cjs +36 -0
  61. package/dist/cjs/middlewares/auth.cjs.map +1 -0
  62. package/dist/cjs/middlewares/body.cjs +50 -0
  63. package/dist/cjs/middlewares/body.cjs.map +1 -0
  64. package/dist/cjs/middlewares/cookies.cjs +30 -0
  65. package/dist/cjs/middlewares/cookies.cjs.map +1 -0
  66. package/dist/cjs/middlewares/headers.cjs +59 -0
  67. package/dist/cjs/middlewares/headers.cjs.map +1 -0
  68. package/dist/cjs/register.cjs +37 -0
  69. package/dist/cjs/register.cjs.map +1 -0
  70. package/dist/{register.d.ts → cjs/register.d.ts} +6 -5
  71. package/dist/cjs/routes/_load.cjs +18 -0
  72. package/dist/cjs/routes/_load.cjs.map +1 -0
  73. package/dist/cjs/routes/oauth/callback.cjs +79 -0
  74. package/dist/cjs/routes/oauth/callback.cjs.map +1 -0
  75. package/dist/cjs/routes/oauth/logout.cjs +66 -0
  76. package/dist/cjs/routes/oauth/logout.cjs.map +1 -0
  77. package/dist/esm/chunk-PYETHG4R.mjs +29 -0
  78. package/dist/esm/chunk-PYETHG4R.mjs.map +1 -0
  79. package/dist/esm/index.d.mts +1134 -0
  80. package/dist/esm/index.mjs +26 -0
  81. package/dist/esm/index.mjs.map +1 -0
  82. package/dist/esm/lib/structures/Augmentations.d.mjs +3 -0
  83. package/dist/esm/lib/structures/Augmentations.d.mjs.map +1 -0
  84. package/dist/esm/lib/structures/MediaParser.mjs +80 -0
  85. package/dist/esm/lib/structures/MediaParser.mjs.map +1 -0
  86. package/dist/esm/lib/structures/MediaParserStore.mjs +24 -0
  87. package/dist/esm/lib/structures/MediaParserStore.mjs.map +1 -0
  88. package/dist/esm/lib/structures/Middleware.mjs +26 -0
  89. package/dist/esm/lib/structures/Middleware.mjs.map +1 -0
  90. package/dist/esm/lib/structures/MiddlewareStore.mjs +45 -0
  91. package/dist/esm/lib/structures/MiddlewareStore.mjs.map +1 -0
  92. package/dist/esm/lib/structures/Route.mjs +64 -0
  93. package/dist/esm/lib/structures/Route.mjs.map +1 -0
  94. package/dist/esm/lib/structures/RouteStore.mjs +60 -0
  95. package/dist/esm/lib/structures/RouteStore.mjs.map +1 -0
  96. package/dist/esm/lib/structures/api/ApiRequest.mjs +34 -0
  97. package/dist/esm/lib/structures/api/ApiRequest.mjs.map +1 -0
  98. package/dist/esm/lib/structures/api/ApiResponse.mjs +118 -0
  99. package/dist/esm/lib/structures/api/ApiResponse.mjs.map +1 -0
  100. package/dist/esm/lib/structures/api/CookieStore.mjs +98 -0
  101. package/dist/esm/lib/structures/api/CookieStore.mjs.map +1 -0
  102. package/dist/esm/lib/structures/http/Auth.mjs +126 -0
  103. package/dist/esm/lib/structures/http/Auth.mjs.map +1 -0
  104. package/dist/esm/lib/structures/http/HttpCodes.mjs +70 -0
  105. package/dist/esm/lib/structures/http/HttpCodes.mjs.map +1 -0
  106. package/dist/esm/lib/structures/http/HttpMethods.mjs +9 -0
  107. package/dist/esm/lib/structures/http/HttpMethods.mjs.map +1 -0
  108. package/dist/esm/lib/structures/http/Server.mjs +118 -0
  109. package/dist/esm/lib/structures/http/Server.mjs.map +1 -0
  110. package/dist/esm/lib/utils/MimeTypes.mjs +26 -0
  111. package/dist/esm/lib/utils/MimeTypes.mjs.map +1 -0
  112. package/dist/esm/lib/utils/RouteData.mjs +64 -0
  113. package/dist/esm/lib/utils/RouteData.mjs.map +1 -0
  114. package/dist/esm/listeners/PluginRouteError.mjs +21 -0
  115. package/dist/esm/listeners/PluginRouteError.mjs.map +1 -0
  116. package/dist/esm/listeners/PluginServerMatch.mjs +23 -0
  117. package/dist/esm/listeners/PluginServerMatch.mjs.map +1 -0
  118. package/dist/esm/listeners/PluginServerMiddlewareError.mjs +21 -0
  119. package/dist/esm/listeners/PluginServerMiddlewareError.mjs.map +1 -0
  120. package/dist/esm/listeners/PluginServerMiddlewareSuccess.mjs +22 -0
  121. package/dist/esm/listeners/PluginServerMiddlewareSuccess.mjs.map +1 -0
  122. package/dist/esm/listeners/PluginServerNoMatch.mjs +19 -0
  123. package/dist/esm/listeners/PluginServerNoMatch.mjs.map +1 -0
  124. package/dist/esm/listeners/PluginServerRequest.mjs +29 -0
  125. package/dist/esm/listeners/PluginServerRequest.mjs.map +1 -0
  126. package/dist/esm/listeners/_load.mjs +23 -0
  127. package/dist/esm/listeners/_load.mjs.map +1 -0
  128. package/dist/esm/mediaParsers/_load.mjs +17 -0
  129. package/dist/esm/mediaParsers/_load.mjs.map +1 -0
  130. package/dist/esm/mediaParsers/applicationFormUrlEncoded.mjs +20 -0
  131. package/dist/esm/mediaParsers/applicationFormUrlEncoded.mjs.map +1 -0
  132. package/dist/esm/mediaParsers/applicationJson.mjs +19 -0
  133. package/dist/esm/mediaParsers/applicationJson.mjs.map +1 -0
  134. package/dist/esm/mediaParsers/textPlain.mjs +19 -0
  135. package/dist/esm/mediaParsers/textPlain.mjs.map +1 -0
  136. package/dist/esm/middlewares/_load.mjs +19 -0
  137. package/dist/esm/middlewares/_load.mjs.map +1 -0
  138. package/dist/esm/middlewares/auth.mjs +28 -0
  139. package/dist/esm/middlewares/auth.mjs.map +1 -0
  140. package/dist/esm/middlewares/body.mjs +42 -0
  141. package/dist/esm/middlewares/body.mjs.map +1 -0
  142. package/dist/esm/middlewares/cookies.mjs +22 -0
  143. package/dist/esm/middlewares/cookies.mjs.map +1 -0
  144. package/dist/esm/middlewares/headers.mjs +51 -0
  145. package/dist/esm/middlewares/headers.mjs.map +1 -0
  146. package/dist/esm/register.d.mts +18 -0
  147. package/dist/esm/register.mjs +34 -0
  148. package/dist/esm/register.mjs.map +1 -0
  149. package/dist/esm/routes/_load.mjs +15 -0
  150. package/dist/esm/routes/_load.mjs.map +1 -0
  151. package/dist/esm/routes/oauth/callback.mjs +71 -0
  152. package/dist/esm/routes/oauth/callback.mjs.map +1 -0
  153. package/dist/esm/routes/oauth/logout.mjs +63 -0
  154. package/dist/esm/routes/oauth/logout.mjs.map +1 -0
  155. package/package.json +34 -19
  156. package/dist/index.d.ts +0 -38
  157. package/dist/index.d.ts.map +0 -1
  158. package/dist/index.js +0 -32
  159. package/dist/index.js.map +0 -1
  160. package/dist/index.mjs +0 -21
  161. package/dist/lib/structures/MediaParser.d.ts +0 -51
  162. package/dist/lib/structures/MediaParser.d.ts.map +0 -1
  163. package/dist/lib/structures/MediaParser.js +0 -94
  164. package/dist/lib/structures/MediaParser.js.map +0 -1
  165. package/dist/lib/structures/MediaParserStore.d.ts +0 -15
  166. package/dist/lib/structures/MediaParserStore.d.ts.map +0 -1
  167. package/dist/lib/structures/MediaParserStore.js +0 -24
  168. package/dist/lib/structures/MediaParserStore.js.map +0 -1
  169. package/dist/lib/structures/Middleware.d.ts +0 -49
  170. package/dist/lib/structures/Middleware.d.ts.map +0 -1
  171. package/dist/lib/structures/Middleware.js +0 -31
  172. package/dist/lib/structures/Middleware.js.map +0 -1
  173. package/dist/lib/structures/MiddlewareStore.d.ts +0 -20
  174. package/dist/lib/structures/MiddlewareStore.d.ts.map +0 -1
  175. package/dist/lib/structures/MiddlewareStore.js +0 -52
  176. package/dist/lib/structures/MiddlewareStore.js.map +0 -1
  177. package/dist/lib/structures/Route.d.ts +0 -78
  178. package/dist/lib/structures/Route.d.ts.map +0 -1
  179. package/dist/lib/structures/Route.js +0 -84
  180. package/dist/lib/structures/Route.js.map +0 -1
  181. package/dist/lib/structures/RouteStore.d.ts +0 -23
  182. package/dist/lib/structures/RouteStore.d.ts.map +0 -1
  183. package/dist/lib/structures/RouteStore.js +0 -71
  184. package/dist/lib/structures/RouteStore.js.map +0 -1
  185. package/dist/lib/structures/api/ApiRequest.d.ts +0 -26
  186. package/dist/lib/structures/api/ApiRequest.d.ts.map +0 -1
  187. package/dist/lib/structures/api/ApiRequest.js +0 -51
  188. package/dist/lib/structures/api/ApiRequest.js.map +0 -1
  189. package/dist/lib/structures/api/ApiResponse.d.ts +0 -74
  190. package/dist/lib/structures/api/ApiResponse.d.ts.map +0 -1
  191. package/dist/lib/structures/api/ApiResponse.js +0 -123
  192. package/dist/lib/structures/api/ApiResponse.js.map +0 -1
  193. package/dist/lib/structures/api/CookieStore.d.ts +0 -30
  194. package/dist/lib/structures/api/CookieStore.d.ts.map +0 -1
  195. package/dist/lib/structures/api/CookieStore.js +0 -132
  196. package/dist/lib/structures/api/CookieStore.js.map +0 -1
  197. package/dist/lib/structures/http/Auth.d.ts +0 -164
  198. package/dist/lib/structures/http/Auth.d.ts.map +0 -1
  199. package/dist/lib/structures/http/Auth.js +0 -164
  200. package/dist/lib/structures/http/Auth.js.map +0 -1
  201. package/dist/lib/structures/http/HttpCodes.d.ts +0 -378
  202. package/dist/lib/structures/http/HttpCodes.d.ts.map +0 -1
  203. package/dist/lib/structures/http/HttpCodes.js +0 -382
  204. package/dist/lib/structures/http/HttpCodes.js.map +0 -1
  205. package/dist/lib/structures/http/HttpMethods.d.ts +0 -4
  206. package/dist/lib/structures/http/HttpMethods.d.ts.map +0 -1
  207. package/dist/lib/structures/http/HttpMethods.js +0 -7
  208. package/dist/lib/structures/http/HttpMethods.js.map +0 -1
  209. package/dist/lib/structures/http/Server.d.ts +0 -180
  210. package/dist/lib/structures/http/Server.d.ts.map +0 -1
  211. package/dist/lib/structures/http/Server.js +0 -144
  212. package/dist/lib/structures/http/Server.js.map +0 -1
  213. package/dist/lib/utils/MimeTypes.d.ts +0 -19
  214. package/dist/lib/utils/MimeTypes.d.ts.map +0 -1
  215. package/dist/lib/utils/MimeTypes.js +0 -23
  216. package/dist/lib/utils/MimeTypes.js.map +0 -1
  217. package/dist/lib/utils/RouteData.d.ts +0 -34
  218. package/dist/lib/utils/RouteData.d.ts.map +0 -1
  219. package/dist/lib/utils/RouteData.js +0 -84
  220. package/dist/lib/utils/RouteData.js.map +0 -1
  221. package/dist/listeners/PluginRouteError.d.ts +0 -7
  222. package/dist/listeners/PluginRouteError.d.ts.map +0 -1
  223. package/dist/listeners/PluginRouteError.js +0 -20
  224. package/dist/listeners/PluginRouteError.js.map +0 -1
  225. package/dist/listeners/PluginServerMatch.d.ts +0 -9
  226. package/dist/listeners/PluginServerMatch.d.ts.map +0 -1
  227. package/dist/listeners/PluginServerMatch.js +0 -15
  228. package/dist/listeners/PluginServerMatch.js.map +0 -1
  229. package/dist/listeners/PluginServerMiddlewareError.d.ts +0 -7
  230. package/dist/listeners/PluginServerMiddlewareError.d.ts.map +0 -1
  231. package/dist/listeners/PluginServerMiddlewareError.js +0 -20
  232. package/dist/listeners/PluginServerMiddlewareError.js.map +0 -1
  233. package/dist/listeners/PluginServerMiddlewareSuccess.d.ts +0 -9
  234. package/dist/listeners/PluginServerMiddlewareSuccess.d.ts.map +0 -1
  235. package/dist/listeners/PluginServerMiddlewareSuccess.js +0 -20
  236. package/dist/listeners/PluginServerMiddlewareSuccess.js.map +0 -1
  237. package/dist/listeners/PluginServerNoMatch.d.ts +0 -8
  238. package/dist/listeners/PluginServerNoMatch.d.ts.map +0 -1
  239. package/dist/listeners/PluginServerNoMatch.js +0 -16
  240. package/dist/listeners/PluginServerNoMatch.js.map +0 -1
  241. package/dist/listeners/PluginServerRequest.d.ts +0 -8
  242. package/dist/listeners/PluginServerRequest.d.ts.map +0 -1
  243. package/dist/listeners/PluginServerRequest.js +0 -30
  244. package/dist/listeners/PluginServerRequest.js.map +0 -1
  245. package/dist/listeners/_load.d.ts +0 -2
  246. package/dist/listeners/_load.d.ts.map +0 -1
  247. package/dist/listeners/_load.js +0 -21
  248. package/dist/listeners/_load.js.map +0 -1
  249. package/dist/mediaParsers/_load.d.ts +0 -2
  250. package/dist/mediaParsers/_load.d.ts.map +0 -1
  251. package/dist/mediaParsers/_load.js +0 -15
  252. package/dist/mediaParsers/_load.js.map +0 -1
  253. package/dist/mediaParsers/applicationFormUrlEncoded.d.ts +0 -7
  254. package/dist/mediaParsers/applicationFormUrlEncoded.d.ts.map +0 -1
  255. package/dist/mediaParsers/applicationFormUrlEncoded.js +0 -17
  256. package/dist/mediaParsers/applicationFormUrlEncoded.js.map +0 -1
  257. package/dist/mediaParsers/applicationJson.d.ts +0 -7
  258. package/dist/mediaParsers/applicationJson.d.ts.map +0 -1
  259. package/dist/mediaParsers/applicationJson.js +0 -16
  260. package/dist/mediaParsers/applicationJson.js.map +0 -1
  261. package/dist/mediaParsers/textPlain.d.ts +0 -7
  262. package/dist/mediaParsers/textPlain.d.ts.map +0 -1
  263. package/dist/mediaParsers/textPlain.js +0 -16
  264. package/dist/mediaParsers/textPlain.js.map +0 -1
  265. package/dist/middlewares/_load.d.ts +0 -2
  266. package/dist/middlewares/_load.d.ts.map +0 -1
  267. package/dist/middlewares/_load.js +0 -17
  268. package/dist/middlewares/_load.js.map +0 -1
  269. package/dist/middlewares/auth.d.ts +0 -9
  270. package/dist/middlewares/auth.d.ts.map +0 -1
  271. package/dist/middlewares/auth.js +0 -32
  272. package/dist/middlewares/auth.js.map +0 -1
  273. package/dist/middlewares/body.d.ts +0 -10
  274. package/dist/middlewares/body.d.ts.map +0 -1
  275. package/dist/middlewares/body.js +0 -50
  276. package/dist/middlewares/body.js.map +0 -1
  277. package/dist/middlewares/cookies.d.ts +0 -10
  278. package/dist/middlewares/cookies.d.ts.map +0 -1
  279. package/dist/middlewares/cookies.js +0 -29
  280. package/dist/middlewares/cookies.js.map +0 -1
  281. package/dist/middlewares/headers.d.ts +0 -27
  282. package/dist/middlewares/headers.d.ts.map +0 -1
  283. package/dist/middlewares/headers.js +0 -59
  284. package/dist/middlewares/headers.js.map +0 -1
  285. package/dist/register.d.ts.map +0 -1
  286. package/dist/register.js +0 -42
  287. package/dist/register.js.map +0 -1
  288. package/dist/register.mjs +0 -4
  289. package/dist/routes/_load.d.ts +0 -2
  290. package/dist/routes/_load.d.ts.map +0 -1
  291. package/dist/routes/_load.js +0 -13
  292. package/dist/routes/_load.js.map +0 -1
  293. package/dist/routes/oauth/callback.d.ts +0 -28
  294. package/dist/routes/oauth/callback.d.ts.map +0 -1
  295. package/dist/routes/oauth/callback.js +0 -73
  296. package/dist/routes/oauth/callback.js.map +0 -1
  297. package/dist/routes/oauth/logout.d.ts +0 -8
  298. package/dist/routes/oauth/logout.d.ts.map +0 -1
  299. package/dist/routes/oauth/logout.js +0 -94
  300. package/dist/routes/oauth/logout.js.map +0 -1
@@ -1,123 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApiResponse = void 0;
4
- const http_1 = require("http");
5
- const MimeTypes_1 = require("../../utils/MimeTypes");
6
- const HttpCodes_1 = require("../http/HttpCodes");
7
- /**
8
- * @since 1.0.0
9
- */
10
- class ApiResponse extends http_1.ServerResponse {
11
- constructor() {
12
- super(...arguments);
13
- /**
14
- * @since 1.0.0
15
- */
16
- Object.defineProperty(this, "cookies", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: void 0
21
- });
22
- }
23
- /**
24
- * @since 1.0.0
25
- */
26
- ok(data = http_1.STATUS_CODES[HttpCodes_1.HttpCodes.OK]) {
27
- this.status(HttpCodes_1.HttpCodes.OK);
28
- return this.respond(data);
29
- }
30
- /**
31
- * @since 1.0.0
32
- */
33
- created(data = http_1.STATUS_CODES[HttpCodes_1.HttpCodes.Created]) {
34
- this.status(HttpCodes_1.HttpCodes.Created);
35
- return this.respond(data);
36
- }
37
- /**
38
- * @since 1.0.0
39
- */
40
- noContent(data = http_1.STATUS_CODES[HttpCodes_1.HttpCodes.NoContent]) {
41
- this.status(HttpCodes_1.HttpCodes.NoContent);
42
- return this.respond(data);
43
- }
44
- /**
45
- * @since 1.0.0
46
- */
47
- badRequest(data) {
48
- return this.error(HttpCodes_1.HttpCodes.BadRequest, data);
49
- }
50
- /**
51
- * @since 1.0.0
52
- */
53
- unauthorized(data) {
54
- return this.error(HttpCodes_1.HttpCodes.Unauthorized, data);
55
- }
56
- /**
57
- * @since 1.0.0
58
- */
59
- forbidden(data) {
60
- return this.error(HttpCodes_1.HttpCodes.Forbidden, data);
61
- }
62
- /**
63
- * @since 1.0.0
64
- */
65
- notFound(data) {
66
- return this.error(HttpCodes_1.HttpCodes.NotFound, data);
67
- }
68
- /**
69
- * @since 1.0.0
70
- */
71
- conflict(data) {
72
- return this.error(HttpCodes_1.HttpCodes.Conflict, data);
73
- }
74
- /**
75
- * @since 1.0.0
76
- */
77
- error(error, data) {
78
- if (typeof error === 'string') {
79
- return this.status(HttpCodes_1.HttpCodes.InternalServerError).json({ error });
80
- }
81
- return this.status(error).json({ error: data ?? http_1.STATUS_CODES[error] });
82
- }
83
- /**
84
- * @since 1.0.0
85
- */
86
- respond(data) {
87
- return typeof data === 'string' ? this.text(data) : this.json(data);
88
- }
89
- /**
90
- * @since 1.0.0
91
- */
92
- status(code) {
93
- this.statusCode = code;
94
- return this;
95
- }
96
- /**
97
- * @since 1.0.0
98
- */
99
- json(data) {
100
- this.setContentType(MimeTypes_1.MimeTypes.ApplicationJson).end(JSON.stringify(data));
101
- }
102
- /**
103
- * @since 1.0.0
104
- */
105
- text(data) {
106
- this.setContentType(MimeTypes_1.MimeTypes.TextPlain).end(data);
107
- }
108
- /**
109
- * @since 5.1.0
110
- */
111
- html(code, data) {
112
- this.setContentType(MimeTypes_1.MimeTypes.TextHtml).status(code).end(data);
113
- }
114
- /**
115
- * @since 1.0.0
116
- */
117
- setContentType(contentType) {
118
- this.setHeader('Content-Type', contentType);
119
- return this;
120
- }
121
- }
122
- exports.ApiResponse = ApiResponse;
123
- //# sourceMappingURL=ApiResponse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ApiResponse.js","sourceRoot":"","sources":["../../../../src/lib/structures/api/ApiResponse.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import type { ApiRequest } from './ApiRequest';
2
- import type { ApiResponse } from './ApiResponse';
3
- export declare class CookieStore extends Map<string, string> {
4
- protected request: ApiRequest;
5
- protected response: ApiResponse;
6
- private domain;
7
- private secure;
8
- constructor(request: ApiRequest, response: ApiResponse, secure: boolean, domainOverwrite?: string | null);
9
- add(name: string, value: string, options?: SecureCookieStoreSetOptions): void;
10
- remove(name: string): void;
11
- protected insert(name: string, entry: string): void;
12
- protected prepare(name: string, value: string, { expires, maxAge, domain, path, httpOnly }?: SecureCookieStoreSetOptions): string;
13
- /**
14
- * Parses a host using the {@linkplain https://github.com/remusao/tldts tldts} library to extract the domain.
15
- * This is used for the domain of the cookie
16
- * @param host The hot to parse
17
- * @returns Either the host in all lower case or the parsed domain, ready for use on cookies
18
- */
19
- private getHostDomain;
20
- private static readonly octetRegExp;
21
- private static encodeCookieOctet;
22
- }
23
- export interface SecureCookieStoreSetOptions {
24
- expires?: Date;
25
- maxAge?: number;
26
- domain?: string;
27
- path?: string;
28
- httpOnly?: boolean;
29
- }
30
- //# sourceMappingURL=CookieStore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CookieStore.d.ts","sourceRoot":"","sources":["../../../../src/lib/structures/api/CookieStore.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,qBAAa,WAAY,SAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IACnD,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC;IAC9B,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAU;gBAEL,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI;IA+BxG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,2BAA2B;IAItE,MAAM,CAAC,IAAI,EAAE,MAAM;IAI1B,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAe5C,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAE,2BAAgC;IAoC5H;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAkD;IAErF,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAOhC;AAED,MAAM,WAAW,2BAA2B;IAC3C,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB"}
@@ -1,132 +0,0 @@
1
- "use strict";
2
- // Copyright (c) 2018 Stanislav Woodger. All rights reserved. MIT license.
3
- // Source: https://github.com/woodger/cookie-httponly
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.CookieStore = void 0;
6
- const tldts_1 = require("tldts");
7
- class CookieStore extends Map {
8
- constructor(request, response, secure, domainOverwrite) {
9
- super();
10
- Object.defineProperty(this, "request", {
11
- enumerable: true,
12
- configurable: true,
13
- writable: true,
14
- value: void 0
15
- });
16
- Object.defineProperty(this, "response", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: void 0
21
- });
22
- Object.defineProperty(this, "domain", {
23
- enumerable: true,
24
- configurable: true,
25
- writable: true,
26
- value: void 0
27
- });
28
- Object.defineProperty(this, "secure", {
29
- enumerable: true,
30
- configurable: true,
31
- writable: true,
32
- value: void 0
33
- });
34
- this.request = request;
35
- this.response = response;
36
- // Read cookies
37
- const { cookie = '' } = request.headers;
38
- const pairs = cookie.split(';');
39
- for (const pair of pairs) {
40
- const index = pair.indexOf('=');
41
- if (index === -1)
42
- continue;
43
- const key = decodeURIComponent(pair.substr(0, index).trim());
44
- const value = decodeURIComponent(pair.substr(index + 1).trim());
45
- this.set(key, value);
46
- }
47
- const [splitHost] = this.request.headers.host?.split(':') ?? [''];
48
- this.domain = domainOverwrite ?? this.getHostDomain(splitHost);
49
- if (this.request.socket.remoteAddress === this.domain) {
50
- throw new Error('The connection must be established from the domain name (i.e., not an IP address)');
51
- }
52
- // RFC 6265 4.1.2.5. The Secure Attribute
53
- this.secure = secure;
54
- }
55
- add(name, value, options) {
56
- this.insert(name, this.prepare(name, value, options));
57
- }
58
- remove(name) {
59
- this.add(name, '', { expires: new Date(0) });
60
- }
61
- insert(name, entry) {
62
- let set = this.response.getHeader('Set-Cookie');
63
- if (set === undefined) {
64
- set = [];
65
- }
66
- else if (!Array.isArray(set)) {
67
- set = [set.toString()];
68
- }
69
- set = set.filter((i) => i.substr(0, i.indexOf('=')) !== name);
70
- set.push(entry);
71
- this.response.setHeader('Set-Cookie', set);
72
- }
73
- prepare(name, value, { expires, maxAge, domain, path, httpOnly } = {}) {
74
- const now = new Date();
75
- if (expires === undefined) {
76
- expires = now;
77
- }
78
- // RFC 6265 4.1.1. Syntax
79
- name = CookieStore.encodeCookieOctet(name);
80
- value = CookieStore.encodeCookieOctet(value);
81
- let entry = `${name}=${value}`;
82
- if (expires !== now) {
83
- entry += `; Expires=${expires.toUTCString()}`;
84
- }
85
- else if (maxAge) {
86
- entry += `; Max-Age=${maxAge}`;
87
- }
88
- // RFC 6265 5.1.3 Domain Matching
89
- domain = (domain ?? this.domain).toLowerCase();
90
- entry += `; Domain=${domain}`;
91
- entry += `; Path=${path ?? '/'}`;
92
- if (this.secure) {
93
- entry += `; Secure`;
94
- }
95
- if (httpOnly ?? true) {
96
- entry += `; HttpOnly`;
97
- }
98
- return entry;
99
- }
100
- /**
101
- * Parses a host using the {@linkplain https://github.com/remusao/tldts tldts} library to extract the domain.
102
- * This is used for the domain of the cookie
103
- * @param host The hot to parse
104
- * @returns Either the host in all lower case or the parsed domain, ready for use on cookies
105
- */
106
- getHostDomain(host) {
107
- // Transform the host to lower case
108
- const lowercaseHost = host.toLowerCase();
109
- // Try parsing the host with tldts
110
- const tldParsedInfo = (0, tldts_1.getDomain)(lowercaseHost);
111
- // If the domain is not defined then return the host in lowercase
112
- if (!tldParsedInfo)
113
- return lowercaseHost;
114
- // If the domain was found from parsing then prefix it with a . for a cookie that works with subdomains and return it
115
- return `.${tldParsedInfo}`;
116
- }
117
- static encodeCookieOctet(value) {
118
- if (CookieStore.octetRegExp.test(value)) {
119
- throw new Error(`Invalid character in value`);
120
- }
121
- return encodeURIComponent(value);
122
- }
123
- }
124
- exports.CookieStore = CookieStore;
125
- // RFC 6265 4.1.1. Syntax
126
- Object.defineProperty(CookieStore, "octetRegExp", {
127
- enumerable: true,
128
- configurable: true,
129
- writable: true,
130
- value: /[^\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]/g
131
- });
132
- //# sourceMappingURL=CookieStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CookieStore.js","sourceRoot":"","sources":["../../../../src/lib/structures/api/CookieStore.ts"],"names":[],"mappings":"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"}
@@ -1,164 +0,0 @@
1
- import { type Awaitable } from '@sapphire/utilities';
2
- import { OAuth2Scopes, type RESTGetAPICurrentUserConnectionsResult, type RESTGetAPICurrentUserGuildsResult, type RESTGetAPICurrentUserResult, type Snowflake } from 'discord.js';
3
- export declare class Auth {
4
- #private;
5
- /**
6
- * The client's application id, this can be retrieved in Discord Developer Portal at https://discord.com/developers/applications.
7
- * @since 1.0.0
8
- */
9
- id: Snowflake;
10
- /**
11
- * The name for the cookie, this will be used to identify a Secure HttpOnly cookie.
12
- * @since 1.0.0
13
- */
14
- cookie: string;
15
- /**
16
- * The scopes defined at https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes.
17
- * @since 1.0.0
18
- */
19
- scopes: readonly OAuth2Scopes[];
20
- /**
21
- * The redirect uri.
22
- * @since 1.0.0
23
- */
24
- redirect: string | undefined;
25
- /**
26
- * The transformers used for {@link Auth.fetchData}.
27
- * @since 1.4.0
28
- */
29
- transformers: LoginDataTransformer[];
30
- domainOverwrite: string | null;
31
- private constructor();
32
- /**
33
- * The client secret, this can be retrieved in Discord Developer Portal at https://discord.com/developers/applications.
34
- * @since 1.0.0
35
- */
36
- get secret(): string;
37
- /**
38
- * Encrypts an object with aes-256-cbc to use as a token.
39
- * @since 1.0.0
40
- * @param data An object to encrypt
41
- * @param secret The secret to encrypt the data with
42
- */
43
- encrypt(data: AuthData): string;
44
- /**
45
- * Decrypts an object with aes-256-cbc to use as a token.
46
- * @since 1.0.0
47
- * @param token An data to decrypt
48
- * @param secret The secret to decrypt the data with
49
- */
50
- decrypt(token: string): AuthData | null;
51
- /**
52
- * Retrieves the data for a specific user.
53
- * @since 1.4.0
54
- * @param token The access token from the user.
55
- */
56
- fetchData(token: string): Promise<LoginData>;
57
- private fetchInformation;
58
- static create(options?: ServerOptionsAuth): Auth | null;
59
- }
60
- /**
61
- * Defines the authentication data, this is to be encrypted and decrypted by the server.
62
- * @since 1.0.0
63
- */
64
- export interface AuthData {
65
- /**
66
- * The user ID.
67
- * @since 1.0.0
68
- */
69
- id: string;
70
- /**
71
- * The timestamp at which the token expires.
72
- * @since 1.0.0
73
- */
74
- expires: number;
75
- /**
76
- * The refresh token.
77
- * @since 1.0.0
78
- */
79
- refresh: string;
80
- /**
81
- * The access token.
82
- * @since 1.0.0
83
- */
84
- token: string;
85
- }
86
- /**
87
- * Defines the authentication options.
88
- * @since 1.0.0
89
- */
90
- export interface ServerOptionsAuth {
91
- /**
92
- * The client's application id, this can be retrieved in Discord Developer Portal at https://discord.com/developers/applications.
93
- * @since 1.0.0
94
- */
95
- id: string;
96
- /**
97
- * The name for the cookie, this will be used to identify a Secure HttpOnly cookie.
98
- * @since 1.0.0
99
- * @default 'SAPPHIRE_AUTH'
100
- */
101
- cookie?: string;
102
- /**
103
- * The client secret, this can be retrieved in Discord Developer Portal at https://discord.com/developers/applications.
104
- * @since 1.0.0
105
- */
106
- secret: string;
107
- /**
108
- * The scopes defined at https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes.
109
- * @since 1.0.0
110
- * @default [OAuth2Scopes.Identify]
111
- */
112
- scopes?: OAuth2Scopes[];
113
- /**
114
- * The redirect uri. This will default to {@link OAuth2BodyData.redirectUri} if missing.
115
- * @since 1.0.0
116
- */
117
- redirect?: string;
118
- /**
119
- * The login data transformers used for {@link Auth.fetchData}.
120
- * @since 1.4.0
121
- * @default []
122
- */
123
- transformers?: LoginDataTransformer[];
124
- /**
125
- * The domain that should be used for the cookie. This overwrites the automatic detection of the domain.
126
- * @remark if you want to support subdomains (`one.example.two` and `two.example.com`) then you need to use prefix your domain with a `.`, for example `.example.com`
127
- * @since 2.1.0
128
- * @default undefined
129
- */
130
- domainOverwrite?: string;
131
- }
132
- /**
133
- * The login data sent when fetching data from a user.
134
- * @since 1.4.0
135
- */
136
- export interface LoginData {
137
- /**
138
- * The user data, defined when the `'identify'` scope is defined.
139
- * @since 1.4.0
140
- */
141
- user?: RESTGetAPICurrentUserResult | null;
142
- /**
143
- * The guilds data, defined when the `'guilds'` scope is defined.
144
- * @since 1.4.0
145
- */
146
- guilds?: RESTGetAPICurrentUserGuildsResult | null;
147
- /**
148
- * The connections data, defined when the `'connections'` scope is defined.
149
- * @since 1.4.0
150
- */
151
- connections?: RESTGetAPICurrentUserConnectionsResult | null;
152
- }
153
- /**
154
- * A login data transformer.
155
- * @since 1.4.0
156
- */
157
- export interface LoginDataTransformer<T extends LoginData = LoginData> {
158
- /**
159
- * Transforms the object by mutating its properties or adding new ones.
160
- * @since 1.4.0
161
- */
162
- (data: LoginData): Awaitable<T>;
163
- }
164
- //# sourceMappingURL=Auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../../src/lib/structures/http/Auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EACN,YAAY,EAGZ,KAAK,sCAAsC,EAC3C,KAAK,iCAAiC,EACtC,KAAK,2BAA2B,EAChC,KAAK,SAAS,EACd,MAAM,YAAY,CAAC;AAGpB,qBAAa,IAAI;;IAChB;;;OAGG;IACI,EAAE,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACI,MAAM,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACI,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IAEvC;;;OAGG;IACI,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC;;;OAGG;IACI,YAAY,EAAE,oBAAoB,EAAE,CAAC;IAErC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAI7C,OAAO;IAUP;;;OAGG;IACH,IAAW,MAAM,WAEhB;IAED;;;;;OAKG;IACI,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAMtC;;;;;OAKG;IACI,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAa9C;;;;OAIG;IACU,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;YAuB3C,gBAAgB;WAYhB,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI;CAI9D;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACxB;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IACjC;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACtC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACzB;;;OAGG;IACH,IAAI,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAE1C;;;OAGG;IACH,MAAM,CAAC,EAAE,iCAAiC,GAAG,IAAI,CAAC;IAElD;;;OAGG;IACH,WAAW,CAAC,EAAE,sCAAsC,GAAG,IAAI,CAAC;CAC5D;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IACpE;;;OAGG;IACH,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;CAChC"}
@@ -1,164 +0,0 @@
1
- "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
- if (kind === "m") throw new TypeError("Private method is not writable");
4
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
- 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");
6
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
- };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- 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");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
- var _Auth_secret;
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.Auth = void 0;
16
- const utilities_1 = require("@sapphire/utilities");
17
- const crypto_1 = require("crypto");
18
- const discord_js_1 = require("discord.js");
19
- const undici_1 = require("undici");
20
- class Auth {
21
- constructor(options) {
22
- /**
23
- * The client's application id, this can be retrieved in Discord Developer Portal at https://discord.com/developers/applications.
24
- * @since 1.0.0
25
- */
26
- Object.defineProperty(this, "id", {
27
- enumerable: true,
28
- configurable: true,
29
- writable: true,
30
- value: void 0
31
- });
32
- /**
33
- * The name for the cookie, this will be used to identify a Secure HttpOnly cookie.
34
- * @since 1.0.0
35
- */
36
- Object.defineProperty(this, "cookie", {
37
- enumerable: true,
38
- configurable: true,
39
- writable: true,
40
- value: void 0
41
- });
42
- /**
43
- * The scopes defined at https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes.
44
- * @since 1.0.0
45
- */
46
- Object.defineProperty(this, "scopes", {
47
- enumerable: true,
48
- configurable: true,
49
- writable: true,
50
- value: void 0
51
- });
52
- /**
53
- * The redirect uri.
54
- * @since 1.0.0
55
- */
56
- Object.defineProperty(this, "redirect", {
57
- enumerable: true,
58
- configurable: true,
59
- writable: true,
60
- value: void 0
61
- });
62
- /**
63
- * The transformers used for {@link Auth.fetchData}.
64
- * @since 1.4.0
65
- */
66
- Object.defineProperty(this, "transformers", {
67
- enumerable: true,
68
- configurable: true,
69
- writable: true,
70
- value: void 0
71
- });
72
- Object.defineProperty(this, "domainOverwrite", {
73
- enumerable: true,
74
- configurable: true,
75
- writable: true,
76
- value: null
77
- });
78
- _Auth_secret.set(this, void 0);
79
- this.id = options.id;
80
- this.cookie = options.cookie ?? 'SAPPHIRE_AUTH';
81
- this.scopes = options.scopes ?? [discord_js_1.OAuth2Scopes.Identify];
82
- this.redirect = options.redirect;
83
- __classPrivateFieldSet(this, _Auth_secret, options.secret, "f");
84
- this.transformers = options.transformers ?? [];
85
- this.domainOverwrite = options.domainOverwrite ?? null;
86
- }
87
- /**
88
- * The client secret, this can be retrieved in Discord Developer Portal at https://discord.com/developers/applications.
89
- * @since 1.0.0
90
- */
91
- get secret() {
92
- return __classPrivateFieldGet(this, _Auth_secret, "f");
93
- }
94
- /**
95
- * Encrypts an object with aes-256-cbc to use as a token.
96
- * @since 1.0.0
97
- * @param data An object to encrypt
98
- * @param secret The secret to encrypt the data with
99
- */
100
- encrypt(data) {
101
- const iv = (0, crypto_1.randomBytes)(16);
102
- const cipher = (0, crypto_1.createCipheriv)('aes-256-cbc', __classPrivateFieldGet(this, _Auth_secret, "f"), iv);
103
- return `${cipher.update(JSON.stringify(data), 'utf8', 'base64') + cipher.final('base64')}.${iv.toString('base64')}`;
104
- }
105
- /**
106
- * Decrypts an object with aes-256-cbc to use as a token.
107
- * @since 1.0.0
108
- * @param token An data to decrypt
109
- * @param secret The secret to decrypt the data with
110
- */
111
- decrypt(token) {
112
- const [data, iv] = token.split('.');
113
- const decipher = (0, crypto_1.createDecipheriv)('aes-256-cbc', __classPrivateFieldGet(this, _Auth_secret, "f"), Buffer.from(iv, 'base64'));
114
- try {
115
- const parsed = JSON.parse(decipher.update(data, 'base64', 'utf8') + decipher.final('utf8'));
116
- // If the token expired, return null:
117
- return parsed.expires >= Date.now() ? parsed : null;
118
- }
119
- catch {
120
- return null;
121
- }
122
- }
123
- /**
124
- * Retrieves the data for a specific user.
125
- * @since 1.4.0
126
- * @param token The access token from the user.
127
- */
128
- async fetchData(token) {
129
- // Fetch the information:
130
- const [user, guilds, connections] = await Promise.all([
131
- this.fetchInformation(discord_js_1.OAuth2Scopes.Identify, token, `${discord_js_1.RouteBases.api}${discord_js_1.Routes.user()}`),
132
- this.fetchInformation(discord_js_1.OAuth2Scopes.Guilds, token, `${discord_js_1.RouteBases.api}${discord_js_1.Routes.userGuilds()}`),
133
- this.fetchInformation(discord_js_1.OAuth2Scopes.Connections, token, `${discord_js_1.RouteBases.api}${discord_js_1.Routes.userConnections()}`)
134
- ]);
135
- // Transform the information:
136
- let data = { user, guilds, connections };
137
- for (const transformer of this.transformers) {
138
- const result = transformer(data);
139
- if ((0, utilities_1.isThenable)(result))
140
- data = await result;
141
- else
142
- data = result;
143
- }
144
- return data;
145
- }
146
- async fetchInformation(scope, token, url) {
147
- if (!this.scopes.includes(scope))
148
- return undefined;
149
- const result = await (0, undici_1.fetch)(url, {
150
- headers: {
151
- authorization: `Bearer ${token}`
152
- }
153
- });
154
- return result.ok ? (await result.json()) : null;
155
- }
156
- static create(options) {
157
- if (!options?.secret || !options.id)
158
- return null;
159
- return new Auth(options);
160
- }
161
- }
162
- exports.Auth = Auth;
163
- _Auth_secret = new WeakMap();
164
- //# sourceMappingURL=Auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../../../src/lib/structures/http/Auth.ts"],"names":[],"mappings":"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"}