@mathisalarcon/discord-bot-dashboard-api 1.0.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 (41) hide show
  1. package/.http +4 -0
  2. package/dist/index.d.ts +8 -0
  3. package/dist/index.js +230 -0
  4. package/dist/routes/guilds/[guildId]/members/[memberId]/permissions/route.d.ts +3 -0
  5. package/dist/routes/guilds/[guildId]/members/[memberId]/permissions/route.js +72 -0
  6. package/dist/routes/guilds/[guildId]/members/[memberId]/roles/[roleId]/route.d.ts +9 -0
  7. package/dist/routes/guilds/[guildId]/members/[memberId]/roles/[roleId]/route.js +225 -0
  8. package/dist/routes/guilds/[guildId]/members/[memberId]/roles/route.d.ts +3 -0
  9. package/dist/routes/guilds/[guildId]/members/[memberId]/roles/route.js +74 -0
  10. package/dist/routes/guilds/[guildId]/members/[memberId]/route.d.ts +7 -0
  11. package/dist/routes/guilds/[guildId]/members/[memberId]/route.js +72 -0
  12. package/dist/routes/guilds/[guildId]/members/route.d.ts +3 -0
  13. package/dist/routes/guilds/[guildId]/members/route.js +73 -0
  14. package/dist/routes/guilds/[guildId]/roles/[roleId]/members/route.d.ts +3 -0
  15. package/dist/routes/guilds/[guildId]/roles/[roleId]/members/route.js +70 -0
  16. package/dist/routes/guilds/[guildId]/roles/[roleId]/route.d.ts +7 -0
  17. package/dist/routes/guilds/[guildId]/roles/[roleId]/route.js +68 -0
  18. package/dist/routes/guilds/[guildId]/roles/route.d.ts +3 -0
  19. package/dist/routes/guilds/[guildId]/roles/route.js +67 -0
  20. package/dist/routes/guilds/[guildId]/route.d.ts +6 -0
  21. package/dist/routes/guilds/[guildId]/route.js +63 -0
  22. package/dist/routes/guilds/route.d.ts +3 -0
  23. package/dist/routes/guilds/route.js +68 -0
  24. package/dist/routes/middleware.d.ts +2 -0
  25. package/dist/routes/middleware.js +54 -0
  26. package/docs.md +13 -0
  27. package/package.json +28 -0
  28. package/src/index.ts +143 -0
  29. package/src/routes/guilds/[guildId]/members/[memberId]/permissions/route.ts +26 -0
  30. package/src/routes/guilds/[guildId]/members/[memberId]/roles/[roleId]/route.ts +163 -0
  31. package/src/routes/guilds/[guildId]/members/[memberId]/roles/route.ts +29 -0
  32. package/src/routes/guilds/[guildId]/members/[memberId]/route.ts +29 -0
  33. package/src/routes/guilds/[guildId]/members/route.ts +32 -0
  34. package/src/routes/guilds/[guildId]/roles/[roleId]/members/route.ts +25 -0
  35. package/src/routes/guilds/[guildId]/roles/[roleId]/route.ts +27 -0
  36. package/src/routes/guilds/[guildId]/roles/route.ts +22 -0
  37. package/src/routes/guilds/[guildId]/route.ts +23 -0
  38. package/src/routes/guilds/route.ts +28 -0
  39. package/src/routes/middleware.ts +14 -0
  40. package/src/types/express.d.ts +11 -0
  41. package/tsconfig.json +15 -0
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.GET = GET;
40
+ function GET(req, res, client) {
41
+ return __awaiter(this, void 0, void 0, function () {
42
+ var _a, guildId, memberId, guild, member, error_1;
43
+ return __generator(this, function (_b) {
44
+ switch (_b.label) {
45
+ case 0:
46
+ _a = req.params, guildId = _a.guildId, memberId = _a.memberId;
47
+ _b.label = 1;
48
+ case 1:
49
+ _b.trys.push([1, 4, , 5]);
50
+ return [4 /*yield*/, client.guilds.fetch(guildId).catch(function () { return null; })];
51
+ case 2:
52
+ guild = _b.sent();
53
+ if (!guild)
54
+ return [2 /*return*/, res.status(404).json({ error: "Guild not found", code: "GUILD_NOT_FOUND" })];
55
+ return [4 /*yield*/, guild.members
56
+ .fetch({
57
+ user: memberId,
58
+ })
59
+ .catch(function () { return null; })];
60
+ case 3:
61
+ member = _b.sent();
62
+ if (!member)
63
+ return [2 /*return*/, res.status(404).json({ error: "Member not found", code: "MEMBER_NOT_FOUND" })];
64
+ return [2 /*return*/, res.status(200).json(member.toJSON())];
65
+ case 4:
66
+ error_1 = _b.sent();
67
+ return [2 /*return*/, res.status(500).json({ error: "Internal Server Error", code: "INTERNAL_SERVER_ERROR" })];
68
+ case 5: return [2 /*return*/];
69
+ }
70
+ });
71
+ });
72
+ }
@@ -0,0 +1,3 @@
1
+ import express from "express";
2
+ import { Client } from "discord.js";
3
+ export declare function GET(req: express.Request, res: express.Response, client: Client): Promise<express.Response<any, Record<string, any>>>;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.GET = GET;
40
+ function GET(req, res, client) {
41
+ return __awaiter(this, void 0, void 0, function () {
42
+ var guildId, limit, after, guild, members, membersArray, startIndex, paginatedMembers, error_1;
43
+ return __generator(this, function (_a) {
44
+ switch (_a.label) {
45
+ case 0:
46
+ guildId = req.params.guildId;
47
+ limit = req.query.limit ? Number(req.query.limit) : 50;
48
+ after = req.query.after ? req.query.after : null;
49
+ _a.label = 1;
50
+ case 1:
51
+ _a.trys.push([1, 4, , 5]);
52
+ return [4 /*yield*/, client.guilds.fetch(guildId).catch(function () { return null; })];
53
+ case 2:
54
+ guild = _a.sent();
55
+ if (!guild)
56
+ return [2 /*return*/, res.status(404).json({ error: "Guild not found", code: "GUILD_NOT_FOUND" })];
57
+ return [4 /*yield*/, guild.members.fetch()];
58
+ case 3:
59
+ members = _a.sent();
60
+ membersArray = Array.from(members.values());
61
+ startIndex = after
62
+ ? membersArray.findIndex(function (m) { return m.id === after; }) + 1
63
+ : 0;
64
+ paginatedMembers = membersArray.slice(startIndex, startIndex + limit);
65
+ return [2 /*return*/, res.status(200).json(paginatedMembers)];
66
+ case 4:
67
+ error_1 = _a.sent();
68
+ return [2 /*return*/, res.status(500).json({ error: "Internal Server Error", code: "INTERNAL_SERVER_ERROR" })];
69
+ case 5: return [2 /*return*/];
70
+ }
71
+ });
72
+ });
73
+ }
@@ -0,0 +1,3 @@
1
+ import express from "express";
2
+ import { Client } from "discord.js";
3
+ export declare function GET(req: express.Request, res: express.Response, client: Client): Promise<express.Response<any, Record<string, any>>>;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.GET = GET;
40
+ function GET(req, res, client) {
41
+ return __awaiter(this, void 0, void 0, function () {
42
+ var _a, guildId, roleId, guild, role, error_1;
43
+ return __generator(this, function (_b) {
44
+ switch (_b.label) {
45
+ case 0:
46
+ _a = req.params, guildId = _a.guildId, roleId = _a.roleId;
47
+ _b.label = 1;
48
+ case 1:
49
+ _b.trys.push([1, 4, , 5]);
50
+ return [4 /*yield*/, client.guilds.fetch(guildId).catch(function () { return null; })];
51
+ case 2:
52
+ guild = _b.sent();
53
+ if (!guild)
54
+ return [2 /*return*/, res.status(404).json({ error: "Guild not found", code: "GUILD_NOT_FOUND" })];
55
+ return [4 /*yield*/, guild.roles.fetch(roleId).catch(function () { return null; })];
56
+ case 3:
57
+ role = _b.sent();
58
+ if (!role)
59
+ return [2 /*return*/, res.status(404).json({ error: "Role not found", code: "ROLE_NOT_FOUND" })];
60
+ return [2 /*return*/, res
61
+ .status(200)
62
+ .json(role.members.map(function (member) { return member.toJSON(); }))];
63
+ case 4:
64
+ error_1 = _b.sent();
65
+ return [2 /*return*/, res.status(500).json({ error: "Internal Server Error", code: "INTERNAL_SERVER_ERROR" })];
66
+ case 5: return [2 /*return*/];
67
+ }
68
+ });
69
+ });
70
+ }
@@ -0,0 +1,7 @@
1
+ import express from "express";
2
+ import { Client } from "discord.js";
3
+ import { Params as SubParams } from "../../route";
4
+ export type Params = SubParams & {
5
+ roleId: string;
6
+ };
7
+ export declare function GET(req: express.Request, res: express.Response, client: Client): Promise<express.Response<any, Record<string, any>>>;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.GET = GET;
40
+ function GET(req, res, client) {
41
+ return __awaiter(this, void 0, void 0, function () {
42
+ var _a, guildId, roleId, guild, role, error_1;
43
+ return __generator(this, function (_b) {
44
+ switch (_b.label) {
45
+ case 0:
46
+ _a = req.params, guildId = _a.guildId, roleId = _a.roleId;
47
+ _b.label = 1;
48
+ case 1:
49
+ _b.trys.push([1, 4, , 5]);
50
+ return [4 /*yield*/, client.guilds.fetch(guildId).catch(function () { return null; })];
51
+ case 2:
52
+ guild = _b.sent();
53
+ if (!guild)
54
+ return [2 /*return*/, res.status(404).json({ error: "Guild not found", code: "GUILD_NOT_FOUND" })];
55
+ return [4 /*yield*/, guild.roles.fetch(roleId).catch(function () { return null; })];
56
+ case 3:
57
+ role = _b.sent();
58
+ if (!role)
59
+ return [2 /*return*/, res.status(404).json({ error: "Role not found", code: "ROLE_NOT_FOUND" })];
60
+ return [2 /*return*/, res.status(200).json(role.toJSON())];
61
+ case 4:
62
+ error_1 = _b.sent();
63
+ return [2 /*return*/, res.status(500).json({ error: "Internal Server Error", code: "INTERNAL_SERVER_ERROR" })];
64
+ case 5: return [2 /*return*/];
65
+ }
66
+ });
67
+ });
68
+ }
@@ -0,0 +1,3 @@
1
+ import express from "express";
2
+ import { Client } from "discord.js";
3
+ export declare function GET(req: express.Request, res: express.Response, client: Client): Promise<express.Response<any, Record<string, any>>>;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.GET = GET;
40
+ function GET(req, res, client) {
41
+ return __awaiter(this, void 0, void 0, function () {
42
+ var guildId, guild, roles, rolesJSON, error_1;
43
+ return __generator(this, function (_a) {
44
+ switch (_a.label) {
45
+ case 0:
46
+ guildId = req.params.guildId;
47
+ _a.label = 1;
48
+ case 1:
49
+ _a.trys.push([1, 4, , 5]);
50
+ return [4 /*yield*/, client.guilds.fetch(guildId).catch(function () { return null; })];
51
+ case 2:
52
+ guild = _a.sent();
53
+ if (!guild)
54
+ return [2 /*return*/, res.status(404).json({ error: "Guild not found", code: "GUILD_NOT_FOUND" })];
55
+ return [4 /*yield*/, guild.roles.fetch()];
56
+ case 3:
57
+ roles = _a.sent();
58
+ rolesJSON = Array.from(roles.values()).map(function (role) { return role.toJSON(); });
59
+ return [2 /*return*/, res.status(200).json(rolesJSON)];
60
+ case 4:
61
+ error_1 = _a.sent();
62
+ return [2 /*return*/, res.status(500).json({ error: "Internal Server Error", code: "INTERNAL_SERVER_ERROR" })];
63
+ case 5: return [2 /*return*/];
64
+ }
65
+ });
66
+ });
67
+ }
@@ -0,0 +1,6 @@
1
+ import express from "express";
2
+ import { Client } from "discord.js";
3
+ export type Params = {
4
+ guildId: string;
5
+ };
6
+ export declare function GET(req: express.Request, res: express.Response, client: Client): Promise<express.Response<any, Record<string, any>>>;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.GET = GET;
40
+ function GET(req, res, client) {
41
+ return __awaiter(this, void 0, void 0, function () {
42
+ var guildId, guild, error_1;
43
+ return __generator(this, function (_a) {
44
+ switch (_a.label) {
45
+ case 0:
46
+ guildId = req.params.guildId;
47
+ _a.label = 1;
48
+ case 1:
49
+ _a.trys.push([1, 3, , 4]);
50
+ return [4 /*yield*/, client.guilds.fetch(guildId).catch(function () { return null; })];
51
+ case 2:
52
+ guild = _a.sent();
53
+ if (!guild)
54
+ return [2 /*return*/, res.status(404).json({ error: "Guild not found", code: "GUILD_NOT_FOUND" })];
55
+ return [2 /*return*/, res.status(200).json(guild.toJSON())];
56
+ case 3:
57
+ error_1 = _a.sent();
58
+ return [2 /*return*/, res.status(500).json({ error: "Internal Server Error", code: "INTERNAL_SERVER_ERROR" })];
59
+ case 4: return [2 /*return*/];
60
+ }
61
+ });
62
+ });
63
+ }
@@ -0,0 +1,3 @@
1
+ import express from "express";
2
+ import { Client } from "discord.js";
3
+ export declare function GET(req: express.Request, res: express.Response, client: Client): Promise<express.Response<any, Record<string, any>>>;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.GET = GET;
40
+ function GET(req, res, client) {
41
+ return __awaiter(this, void 0, void 0, function () {
42
+ var limit, after, guilds, _a, _b, startIndex, paginatedGuilds, guildsJSON, error_1;
43
+ return __generator(this, function (_c) {
44
+ switch (_c.label) {
45
+ case 0:
46
+ limit = req.query.limit ? Number(req.query.limit) : 50;
47
+ after = req.query.after ? req.query.after : null;
48
+ _c.label = 1;
49
+ case 1:
50
+ _c.trys.push([1, 3, , 4]);
51
+ _b = (_a = Array).from;
52
+ return [4 /*yield*/, client.guilds.fetch().then(function (g) { return g.values(); })];
53
+ case 2:
54
+ guilds = _b.apply(_a, [_c.sent()]);
55
+ startIndex = after
56
+ ? guilds.findIndex(function (g) { return g.id === after; }) + 1
57
+ : 0;
58
+ paginatedGuilds = guilds.slice(startIndex, startIndex + limit);
59
+ guildsJSON = paginatedGuilds.map(function (guild) { return guild.toJSON(); });
60
+ return [2 /*return*/, res.status(200).json(guildsJSON)];
61
+ case 3:
62
+ error_1 = _c.sent();
63
+ return [2 /*return*/, res.status(500).json({ error: "Internal Server Error", code: "INTERNAL_SERVER_ERROR" })];
64
+ case 4: return [2 /*return*/];
65
+ }
66
+ });
67
+ });
68
+ }
@@ -0,0 +1,2 @@
1
+ import { Client } from "discord.js";
2
+ export default function (req: any, res: any, next: any, client: Client): Promise<any>;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.default = default_1;
40
+ function default_1(req, res, next, client) {
41
+ return __awaiter(this, void 0, void 0, function () {
42
+ return __generator(this, function (_a) {
43
+ // Check if bot token is provided
44
+ if (!req.headers["authorization"])
45
+ return [2 /*return*/, res
46
+ .status(401)
47
+ .send({ error: "Unauthorized", code: "UNAUTHORIZED" })];
48
+ if (req.headers["authorization"] !== req.app.get("secret"))
49
+ return [2 /*return*/, res.status(403).send({ error: "Forbidden", code: "FORBIDDEN" })];
50
+ next();
51
+ return [2 /*return*/];
52
+ });
53
+ });
54
+ }
package/docs.md ADDED
@@ -0,0 +1,13 @@
1
+ <!-- Error codes -->
2
+ | Error Code | Description |
3
+ |------------|---------------------------------|
4
+ | UNAUTHORIZED | Missing or invalid authentication |
5
+ | FORBIDDEN | Insufficient permissions |
6
+ | INTERNAL_SERVER_ERROR | An unexpected error occurred |
7
+ | GUILD_NOT_FOUND | The specified guild does not exist |
8
+ | MEMBER_NOT_FOUND | The specified member does not exist |
9
+ | ROLE_NOT_FOUND | The specified role does not exist |
10
+ | BOT_MEMBER_NOT_FOUND | The bot is not a member of the guild |
11
+ | BOT_MISSING_PERMISSIONS | The bot lacks necessary permissions |
12
+ | BOT_ROLE_HIERARCHY | The bot's role is not high enough to perform the action |
13
+ | ALREADY_EXISTS | The action cannot be performed because the entity is already in the desired state |
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@mathisalarcon/discord-bot-dashboard-api",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "npx tsc",
9
+ "build:watch": "npx tsc --watch",
10
+ "dev": "node dist/.test.js"
11
+ },
12
+ "keywords": [],
13
+ "author": "",
14
+ "license": "ISC",
15
+ "type": "commonjs",
16
+ "devDependencies": {
17
+ "@types/express": "^5.0.6",
18
+ "@types/node": "^25.0.6",
19
+ "nodemon": "^3.1.11",
20
+ "ts-node": "^10.9.2",
21
+ "typescript": "^5.9.3"
22
+ },
23
+ "dependencies": {
24
+ "discord.js": "^14.25.1",
25
+ "dotenv": "^17.2.3",
26
+ "express": "^5.2.1"
27
+ }
28
+ }