@sapphire/plugin-api 7.0.0-next.03b2a90 → 7.0.0-next.1054b61

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 (180) hide show
  1. package/README.md +0 -1
  2. package/dist/cjs/index.cjs +23 -9
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/cjs/index.d.cts +207 -114
  5. package/dist/cjs/lib/structures/Augmentations.d.cjs +1 -1
  6. package/dist/cjs/lib/structures/Augmentations.d.cjs.map +1 -1
  7. package/dist/cjs/lib/structures/MediaParser.cjs +1 -1
  8. package/dist/cjs/lib/structures/MediaParser.cjs.map +1 -1
  9. package/dist/cjs/lib/structures/MediaParserStore.cjs +1 -1
  10. package/dist/cjs/lib/structures/MediaParserStore.cjs.map +1 -1
  11. package/dist/cjs/lib/structures/Middleware.cjs +2 -2
  12. package/dist/cjs/lib/structures/Middleware.cjs.map +1 -1
  13. package/dist/cjs/lib/structures/MiddlewareStore.cjs +4 -4
  14. package/dist/cjs/lib/structures/MiddlewareStore.cjs.map +1 -1
  15. package/dist/cjs/lib/structures/Route.cjs +15 -12
  16. package/dist/cjs/lib/structures/Route.cjs.map +1 -1
  17. package/dist/cjs/lib/structures/RouteLoaderStrategy.cjs +3 -11
  18. package/dist/cjs/lib/structures/RouteLoaderStrategy.cjs.map +1 -1
  19. package/dist/cjs/lib/structures/RouteStore.cjs +4 -42
  20. package/dist/cjs/lib/structures/RouteStore.cjs.map +1 -1
  21. package/dist/cjs/lib/structures/api/ApiRequest.cjs +27 -1
  22. package/dist/cjs/lib/structures/api/ApiRequest.cjs.map +1 -1
  23. package/dist/cjs/lib/structures/api/ApiResponse.cjs +8 -2
  24. package/dist/cjs/lib/structures/api/ApiResponse.cjs.map +1 -1
  25. package/dist/cjs/lib/structures/api/CookieStore.cjs +1 -1
  26. package/dist/cjs/lib/structures/api/CookieStore.cjs.map +1 -1
  27. package/dist/cjs/lib/structures/http/Auth.cjs +2 -2
  28. package/dist/cjs/lib/structures/http/Auth.cjs.map +1 -1
  29. package/dist/cjs/lib/structures/http/HttpCodes.cjs +1 -1
  30. package/dist/cjs/lib/structures/http/HttpCodes.cjs.map +1 -1
  31. package/dist/cjs/lib/structures/http/HttpMethods.cjs +1 -1
  32. package/dist/cjs/lib/structures/http/HttpMethods.cjs.map +1 -1
  33. package/dist/cjs/lib/structures/http/Server.cjs +16 -15
  34. package/dist/cjs/lib/structures/http/Server.cjs.map +1 -1
  35. package/dist/cjs/lib/structures/router/RouterBranch.cjs +184 -0
  36. package/dist/cjs/lib/structures/router/RouterBranch.cjs.map +1 -0
  37. package/dist/cjs/lib/structures/router/RouterNode.cjs +67 -0
  38. package/dist/cjs/lib/structures/router/RouterNode.cjs.map +1 -0
  39. package/dist/cjs/lib/structures/router/RouterRoot.cjs +71 -0
  40. package/dist/cjs/lib/structures/router/RouterRoot.cjs.map +1 -0
  41. package/dist/cjs/lib/utils/MimeTypes.cjs +1 -1
  42. package/dist/cjs/lib/utils/MimeTypes.cjs.map +1 -1
  43. package/dist/cjs/listeners/PluginRouteError.cjs +3 -3
  44. package/dist/cjs/listeners/PluginRouteError.cjs.map +1 -1
  45. package/dist/cjs/listeners/PluginServerMiddlewareError.cjs +3 -3
  46. package/dist/cjs/listeners/PluginServerMiddlewareError.cjs.map +1 -1
  47. package/dist/cjs/listeners/PluginServerMiddlewareSuccess.cjs +5 -5
  48. package/dist/cjs/listeners/PluginServerMiddlewareSuccess.cjs.map +1 -1
  49. package/dist/cjs/listeners/PluginServerRequest.cjs +42 -8
  50. package/dist/cjs/listeners/PluginServerRequest.cjs.map +1 -1
  51. package/dist/cjs/listeners/{PluginServerMatch.cjs → PluginServerRouterBranchMethodNotAllowed.cjs} +5 -10
  52. package/dist/cjs/listeners/PluginServerRouterBranchMethodNotAllowed.cjs.map +1 -0
  53. package/dist/cjs/listeners/{PluginServerNoMatch.cjs → PluginServerRouterBranchNotFound.cjs} +3 -3
  54. package/dist/cjs/listeners/PluginServerRouterBranchNotFound.cjs.map +1 -0
  55. package/dist/cjs/listeners/PluginServerRouterFound.cjs +22 -0
  56. package/dist/cjs/listeners/PluginServerRouterFound.cjs.map +1 -0
  57. package/dist/cjs/listeners/_load.cjs +7 -5
  58. package/dist/cjs/listeners/_load.cjs.map +1 -1
  59. package/dist/cjs/mediaParsers/_load.cjs +1 -1
  60. package/dist/cjs/mediaParsers/_load.cjs.map +1 -1
  61. package/dist/cjs/mediaParsers/applicationFormUrlEncoded.cjs +1 -1
  62. package/dist/cjs/mediaParsers/applicationFormUrlEncoded.cjs.map +1 -1
  63. package/dist/cjs/mediaParsers/applicationJson.cjs +1 -1
  64. package/dist/cjs/mediaParsers/applicationJson.cjs.map +1 -1
  65. package/dist/cjs/mediaParsers/textPlain.cjs +1 -1
  66. package/dist/cjs/mediaParsers/textPlain.cjs.map +1 -1
  67. package/dist/cjs/middlewares/_load.cjs +1 -1
  68. package/dist/cjs/middlewares/_load.cjs.map +1 -1
  69. package/dist/cjs/middlewares/auth.cjs +2 -2
  70. package/dist/cjs/middlewares/auth.cjs.map +1 -1
  71. package/dist/cjs/middlewares/body.cjs +6 -5
  72. package/dist/cjs/middlewares/body.cjs.map +1 -1
  73. package/dist/cjs/middlewares/cookies.cjs +1 -1
  74. package/dist/cjs/middlewares/cookies.cjs.map +1 -1
  75. package/dist/cjs/middlewares/headers.cjs +10 -11
  76. package/dist/cjs/middlewares/headers.cjs.map +1 -1
  77. package/dist/cjs/register.cjs +1 -1
  78. package/dist/cjs/register.cjs.map +1 -1
  79. package/dist/cjs/routes/_load.cjs +1 -1
  80. package/dist/cjs/routes/_load.cjs.map +1 -1
  81. package/dist/cjs/routes/oauth/callback.post.cjs +2 -2
  82. package/dist/cjs/routes/oauth/callback.post.cjs.map +1 -1
  83. package/dist/cjs/routes/oauth/logout.post.cjs +1 -1
  84. package/dist/cjs/routes/oauth/logout.post.cjs.map +1 -1
  85. package/dist/esm/{chunk-JTFKMR4I.mjs → chunk-S573YWRP.mjs} +4 -3
  86. package/dist/esm/chunk-S573YWRP.mjs.map +1 -0
  87. package/dist/esm/index.d.mts +207 -114
  88. package/dist/esm/index.mjs +6 -4
  89. package/dist/esm/index.mjs.map +1 -1
  90. package/dist/esm/lib/structures/Augmentations.d.mjs +1 -1
  91. package/dist/esm/lib/structures/Augmentations.d.mjs.map +1 -1
  92. package/dist/esm/lib/structures/MediaParser.mjs +2 -2
  93. package/dist/esm/lib/structures/MediaParser.mjs.map +1 -1
  94. package/dist/esm/lib/structures/MediaParserStore.mjs +2 -2
  95. package/dist/esm/lib/structures/MediaParserStore.mjs.map +1 -1
  96. package/dist/esm/lib/structures/Middleware.mjs +2 -2
  97. package/dist/esm/lib/structures/Middleware.mjs.map +1 -1
  98. package/dist/esm/lib/structures/MiddlewareStore.mjs +4 -4
  99. package/dist/esm/lib/structures/MiddlewareStore.mjs.map +1 -1
  100. package/dist/esm/lib/structures/Route.mjs +16 -13
  101. package/dist/esm/lib/structures/Route.mjs.map +1 -1
  102. package/dist/esm/lib/structures/RouteLoaderStrategy.mjs +4 -12
  103. package/dist/esm/lib/structures/RouteLoaderStrategy.mjs.map +1 -1
  104. package/dist/esm/lib/structures/RouteStore.mjs +4 -42
  105. package/dist/esm/lib/structures/RouteStore.mjs.map +1 -1
  106. package/dist/esm/lib/structures/api/ApiRequest.mjs +28 -2
  107. package/dist/esm/lib/structures/api/ApiRequest.mjs.map +1 -1
  108. package/dist/esm/lib/structures/api/ApiResponse.mjs +8 -2
  109. package/dist/esm/lib/structures/api/ApiResponse.mjs.map +1 -1
  110. package/dist/esm/lib/structures/api/CookieStore.mjs +2 -2
  111. package/dist/esm/lib/structures/api/CookieStore.mjs.map +1 -1
  112. package/dist/esm/lib/structures/http/Auth.mjs +2 -2
  113. package/dist/esm/lib/structures/http/Auth.mjs.map +1 -1
  114. package/dist/esm/lib/structures/http/HttpCodes.mjs +2 -2
  115. package/dist/esm/lib/structures/http/HttpCodes.mjs.map +1 -1
  116. package/dist/esm/lib/structures/http/HttpMethods.mjs +2 -2
  117. package/dist/esm/lib/structures/http/HttpMethods.mjs.map +1 -1
  118. package/dist/esm/lib/structures/http/Server.mjs +17 -16
  119. package/dist/esm/lib/structures/http/Server.mjs.map +1 -1
  120. package/dist/esm/lib/structures/router/RouterBranch.mjs +179 -0
  121. package/dist/esm/lib/structures/router/RouterBranch.mjs.map +1 -0
  122. package/dist/esm/lib/structures/router/RouterNode.mjs +56 -0
  123. package/dist/esm/lib/structures/router/RouterNode.mjs.map +1 -0
  124. package/dist/esm/lib/structures/router/RouterRoot.mjs +68 -0
  125. package/dist/esm/lib/structures/router/RouterRoot.mjs.map +1 -0
  126. package/dist/esm/lib/utils/MimeTypes.mjs +2 -2
  127. package/dist/esm/lib/utils/MimeTypes.mjs.map +1 -1
  128. package/dist/esm/listeners/PluginRouteError.mjs +5 -5
  129. package/dist/esm/listeners/PluginRouteError.mjs.map +1 -1
  130. package/dist/esm/listeners/PluginServerMiddlewareError.mjs +5 -5
  131. package/dist/esm/listeners/PluginServerMiddlewareError.mjs.map +1 -1
  132. package/dist/esm/listeners/PluginServerMiddlewareSuccess.mjs +7 -7
  133. package/dist/esm/listeners/PluginServerMiddlewareSuccess.mjs.map +1 -1
  134. package/dist/esm/listeners/PluginServerRequest.mjs +38 -10
  135. package/dist/esm/listeners/PluginServerRequest.mjs.map +1 -1
  136. package/dist/esm/listeners/PluginServerRouterBranchMethodNotAllowed.mjs +18 -0
  137. package/dist/esm/listeners/PluginServerRouterBranchMethodNotAllowed.mjs.map +1 -0
  138. package/dist/esm/listeners/{PluginServerNoMatch.mjs → PluginServerRouterBranchNotFound.mjs} +5 -5
  139. package/dist/esm/listeners/PluginServerRouterBranchNotFound.mjs.map +1 -0
  140. package/dist/esm/listeners/PluginServerRouterFound.mjs +19 -0
  141. package/dist/esm/listeners/PluginServerRouterFound.mjs.map +1 -0
  142. package/dist/esm/listeners/_load.mjs +14 -12
  143. package/dist/esm/listeners/_load.mjs.map +1 -1
  144. package/dist/esm/mediaParsers/_load.mjs +2 -2
  145. package/dist/esm/mediaParsers/_load.mjs.map +1 -1
  146. package/dist/esm/mediaParsers/applicationFormUrlEncoded.mjs +2 -2
  147. package/dist/esm/mediaParsers/applicationFormUrlEncoded.mjs.map +1 -1
  148. package/dist/esm/mediaParsers/applicationJson.mjs +2 -2
  149. package/dist/esm/mediaParsers/applicationJson.mjs.map +1 -1
  150. package/dist/esm/mediaParsers/textPlain.mjs +2 -2
  151. package/dist/esm/mediaParsers/textPlain.mjs.map +1 -1
  152. package/dist/esm/middlewares/_load.mjs +2 -2
  153. package/dist/esm/middlewares/_load.mjs.map +1 -1
  154. package/dist/esm/middlewares/auth.mjs +2 -2
  155. package/dist/esm/middlewares/auth.mjs.map +1 -1
  156. package/dist/esm/middlewares/body.mjs +6 -5
  157. package/dist/esm/middlewares/body.mjs.map +1 -1
  158. package/dist/esm/middlewares/cookies.mjs +2 -2
  159. package/dist/esm/middlewares/cookies.mjs.map +1 -1
  160. package/dist/esm/middlewares/headers.mjs +11 -12
  161. package/dist/esm/middlewares/headers.mjs.map +1 -1
  162. package/dist/esm/register.mjs +2 -2
  163. package/dist/esm/register.mjs.map +1 -1
  164. package/dist/esm/routes/_load.mjs +2 -2
  165. package/dist/esm/routes/_load.mjs.map +1 -1
  166. package/dist/esm/routes/oauth/callback.post.mjs +2 -2
  167. package/dist/esm/routes/oauth/callback.post.mjs.map +1 -1
  168. package/dist/esm/routes/oauth/logout.post.mjs +2 -2
  169. package/dist/esm/routes/oauth/logout.post.mjs.map +1 -1
  170. package/package.json +8 -7
  171. package/dist/cjs/lib/utils/RouteData.cjs +0 -62
  172. package/dist/cjs/lib/utils/RouteData.cjs.map +0 -1
  173. package/dist/cjs/listeners/PluginServerMatch.cjs.map +0 -1
  174. package/dist/cjs/listeners/PluginServerNoMatch.cjs.map +0 -1
  175. package/dist/esm/chunk-JTFKMR4I.mjs.map +0 -1
  176. package/dist/esm/lib/utils/RouteData.mjs +0 -56
  177. package/dist/esm/lib/utils/RouteData.mjs.map +0 -1
  178. package/dist/esm/listeners/PluginServerMatch.mjs +0 -23
  179. package/dist/esm/listeners/PluginServerMatch.mjs.map +0 -1
  180. package/dist/esm/listeners/PluginServerNoMatch.mjs.map +0 -1
@@ -2,31 +2,65 @@
2
2
 
3
3
  var framework = require('@sapphire/framework');
4
4
  var Server_cjs = require('../lib/structures/http/Server.cjs');
5
+ var RouterRoot_cjs = require('../lib/structures/router/RouterRoot.cjs');
5
6
 
6
7
  var __defProp = Object.defineProperty;
8
+ var __typeError = (msg) => {
9
+ throw TypeError(msg);
10
+ };
7
11
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
13
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
14
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
15
+ var _PluginListener_instances, parseURL_fn;
8
16
  var _PluginListener = class _PluginListener extends framework.Listener {
9
17
  constructor(context) {
10
- super(context, { emitter: "server", event: Server_cjs.ServerEvents.Request });
18
+ super(context, { emitter: "server", event: Server_cjs.ServerEvent.Request });
19
+ __privateAdd(this, _PluginListener_instances);
11
20
  }
12
21
  async run(request, response) {
13
- const route = this.container.server.routes.match(request);
22
+ const { parts, querystring } = __privateMethod(this, _PluginListener_instances, parseURL_fn).call(this, request.url);
23
+ request.query = Object.fromEntries(new URLSearchParams(querystring).entries());
24
+ const branch = this.container.server.routes.router.find(parts);
25
+ const node = branch ? branch.node : null;
26
+ const route = node ? node.get(request.method ?? "GET") : null;
27
+ if (node !== null) {
28
+ request.params = node.extractParameters(parts);
29
+ }
30
+ request.routerNode = node;
31
+ request.route = route;
14
32
  try {
15
- await this.container.server.middlewares.run(request, response, route);
33
+ await this.container.server.middlewares.run(request, response);
16
34
  } catch (error) {
17
- this.container.server.emit(Server_cjs.ServerEvents.MiddlewareError, error, { request, response, route });
35
+ this.container.server.emit(Server_cjs.ServerEvent.MiddlewareError, error, request, response);
18
36
  return;
19
37
  }
20
- if (route === null) {
21
- this.container.server.emit(Server_cjs.ServerEvents.NoMatch, request, response);
38
+ if (branch === null) {
39
+ this.container.server.emit(Server_cjs.ServerEvent.RouterBranchNotFound, request, response);
40
+ } else if (route === null) {
41
+ this.container.server.emit(Server_cjs.ServerEvent.RouterBranchMethodNotAllowed, request, response, branch);
22
42
  } else {
23
- this.container.server.emit(Server_cjs.ServerEvents.Match, request, response, route);
43
+ this.container.server.emit(Server_cjs.ServerEvent.RouterFound, request, response);
24
44
  }
25
45
  }
26
46
  };
47
+ _PluginListener_instances = new WeakSet();
48
+ parseURL_fn = /* @__PURE__ */ __name(function(url = "") {
49
+ const index = url.indexOf("?");
50
+ let pathname;
51
+ let querystring;
52
+ if (index === -1) {
53
+ pathname = url;
54
+ querystring = "";
55
+ } else {
56
+ pathname = url.substring(0, index);
57
+ querystring = url.substring(index + 1);
58
+ }
59
+ return { parts: RouterRoot_cjs.RouterRoot.normalize(pathname), querystring };
60
+ }, "#parseURL");
27
61
  __name(_PluginListener, "PluginListener");
28
62
  var PluginListener = _PluginListener;
29
63
 
30
64
  exports.PluginListener = PluginListener;
31
- //# sourceMappingURL=out.js.map
65
+ //# sourceMappingURL=PluginServerRequest.cjs.map
32
66
  //# sourceMappingURL=PluginServerRequest.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/PluginServerRequest.ts"],"names":[],"mappings":";;;;AAAA,SAAS,gBAAgB;AAGzB,SAAS,oBAAoB;AAEtB,IAAM,kBAAN,MAAM,wBAAuB,SAAS;AAAA,EACrC,YAAY,SAAiC;AACnD,UAAM,SAAS,EAAE,SAAS,UAAU,OAAO,aAAa,QAAQ,CAAC;AAAA,EAClE;AAAA,EAEA,MAAsB,IAAI,SAAqB,UAAuB;AACrE,UAAM,QAAQ,KAAK,UAAU,OAAO,OAAO,MAAM,OAAO;AAExD,QAAI;AAEH,YAAM,KAAK,UAAU,OAAO,YAAY,IAAI,SAAS,UAAU,KAAK;AAAA,IACrE,SAAS,OAAO;AACf,WAAK,UAAU,OAAO,KAAK,aAAa,iBAAiB,OAAO,EAAE,SAAS,UAAU,MAAM,CAAC;AAG5F;AAAA,IACD;AAEA,QAAI,UAAU,MAAM;AACnB,WAAK,UAAU,OAAO,KAAK,aAAa,SAAS,SAAS,QAAQ;AAAA,IACnE,OAAO;AACN,WAAK,UAAU,OAAO,KAAK,aAAa,OAAO,SAAS,UAAU,KAAK;AAAA,IACxE;AAAA,EACD;AACD;AAxB6C;AAAtC,IAAM,iBAAN","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport type { ApiRequest } from '../lib/structures/api/ApiRequest';\nimport type { ApiResponse } from '../lib/structures/api/ApiResponse';\nimport { ServerEvents } from '../lib/structures/http/Server';\n\nexport class PluginListener extends Listener {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, { emitter: 'server', event: ServerEvents.Request });\n\t}\n\n\tpublic override async run(request: ApiRequest, response: ApiResponse) {\n\t\tconst route = this.container.server.routes.match(request);\n\n\t\ttry {\n\t\t\t// Middlewares need to be run regardless of the match, specially since browsers do an OPTIONS request first.\n\t\t\tawait this.container.server.middlewares.run(request, response, route);\n\t\t} catch (error) {\n\t\t\tthis.container.server.emit(ServerEvents.MiddlewareError, error, { request, response, route });\n\n\t\t\t// If a middleware errored, it might cause undefined behavior in the routes, so we will return early.\n\t\t\treturn;\n\t\t}\n\n\t\tif (route === null) {\n\t\t\tthis.container.server.emit(ServerEvents.NoMatch, request, response);\n\t\t} else {\n\t\t\tthis.container.server.emit(ServerEvents.Match, request, response, route);\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/PluginServerRequest.ts"],"names":["Listener","ServerEvent","RouterRoot"],"mappings":";;;;;;;;;;;;;;AAAA,IAAA,yBAAA,EAAA,WAAA,CAAA;AAOO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,kBAAS,CAAA;AAAA,EACrC,YAAY,OAAiC,EAAA;AACnD,IAAA,KAAA,CAAM,SAAS,EAAE,OAAA,EAAS,UAAU,KAAO,EAAAC,sBAAA,CAAY,SAAS,CAAA,CAAA;AAF3D,IAAA,YAAA,CAAA,IAAA,EAAA,yBAAA,CAAA,CAAA;AAAA,GAGN;AAAA,EAEA,MAAsB,GAAI,CAAA,OAAA,EAAqB,QAAuB,EAAA;AACrE,IAAA,MAAM,EAAE,KAAO,EAAA,WAAA,KAAgB,eAAK,CAAA,IAAA,EAAA,yBAAA,EAAA,WAAA,CAAA,CAAL,WAAe,OAAQ,CAAA,GAAA,CAAA,CAAA;AACtD,IAAQ,OAAA,CAAA,KAAA,GAAQ,OAAO,WAAY,CAAA,IAAI,gBAAgB,WAAW,CAAA,CAAE,SAAS,CAAA,CAAA;AAE7E,IAAA,MAAM,SAAS,IAAK,CAAA,SAAA,CAAU,OAAO,MAAO,CAAA,MAAA,CAAO,KAAK,KAAK,CAAA,CAAA;AAC7D,IAAM,MAAA,IAAA,GAAO,MAAS,GAAA,MAAA,CAAO,IAAO,GAAA,IAAA,CAAA;AACpC,IAAA,MAAM,QAAQ,IAAO,GAAA,IAAA,CAAK,IAAK,OAAQ,CAAA,MAAA,IAAU,KAAoB,CAAI,GAAA,IAAA,CAAA;AAEzE,IAAA,IAAI,SAAS,IAAM,EAAA;AAClB,MAAQ,OAAA,CAAA,MAAA,GAAS,IAAM,CAAA,iBAAA,CAAkB,KAAK,CAAA,CAAA;AAAA,KAC/C;AAEA,IAAA,OAAA,CAAQ,UAAa,GAAA,IAAA,CAAA;AACrB,IAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAEhB,IAAI,IAAA;AAEH,MAAA,MAAM,KAAK,SAAU,CAAA,MAAA,CAAO,WAAY,CAAA,GAAA,CAAI,SAAS,QAAQ,CAAA,CAAA;AAAA,aACrD,KAAO,EAAA;AACf,MAAA,IAAA,CAAK,UAAU,MAAO,CAAA,IAAA,CAAKA,uBAAY,eAAiB,EAAA,KAAA,EAAgB,SAAS,QAAQ,CAAA,CAAA;AAGzF,MAAA,OAAA;AAAA,KACD;AAEA,IAAA,IAAI,WAAW,IAAM,EAAA;AACpB,MAAA,IAAA,CAAK,UAAU,MAAO,CAAA,IAAA,CAAKA,sBAAY,CAAA,oBAAA,EAAsB,SAAS,QAAQ,CAAA,CAAA;AAAA,KAC/E,MAAA,IAAW,UAAU,IAAM,EAAA;AAC1B,MAAA,IAAA,CAAK,UAAU,MAAO,CAAA,IAAA,CAAKA,uBAAY,4BAA8B,EAAA,OAAA,EAAS,UAAU,MAAM,CAAA,CAAA;AAAA,KACxF,MAAA;AACN,MAAA,IAAA,CAAK,UAAU,MAAO,CAAA,IAAA,CAAKA,sBAAY,CAAA,WAAA,EAAa,SAAS,QAAQ,CAAA,CAAA;AAAA,KACtE;AAAA,GACD;AAiBD,CAAA,CAAA;AAtDO,yBAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AAuCN,WAAS,mBAAA,MAAA,CAAA,SAAC,MAAM,EAAI,EAAA;AACnB,EAAM,MAAA,KAAA,GAAQ,GAAI,CAAA,OAAA,CAAQ,GAAG,CAAA,CAAA;AAE7B,EAAI,IAAA,QAAA,CAAA;AACJ,EAAI,IAAA,WAAA,CAAA;AACJ,EAAA,IAAI,UAAU,CAAI,CAAA,EAAA;AACjB,IAAW,QAAA,GAAA,GAAA,CAAA;AACX,IAAc,WAAA,GAAA,EAAA,CAAA;AAAA,GACR,MAAA;AACN,IAAW,QAAA,GAAA,GAAA,CAAI,SAAU,CAAA,CAAA,EAAG,KAAK,CAAA,CAAA;AACjC,IAAc,WAAA,GAAA,GAAA,CAAI,SAAU,CAAA,KAAA,GAAQ,CAAC,CAAA,CAAA;AAAA,GACtC;AAEA,EAAA,OAAO,EAAE,KAAO,EAAAC,yBAAA,CAAW,SAAU,CAAA,QAAQ,GAAG,WAAY,EAAA,CAAA;AAC7D,CAdS,EAAA,WAAA,CAAA,CAAA;AAvCmC,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,CAAA;AAAtC,IAAM,cAAN,GAAA","file":"PluginServerRequest.cjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport type { ApiRequest } from '../lib/structures/api/ApiRequest';\nimport type { ApiResponse } from '../lib/structures/api/ApiResponse';\nimport type { MethodName } from '../lib/structures/http/HttpMethods';\nimport { ServerEvent } from '../lib/structures/http/Server';\nimport { RouterRoot } from '../lib/structures/router/RouterRoot';\n\nexport class PluginListener extends Listener {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, { emitter: 'server', event: ServerEvent.Request });\n\t}\n\n\tpublic override async run(request: ApiRequest, response: ApiResponse) {\n\t\tconst { parts, querystring } = this.#parseURL(request.url);\n\t\trequest.query = Object.fromEntries(new URLSearchParams(querystring).entries());\n\n\t\tconst branch = this.container.server.routes.router.find(parts);\n\t\tconst node = branch ? branch.node : null;\n\t\tconst route = node ? node.get((request.method ?? 'GET') as MethodName) : null;\n\n\t\tif (node !== null) {\n\t\t\trequest.params = node!.extractParameters(parts);\n\t\t}\n\n\t\trequest.routerNode = node;\n\t\trequest.route = route;\n\n\t\ttry {\n\t\t\t// Middlewares need to be run regardless of the match, specially since browsers do an OPTIONS request first.\n\t\t\tawait this.container.server.middlewares.run(request, response);\n\t\t} catch (error) {\n\t\t\tthis.container.server.emit(ServerEvent.MiddlewareError, error as Error, request, response);\n\n\t\t\t// If a middleware errored, it might cause undefined behavior in the routes, so we will return early.\n\t\t\treturn;\n\t\t}\n\n\t\tif (branch === null) {\n\t\t\tthis.container.server.emit(ServerEvent.RouterBranchNotFound, request, response);\n\t\t} else if (route === null) {\n\t\t\tthis.container.server.emit(ServerEvent.RouterBranchMethodNotAllowed, request, response, branch);\n\t\t} else {\n\t\t\tthis.container.server.emit(ServerEvent.RouterFound, request, response);\n\t\t}\n\t}\n\n\t#parseURL(url = '') {\n\t\tconst index = url.indexOf('?');\n\n\t\tlet pathname: string;\n\t\tlet querystring: string;\n\t\tif (index === -1) {\n\t\t\tpathname = url;\n\t\t\tquerystring = '';\n\t\t} else {\n\t\t\tpathname = url.substring(0, index);\n\t\t\tquerystring = url.substring(index + 1);\n\t\t}\n\n\t\treturn { parts: RouterRoot.normalize(pathname), querystring };\n\t}\n}\n"]}
@@ -7,20 +7,15 @@ var __defProp = Object.defineProperty;
7
7
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
8
  var _PluginListener = class _PluginListener extends framework.Listener {
9
9
  constructor(context) {
10
- super(context, { emitter: "server", event: Server_cjs.ServerEvents.Match });
10
+ super(context, { emitter: "server", event: Server_cjs.ServerEvent.RouterBranchMethodNotAllowed });
11
11
  }
12
- run(request, response, route) {
13
- this.container.server.emit(
14
- response.writableEnded ? Server_cjs.ServerEvents.MiddlewareFailure : Server_cjs.ServerEvents.MiddlewareSuccess,
15
- request,
16
- response,
17
- route
18
- );
12
+ run(_, response) {
13
+ if (!response.writableEnded) response.methodNotAllowed();
19
14
  }
20
15
  };
21
16
  __name(_PluginListener, "PluginListener");
22
17
  var PluginListener = _PluginListener;
23
18
 
24
19
  exports.PluginListener = PluginListener;
25
- //# sourceMappingURL=out.js.map
26
- //# sourceMappingURL=PluginServerMatch.cjs.map
20
+ //# sourceMappingURL=PluginServerRouterBranchMethodNotAllowed.cjs.map
21
+ //# sourceMappingURL=PluginServerRouterBranchMethodNotAllowed.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/listeners/PluginServerRouterBranchMethodNotAllowed.ts"],"names":["Listener","ServerEvent"],"mappings":";;;;;;;AAKO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,kBAAS,CAAA;AAAA,EACrC,YAAY,OAAiC,EAAA;AACnD,IAAA,KAAA,CAAM,SAAS,EAAE,OAAA,EAAS,UAAU,KAAO,EAAAC,sBAAA,CAAY,8BAA8B,CAAA,CAAA;AAAA,GACtF;AAAA,EAEgB,GAAA,CAAI,GAAe,QAAuB,EAAA;AACzD,IAAA,IAAI,CAAC,QAAA,CAAS,aAAe,EAAA,QAAA,CAAS,gBAAiB,EAAA,CAAA;AAAA,GACxD;AACD,CAAA,CAAA;AAR6C,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,CAAA;AAAtC,IAAM,cAAN,GAAA","file":"PluginServerRouterBranchMethodNotAllowed.cjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport type { ApiRequest } from '../lib/structures/api/ApiRequest';\nimport type { ApiResponse } from '../lib/structures/api/ApiResponse';\nimport { ServerEvent } from '../lib/structures/http/Server';\n\nexport class PluginListener extends Listener {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, { emitter: 'server', event: ServerEvent.RouterBranchMethodNotAllowed });\n\t}\n\n\tpublic override run(_: ApiRequest, response: ApiResponse) {\n\t\tif (!response.writableEnded) response.methodNotAllowed();\n\t}\n}\n"]}
@@ -7,7 +7,7 @@ var __defProp = Object.defineProperty;
7
7
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
8
  var _PluginListener = class _PluginListener extends framework.Listener {
9
9
  constructor(context) {
10
- super(context, { emitter: "server", event: Server_cjs.ServerEvents.NoMatch });
10
+ super(context, { emitter: "server", event: Server_cjs.ServerEvent.RouterBranchNotFound });
11
11
  }
12
12
  run(_, response) {
13
13
  if (!response.writableEnded) response.notFound();
@@ -17,5 +17,5 @@ __name(_PluginListener, "PluginListener");
17
17
  var PluginListener = _PluginListener;
18
18
 
19
19
  exports.PluginListener = PluginListener;
20
- //# sourceMappingURL=out.js.map
21
- //# sourceMappingURL=PluginServerNoMatch.cjs.map
20
+ //# sourceMappingURL=PluginServerRouterBranchNotFound.cjs.map
21
+ //# sourceMappingURL=PluginServerRouterBranchNotFound.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/listeners/PluginServerRouterBranchNotFound.ts"],"names":["Listener","ServerEvent"],"mappings":";;;;;;;AAKO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,kBAAS,CAAA;AAAA,EACrC,YAAY,OAAiC,EAAA;AACnD,IAAA,KAAA,CAAM,SAAS,EAAE,OAAA,EAAS,UAAU,KAAO,EAAAC,sBAAA,CAAY,sBAAsB,CAAA,CAAA;AAAA,GAC9E;AAAA,EAEgB,GAAA,CAAI,GAAe,QAAuB,EAAA;AACzD,IAAA,IAAI,CAAC,QAAA,CAAS,aAAe,EAAA,QAAA,CAAS,QAAS,EAAA,CAAA;AAAA,GAChD;AACD,CAAA,CAAA;AAR6C,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,CAAA;AAAtC,IAAM,cAAN,GAAA","file":"PluginServerRouterBranchNotFound.cjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport type { ApiRequest } from '../lib/structures/api/ApiRequest';\nimport type { ApiResponse } from '../lib/structures/api/ApiResponse';\nimport { ServerEvent } from '../lib/structures/http/Server';\n\nexport class PluginListener extends Listener {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, { emitter: 'server', event: ServerEvent.RouterBranchNotFound });\n\t}\n\n\tpublic override run(_: ApiRequest, response: ApiResponse) {\n\t\tif (!response.writableEnded) response.notFound();\n\t}\n}\n"]}
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var framework = require('@sapphire/framework');
4
+ var Server_cjs = require('../lib/structures/http/Server.cjs');
5
+
6
+ var __defProp = Object.defineProperty;
7
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
+ var _PluginListener = class _PluginListener extends framework.Listener {
9
+ constructor(context) {
10
+ super(context, { emitter: "server", event: Server_cjs.ServerEvent.RouterFound });
11
+ }
12
+ run(request, response) {
13
+ const event = response.writableEnded ? Server_cjs.ServerEvent.MiddlewareFailure : Server_cjs.ServerEvent.MiddlewareSuccess;
14
+ this.container.server.emit(event, request, response);
15
+ }
16
+ };
17
+ __name(_PluginListener, "PluginListener");
18
+ var PluginListener = _PluginListener;
19
+
20
+ exports.PluginListener = PluginListener;
21
+ //# sourceMappingURL=PluginServerRouterFound.cjs.map
22
+ //# sourceMappingURL=PluginServerRouterFound.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/listeners/PluginServerRouterFound.ts"],"names":["Listener","ServerEvent"],"mappings":";;;;;;;AAKO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,kBAAS,CAAA;AAAA,EACrC,YAAY,OAAiC,EAAA;AACnD,IAAA,KAAA,CAAM,SAAS,EAAE,OAAA,EAAS,UAAU,KAAO,EAAAC,sBAAA,CAAY,aAAa,CAAA,CAAA;AAAA,GACrE;AAAA,EAEgB,GAAA,CAAI,SAAqB,QAAuB,EAAA;AAC/D,IAAA,MAAM,KAAQ,GAAA,QAAA,CAAS,aAAgB,GAAAA,sBAAA,CAAY,oBAAoBA,sBAAY,CAAA,iBAAA,CAAA;AACnF,IAAA,IAAA,CAAK,SAAU,CAAA,MAAA,CAAO,IAAK,CAAA,KAAA,EAAO,SAAS,QAAQ,CAAA,CAAA;AAAA,GACpD;AACD,CAAA,CAAA;AAT6C,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,CAAA;AAAtC,IAAM,cAAN,GAAA","file":"PluginServerRouterFound.cjs","sourcesContent":["import { Listener } from '@sapphire/framework';\nimport type { ApiRequest } from '../lib/structures/api/ApiRequest';\nimport type { ApiResponse } from '../lib/structures/api/ApiResponse';\nimport { ServerEvent } from '../lib/structures/http/Server';\n\nexport class PluginListener extends Listener {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, { emitter: 'server', event: ServerEvent.RouterFound });\n\t}\n\n\tpublic override run(request: ApiRequest, response: ApiResponse) {\n\t\tconst event = response.writableEnded ? ServerEvent.MiddlewareFailure : ServerEvent.MiddlewareSuccess;\n\t\tthis.container.server.emit(event, request, response);\n\t}\n}\n"]}
@@ -2,25 +2,27 @@
2
2
 
3
3
  var pieces = require('@sapphire/pieces');
4
4
  var PluginRouteError_cjs = require('./PluginRouteError.cjs');
5
- var PluginServerMatch_cjs = require('./PluginServerMatch.cjs');
6
5
  var PluginServerMiddlewareError_cjs = require('./PluginServerMiddlewareError.cjs');
7
6
  var PluginServerMiddlewareSuccess_cjs = require('./PluginServerMiddlewareSuccess.cjs');
8
- var PluginServerNoMatch_cjs = require('./PluginServerNoMatch.cjs');
9
7
  var PluginServerRequest_cjs = require('./PluginServerRequest.cjs');
8
+ var PluginServerRouterBranchMethodNotAllowed_cjs = require('./PluginServerRouterBranchMethodNotAllowed.cjs');
9
+ var PluginServerRouterBranchNotFound_cjs = require('./PluginServerRouterBranchNotFound.cjs');
10
+ var PluginServerRouterFound_cjs = require('./PluginServerRouterFound.cjs');
10
11
 
11
12
  var __defProp = Object.defineProperty;
12
13
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
14
  function loadListeners() {
14
15
  const store = "listeners";
15
16
  void pieces.container.stores.loadPiece({ name: "PluginRouteError", piece: PluginRouteError_cjs.PluginListener, store });
16
- void pieces.container.stores.loadPiece({ name: "PluginServerMatch", piece: PluginServerMatch_cjs.PluginListener, store });
17
17
  void pieces.container.stores.loadPiece({ name: "PluginServerMiddlewareError", piece: PluginServerMiddlewareError_cjs.PluginListener, store });
18
18
  void pieces.container.stores.loadPiece({ name: "PluginServerMiddlewareSuccess", piece: PluginServerMiddlewareSuccess_cjs.PluginListener, store });
19
- void pieces.container.stores.loadPiece({ name: "PluginServerNoMatch", piece: PluginServerNoMatch_cjs.PluginListener, store });
20
19
  void pieces.container.stores.loadPiece({ name: "PluginServerRequest", piece: PluginServerRequest_cjs.PluginListener, store });
20
+ void pieces.container.stores.loadPiece({ name: "PluginServerRouterBranchMethodNotAllowed", piece: PluginServerRouterBranchMethodNotAllowed_cjs.PluginListener, store });
21
+ void pieces.container.stores.loadPiece({ name: "PluginServerRouterBranchNotFound", piece: PluginServerRouterBranchNotFound_cjs.PluginListener, store });
22
+ void pieces.container.stores.loadPiece({ name: "PluginServerRouterFound", piece: PluginServerRouterFound_cjs.PluginListener, store });
21
23
  }
22
24
  __name(loadListeners, "loadListeners");
23
25
 
24
26
  exports.loadListeners = loadListeners;
25
- //# sourceMappingURL=out.js.map
27
+ //# sourceMappingURL=_load.cjs.map
26
28
  //# sourceMappingURL=_load.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/_load.ts"],"names":[],"mappings":";;;;AAAA,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB,wBAAwB;AACnD,SAAS,kBAAkB,yBAAyB;AACpD,SAAS,kBAAkB,mCAAmC;AAC9D,SAAS,kBAAkB,qCAAqC;AAChE,SAAS,kBAAkB,2BAA2B;AACtD,SAAS,kBAAkB,2BAA2B;AAE/C,SAAS,gBAAgB;AAC/B,QAAM,QAAQ;AACd,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,oBAAoB,OAAO,kBAAkB,MAAM,CAAC;AAC5F,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,qBAAqB,OAAO,mBAAmB,MAAM,CAAC;AAC9F,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,+BAA+B,OAAO,6BAA6B,MAAM,CAAC;AAClH,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,iCAAiC,OAAO,+BAA+B,MAAM,CAAC;AACtH,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,uBAAuB,OAAO,qBAAqB,MAAM,CAAC;AAClG,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,uBAAuB,OAAO,qBAAqB,MAAM,CAAC;AACnG;AARgB","sourcesContent":["import { container } from '@sapphire/pieces';\nimport { PluginListener as PluginRouteError } from './PluginRouteError';\nimport { PluginListener as PluginServerMatch } from './PluginServerMatch';\nimport { PluginListener as PluginServerMiddlewareError } from './PluginServerMiddlewareError';\nimport { PluginListener as PluginServerMiddlewareSuccess } from './PluginServerMiddlewareSuccess';\nimport { PluginListener as PluginServerNoMatch } from './PluginServerNoMatch';\nimport { PluginListener as PluginServerRequest } from './PluginServerRequest';\n\nexport function loadListeners() {\n\tconst store = 'listeners' as const;\n\tvoid container.stores.loadPiece({ name: 'PluginRouteError', piece: PluginRouteError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginServerMatch', piece: PluginServerMatch, store });\n\tvoid container.stores.loadPiece({ name: 'PluginServerMiddlewareError', piece: PluginServerMiddlewareError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginServerMiddlewareSuccess', piece: PluginServerMiddlewareSuccess, store });\n\tvoid container.stores.loadPiece({ name: 'PluginServerNoMatch', piece: PluginServerNoMatch, store });\n\tvoid container.stores.loadPiece({ name: 'PluginServerRequest', piece: PluginServerRequest, store });\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/_load.ts"],"names":["container","PluginRouteError","PluginServerMiddlewareError","PluginServerMiddlewareSuccess","PluginServerRequest","PluginServerRouterBranchMethodNotAllowed","PluginServerRouterBranchNotFound","PluginServerRouterFound"],"mappings":";;;;;;;;;;;;;AASO,SAAS,aAAgB,GAAA;AAC/B,EAAA,MAAM,KAAQ,GAAA,WAAA,CAAA;AACd,EAAK,KAAAA,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,kBAAoB,EAAA,KAAA,EAAOC,mCAAkB,EAAA,KAAA,EAAO,CAAA,CAAA;AAC5F,EAAK,KAAAD,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,6BAA+B,EAAA,KAAA,EAAOE,8CAA6B,EAAA,KAAA,EAAO,CAAA,CAAA;AAClH,EAAK,KAAAF,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,+BAAiC,EAAA,KAAA,EAAOG,gDAA+B,EAAA,KAAA,EAAO,CAAA,CAAA;AACtH,EAAK,KAAAH,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,qBAAuB,EAAA,KAAA,EAAOI,sCAAqB,EAAA,KAAA,EAAO,CAAA,CAAA;AAClG,EAAK,KAAAJ,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,0CAA4C,EAAA,KAAA,EAAOK,2DAA0C,EAAA,KAAA,EAAO,CAAA,CAAA;AAC5I,EAAK,KAAAL,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,kCAAoC,EAAA,KAAA,EAAOM,mDAAkC,EAAA,KAAA,EAAO,CAAA,CAAA;AAC5H,EAAK,KAAAN,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,yBAA2B,EAAA,KAAA,EAAOO,0CAAyB,EAAA,KAAA,EAAO,CAAA,CAAA;AAC3G,CAAA;AATgB,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA","file":"_load.cjs","sourcesContent":["import { container } from '@sapphire/pieces';\nimport { PluginListener as PluginRouteError } from './PluginRouteError';\nimport { PluginListener as PluginServerMiddlewareError } from './PluginServerMiddlewareError';\nimport { PluginListener as PluginServerMiddlewareSuccess } from './PluginServerMiddlewareSuccess';\nimport { PluginListener as PluginServerRequest } from './PluginServerRequest';\nimport { PluginListener as PluginServerRouterBranchMethodNotAllowed } from './PluginServerRouterBranchMethodNotAllowed';\nimport { PluginListener as PluginServerRouterBranchNotFound } from './PluginServerRouterBranchNotFound';\nimport { PluginListener as PluginServerRouterFound } from './PluginServerRouterFound';\n\nexport function loadListeners() {\n\tconst store = 'listeners' as const;\n\tvoid container.stores.loadPiece({ name: 'PluginRouteError', piece: PluginRouteError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginServerMiddlewareError', piece: PluginServerMiddlewareError, store });\n\tvoid container.stores.loadPiece({ name: 'PluginServerMiddlewareSuccess', piece: PluginServerMiddlewareSuccess, store });\n\tvoid container.stores.loadPiece({ name: 'PluginServerRequest', piece: PluginServerRequest, store });\n\tvoid container.stores.loadPiece({ name: 'PluginServerRouterBranchMethodNotAllowed', piece: PluginServerRouterBranchMethodNotAllowed, store });\n\tvoid container.stores.loadPiece({ name: 'PluginServerRouterBranchNotFound', piece: PluginServerRouterBranchNotFound, store });\n\tvoid container.stores.loadPiece({ name: 'PluginServerRouterFound', piece: PluginServerRouterFound, store });\n}\n"]}
@@ -16,5 +16,5 @@ function loadMediaParsers() {
16
16
  __name(loadMediaParsers, "loadMediaParsers");
17
17
 
18
18
  exports.loadMediaParsers = loadMediaParsers;
19
- //# sourceMappingURL=out.js.map
19
+ //# sourceMappingURL=_load.cjs.map
20
20
  //# sourceMappingURL=_load.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mediaParsers/_load.ts"],"names":[],"mappings":";;;;AAAA,SAAS,iBAAiB;AAC1B,SAAS,qBAAqB,uCAAuC;AACrE,SAAS,qBAAqB,6BAA6B;AAC3D,SAAS,qBAAqB,uBAAuB;AAE9C,SAAS,mBAAmB;AAClC,QAAM,QAAQ;AACd,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,6BAA6B,OAAO,iCAAiC,MAAM,CAAC;AACpH,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,mBAAmB,OAAO,uBAAuB,MAAM,CAAC;AAChG,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,aAAa,OAAO,iBAAiB,MAAM,CAAC;AACrF;AALgB","sourcesContent":["import { container } from '@sapphire/pieces';\nimport { PluginMediaParser as PluginApplicationFormUrlEncoded } from './applicationFormUrlEncoded';\nimport { PluginMediaParser as PluginApplicationJson } from './applicationJson';\nimport { PluginMediaParser as PluginTextPlain } from './textPlain';\n\nexport function loadMediaParsers() {\n\tconst store = 'mediaParsers' as const;\n\tvoid container.stores.loadPiece({ name: 'applicationFormUrlEncoded', piece: PluginApplicationFormUrlEncoded, store });\n\tvoid container.stores.loadPiece({ name: 'applicationJson', piece: PluginApplicationJson, store });\n\tvoid container.stores.loadPiece({ name: 'textPlain', piece: PluginTextPlain, store });\n}\n"]}
1
+ {"version":3,"sources":["../../../src/mediaParsers/_load.ts"],"names":["container","PluginApplicationFormUrlEncoded","PluginApplicationJson","PluginTextPlain"],"mappings":";;;;;;;;;AAKO,SAAS,gBAAmB,GAAA;AAClC,EAAA,MAAM,KAAQ,GAAA,cAAA,CAAA;AACd,EAAK,KAAAA,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,2BAA6B,EAAA,KAAA,EAAOC,+CAAiC,EAAA,KAAA,EAAO,CAAA,CAAA;AACpH,EAAK,KAAAD,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,iBAAmB,EAAA,KAAA,EAAOE,qCAAuB,EAAA,KAAA,EAAO,CAAA,CAAA;AAChG,EAAK,KAAAF,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,WAAa,EAAA,KAAA,EAAOG,+BAAiB,EAAA,KAAA,EAAO,CAAA,CAAA;AACrF,CAAA;AALgB,MAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA","file":"_load.cjs","sourcesContent":["import { container } from '@sapphire/pieces';\nimport { PluginMediaParser as PluginApplicationFormUrlEncoded } from './applicationFormUrlEncoded';\nimport { PluginMediaParser as PluginApplicationJson } from './applicationJson';\nimport { PluginMediaParser as PluginTextPlain } from './textPlain';\n\nexport function loadMediaParsers() {\n\tconst store = 'mediaParsers' as const;\n\tvoid container.stores.loadPiece({ name: 'applicationFormUrlEncoded', piece: PluginApplicationFormUrlEncoded, store });\n\tvoid container.stores.loadPiece({ name: 'applicationJson', piece: PluginApplicationJson, store });\n\tvoid container.stores.loadPiece({ name: 'textPlain', piece: PluginTextPlain, store });\n}\n"]}
@@ -19,5 +19,5 @@ __name(_PluginMediaParser, "PluginMediaParser");
19
19
  var PluginMediaParser = _PluginMediaParser;
20
20
 
21
21
  exports.PluginMediaParser = PluginMediaParser;
22
- //# sourceMappingURL=out.js.map
22
+ //# sourceMappingURL=applicationFormUrlEncoded.cjs.map
23
23
  //# sourceMappingURL=applicationFormUrlEncoded.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mediaParsers/applicationFormUrlEncoded.ts"],"names":[],"mappings":";;;;AAAA,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAE5B,SAAS,iBAAiB;AAEnB,IAAM,qBAAN,MAAM,2BAA0B,YAAY;AAAA,EAC3C,YAAY,SAAoC;AACtD,UAAM,SAAS,EAAE,MAAM,UAAU,0BAA0B,CAAC;AAAA,EAC7D;AAAA,EAEA,MAAsB,IAAI,SAAuC;AAChE,UAAM,OAAO,MAAM,KAAK,WAAW,OAAO;AAC1C,WAAO,KAAK,WAAW,IAAI,OAAO,OAAO,YAAY,IAAI,gBAAgB,IAAI,EAAE,QAAQ,CAAC;AAAA,EACzF;AACD;AATmD;AAA5C,IAAM,oBAAN","sourcesContent":["import { URLSearchParams } from 'url';\nimport { MediaParser } from '../lib/structures/MediaParser';\nimport type { ApiRequest } from '../lib/structures/api/ApiRequest';\nimport { MimeTypes } from '../lib/utils/MimeTypes';\n\nexport class PluginMediaParser extends MediaParser {\n\tpublic constructor(context: MediaParser.LoaderContext) {\n\t\tsuper(context, { name: MimeTypes.ApplicationFormUrlEncoded });\n\t}\n\n\tpublic override async run(request: ApiRequest): Promise<unknown> {\n\t\tconst body = await this.readString(request);\n\t\treturn body.length === 0 ? null : Object.fromEntries(new URLSearchParams(body).entries());\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/mediaParsers/applicationFormUrlEncoded.ts"],"names":["MediaParser","MimeTypes","URLSearchParams"],"mappings":";;;;;;;;AAKO,IAAM,kBAAA,GAAN,MAAM,kBAAA,SAA0BA,2BAAY,CAAA;AAAA,EAC3C,YAAY,OAAoC,EAAA;AACtD,IAAA,KAAA,CAAM,OAAS,EAAA,EAAE,IAAM,EAAAC,uBAAA,CAAU,2BAA2B,CAAA,CAAA;AAAA,GAC7D;AAAA,EAEA,MAAsB,IAAI,OAAuC,EAAA;AAChE,IAAA,MAAM,IAAO,GAAA,MAAM,IAAK,CAAA,UAAA,CAAW,OAAO,CAAA,CAAA;AAC1C,IAAO,OAAA,IAAA,CAAK,MAAW,KAAA,CAAA,GAAI,IAAO,GAAA,MAAA,CAAO,WAAY,CAAA,IAAIC,mBAAgB,CAAA,IAAI,CAAE,CAAA,OAAA,EAAS,CAAA,CAAA;AAAA,GACzF;AACD,CAAA,CAAA;AATmD,MAAA,CAAA,kBAAA,EAAA,mBAAA,CAAA,CAAA;AAA5C,IAAM,iBAAN,GAAA","file":"applicationFormUrlEncoded.cjs","sourcesContent":["import { URLSearchParams } from 'url';\nimport { MediaParser } from '../lib/structures/MediaParser';\nimport type { ApiRequest } from '../lib/structures/api/ApiRequest';\nimport { MimeTypes } from '../lib/utils/MimeTypes';\n\nexport class PluginMediaParser extends MediaParser {\n\tpublic constructor(context: MediaParser.LoaderContext) {\n\t\tsuper(context, { name: MimeTypes.ApplicationFormUrlEncoded });\n\t}\n\n\tpublic override async run(request: ApiRequest): Promise<unknown> {\n\t\tconst body = await this.readString(request);\n\t\treturn body.length === 0 ? null : Object.fromEntries(new URLSearchParams(body).entries());\n\t}\n}\n"]}
@@ -18,5 +18,5 @@ __name(_PluginMediaParser, "PluginMediaParser");
18
18
  var PluginMediaParser = _PluginMediaParser;
19
19
 
20
20
  exports.PluginMediaParser = PluginMediaParser;
21
- //# sourceMappingURL=out.js.map
21
+ //# sourceMappingURL=applicationJson.cjs.map
22
22
  //# sourceMappingURL=applicationJson.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mediaParsers/applicationJson.ts"],"names":[],"mappings":";;;;AAAA,SAAS,mBAAmB;AAC5B,SAAS,iBAAiB;AAEnB,IAAM,qBAAN,MAAM,2BAA0B,YAAY;AAAA,EAC3C,YAAY,SAAoC;AACtD,UAAM,SAAS,EAAE,MAAM,UAAU,gBAAgB,CAAC;AAAA,EACnD;AAAA,EAEA,MAAsB,IAAI,SAAgD;AACzE,UAAM,OAAO,MAAM,KAAK,WAAW,OAAO;AAC1C,WAAO,KAAK,WAAW,IAAI,OAAO,KAAK,MAAM,IAAI;AAAA,EAClD;AACD;AATmD;AAA5C,IAAM,oBAAN","sourcesContent":["import { MediaParser } from '../lib/structures/MediaParser';\nimport { MimeTypes } from '../lib/utils/MimeTypes';\n\nexport class PluginMediaParser extends MediaParser {\n\tpublic constructor(context: MediaParser.LoaderContext) {\n\t\tsuper(context, { name: MimeTypes.ApplicationJson });\n\t}\n\n\tpublic override async run(request: MediaParser.Request): Promise<unknown> {\n\t\tconst body = await this.readString(request);\n\t\treturn body.length === 0 ? null : JSON.parse(body);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/mediaParsers/applicationJson.ts"],"names":["MediaParser","MimeTypes"],"mappings":";;;;;;;AAGO,IAAM,kBAAA,GAAN,MAAM,kBAAA,SAA0BA,2BAAY,CAAA;AAAA,EAC3C,YAAY,OAAoC,EAAA;AACtD,IAAA,KAAA,CAAM,OAAS,EAAA,EAAE,IAAM,EAAAC,uBAAA,CAAU,iBAAiB,CAAA,CAAA;AAAA,GACnD;AAAA,EAEA,MAAsB,IAAI,OAAgD,EAAA;AACzE,IAAA,MAAM,IAAO,GAAA,MAAM,IAAK,CAAA,UAAA,CAAW,OAAO,CAAA,CAAA;AAC1C,IAAA,OAAO,KAAK,MAAW,KAAA,CAAA,GAAI,IAAO,GAAA,IAAA,CAAK,MAAM,IAAI,CAAA,CAAA;AAAA,GAClD;AACD,CAAA,CAAA;AATmD,MAAA,CAAA,kBAAA,EAAA,mBAAA,CAAA,CAAA;AAA5C,IAAM,iBAAN,GAAA","file":"applicationJson.cjs","sourcesContent":["import { MediaParser } from '../lib/structures/MediaParser';\nimport { MimeTypes } from '../lib/utils/MimeTypes';\n\nexport class PluginMediaParser extends MediaParser {\n\tpublic constructor(context: MediaParser.LoaderContext) {\n\t\tsuper(context, { name: MimeTypes.ApplicationJson });\n\t}\n\n\tpublic override async run(request: MediaParser.Request): Promise<unknown> {\n\t\tconst body = await this.readString(request);\n\t\treturn body.length === 0 ? null : JSON.parse(body);\n\t}\n}\n"]}
@@ -18,5 +18,5 @@ __name(_PluginMediaParser, "PluginMediaParser");
18
18
  var PluginMediaParser = _PluginMediaParser;
19
19
 
20
20
  exports.PluginMediaParser = PluginMediaParser;
21
- //# sourceMappingURL=out.js.map
21
+ //# sourceMappingURL=textPlain.cjs.map
22
22
  //# sourceMappingURL=textPlain.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mediaParsers/textPlain.ts"],"names":[],"mappings":";;;;AAAA,SAAS,mBAAmB;AAC5B,SAAS,iBAAiB;AAEnB,IAAM,qBAAN,MAAM,2BAA0B,YAAY;AAAA,EAC3C,YAAY,SAAoC;AACtD,UAAM,SAAS,EAAE,MAAM,UAAU,UAAU,CAAC;AAAA,EAC7C;AAAA,EAEA,MAAsB,IAAI,SAAgD;AACzE,UAAM,OAAO,MAAM,KAAK,WAAW,OAAO;AAC1C,WAAO,KAAK,WAAW,IAAI,OAAO;AAAA,EACnC;AACD;AATmD;AAA5C,IAAM,oBAAN","sourcesContent":["import { MediaParser } from '../lib/structures/MediaParser';\nimport { MimeTypes } from '../lib/utils/MimeTypes';\n\nexport class PluginMediaParser extends MediaParser {\n\tpublic constructor(context: MediaParser.LoaderContext) {\n\t\tsuper(context, { name: MimeTypes.TextPlain });\n\t}\n\n\tpublic override async run(request: MediaParser.Request): Promise<unknown> {\n\t\tconst body = await this.readString(request);\n\t\treturn body.length === 0 ? null : body;\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/mediaParsers/textPlain.ts"],"names":["MediaParser","MimeTypes"],"mappings":";;;;;;;AAGO,IAAM,kBAAA,GAAN,MAAM,kBAAA,SAA0BA,2BAAY,CAAA;AAAA,EAC3C,YAAY,OAAoC,EAAA;AACtD,IAAA,KAAA,CAAM,OAAS,EAAA,EAAE,IAAM,EAAAC,uBAAA,CAAU,WAAW,CAAA,CAAA;AAAA,GAC7C;AAAA,EAEA,MAAsB,IAAI,OAAgD,EAAA;AACzE,IAAA,MAAM,IAAO,GAAA,MAAM,IAAK,CAAA,UAAA,CAAW,OAAO,CAAA,CAAA;AAC1C,IAAO,OAAA,IAAA,CAAK,MAAW,KAAA,CAAA,GAAI,IAAO,GAAA,IAAA,CAAA;AAAA,GACnC;AACD,CAAA,CAAA;AATmD,MAAA,CAAA,kBAAA,EAAA,mBAAA,CAAA,CAAA;AAA5C,IAAM,iBAAN,GAAA","file":"textPlain.cjs","sourcesContent":["import { MediaParser } from '../lib/structures/MediaParser';\nimport { MimeTypes } from '../lib/utils/MimeTypes';\n\nexport class PluginMediaParser extends MediaParser {\n\tpublic constructor(context: MediaParser.LoaderContext) {\n\t\tsuper(context, { name: MimeTypes.TextPlain });\n\t}\n\n\tpublic override async run(request: MediaParser.Request): Promise<unknown> {\n\t\tconst body = await this.readString(request);\n\t\treturn body.length === 0 ? null : body;\n\t}\n}\n"]}
@@ -18,5 +18,5 @@ function loadMiddlewares() {
18
18
  __name(loadMiddlewares, "loadMiddlewares");
19
19
 
20
20
  exports.loadMiddlewares = loadMiddlewares;
21
- //# sourceMappingURL=out.js.map
21
+ //# sourceMappingURL=_load.cjs.map
22
22
  //# sourceMappingURL=_load.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/middlewares/_load.ts"],"names":[],"mappings":";;;;AAAA,SAAS,iBAAiB;AAC1B,SAAS,oBAAoB,kBAAkB;AAC/C,SAAS,oBAAoB,kBAAkB;AAC/C,SAAS,oBAAoB,qBAAqB;AAClD,SAAS,oBAAoB,qBAAqB;AAE3C,SAAS,kBAAkB;AACjC,QAAM,QAAQ;AACd,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,QAAQ,OAAO,YAAY,MAAM,CAAC;AAC1E,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,QAAQ,OAAO,YAAY,MAAM,CAAC;AAC1E,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,WAAW,OAAO,eAAe,MAAM,CAAC;AAChF,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,WAAW,OAAO,eAAe,MAAM,CAAC;AACjF;AANgB","sourcesContent":["import { container } from '@sapphire/pieces';\nimport { PluginMiddleware as PluginAuth } from './auth';\nimport { PluginMiddleware as PluginBody } from './body';\nimport { PluginMiddleware as PluginCookies } from './cookies';\nimport { PluginMiddleware as PluginHeaders } from './headers';\n\nexport function loadMiddlewares() {\n\tconst store = 'middlewares' as const;\n\tvoid container.stores.loadPiece({ name: 'auth', piece: PluginAuth, store });\n\tvoid container.stores.loadPiece({ name: 'body', piece: PluginBody, store });\n\tvoid container.stores.loadPiece({ name: 'cookies', piece: PluginCookies, store });\n\tvoid container.stores.loadPiece({ name: 'headers', piece: PluginHeaders, store });\n}\n"]}
1
+ {"version":3,"sources":["../../../src/middlewares/_load.ts"],"names":["container","PluginAuth","PluginBody","PluginCookies","PluginHeaders"],"mappings":";;;;;;;;;;AAMO,SAAS,eAAkB,GAAA;AACjC,EAAA,MAAM,KAAQ,GAAA,aAAA,CAAA;AACd,EAAK,KAAAA,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,MAAQ,EAAA,KAAA,EAAOC,yBAAY,EAAA,KAAA,EAAO,CAAA,CAAA;AAC1E,EAAK,KAAAD,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,MAAQ,EAAA,KAAA,EAAOE,yBAAY,EAAA,KAAA,EAAO,CAAA,CAAA;AAC1E,EAAK,KAAAF,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,SAAW,EAAA,KAAA,EAAOG,4BAAe,EAAA,KAAA,EAAO,CAAA,CAAA;AAChF,EAAK,KAAAH,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,SAAW,EAAA,KAAA,EAAOI,4BAAe,EAAA,KAAA,EAAO,CAAA,CAAA;AACjF,CAAA;AANgB,MAAA,CAAA,eAAA,EAAA,iBAAA,CAAA","file":"_load.cjs","sourcesContent":["import { container } from '@sapphire/pieces';\nimport { PluginMiddleware as PluginAuth } from './auth';\nimport { PluginMiddleware as PluginBody } from './body';\nimport { PluginMiddleware as PluginCookies } from './cookies';\nimport { PluginMiddleware as PluginHeaders } from './headers';\n\nexport function loadMiddlewares() {\n\tconst store = 'middlewares' as const;\n\tvoid container.stores.loadPiece({ name: 'auth', piece: PluginAuth, store });\n\tvoid container.stores.loadPiece({ name: 'body', piece: PluginBody, store });\n\tvoid container.stores.loadPiece({ name: 'cookies', piece: PluginCookies, store });\n\tvoid container.stores.loadPiece({ name: 'headers', piece: PluginHeaders, store });\n}\n"]}
@@ -5,7 +5,7 @@ var Middleware_cjs = require('../lib/structures/Middleware.cjs');
5
5
  var __defProp = Object.defineProperty;
6
6
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
7
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
9
9
  var _PluginMiddleware = class _PluginMiddleware extends Middleware_cjs.Middleware {
10
10
  constructor(context) {
11
11
  super(context, { position: 40 });
@@ -28,5 +28,5 @@ __name(_PluginMiddleware, "PluginMiddleware");
28
28
  var PluginMiddleware = _PluginMiddleware;
29
29
 
30
30
  exports.PluginMiddleware = PluginMiddleware;
31
- //# sourceMappingURL=out.js.map
31
+ //# sourceMappingURL=auth.cjs.map
32
32
  //# sourceMappingURL=auth.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/middlewares/auth.ts"],"names":[],"mappings":";;;;;;AAAA,SAAS,kBAAkB;AAEpB,IAAM,oBAAN,MAAM,0BAAyB,WAAW;AAAA,EAGzC,YAAY,SAAmC;AACrD,UAAM,SAAS,EAAE,UAAU,GAAG,CAAC;AAHhC,wBAAiB;AAKhB,UAAM,EAAE,OAAO,IAAI,KAAK;AACxB,SAAK,aAAa,OAAO,MAAM,UAAU;AACzC,SAAK,UAAU,OAAO,SAAS;AAAA,EAChC;AAAA,EAEgB,IAAI,SAA6B,UAA+B;AAE/E,UAAM,gBAAgB,SAAS,QAAQ,IAAI,KAAK,UAAU;AAC1D,QAAI,CAAC,eAAe;AACnB,cAAQ,OAAO;AACf;AAAA,IACD;AAGA,YAAQ,OAAO,KAAK,UAAU,OAAO,KAAM,QAAQ,aAAa;AAChE,QAAI,QAAQ,SAAS,KAAM,UAAS,QAAQ,OAAO,KAAK,UAAU;AAAA,EACnE;AACD;AAvBiD;AAA1C,IAAM,mBAAN","sourcesContent":["import { Middleware } from '../lib/structures/Middleware';\n\nexport class PluginMiddleware extends Middleware {\n\tprivate readonly cookieName: string;\n\n\tpublic constructor(context: Middleware.LoaderContext) {\n\t\tsuper(context, { position: 40 });\n\n\t\tconst { server } = this.container;\n\t\tthis.cookieName = server.auth?.cookie ?? 'SAPPHIRE_AUTH';\n\t\tthis.enabled = server.auth !== null;\n\t}\n\n\tpublic override run(request: Middleware.Request, response: Middleware.Response) {\n\t\t// If there are no cookies, set auth as null:\n\t\tconst authorization = response.cookies.get(this.cookieName);\n\t\tif (!authorization) {\n\t\t\trequest.auth = null;\n\t\t\treturn;\n\t\t}\n\n\t\t// Decrypt the cookie, and if the token is invalid, remove the cookie:\n\t\trequest.auth = this.container.server.auth!.decrypt(authorization);\n\t\tif (request.auth === null) response.cookies.remove(this.cookieName);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/middlewares/auth.ts"],"names":["Middleware"],"mappings":";;;;;;;;AAEO,IAAM,iBAAA,GAAN,MAAM,iBAAA,SAAyBA,yBAAW,CAAA;AAAA,EAGzC,YAAY,OAAmC,EAAA;AACrD,IAAA,KAAA,CAAM,OAAS,EAAA,EAAE,QAAU,EAAA,EAAA,EAAI,CAAA,CAAA;AAHhC,IAAiB,aAAA,CAAA,IAAA,EAAA,YAAA,CAAA,CAAA;AAKhB,IAAM,MAAA,EAAE,MAAO,EAAA,GAAI,IAAK,CAAA,SAAA,CAAA;AACxB,IAAK,IAAA,CAAA,UAAA,GAAa,MAAO,CAAA,IAAA,EAAM,MAAU,IAAA,eAAA,CAAA;AACzC,IAAK,IAAA,CAAA,OAAA,GAAU,OAAO,IAAS,KAAA,IAAA,CAAA;AAAA,GAChC;AAAA,EAEgB,GAAA,CAAI,SAA6B,QAA+B,EAAA;AAE/E,IAAA,MAAM,aAAgB,GAAA,QAAA,CAAS,OAAQ,CAAA,GAAA,CAAI,KAAK,UAAU,CAAA,CAAA;AAC1D,IAAA,IAAI,CAAC,aAAe,EAAA;AACnB,MAAA,OAAA,CAAQ,IAAO,GAAA,IAAA,CAAA;AACf,MAAA,OAAA;AAAA,KACD;AAGA,IAAA,OAAA,CAAQ,OAAO,IAAK,CAAA,SAAA,CAAU,MAAO,CAAA,IAAA,CAAM,QAAQ,aAAa,CAAA,CAAA;AAChE,IAAA,IAAI,QAAQ,IAAS,KAAA,IAAA,WAAe,OAAQ,CAAA,MAAA,CAAO,KAAK,UAAU,CAAA,CAAA;AAAA,GACnE;AACD,CAAA,CAAA;AAvBiD,MAAA,CAAA,iBAAA,EAAA,kBAAA,CAAA,CAAA;AAA1C,IAAM,gBAAN,GAAA","file":"auth.cjs","sourcesContent":["import { Middleware } from '../lib/structures/Middleware';\n\nexport class PluginMiddleware extends Middleware {\n\tprivate readonly cookieName: string;\n\n\tpublic constructor(context: Middleware.LoaderContext) {\n\t\tsuper(context, { position: 40 });\n\n\t\tconst { server } = this.container;\n\t\tthis.cookieName = server.auth?.cookie ?? 'SAPPHIRE_AUTH';\n\t\tthis.enabled = server.auth !== null;\n\t}\n\n\tpublic override run(request: Middleware.Request, response: Middleware.Response) {\n\t\t// If there are no cookies, set auth as null:\n\t\tconst authorization = response.cookies.get(this.cookieName);\n\t\tif (!authorization) {\n\t\t\trequest.auth = null;\n\t\t\treturn;\n\t\t}\n\n\t\t// Decrypt the cookie, and if the token is invalid, remove the cookie:\n\t\trequest.auth = this.container.server.auth!.decrypt(authorization);\n\t\tif (request.auth === null) response.cookies.remove(this.cookieName);\n\t}\n}\n"]}
@@ -6,27 +6,28 @@ var Middleware_cjs = require('../lib/structures/Middleware.cjs');
6
6
  var __defProp = Object.defineProperty;
7
7
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
8
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
9
+ var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
10
10
  var _PluginMiddleware = class _PluginMiddleware extends Middleware_cjs.Middleware {
11
11
  constructor(context) {
12
12
  super(context, { position: 20 });
13
13
  __publicField(this, "mediaParsers");
14
14
  this.mediaParsers = this.container.server.mediaParsers;
15
15
  }
16
- async run(request, response, route) {
16
+ async run(request, response) {
17
+ if (!request.route) return;
17
18
  const contentType = request.headers["content-type"];
18
19
  if (typeof contentType !== "string") return;
19
20
  const lengthString = request.headers["content-length"];
20
21
  if (typeof lengthString !== "string") return;
21
22
  const length = Number(lengthString);
22
- const maximumLength = route.maximumBodyLength;
23
+ const maximumLength = request.route.maximumBodyLength;
23
24
  if (length > maximumLength) {
24
25
  response.status(HttpCodes_cjs.HttpCodes.PayloadTooLarge).json({ error: "Exceeded maximum content length." });
25
26
  return;
26
27
  }
27
28
  const type = this.mediaParsers.parseContentType(contentType);
28
29
  const parser = this.mediaParsers.get(type);
29
- if (!parser || !parser.accepts(route)) {
30
+ if (!parser || !parser.accepts(request.route)) {
30
31
  response.status(HttpCodes_cjs.HttpCodes.UnsupportedMediaType).json({ error: `Unsupported type ${type}.` });
31
32
  return;
32
33
  }
@@ -41,5 +42,5 @@ __name(_PluginMiddleware, "PluginMiddleware");
41
42
  var PluginMiddleware = _PluginMiddleware;
42
43
 
43
44
  exports.PluginMiddleware = PluginMiddleware;
44
- //# sourceMappingURL=out.js.map
45
+ //# sourceMappingURL=body.cjs.map
45
46
  //# sourceMappingURL=body.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/middlewares/body.ts"],"names":[],"mappings":";;;;;;AAAA,SAAS,iBAAiB;AAE1B,SAAS,kBAAkB;AAGpB,IAAM,oBAAN,MAAM,0BAAyB,WAAW;AAAA,EAGzC,YAAY,SAAmC;AACrD,UAAM,SAAS,EAAE,UAAU,GAAG,CAAC;AAHhC,wBAAiB;AAIhB,SAAK,eAAe,KAAK,UAAU,OAAO;AAAA,EAC3C;AAAA,EAEA,MAAsB,IAAI,SAA6B,UAA+B,OAAc;AAEnG,UAAM,cAAc,QAAQ,QAAQ,cAAc;AAClD,QAAI,OAAO,gBAAgB,SAAU;AAGrC,UAAM,eAAe,QAAQ,QAAQ,gBAAgB;AACrD,QAAI,OAAO,iBAAiB,SAAU;AAGtC,UAAM,SAAS,OAAO,YAAY;AAClC,UAAM,gBAAgB,MAAM;AAC5B,QAAI,SAAS,eAAe;AAC3B,eAAS,OAAO,UAAU,eAAe,EAAE,KAAK,EAAE,OAAO,mCAAmC,CAAC;AAC7F;AAAA,IACD;AAGA,UAAM,OAAO,KAAK,aAAa,iBAAiB,WAAW;AAC3D,UAAM,SAAS,KAAK,aAAa,IAAI,IAAI;AACzC,QAAI,CAAC,UAAU,CAAC,OAAO,QAAQ,KAAK,GAAG;AACtC,eAAS,OAAO,UAAU,oBAAoB,EAAE,KAAK,EAAE,OAAO,oBAAoB,IAAI,IAAI,CAAC;AAC3F;AAAA,IACD;AAEA,QAAI;AAEH,cAAQ,OAAO,MAAM,OAAO,IAAI,OAAO;AAAA,IACxC,QAAQ;AACP,eAAS,OAAO,UAAU,UAAU,EAAE,KAAK,EAAE,OAAO,gBAAgB,IAAI,SAAS,CAAC;AAAA,IACnF;AAAA,EACD;AACD;AAxCiD;AAA1C,IAAM,mBAAN","sourcesContent":["import { HttpCodes } from '../lib/structures/http/HttpCodes';\nimport type { MediaParserStore } from '../lib/structures/MediaParserStore';\nimport { Middleware } from '../lib/structures/Middleware';\nimport type { Route } from '../lib/structures/Route';\n\nexport class PluginMiddleware extends Middleware {\n\tprivate readonly mediaParsers: MediaParserStore;\n\n\tpublic constructor(context: Middleware.LoaderContext) {\n\t\tsuper(context, { position: 20 });\n\t\tthis.mediaParsers = this.container.server.mediaParsers;\n\t}\n\n\tpublic override async run(request: Middleware.Request, response: Middleware.Response, route: Route) {\n\t\t// RFC 1341 4.\n\t\tconst contentType = request.headers['content-type'];\n\t\tif (typeof contentType !== 'string') return;\n\n\t\t// RFC 7230 3.3.2.\n\t\tconst lengthString = request.headers['content-length'];\n\t\tif (typeof lengthString !== 'string') return;\n\n\t\t// Verify if the content length is lower than accepted:\n\t\tconst length = Number(lengthString);\n\t\tconst maximumLength = route.maximumBodyLength;\n\t\tif (length > maximumLength) {\n\t\t\tresponse.status(HttpCodes.PayloadTooLarge).json({ error: 'Exceeded maximum content length.' });\n\t\t\treturn;\n\t\t}\n\n\t\t// Verify if the content type is supported by the parser:\n\t\tconst type = this.mediaParsers.parseContentType(contentType);\n\t\tconst parser = this.mediaParsers.get(type);\n\t\tif (!parser || !parser.accepts(route)) {\n\t\t\tresponse.status(HttpCodes.UnsupportedMediaType).json({ error: `Unsupported type ${type}.` });\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\t// Parse the content body:\n\t\t\trequest.body = await parser.run(request);\n\t\t} catch {\n\t\t\tresponse.status(HttpCodes.BadRequest).json({ error: `Cannot parse ${type} data.` });\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/middlewares/body.ts"],"names":["Middleware","HttpCodes"],"mappings":";;;;;;;;;AAIO,IAAM,iBAAA,GAAN,MAAM,iBAAA,SAAyBA,yBAAW,CAAA;AAAA,EAGzC,YAAY,OAAmC,EAAA;AACrD,IAAA,KAAA,CAAM,OAAS,EAAA,EAAE,QAAU,EAAA,EAAA,EAAI,CAAA,CAAA;AAHhC,IAAiB,aAAA,CAAA,IAAA,EAAA,cAAA,CAAA,CAAA;AAIhB,IAAK,IAAA,CAAA,YAAA,GAAe,IAAK,CAAA,SAAA,CAAU,MAAO,CAAA,YAAA,CAAA;AAAA,GAC3C;AAAA,EAEA,MAAsB,GAAI,CAAA,OAAA,EAA6B,QAA+B,EAAA;AACrF,IAAI,IAAA,CAAC,QAAQ,KAAO,EAAA,OAAA;AAGpB,IAAM,MAAA,WAAA,GAAc,OAAQ,CAAA,OAAA,CAAQ,cAAc,CAAA,CAAA;AAClD,IAAI,IAAA,OAAO,gBAAgB,QAAU,EAAA,OAAA;AAGrC,IAAM,MAAA,YAAA,GAAe,OAAQ,CAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAA;AACrD,IAAI,IAAA,OAAO,iBAAiB,QAAU,EAAA,OAAA;AAGtC,IAAM,MAAA,MAAA,GAAS,OAAO,YAAY,CAAA,CAAA;AAClC,IAAM,MAAA,aAAA,GAAgB,QAAQ,KAAM,CAAA,iBAAA,CAAA;AACpC,IAAA,IAAI,SAAS,aAAe,EAAA;AAC3B,MAAS,QAAA,CAAA,MAAA,CAAOC,wBAAU,eAAe,CAAA,CAAE,KAAK,EAAE,KAAA,EAAO,oCAAoC,CAAA,CAAA;AAC7F,MAAA,OAAA;AAAA,KACD;AAGA,IAAA,MAAM,IAAO,GAAA,IAAA,CAAK,YAAa,CAAA,gBAAA,CAAiB,WAAW,CAAA,CAAA;AAC3D,IAAA,MAAM,MAAS,GAAA,IAAA,CAAK,YAAa,CAAA,GAAA,CAAI,IAAI,CAAA,CAAA;AACzC,IAAA,IAAI,CAAC,MAAU,IAAA,CAAC,OAAO,OAAQ,CAAA,OAAA,CAAQ,KAAK,CAAG,EAAA;AAC9C,MAAS,QAAA,CAAA,MAAA,CAAOA,uBAAU,CAAA,oBAAoB,CAAE,CAAA,IAAA,CAAK,EAAE,KAAO,EAAA,CAAA,iBAAA,EAAoB,IAAI,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA;AAC3F,MAAA,OAAA;AAAA,KACD;AAEA,IAAI,IAAA;AAEH,MAAA,OAAA,CAAQ,IAAO,GAAA,MAAM,MAAO,CAAA,GAAA,CAAI,OAAO,CAAA,CAAA;AAAA,KAChC,CAAA,MAAA;AACP,MAAS,QAAA,CAAA,MAAA,CAAOA,uBAAU,CAAA,UAAU,CAAE,CAAA,IAAA,CAAK,EAAE,KAAO,EAAA,CAAA,aAAA,EAAgB,IAAI,CAAA,MAAA,CAAA,EAAU,CAAA,CAAA;AAAA,KACnF;AAAA,GACD;AACD,CAAA,CAAA;AA1CiD,MAAA,CAAA,iBAAA,EAAA,kBAAA,CAAA,CAAA;AAA1C,IAAM,gBAAN,GAAA","file":"body.cjs","sourcesContent":["import { HttpCodes } from '../lib/structures/http/HttpCodes';\nimport type { MediaParserStore } from '../lib/structures/MediaParserStore';\nimport { Middleware } from '../lib/structures/Middleware';\n\nexport class PluginMiddleware extends Middleware {\n\tprivate readonly mediaParsers: MediaParserStore;\n\n\tpublic constructor(context: Middleware.LoaderContext) {\n\t\tsuper(context, { position: 20 });\n\t\tthis.mediaParsers = this.container.server.mediaParsers;\n\t}\n\n\tpublic override async run(request: Middleware.Request, response: Middleware.Response) {\n\t\tif (!request.route) return;\n\n\t\t// RFC 1341 4.\n\t\tconst contentType = request.headers['content-type'];\n\t\tif (typeof contentType !== 'string') return;\n\n\t\t// RFC 7230 3.3.2.\n\t\tconst lengthString = request.headers['content-length'];\n\t\tif (typeof lengthString !== 'string') return;\n\n\t\t// Verify if the content length is lower than accepted:\n\t\tconst length = Number(lengthString);\n\t\tconst maximumLength = request.route.maximumBodyLength;\n\t\tif (length > maximumLength) {\n\t\t\tresponse.status(HttpCodes.PayloadTooLarge).json({ error: 'Exceeded maximum content length.' });\n\t\t\treturn;\n\t\t}\n\n\t\t// Verify if the content type is supported by the parser:\n\t\tconst type = this.mediaParsers.parseContentType(contentType);\n\t\tconst parser = this.mediaParsers.get(type);\n\t\tif (!parser || !parser.accepts(request.route)) {\n\t\t\tresponse.status(HttpCodes.UnsupportedMediaType).json({ error: `Unsupported type ${type}.` });\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\t// Parse the content body:\n\t\t\trequest.body = await parser.run(request);\n\t\t} catch {\n\t\t\tresponse.status(HttpCodes.BadRequest).json({ error: `Cannot parse ${type} data.` });\n\t\t}\n\t}\n}\n"]}
@@ -23,5 +23,5 @@ __name(_PluginMiddleware, "PluginMiddleware");
23
23
  var PluginMiddleware = _PluginMiddleware;
24
24
 
25
25
  exports.PluginMiddleware = PluginMiddleware;
26
- //# sourceMappingURL=out.js.map
26
+ //# sourceMappingURL=cookies.cjs.map
27
27
  //# sourceMappingURL=cookies.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/middlewares/cookies.ts"],"names":[],"mappings":";;;;;;AAAA,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAErB,IAAM,oBAAN,MAAM,0BAAyB,WAAW;AAAA,EAIzC,YAAY,SAAmC;AACrD,UAAM,SAAS,EAAE,UAAU,GAAG,CAAC;AAJhC,wBAAiB,cAAsB,QAAQ,IAAI,aAAa;AAChE,wBAAQ,mBAAiC;AAKxC,UAAM,EAAE,OAAO,IAAI,KAAK;AACxB,SAAK,kBAAkB,OAAO,MAAM,mBAAmB;AAAA,EACxD;AAAA,EAEgB,IAAI,SAA6B,UAA+B;AAC/E,aAAS,UAAU,IAAI,YAAY,SAAS,UAAU,KAAK,YAAY,KAAK,eAAe;AAAA,EAC5F;AACD;AAdiD;AAA1C,IAAM,mBAAN","sourcesContent":["import { Middleware } from '../lib/structures/Middleware';\nimport { CookieStore } from '../lib/structures/api/CookieStore';\n\nexport class PluginMiddleware extends Middleware {\n\tprivate readonly production: boolean = process.env.NODE_ENV === 'production';\n\tprivate domainOverwrite: string | null = null;\n\n\tpublic constructor(context: Middleware.LoaderContext) {\n\t\tsuper(context, { position: 30 });\n\n\t\tconst { server } = this.container;\n\t\tthis.domainOverwrite = server.auth?.domainOverwrite ?? null;\n\t}\n\n\tpublic override run(request: Middleware.Request, response: Middleware.Response) {\n\t\tresponse.cookies = new CookieStore(request, response, this.production, this.domainOverwrite);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/middlewares/cookies.ts"],"names":["Middleware","CookieStore"],"mappings":";;;;;;;;;AAGO,IAAM,iBAAA,GAAN,MAAM,iBAAA,SAAyBA,yBAAW,CAAA;AAAA,EAIzC,YAAY,OAAmC,EAAA;AACrD,IAAA,KAAA,CAAM,OAAS,EAAA,EAAE,QAAU,EAAA,EAAA,EAAI,CAAA,CAAA;AAJhC,IAAiB,aAAA,CAAA,IAAA,EAAA,YAAA,EAAsB,OAAQ,CAAA,GAAA,CAAI,QAAa,KAAA,YAAA,CAAA,CAAA;AAChE,IAAA,aAAA,CAAA,IAAA,EAAQ,iBAAiC,EAAA,IAAA,CAAA,CAAA;AAKxC,IAAM,MAAA,EAAE,MAAO,EAAA,GAAI,IAAK,CAAA,SAAA,CAAA;AACxB,IAAK,IAAA,CAAA,eAAA,GAAkB,MAAO,CAAA,IAAA,EAAM,eAAmB,IAAA,IAAA,CAAA;AAAA,GACxD;AAAA,EAEgB,GAAA,CAAI,SAA6B,QAA+B,EAAA;AAC/E,IAAS,QAAA,CAAA,OAAA,GAAU,IAAIC,2BAAY,CAAA,OAAA,EAAS,UAAU,IAAK,CAAA,UAAA,EAAY,KAAK,eAAe,CAAA,CAAA;AAAA,GAC5F;AACD,CAAA,CAAA;AAdiD,MAAA,CAAA,iBAAA,EAAA,kBAAA,CAAA,CAAA;AAA1C,IAAM,gBAAN,GAAA","file":"cookies.cjs","sourcesContent":["import { Middleware } from '../lib/structures/Middleware';\nimport { CookieStore } from '../lib/structures/api/CookieStore';\n\nexport class PluginMiddleware extends Middleware {\n\tprivate readonly production: boolean = process.env.NODE_ENV === 'production';\n\tprivate domainOverwrite: string | null = null;\n\n\tpublic constructor(context: Middleware.LoaderContext) {\n\t\tsuper(context, { position: 30 });\n\n\t\tconst { server } = this.container;\n\t\tthis.domainOverwrite = server.auth?.domainOverwrite ?? null;\n\t}\n\n\tpublic override run(request: Middleware.Request, response: Middleware.Response) {\n\t\tresponse.cookies = new CookieStore(request, response, this.production, this.domainOverwrite);\n\t}\n}\n"]}
@@ -15,20 +15,17 @@ var _PluginMiddleware = class _PluginMiddleware extends Middleware_cjs.Middlewar
15
15
  this.origin = this.container.server.options.origin ?? "*";
16
16
  this.routes = this.container.stores.get("routes");
17
17
  }
18
- run(request, response, route) {
18
+ run(request, response) {
19
19
  response.setHeader("Date", (/* @__PURE__ */ new Date()).toUTCString());
20
20
  response.setHeader("Access-Control-Allow-Credentials", "true");
21
21
  response.setHeader("Access-Control-Allow-Origin", this.origin);
22
22
  response.setHeader("Access-Control-Allow-Headers", "Authorization, User-Agent, Content-Type");
23
- response.setHeader("Access-Control-Allow-Methods", this.getMethods(route));
24
- this.ensurePotentialEarlyExit(request, response, route);
23
+ response.setHeader("Access-Control-Allow-Methods", this.getMethods(request.route ?? null));
24
+ this.ensurePotentialEarlyExit(request, response);
25
25
  }
26
26
  getMethods(route) {
27
27
  if (route === null) {
28
- const { methods } = this.routes;
29
- if (methods.size === 0) return "";
30
- if (methods.size === 1) return methods.firstKey();
31
- return [...methods.keys()].join(", ");
28
+ return this.routes.router.supportedMethods.join(", ");
32
29
  }
33
30
  if (route.methods.size === 0) return "";
34
31
  if (route.methods.size === 1) return route.methods.keys().next().value;
@@ -49,13 +46,15 @@ var _PluginMiddleware = class _PluginMiddleware extends Middleware_cjs.Middlewar
49
46
  * @param response The API response that will go out
50
47
  * @param route The route being requested by the request
51
48
  */
52
- ensurePotentialEarlyExit(request, response, route) {
53
- if (request.method === "OPTIONS") {
49
+ ensurePotentialEarlyExit({ method, route, routerNode }, response) {
50
+ if (method === "OPTIONS") {
54
51
  if (!route || !route.methods.has("OPTIONS")) {
55
52
  response.end();
56
53
  }
57
- } else if (route === null) {
54
+ } else if (routerNode === null) {
58
55
  response.status(HttpCodes_cjs.HttpCodes.NotFound).end();
56
+ } else if (route === null) {
57
+ response.status(HttpCodes_cjs.HttpCodes.MethodNotAllowed).end();
59
58
  }
60
59
  }
61
60
  };
@@ -63,5 +62,5 @@ __name(_PluginMiddleware, "PluginMiddleware");
63
62
  var PluginMiddleware = _PluginMiddleware;
64
63
 
65
64
  exports.PluginMiddleware = PluginMiddleware;
66
- //# sourceMappingURL=out.js.map
65
+ //# sourceMappingURL=headers.cjs.map
67
66
  //# sourceMappingURL=headers.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/middlewares/headers.ts"],"names":[],"mappings":";;;;;;AAAA,SAAS,kBAAkB;AAG3B,SAAS,iBAAiB;AAEnB,IAAM,oBAAN,MAAM,0BAAyB,WAAW;AAAA,EAIzC,YAAY,SAAmC;AACrD,UAAM,SAAS,EAAE,UAAU,GAAG,CAAC;AAJhC,wBAAiB;AACjB,wBAAiB;AAIhB,SAAK,SAAS,KAAK,UAAU,OAAO,QAAQ,UAAU;AACtD,SAAK,SAAS,KAAK,UAAU,OAAO,IAAI,QAAQ;AAAA,EACjD;AAAA,EAEgB,IAAI,SAA6B,UAA+B,OAAqB;AACpG,aAAS,UAAU,SAAQ,oBAAI,KAAK,GAAE,YAAY,CAAC;AACnD,aAAS,UAAU,oCAAoC,MAAM;AAC7D,aAAS,UAAU,+BAA+B,KAAK,MAAM;AAC7D,aAAS,UAAU,gCAAgC,yCAAyC;AAC5F,aAAS,UAAU,gCAAgC,KAAK,WAAW,KAAK,CAAC;AAEzE,SAAK,yBAAyB,SAAS,UAAU,KAAK;AAAA,EACvD;AAAA,EAEQ,WAAW,OAAqB;AACvC,QAAI,UAAU,MAAM;AACnB,YAAM,EAAE,QAAQ,IAAI,KAAK;AACzB,UAAI,QAAQ,SAAS,EAAG,QAAO;AAC/B,UAAI,QAAQ,SAAS,EAAG,QAAO,QAAQ,SAAS;AAChD,aAAO,CAAC,GAAG,QAAQ,KAAK,CAAC,EAAE,KAAK,IAAI;AAAA,IACrC;AAEA,QAAI,MAAM,QAAQ,SAAS,EAAG,QAAO;AACrC,QAAI,MAAM,QAAQ,SAAS,EAAG,QAAO,MAAM,QAAQ,KAAK,EAAE,KAAK,EAAE;AACjE,WAAO,CAAC,GAAG,MAAM,OAAO,EAAE,KAAK,IAAI;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBQ,yBAAyB,SAA6B,UAA+B,OAAqB;AACjH,QAAI,QAAQ,WAAW,WAAW;AACjC,UAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,IAAI,SAAS,GAAG;AAC5C,iBAAS,IAAI;AAAA,MACd;AAAA,IACD,WAAW,UAAU,MAAM;AAC1B,eAAS,OAAO,UAAU,QAAQ,EAAE,IAAI;AAAA,IACzC;AAAA,EACD;AACD;AAzDiD;AAA1C,IAAM,mBAAN","sourcesContent":["import { Middleware } from '../lib/structures/Middleware';\nimport type { Route } from '../lib/structures/Route';\nimport type { RouteStore } from '../lib/structures/RouteStore';\nimport { HttpCodes } from '../lib/structures/http/HttpCodes';\n\nexport class PluginMiddleware extends Middleware {\n\tprivate readonly origin: string;\n\tprivate readonly routes: RouteStore;\n\n\tpublic constructor(context: Middleware.LoaderContext) {\n\t\tsuper(context, { position: 10 });\n\t\tthis.origin = this.container.server.options.origin ?? '*';\n\t\tthis.routes = this.container.stores.get('routes');\n\t}\n\n\tpublic override run(request: Middleware.Request, response: Middleware.Response, route: Route | null) {\n\t\tresponse.setHeader('Date', new Date().toUTCString());\n\t\tresponse.setHeader('Access-Control-Allow-Credentials', 'true');\n\t\tresponse.setHeader('Access-Control-Allow-Origin', this.origin);\n\t\tresponse.setHeader('Access-Control-Allow-Headers', 'Authorization, User-Agent, Content-Type');\n\t\tresponse.setHeader('Access-Control-Allow-Methods', this.getMethods(route));\n\n\t\tthis.ensurePotentialEarlyExit(request, response, route);\n\t}\n\n\tprivate getMethods(route: Route | null) {\n\t\tif (route === null) {\n\t\t\tconst { methods } = this.routes;\n\t\t\tif (methods.size === 0) return '';\n\t\t\tif (methods.size === 1) return methods.firstKey()!;\n\t\t\treturn [...methods.keys()].join(', ');\n\t\t}\n\n\t\tif (route.methods.size === 0) return '';\n\t\tif (route.methods.size === 1) return route.methods.keys().next().value;\n\t\treturn [...route.methods].join(', ');\n\t}\n\n\t/**\n\t * **RFC 7231 4.3.7.**\n\t * > This method allows a client to determine the options and/or requirements associated with a\n\t * > resource, or the capabilities of a server, without implying a resource action.\n\t *\n\t * This method ensures that the request is exited early in case required\n\t * The conditions in which an early exit is required are:\n\t * 1. If the request method is 'OPTIONS'. In this case the request is returned with status code 200\n\t * 2. If the requested route isn't matched with any existing route in the RouteStore.\n\t * In this case the request is returned with a status code 404.\n\t *\n\t * @param request The API Request coming in\n\t * @param response The API response that will go out\n\t * @param route The route being requested by the request\n\t */\n\tprivate ensurePotentialEarlyExit(request: Middleware.Request, response: Middleware.Response, route: Route | null) {\n\t\tif (request.method === 'OPTIONS') {\n\t\t\tif (!route || !route.methods.has('OPTIONS')) {\n\t\t\t\tresponse.end();\n\t\t\t}\n\t\t} else if (route === null) {\n\t\t\tresponse.status(HttpCodes.NotFound).end();\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/middlewares/headers.ts"],"names":["Middleware","HttpCodes"],"mappings":";;;;;;;;;AAKO,IAAM,iBAAA,GAAN,MAAM,iBAAA,SAAyBA,yBAAW,CAAA;AAAA,EAIzC,YAAY,OAAmC,EAAA;AACrD,IAAA,KAAA,CAAM,OAAS,EAAA,EAAE,QAAU,EAAA,EAAA,EAAI,CAAA,CAAA;AAJhC,IAAiB,aAAA,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;AACjB,IAAiB,aAAA,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;AAIhB,IAAA,IAAA,CAAK,MAAS,GAAA,IAAA,CAAK,SAAU,CAAA,MAAA,CAAO,QAAQ,MAAU,IAAA,GAAA,CAAA;AACtD,IAAA,IAAA,CAAK,MAAS,GAAA,IAAA,CAAK,SAAU,CAAA,MAAA,CAAO,IAAI,QAAQ,CAAA,CAAA;AAAA,GACjD;AAAA,EAEgB,GAAA,CAAI,SAA6B,QAA+B,EAAA;AAC/E,IAAA,QAAA,CAAS,UAAU,MAAQ,EAAA,iBAAA,IAAI,IAAK,EAAA,EAAE,aAAa,CAAA,CAAA;AACnD,IAAS,QAAA,CAAA,SAAA,CAAU,oCAAoC,MAAM,CAAA,CAAA;AAC7D,IAAS,QAAA,CAAA,SAAA,CAAU,6BAA+B,EAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AAC7D,IAAS,QAAA,CAAA,SAAA,CAAU,gCAAgC,yCAAyC,CAAA,CAAA;AAC5F,IAAA,QAAA,CAAS,UAAU,8BAAgC,EAAA,IAAA,CAAK,WAAW,OAAQ,CAAA,KAAA,IAAS,IAAI,CAAC,CAAA,CAAA;AAEzF,IAAK,IAAA,CAAA,wBAAA,CAAyB,SAAS,QAAQ,CAAA,CAAA;AAAA,GAChD;AAAA,EAEQ,WAAW,KAAqB,EAAA;AACvC,IAAA,IAAI,UAAU,IAAM,EAAA;AACnB,MAAA,OAAO,IAAK,CAAA,MAAA,CAAO,MAAO,CAAA,gBAAA,CAAiB,KAAK,IAAI,CAAA,CAAA;AAAA,KACrD;AAEA,IAAA,IAAI,KAAM,CAAA,OAAA,CAAQ,IAAS,KAAA,CAAA,EAAU,OAAA,EAAA,CAAA;AACrC,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,IAAA,KAAS,CAAG,EAAA,OAAO,MAAM,OAAQ,CAAA,IAAA,EAAO,CAAA,IAAA,EAAO,CAAA,KAAA,CAAA;AACjE,IAAA,OAAO,CAAC,GAAG,KAAA,CAAM,OAAO,CAAA,CAAE,KAAK,IAAI,CAAA,CAAA;AAAA,GACpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBQ,yBAAyB,EAAE,MAAA,EAAQ,KAAO,EAAA,UAAA,IAAkC,QAA+B,EAAA;AAClH,IAAA,IAAI,WAAW,SAAW,EAAA;AACzB,MAAA,IAAI,CAAC,KAAS,IAAA,CAAC,MAAM,OAAQ,CAAA,GAAA,CAAI,SAAS,CAAG,EAAA;AAC5C,QAAA,QAAA,CAAS,GAAI,EAAA,CAAA;AAAA,OACd;AAAA,KACD,MAAA,IAAW,eAAe,IAAM,EAAA;AAC/B,MAAA,QAAA,CAAS,MAAO,CAAAC,uBAAA,CAAU,QAAQ,CAAA,CAAE,GAAI,EAAA,CAAA;AAAA,KACzC,MAAA,IAAW,UAAU,IAAM,EAAA;AAC1B,MAAA,QAAA,CAAS,MAAO,CAAAA,uBAAA,CAAU,gBAAgB,CAAA,CAAE,GAAI,EAAA,CAAA;AAAA,KACjD;AAAA,GACD;AACD,CAAA,CAAA;AAxDiD,MAAA,CAAA,iBAAA,EAAA,kBAAA,CAAA,CAAA;AAA1C,IAAM,gBAAN,GAAA","file":"headers.cjs","sourcesContent":["import { Middleware } from '../lib/structures/Middleware';\nimport type { Route } from '../lib/structures/Route';\nimport type { RouteStore } from '../lib/structures/RouteStore';\nimport { HttpCodes } from '../lib/structures/http/HttpCodes';\n\nexport class PluginMiddleware extends Middleware {\n\tprivate readonly origin: string;\n\tprivate readonly routes: RouteStore;\n\n\tpublic constructor(context: Middleware.LoaderContext) {\n\t\tsuper(context, { position: 10 });\n\t\tthis.origin = this.container.server.options.origin ?? '*';\n\t\tthis.routes = this.container.stores.get('routes');\n\t}\n\n\tpublic override run(request: Middleware.Request, response: Middleware.Response) {\n\t\tresponse.setHeader('Date', new Date().toUTCString());\n\t\tresponse.setHeader('Access-Control-Allow-Credentials', 'true');\n\t\tresponse.setHeader('Access-Control-Allow-Origin', this.origin);\n\t\tresponse.setHeader('Access-Control-Allow-Headers', 'Authorization, User-Agent, Content-Type');\n\t\tresponse.setHeader('Access-Control-Allow-Methods', this.getMethods(request.route ?? null));\n\n\t\tthis.ensurePotentialEarlyExit(request, response);\n\t}\n\n\tprivate getMethods(route: Route | null) {\n\t\tif (route === null) {\n\t\t\treturn this.routes.router.supportedMethods.join(', ');\n\t\t}\n\n\t\tif (route.methods.size === 0) return '';\n\t\tif (route.methods.size === 1) return route.methods.keys().next().value;\n\t\treturn [...route.methods].join(', ');\n\t}\n\n\t/**\n\t * **RFC 7231 4.3.7.**\n\t * > This method allows a client to determine the options and/or requirements associated with a\n\t * > resource, or the capabilities of a server, without implying a resource action.\n\t *\n\t * This method ensures that the request is exited early in case required\n\t * The conditions in which an early exit is required are:\n\t * 1. If the request method is 'OPTIONS'. In this case the request is returned with status code 200\n\t * 2. If the requested route isn't matched with any existing route in the RouteStore.\n\t * In this case the request is returned with a status code 404.\n\t *\n\t * @param request The API Request coming in\n\t * @param response The API response that will go out\n\t * @param route The route being requested by the request\n\t */\n\tprivate ensurePotentialEarlyExit({ method, route, routerNode }: Middleware.Request, response: Middleware.Response) {\n\t\tif (method === 'OPTIONS') {\n\t\t\tif (!route || !route.methods.has('OPTIONS')) {\n\t\t\t\tresponse.end();\n\t\t\t}\n\t\t} else if (routerNode === null) {\n\t\t\tresponse.status(HttpCodes.NotFound).end();\n\t\t} else if (route === null) {\n\t\t\tresponse.status(HttpCodes.MethodNotAllowed).end();\n\t\t}\n\t}\n}\n"]}
@@ -33,5 +33,5 @@ framework.SapphireClient.plugins.registerPostInitializationHook(Api[framework.po
33
33
  framework.SapphireClient.plugins.registerPreLoginHook(Api[framework.preLogin], "API-PreLogin");
34
34
 
35
35
  exports.Api = Api;
36
- //# sourceMappingURL=out.js.map
36
+ //# sourceMappingURL=register.cjs.map
37
37
  //# sourceMappingURL=register.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/register.ts"],"names":[],"mappings":";;;;AAAA,OAAO;AAEP,SAAS,QAAQ,oBAAoB,UAAU,sBAAsB;AAErE,SAAS,eAAe,kBAAkB,iBAAiB,YAAY,cAAc;AAK9E,IAAM,OAAN,MAAM,aAAY,OAAO;AAAA;AAAA;AAAA;AAAA,EAI/B,QAAe,kBAAkB,EAAwB,SAA8B;AACtF,SAAK,SAAS,IAAI,OAAO,QAAQ,GAAG;AACpC,SAAK,OACH,SAAS,KAAK,OAAO,MAAM,EAC3B,SAAS,KAAK,OAAO,YAAY,EACjC,SAAS,KAAK,OAAO,WAAW;AAElC,kBAAc;AACd,qBAAiB;AACjB,oBAAgB;AAChB,eAAW;AAAA,EACZ;AAAA;AAAA;AAAA;AAAA,EAKA,cAAqB,QAAQ,IAAuC;AACnE,QAAI,EAAE,KAAK,OAAO,QAAQ,wBAAwB,OAAO;AACxD;AAAA,IACD;AAEA,UAAM,KAAK,OAAO,QAAQ;AAAA,EAC3B;AACD;AA3BgC;AAAzB,IAAM,MAAN;AA6BP,eAAe,QAAQ,+BAA+B,IAAI,kBAAkB,GAAG,wBAAwB;AACvG,eAAe,QAAQ,qBAAqB,IAAI,QAAQ,GAAG,cAAc","sourcesContent":["import './index';\n\nimport { Plugin, postInitialization, preLogin, SapphireClient } from '@sapphire/framework';\nimport type { ClientOptions } from 'discord.js';\nimport { loadListeners, loadMediaParsers, loadMiddlewares, loadRoutes, Server } from './index';\n\n/**\n * @since 1.0.0\n */\nexport class Api extends Plugin {\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [postInitialization](this: SapphireClient, options: ClientOptions): void {\n\t\tthis.server = new Server(options.api);\n\t\tthis.stores\n\t\t\t.register(this.server.routes) //\n\t\t\t.register(this.server.mediaParsers)\n\t\t\t.register(this.server.middlewares);\n\n\t\tloadListeners();\n\t\tloadMediaParsers();\n\t\tloadMiddlewares();\n\t\tloadRoutes();\n\t}\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static async [preLogin](this: SapphireClient): Promise<void> {\n\t\tif (!(this.server.options.automaticallyConnect ?? true)) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait this.server.connect();\n\t}\n}\n\nSapphireClient.plugins.registerPostInitializationHook(Api[postInitialization], 'API-PostInitialization');\nSapphireClient.plugins.registerPreLoginHook(Api[preLogin], 'API-PreLogin');\n"]}
1
+ {"version":3,"sources":["../../src/register.ts"],"names":["Plugin","postInitialization","Server","loadListeners","loadMediaParsers","loadMiddlewares","loadRoutes","preLogin","SapphireClient"],"mappings":";;;;;;;AASO,IAAM,IAAA,GAAN,MAAM,IAAA,SAAYA,gBAAO,CAAA;AAAA;AAAA;AAAA;AAAA,EAI/B,QAAeC,4BAAkB,CAAA,CAAwB,OAA8B,EAAA;AACtF,IAAA,IAAA,CAAK,MAAS,GAAA,IAAIC,gBAAO,CAAA,OAAA,CAAQ,GAAG,CAAA,CAAA;AACpC,IAAA,IAAA,CAAK,MACH,CAAA,QAAA,CAAS,IAAK,CAAA,MAAA,CAAO,MAAM,CAC3B,CAAA,QAAA,CAAS,IAAK,CAAA,MAAA,CAAO,YAAY,CAAA,CACjC,QAAS,CAAA,IAAA,CAAK,OAAO,WAAW,CAAA,CAAA;AAElC,IAAcC,uBAAA,EAAA,CAAA;AACd,IAAiBC,0BAAA,EAAA,CAAA;AACjB,IAAgBC,yBAAA,EAAA,CAAA;AAChB,IAAWC,oBAAA,EAAA,CAAA;AAAA,GACZ;AAAA;AAAA;AAAA;AAAA,EAKA,cAAqBC,kBAAQ,CAAuC,GAAA;AACnE,IAAA,IAAI,EAAE,IAAA,CAAK,MAAO,CAAA,OAAA,CAAQ,wBAAwB,IAAO,CAAA,EAAA;AACxD,MAAA,OAAA;AAAA,KACD;AAEA,IAAM,MAAA,IAAA,CAAK,OAAO,OAAQ,EAAA,CAAA;AAAA,GAC3B;AACD,CAAA,CAAA;AA3BgC,MAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAAzB,IAAM,GAAN,GAAA,KAAA;AA6BPC,wBAAA,CAAe,OAAQ,CAAA,8BAAA,CAA+B,GAAI,CAAAP,4BAAkB,GAAG,wBAAwB,CAAA,CAAA;AACvGO,wBAAA,CAAe,OAAQ,CAAA,oBAAA,CAAqB,GAAI,CAAAD,kBAAQ,GAAG,cAAc,CAAA","file":"register.cjs","sourcesContent":["import './index';\n\nimport { Plugin, postInitialization, preLogin, SapphireClient } from '@sapphire/framework';\nimport type { ClientOptions } from 'discord.js';\nimport { loadListeners, loadMediaParsers, loadMiddlewares, loadRoutes, Server } from './index';\n\n/**\n * @since 1.0.0\n */\nexport class Api extends Plugin {\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [postInitialization](this: SapphireClient, options: ClientOptions): void {\n\t\tthis.server = new Server(options.api);\n\t\tthis.stores\n\t\t\t.register(this.server.routes) //\n\t\t\t.register(this.server.mediaParsers)\n\t\t\t.register(this.server.middlewares);\n\n\t\tloadListeners();\n\t\tloadMediaParsers();\n\t\tloadMiddlewares();\n\t\tloadRoutes();\n\t}\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static async [preLogin](this: SapphireClient): Promise<void> {\n\t\tif (!(this.server.options.automaticallyConnect ?? true)) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait this.server.connect();\n\t}\n}\n\nSapphireClient.plugins.registerPostInitializationHook(Api[postInitialization], 'API-PostInitialization');\nSapphireClient.plugins.registerPreLoginHook(Api[preLogin], 'API-PreLogin');\n"]}
@@ -14,5 +14,5 @@ function loadRoutes() {
14
14
  __name(loadRoutes, "loadRoutes");
15
15
 
16
16
  exports.loadRoutes = loadRoutes;
17
- //# sourceMappingURL=out.js.map
17
+ //# sourceMappingURL=_load.cjs.map
18
18
  //# sourceMappingURL=_load.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/routes/_load.ts"],"names":[],"mappings":";;;;AAAA,SAAS,iBAAiB;AAC1B,SAAS,eAAe,2BAA2B;AACnD,SAAS,eAAe,yBAAyB;AAE1C,SAAS,aAAa;AAC5B,QAAM,QAAQ;AACd,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,YAAY,OAAO,qBAAqB,MAAM,CAAC;AACvF,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,UAAU,OAAO,mBAAmB,MAAM,CAAC;AACpF;AAJgB","sourcesContent":["import { container } from '@sapphire/pieces';\nimport { PluginRoute as PluginOAuthCallback } from './oauth/callback.post';\nimport { PluginRoute as PluginOAuthLogout } from './oauth/logout.post';\n\nexport function loadRoutes() {\n\tconst store = 'routes' as const;\n\tvoid container.stores.loadPiece({ name: 'callback', piece: PluginOAuthCallback, store });\n\tvoid container.stores.loadPiece({ name: 'logout', piece: PluginOAuthLogout, store });\n}\n"]}
1
+ {"version":3,"sources":["../../../src/routes/_load.ts"],"names":["container","PluginOAuthCallback","PluginOAuthLogout"],"mappings":";;;;;;;;AAIO,SAAS,UAAa,GAAA;AAC5B,EAAA,MAAM,KAAQ,GAAA,QAAA,CAAA;AACd,EAAK,KAAAA,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,UAAY,EAAA,KAAA,EAAOC,6BAAqB,EAAA,KAAA,EAAO,CAAA,CAAA;AACvF,EAAK,KAAAD,gBAAA,CAAU,OAAO,SAAU,CAAA,EAAE,MAAM,QAAU,EAAA,KAAA,EAAOE,2BAAmB,EAAA,KAAA,EAAO,CAAA,CAAA;AACpF,CAAA;AAJgB,MAAA,CAAA,UAAA,EAAA,YAAA,CAAA","file":"_load.cjs","sourcesContent":["import { container } from '@sapphire/pieces';\nimport { PluginRoute as PluginOAuthCallback } from './oauth/callback.post';\nimport { PluginRoute as PluginOAuthLogout } from './oauth/logout.post';\n\nexport function loadRoutes() {\n\tconst store = 'routes' as const;\n\tvoid container.stores.loadPiece({ name: 'callback', piece: PluginOAuthCallback, store });\n\tvoid container.stores.loadPiece({ name: 'logout', piece: PluginOAuthLogout, store });\n}\n"]}