@mostfeatured/dbi 0.0.2 → 0.0.5

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 (103) hide show
  1. package/package.json +3 -2
  2. package/src/DBI.ts +1 -1
  3. package/dist/src/DBI.d.ts +0 -78
  4. package/dist/src/DBI.d.ts.map +0 -1
  5. package/dist/src/DBI.js +0 -202
  6. package/dist/src/DBI.js.map +0 -1
  7. package/dist/src/Events.d.ts +0 -29
  8. package/dist/src/Events.d.ts.map +0 -1
  9. package/dist/src/Events.js +0 -51
  10. package/dist/src/Events.js.map +0 -1
  11. package/dist/src/data/eventMap.json +0 -234
  12. package/dist/src/index.d.ts +0 -4
  13. package/dist/src/index.d.ts.map +0 -1
  14. package/dist/src/index.js +0 -11
  15. package/dist/src/index.js.map +0 -1
  16. package/dist/src/methods/hookEventListeners.d.ts +0 -3
  17. package/dist/src/methods/hookEventListeners.d.ts.map +0 -1
  18. package/dist/src/methods/hookEventListeners.js +0 -34
  19. package/dist/src/methods/hookEventListeners.js.map +0 -1
  20. package/dist/src/methods/hookInteractionListeners.d.ts +0 -3
  21. package/dist/src/methods/hookInteractionListeners.d.ts.map +0 -1
  22. package/dist/src/methods/hookInteractionListeners.js +0 -97
  23. package/dist/src/methods/hookInteractionListeners.js.map +0 -1
  24. package/dist/src/methods/publishInteractions.d.ts +0 -4
  25. package/dist/src/methods/publishInteractions.d.ts.map +0 -1
  26. package/dist/src/methods/publishInteractions.js +0 -150
  27. package/dist/src/methods/publishInteractions.js.map +0 -1
  28. package/dist/src/types/Button.d.ts +0 -19
  29. package/dist/src/types/Button.d.ts.map +0 -1
  30. package/dist/src/types/Button.js +0 -27
  31. package/dist/src/types/Button.js.map +0 -1
  32. package/dist/src/types/ChatInput/ChatInput.d.ts +0 -15
  33. package/dist/src/types/ChatInput/ChatInput.d.ts.map +0 -1
  34. package/dist/src/types/ChatInput/ChatInput.js +0 -19
  35. package/dist/src/types/ChatInput/ChatInput.js.map +0 -1
  36. package/dist/src/types/ChatInput/ChatInputOptions.d.ts +0 -153
  37. package/dist/src/types/ChatInput/ChatInputOptions.d.ts.map +0 -1
  38. package/dist/src/types/ChatInput/ChatInputOptions.js +0 -149
  39. package/dist/src/types/ChatInput/ChatInputOptions.js.map +0 -1
  40. package/dist/src/types/Event.d.ts +0 -257
  41. package/dist/src/types/Event.d.ts.map +0 -1
  42. package/dist/src/types/Event.js +0 -21
  43. package/dist/src/types/Event.js.map +0 -1
  44. package/dist/src/types/Interaction.d.ts +0 -34
  45. package/dist/src/types/Interaction.d.ts.map +0 -1
  46. package/dist/src/types/Interaction.js +0 -25
  47. package/dist/src/types/Interaction.js.map +0 -1
  48. package/dist/src/types/Locale.d.ts +0 -19
  49. package/dist/src/types/Locale.d.ts.map +0 -1
  50. package/dist/src/types/Locale.js +0 -31
  51. package/dist/src/types/Locale.js.map +0 -1
  52. package/dist/src/types/MessageContextMenu.d.ts +0 -14
  53. package/dist/src/types/MessageContextMenu.d.ts.map +0 -1
  54. package/dist/src/types/MessageContextMenu.js +0 -17
  55. package/dist/src/types/MessageContextMenu.js.map +0 -1
  56. package/dist/src/types/Modal.d.ts +0 -19
  57. package/dist/src/types/Modal.d.ts.map +0 -1
  58. package/dist/src/types/Modal.js +0 -24
  59. package/dist/src/types/Modal.js.map +0 -1
  60. package/dist/src/types/SelectMenu.d.ts +0 -19
  61. package/dist/src/types/SelectMenu.d.ts.map +0 -1
  62. package/dist/src/types/SelectMenu.js +0 -27
  63. package/dist/src/types/SelectMenu.js.map +0 -1
  64. package/dist/src/types/UserContextMenu.d.ts +0 -14
  65. package/dist/src/types/UserContextMenu.d.ts.map +0 -1
  66. package/dist/src/types/UserContextMenu.js +0 -17
  67. package/dist/src/types/UserContextMenu.js.map +0 -1
  68. package/dist/src/utils/MemoryStore.d.ts +0 -9
  69. package/dist/src/utils/MemoryStore.d.ts.map +0 -1
  70. package/dist/src/utils/MemoryStore.js +0 -30
  71. package/dist/src/utils/MemoryStore.js.map +0 -1
  72. package/dist/src/utils/customId.d.ts +0 -7
  73. package/dist/src/utils/customId.d.ts.map +0 -1
  74. package/dist/src/utils/customId.js +0 -44
  75. package/dist/src/utils/customId.js.map +0 -1
  76. package/dist/src/utils/permissions.d.ts +0 -3
  77. package/dist/src/utils/permissions.d.ts.map +0 -1
  78. package/dist/src/utils/permissions.js +0 -9
  79. package/dist/src/utils/permissions.js.map +0 -1
  80. package/dist/src/utils/recursiveImport.d.ts +0 -2
  81. package/dist/src/utils/recursiveImport.d.ts.map +0 -1
  82. package/dist/src/utils/recursiveImport.js +0 -20
  83. package/dist/src/utils/recursiveImport.js.map +0 -1
  84. package/dist/test/commands/hello world.d.ts +0 -2
  85. package/dist/test/commands/hello world.d.ts.map +0 -1
  86. package/dist/test/commands/hello world.js +0 -46
  87. package/dist/test/commands/hello world.js.map +0 -1
  88. package/dist/test/commands/stuff.d.ts +0 -2
  89. package/dist/test/commands/stuff.d.ts.map +0 -1
  90. package/dist/test/commands/stuff.js +0 -22
  91. package/dist/test/commands/stuff.js.map +0 -1
  92. package/dist/test/index.d.ts +0 -2
  93. package/dist/test/index.d.ts.map +0 -1
  94. package/dist/test/index.js +0 -33
  95. package/dist/test/index.js.map +0 -1
  96. package/dist/test/publish.d.ts +0 -2
  97. package/dist/test/publish.d.ts.map +0 -1
  98. package/dist/test/publish.js +0 -5
  99. package/dist/test/publish.js.map +0 -1
  100. package/dist/test/things/test.d.ts +0 -2
  101. package/dist/test/things/test.d.ts.map +0 -1
  102. package/dist/test/things/test.js +0 -84
  103. package/dist/test/things/test.js.map +0 -1
@@ -1,234 +0,0 @@
1
- {
2
- "applicationCommandPermissionsUpdate": [
3
- "data"
4
- ],
5
- "cacheSweep": [
6
- "message"
7
- ],
8
- "channelCreate": [
9
- "channel"
10
- ],
11
- "channelDelete": [
12
- "channel"
13
- ],
14
- "channelPinsUpdate": [
15
- "channel",
16
- "date"
17
- ],
18
- "channelUpdate": [
19
- "oldChannel",
20
- "newChannel"
21
- ],
22
- "debug": [
23
- "message"
24
- ],
25
- "warn": [
26
- "message"
27
- ],
28
- "emojiCreate": [
29
- "emoji"
30
- ],
31
- "emojiDelete": [
32
- "emoji"
33
- ],
34
- "emojiUpdate": [
35
- "oldEmoji",
36
- "newEmoji"
37
- ],
38
- "error": [
39
- "error"
40
- ],
41
- "guildBanAdd": [
42
- "ban"
43
- ],
44
- "guildBanRemove": [
45
- "ban"
46
- ],
47
- "guildCreate": [
48
- "guild"
49
- ],
50
- "guildDelete": [
51
- "guild"
52
- ],
53
- "guildUnavailable": [
54
- "guild"
55
- ],
56
- "guildIntegrationsUpdate": [
57
- "guild"
58
- ],
59
- "guildMemberAdd": [
60
- "member"
61
- ],
62
- "guildMemberAvailable": [
63
- "member"
64
- ],
65
- "guildMemberRemove": [
66
- "member"
67
- ],
68
- "guildMembersChunk": [
69
- "members",
70
- "guild",
71
- "data"
72
- ],
73
- "guildMemberUpdate": [
74
- "oldMember",
75
- "newMember"
76
- ],
77
- "guildUpdate": [
78
- "oldGuild",
79
- "newGuild"
80
- ],
81
- "inviteCreate": [
82
- "invite"
83
- ],
84
- "inviteDelete": [
85
- "invite"
86
- ],
87
- "messageCreate": [
88
- "message"
89
- ],
90
- "messageDelete": [
91
- "message"
92
- ],
93
- "messageReactionRemoveAll": [
94
- "message",
95
- "reactions"
96
- ],
97
- "messageReactionRemoveEmoji": [
98
- "reaction"
99
- ],
100
- "messageDeleteBulk": [
101
- "messages",
102
- "channel"
103
- ],
104
- "messageReactionAdd": [
105
- "reaction",
106
- "user"
107
- ],
108
- "messageReactionRemove": [
109
- "reaction",
110
- "user"
111
- ],
112
- "messageUpdate": [
113
- "oldMessage",
114
- "newMessage"
115
- ],
116
- "presenceUpdate": [
117
- "oldPresence",
118
- "newPresence"
119
- ],
120
- "ready": [
121
- "client"
122
- ],
123
- "invalidated": [
124
- "undefined"
125
- ],
126
- "roleCreate": [
127
- "role"
128
- ],
129
- "roleDelete": [
130
- "role"
131
- ],
132
- "roleUpdate": [
133
- "oldRole",
134
- "newRole"
135
- ],
136
- "threadCreate": [
137
- "thread",
138
- "newlyCreated"
139
- ],
140
- "threadDelete": [
141
- "thread"
142
- ],
143
- "threadListSync": [
144
- "threads",
145
- "guild"
146
- ],
147
- "threadMemberUpdate": [
148
- "oldMember",
149
- "newMember"
150
- ],
151
- "threadMembersUpdate": [
152
- "addedMembers",
153
- "removedMembers",
154
- "thread"
155
- ],
156
- "threadUpdate": [
157
- "oldThread",
158
- "newThread"
159
- ],
160
- "typingStart": [
161
- "typing"
162
- ],
163
- "userUpdate": [
164
- "oldUser",
165
- "newUser"
166
- ],
167
- "voiceStateUpdate": [
168
- "oldState",
169
- "newState"
170
- ],
171
- "webhookUpdate": [
172
- "channel"
173
- ],
174
- "interactionCreate": [
175
- "interaction"
176
- ],
177
- "shardDisconnect": [
178
- "closeEvent",
179
- "shardId"
180
- ],
181
- "shardError": [
182
- "error",
183
- "shardId"
184
- ],
185
- "shardReady": [
186
- "shardId",
187
- "unavailableGuilds"
188
- ],
189
- "shardReconnecting": [
190
- "shardId"
191
- ],
192
- "shardResume": [
193
- "shardId",
194
- "replayedEvents"
195
- ],
196
- "stageInstanceCreate": [
197
- "stageInstance"
198
- ],
199
- "stageInstanceUpdate": [
200
- "oldStageInstance",
201
- "newStageInstance"
202
- ],
203
- "stageInstanceDelete": [
204
- "stageInstance"
205
- ],
206
- "stickerCreate": [
207
- "sticker"
208
- ],
209
- "stickerDelete": [
210
- "sticker"
211
- ],
212
- "stickerUpdate": [
213
- "oldSticker",
214
- "newSticker"
215
- ],
216
- "guildScheduledEventCreate": [
217
- "guildScheduledEvent"
218
- ],
219
- "guildScheduledEventUpdate": [
220
- "oldGuildScheduledEvent",
221
- "newGuildScheduledEvent"
222
- ],
223
- "guildScheduledEventDelete": [
224
- "guildScheduledEvent"
225
- ],
226
- "guildScheduledEventUserAdd": [
227
- "guildScheduledEvent",
228
- "user"
229
- ],
230
- "guildScheduledEventUserRemove": [
231
- "guildScheduledEvent",
232
- "user"
233
- ]
234
- }
@@ -1,4 +0,0 @@
1
- import { DBI, DBIConfig } from "./DBI";
2
- export { recursiveImport } from "./utils/recursiveImport";
3
- export declare function createDBI(namespace: string, cfg: DBIConfig): DBI;
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,GAAG,CAEhE"}
package/dist/src/index.js DELETED
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDBI = exports.recursiveImport = void 0;
4
- const DBI_1 = require("./DBI");
5
- var recursiveImport_1 = require("./utils/recursiveImport");
6
- Object.defineProperty(exports, "recursiveImport", { enumerable: true, get: function () { return recursiveImport_1.recursiveImport; } });
7
- function createDBI(namespace, cfg) {
8
- return new DBI_1.DBI(namespace, cfg);
9
- }
10
- exports.createDBI = createDBI;
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,+BAAuC;AACvC,2DAA0D;AAAjD,kHAAA,eAAe,OAAA;AAExB,SAAgB,SAAS,CAAC,SAAiB,EAAE,GAAc;IACzD,OAAO,IAAI,SAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAFD,8BAEC","sourcesContent":["import { DBI, DBIConfig } from \"./DBI\";\r\nexport { recursiveImport } from \"./utils/recursiveImport\";\r\n\r\nexport function createDBI(namespace: string, cfg: DBIConfig): DBI {\r\n return new DBI(namespace, cfg);\r\n}"]}
@@ -1,3 +0,0 @@
1
- import { DBI } from "../DBI";
2
- export declare function hookEventListeners(dbi: DBI): () => any;
3
- //# sourceMappingURL=hookEventListeners.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hookEventListeners.d.ts","sourceRoot":"","sources":["../../../src/methods/hookEventListeners.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,CAmCtD"}
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hookEventListeners = void 0;
4
- function hookEventListeners(dbi) {
5
- async function handle(eventName, ...args) {
6
- if (!dbi.data.eventMap[eventName])
7
- return;
8
- let ctxArgs = dbi.data.eventMap[eventName]
9
- .reduce((all, current, index) => {
10
- all[current] = args[index];
11
- return all;
12
- }, {});
13
- let other = {};
14
- if (!await dbi.events.trigger("beforeEvent", { eventName, ...ctxArgs, other }))
15
- return;
16
- for (let i = 0; i < dbi.data.events.size; i++) {
17
- const value = dbi.data.events.at(i);
18
- if (value.name == eventName) {
19
- await value.onExecute({ eventName, ...ctxArgs, other });
20
- }
21
- }
22
- dbi.events.trigger("afterEvent", { eventName, ...ctxArgs, other });
23
- }
24
- let originalEmit = dbi.client.emit;
25
- dbi.client.emit = function (eventName, ...args) {
26
- handle(eventName, ...args);
27
- return originalEmit.call(this, eventName, ...args);
28
- };
29
- return () => {
30
- dbi.client.emit = originalEmit;
31
- };
32
- }
33
- exports.hookEventListeners = hookEventListeners;
34
- //# sourceMappingURL=hookEventListeners.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hookEventListeners.js","sourceRoot":"","sources":["../../../src/methods/hookEventListeners.ts"],"names":[],"mappings":";;;AAEA,SAAgB,kBAAkB,CAAC,GAAQ;IACzC,KAAK,UAAU,MAAM,CAAC,SAAiB,EAAE,GAAG,IAAW;QACrD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO;QAE1C,IAAI,OAAO,GACT,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;aACzB,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAC9B,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QAEX,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC;YAAE,OAAO;QAEvF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE;gBAC3B,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;aACzD;SACF;QAED,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IAEnC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,UAAS,SAAS,EAAE,GAAG,IAAI;QAC3C,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;QAC3B,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAAA;IAED,OAAO,GAAG,EAAE;QACV,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC;IACjC,CAAC,CAAA;AACH,CAAC;AAnCD,gDAmCC","sourcesContent":["import { DBI } from \"../DBI\";\r\n\r\nexport function hookEventListeners(dbi: DBI): () => any {\r\n async function handle(eventName: string, ...args: any[]) {\r\n if (!dbi.data.eventMap[eventName]) return;\r\n\r\n let ctxArgs =\r\n dbi.data.eventMap[eventName]\r\n .reduce((all, current, index) => {\r\n all[current] = args[index];\r\n return all;\r\n }, {});\r\n\r\n let other = {};\r\n\r\n if (!await dbi.events.trigger(\"beforeEvent\", { eventName, ...ctxArgs, other })) return;\r\n\r\n for (let i = 0; i < dbi.data.events.size; i++) {\r\n const value = dbi.data.events.at(i);\r\n if (value.name == eventName) {\r\n await value.onExecute({ eventName, ...ctxArgs, other });\r\n }\r\n }\r\n\r\n dbi.events.trigger(\"afterEvent\", { eventName, ...ctxArgs, other })\r\n }\r\n\r\n let originalEmit = dbi.client.emit;\r\n\r\n dbi.client.emit = function(eventName, ...args) {\r\n handle(eventName, ...args);\r\n return originalEmit.call(this, eventName, ...args);\r\n }\r\n\r\n return () => {\r\n dbi.client.emit = originalEmit;\r\n }\r\n}"]}
@@ -1,3 +0,0 @@
1
- import { DBI } from "../DBI";
2
- export declare function hookInteractionListeners(dbi: DBI): () => any;
3
- //# sourceMappingURL=hookInteractionListeners.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hookInteractionListeners.d.ts","sourceRoot":"","sources":["../../../src/methods/hookInteractionListeners.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAI7B,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,CAiH5D"}
@@ -1,97 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hookInteractionListeners = void 0;
4
- const customId_1 = require("../utils/customId");
5
- function hookInteractionListeners(dbi) {
6
- async function handle(inter) {
7
- const dbiInter = dbi.data.interactions.find(i => {
8
- let isUsesCustomId = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit());
9
- let parsedId = isUsesCustomId ? (0, customId_1.parseCustomId)(dbi, inter.customId) : null;
10
- return ((i.type == "ChatInput"
11
- && (inter.isChatInputCommand() || inter.isAutocomplete())
12
- && i.name == [inter.commandName, inter.options.getSubcommandGroup(false), inter.options.getSubcommand(false)].filter(i => !!i).join(" "))
13
- ||
14
- ((i.type == "MessageContextMenu" || i.type == "UserContextMenu")
15
- && (inter.isMessageContextMenuCommand() || inter.isUserContextMenuCommand())
16
- && inter.commandName == i.name)
17
- ||
18
- ((i.type == "Button" || i.type == "SelectMenu" || i.type == "Modal")
19
- && isUsesCustomId
20
- && parsedId.name == i.name));
21
- });
22
- if (!dbiInter)
23
- return;
24
- if (inter.isAutocomplete()) {
25
- let focussed = inter.options.getFocused(true);
26
- let option = dbiInter.options.find(i => i.name == focussed.name);
27
- if (option?.onComplete) {
28
- let response = await option.onComplete({
29
- value: focussed.value,
30
- interaction: inter,
31
- dbi
32
- });
33
- await inter.respond(response);
34
- }
35
- return;
36
- }
37
- let userLocaleName = inter.locale.split("-")[0];
38
- let userLocale = dbi.data.locales.has(userLocaleName) ? dbi.data.locales.get(userLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale);
39
- let guildLocaleName = inter.guild ? inter.guild.preferredLocale.split("-")[0] : null;
40
- let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale)) : null;
41
- let locale = {
42
- user: userLocale,
43
- guild: guildLocale
44
- };
45
- let data = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit()) ? (0, customId_1.parseCustomId)(dbi, inter.customId).data : undefined;
46
- let rateLimitKeyMap = {
47
- "User": `${inter.user.id}`,
48
- "Channel": `${inter.channelId || "Channel"}`,
49
- "Guild": `${inter.guildId || "Guild"}`,
50
- "Member": `${inter.user.id}_${inter.guildId || "Guild"}`,
51
- "Message": `${inter?.message?.id}`
52
- };
53
- for (const type in rateLimitKeyMap) {
54
- let key = `RateLimit:${rateLimitKeyMap[type]}`;
55
- let val = await dbi.config.store.get(key);
56
- if (val && Date.now() > val.at + val.duration) {
57
- await dbi.config.store.del(key);
58
- val = null;
59
- }
60
- if (val) {
61
- dbi.events.trigger("interactionRateLimit", {
62
- dbi,
63
- interaction: inter,
64
- locale,
65
- data,
66
- rateLimit: {
67
- type: key,
68
- ...val
69
- }
70
- });
71
- return;
72
- }
73
- }
74
- async function setRateLimit(type, duration) {
75
- await dbi.config.store.set(`RateLimit:${rateLimitKeyMap[type]}`, { at: Date.now(), duration });
76
- }
77
- let other = {};
78
- if (!(await dbi.events.trigger("beforeInteraction", { dbi, interaction: inter, locale, setRateLimit, data, other })))
79
- return;
80
- await dbiInter.onExecute({
81
- dbi,
82
- // @ts-ignore
83
- interaction: inter,
84
- locale,
85
- setRateLimit,
86
- data,
87
- other
88
- });
89
- dbi.events.trigger("afterInteraction", { dbi, interaction: inter, locale, setRateLimit, data, other });
90
- }
91
- dbi.client.on("interactionCreate", handle);
92
- return () => {
93
- dbi.client.off("interactionCreate", handle);
94
- };
95
- }
96
- exports.hookInteractionListeners = hookInteractionListeners;
97
- //# sourceMappingURL=hookInteractionListeners.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hookInteractionListeners.js","sourceRoot":"","sources":["../../../src/methods/hookInteractionListeners.ts"],"names":[],"mappings":";;;AAEA,gDAAkD;AAElD,SAAgB,wBAAwB,CAAC,GAAQ;IAC/C,KAAK,UAAU,MAAM,CAAC,KAA6C;QAEjE,MAAM,QAAQ,GACZ,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC7B,IAAI,cAAc,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,YAAY,EAAE,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;YACzF,IAAI,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,IAAA,wBAAa,EAAC,GAAG,EAAG,KAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACnF,OAAO,CACL,CACE,CAAC,CAAC,IAAI,IAAI,WAAW;mBAClB,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;mBACtD,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CACzI;;oBAED,CACE,CAAC,CAAC,CAAC,IAAI,IAAI,oBAAoB,IAAI,CAAC,CAAC,IAAI,IAAI,iBAAiB,CAAC;2BAC5D,CAAC,KAAK,CAAC,2BAA2B,EAAE,IAAI,KAAK,CAAC,wBAAwB,EAAE,CAAC;2BACzE,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAC/B;;oBAED,CACE,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,YAAY,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC;2BAChE,cAAc;2BACd,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAC3B,CACF,CAAA;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE;YAC1B,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,MAAM,GAAI,QAAQ,CAAC,OAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5E,IAAI,MAAM,EAAE,UAAU,EAAE;gBACtB,IAAI,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC;oBACrC,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,WAAW,EAAE,KAAK;oBAClB,GAAG;iBACJ,CAAC,CAAC;gBACH,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aAC/B;YACD,OAAO;SACR;QAED,IAAI,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEhJ,IAAI,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,IAAI,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE9K,IAAI,MAAM,GAAG;YACX,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,WAAW;SACnB,CAAC;QAEF,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,YAAY,EAAE,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,wBAAa,EAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAErI,IAAI,eAAe,GAAG;YACpB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;YAC1B,SAAS,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,SAAS,EAAE;YAC5C,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE;YACtC,QAAQ,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE;YACxD,SAAS,EAAE,GAAI,KAAa,EAAE,OAAO,EAAE,EAAE,EAAE;SAC5C,CAAA;QAED,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE;YAClC,IAAI,GAAG,GAAG,aAAa,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,IAAI,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE;gBAC7C,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChC,GAAG,GAAG,IAAI,CAAC;aACZ;YACD,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE;oBACzC,GAAG;oBACH,WAAW,EAAE,KAAK;oBAClB,MAAM;oBACN,IAAI;oBACJ,SAAS,EAAE;wBACT,IAAI,EAAE,GAAG;wBACT,GAAG,GAAG;qBACP;iBACF,CAAC,CAAA;gBACF,OAAO;aACR;SACF;QAED,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,QAAgB;YACxD,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjG,CAAC;QAED,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAAE,OAAO;QAE7H,MAAM,QAAQ,CAAC,SAAS,CAAC;YACvB,GAAG;YACH,aAAa;YACb,WAAW,EAAE,KAAY;YACzB,MAAM;YACN,YAAY;YACZ,IAAI;YACJ,KAAK;SACN,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAE3C,OAAO,GAAG,EAAE;QACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC;AACJ,CAAC;AAjHD,4DAiHC","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport Discord from \"discord.js\";\r\nimport { parseCustomId } from \"../utils/customId\";\r\n\r\nexport function hookInteractionListeners(dbi: DBI): () => any {\r\n async function handle(inter: Discord.Interaction<Discord.CacheType>) {\r\n\r\n const dbiInter =\r\n dbi.data.interactions.find(i => {\r\n let isUsesCustomId = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit());\r\n let parsedId = isUsesCustomId ? parseCustomId(dbi, (inter as any).customId) : null;\r\n return (\r\n (\r\n i.type == \"ChatInput\"\r\n && (inter.isChatInputCommand() || inter.isAutocomplete())\r\n && i.name == [inter.commandName, inter.options.getSubcommandGroup(false), inter.options.getSubcommand(false)].filter(i => !!i).join(\" \")\r\n )\r\n ||\r\n (\r\n (i.type == \"MessageContextMenu\" || i.type == \"UserContextMenu\")\r\n && (inter.isMessageContextMenuCommand() || inter.isUserContextMenuCommand())\r\n && inter.commandName == i.name\r\n )\r\n ||\r\n (\r\n (i.type == \"Button\" || i.type == \"SelectMenu\" || i.type == \"Modal\")\r\n && isUsesCustomId\r\n && parsedId.name == i.name\r\n )\r\n )\r\n });\r\n \r\n if (!dbiInter) return;\r\n \r\n if (inter.isAutocomplete()) {\r\n let focussed = inter.options.getFocused(true);\r\n let option = (dbiInter.options as any[]).find(i => i.name == focussed.name);\r\n if (option?.onComplete) {\r\n let response = await option.onComplete({\r\n value: focussed.value,\r\n interaction: inter,\r\n dbi\r\n });\r\n await inter.respond(response);\r\n }\r\n return;\r\n }\r\n\r\n let userLocaleName = inter.locale.split(\"-\")[0];\r\n let userLocale = dbi.data.locales.has(userLocaleName) ? dbi.data.locales.get(userLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale);\r\n\r\n let guildLocaleName = inter.guild ? inter.guild.preferredLocale.split(\"-\")[0] : null;\r\n let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale)) : null;\r\n\r\n let locale = {\r\n user: userLocale,\r\n guild: guildLocale\r\n };\r\n\r\n let data = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit()) ? parseCustomId(dbi, inter.customId).data : undefined;\r\n\r\n let rateLimitKeyMap = {\r\n \"User\": `${inter.user.id}`,\r\n \"Channel\": `${inter.channelId || \"Channel\"}`,\r\n \"Guild\": `${inter.guildId || \"Guild\"}`,\r\n \"Member\": `${inter.user.id}_${inter.guildId || \"Guild\"}`,\r\n \"Message\": `${(inter as any)?.message?.id}`\r\n }\r\n\r\n for (const type in rateLimitKeyMap) {\r\n let key = `RateLimit:${rateLimitKeyMap[type]}`;\r\n let val = await dbi.config.store.get(key);\r\n if (val && Date.now() > val.at + val.duration) {\r\n await dbi.config.store.del(key);\r\n val = null;\r\n }\r\n if (val) {\r\n dbi.events.trigger(\"interactionRateLimit\", {\r\n dbi,\r\n interaction: inter,\r\n locale,\r\n data,\r\n rateLimit: {\r\n type: key,\r\n ...val\r\n }\r\n })\r\n return;\r\n }\r\n }\r\n\r\n async function setRateLimit(type: string, duration: number) {\r\n await dbi.config.store.set(`RateLimit:${rateLimitKeyMap[type]}`, { at: Date.now(), duration });\r\n }\r\n\r\n let other = {};\r\n\r\n if (!(await dbi.events.trigger(\"beforeInteraction\", { dbi, interaction: inter, locale, setRateLimit, data, other }))) return;\r\n\r\n await dbiInter.onExecute({\r\n dbi,\r\n // @ts-ignore\r\n interaction: inter as any,\r\n locale,\r\n setRateLimit,\r\n data,\r\n other\r\n });\r\n \r\n dbi.events.trigger(\"afterInteraction\", { dbi, interaction: inter, locale, setRateLimit, data, other });\r\n }\r\n\r\n dbi.client.on(\"interactionCreate\", handle);\r\n\r\n return () => { \r\n dbi.client.off(\"interactionCreate\", handle);\r\n };\r\n}"]}
@@ -1,4 +0,0 @@
1
- import Discord from "discord.js";
2
- import { DBIChatInput } from "../types/ChatInput/ChatInput";
3
- export declare function publishInteractions(clientToken: string, interactions: Discord.Collection<string, DBIChatInput>, publishType: "Guild" | "Global", guildId?: string): Promise<void>;
4
- //# sourceMappingURL=publishInteractions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publishInteractions.d.ts","sourceRoot":"","sources":["../../../src/methods/publishInteractions.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAQ5D,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,EACtD,WAAW,EAAE,OAAO,GAAG,QAAQ,EAC/B,OAAO,CAAC,EAAE,MAAM,iBAgJjB"}
@@ -1,150 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.publishInteractions = void 0;
4
- const tslib_1 = require("tslib");
5
- const rest_1 = require("@discordjs/rest");
6
- const v9_1 = require("discord-api-types/v9");
7
- const permissions_1 = require("../utils/permissions");
8
- const snakecase_keys_1 = tslib_1.__importDefault(require("snakecase-keys"));
9
- const PUBLISHABLE_TYPES = ["ChatInput", "UserContextMenu", "MessageContextMenu"];
10
- async function publishInteractions(clientToken, interactions, publishType, guildId) {
11
- interactions = interactions.filter(i => PUBLISHABLE_TYPES.includes(i.type));
12
- const rest = new rest_1.REST({ version: "9" });
13
- rest.setToken(clientToken);
14
- const me = await rest.get(v9_1.Routes.user());
15
- const body = interactions.reduce((all, current) => {
16
- switch (current.type) {
17
- case "ChatInput": {
18
- let nameSplitted = current.name.split(" ");
19
- switch (nameSplitted.length) {
20
- case 1: {
21
- all.push({
22
- type: v9_1.ApplicationCommandType.ChatInput,
23
- description: current.description,
24
- name: nameSplitted[0],
25
- default_member_permissions: (0, permissions_1.reducePermissions)(current.defaultMemberPermissions).toString(),
26
- dm_permission: current.directMessages,
27
- options: (0, snakecase_keys_1.default)(current.options || [])
28
- });
29
- break;
30
- }
31
- case 2: {
32
- let baseItem = all.find(i => i.name == current.name.split(" ")[0] && i.type == "ChatInput");
33
- let option = {
34
- type: v9_1.ApplicationCommandOptionType.Subcommand,
35
- name: nameSplitted[1],
36
- description: current.description,
37
- default_member_permissions: (0, permissions_1.reducePermissions)(current.defaultMemberPermissions).toString(),
38
- dm_permission: current.directMessages,
39
- options: (0, snakecase_keys_1.default)(current.options || [])
40
- };
41
- if (!baseItem) {
42
- all.push({
43
- type: v9_1.ApplicationCommandType.ChatInput,
44
- name: nameSplitted[0],
45
- description: "...",
46
- options: [
47
- option
48
- ]
49
- });
50
- }
51
- else {
52
- baseItem.options.push(option);
53
- }
54
- break;
55
- }
56
- case 3: {
57
- let level1Item = all.find(i => i.name == current.name.split(" ")[0] && i.type == "ChatInput");
58
- if (!level1Item) {
59
- all.push({
60
- type: v9_1.ApplicationCommandType.ChatInput,
61
- name: nameSplitted[0],
62
- description: "...",
63
- options: [
64
- {
65
- type: v9_1.ApplicationCommandOptionType.SubcommandGroup,
66
- name: nameSplitted[1],
67
- description: "...",
68
- options: [
69
- {
70
- type: v9_1.ApplicationCommandOptionType.Subcommand,
71
- name: nameSplitted[2],
72
- description: current.description,
73
- default_member_permissions: (0, permissions_1.reducePermissions)(current.defaultMemberPermissions).toString(),
74
- dm_permission: current.directMessages,
75
- options: (0, snakecase_keys_1.default)(current.options || [])
76
- }
77
- ]
78
- }
79
- ]
80
- });
81
- }
82
- else {
83
- let level2Item = level1Item.options.find(i => i.name == current.name.split(" ")[1] && i.type == "ChatInput");
84
- if (!level2Item) {
85
- level1Item.options.push({
86
- type: v9_1.ApplicationCommandOptionType.SubcommandGroup,
87
- name: nameSplitted[1],
88
- description: "...",
89
- options: [
90
- {
91
- type: v9_1.ApplicationCommandOptionType.Subcommand,
92
- name: nameSplitted[2],
93
- description: current.description,
94
- default_member_permissions: (0, permissions_1.reducePermissions)(current.defaultMemberPermissions).toString(),
95
- dm_permission: current.directMessages,
96
- options: (0, snakecase_keys_1.default)(current.options || [])
97
- }
98
- ]
99
- });
100
- }
101
- else {
102
- level2Item.options.push({
103
- type: v9_1.ApplicationCommandOptionType.Subcommand,
104
- name: nameSplitted[2],
105
- description: current.description,
106
- default_member_permissions: (0, permissions_1.reducePermissions)(current.defaultMemberPermissions).toString(),
107
- dm_permission: current.directMessages,
108
- options: (0, snakecase_keys_1.default)(current.options || [])
109
- });
110
- }
111
- }
112
- break;
113
- }
114
- }
115
- break;
116
- }
117
- case "MessageContextMenu": {
118
- all.push({
119
- type: v9_1.ApplicationCommandType.Message,
120
- name: current.name,
121
- default_member_permissions: (0, permissions_1.reducePermissions)(current.defaultMemberPermissions).toString(),
122
- dm_permission: current.directMessages
123
- });
124
- break;
125
- }
126
- case "UserContextMenu": {
127
- all.push({
128
- type: v9_1.ApplicationCommandType.User,
129
- name: current.name,
130
- default_member_permissions: (0, permissions_1.reducePermissions)(current.defaultMemberPermissions).toString(),
131
- dm_permission: current.directMessages
132
- });
133
- break;
134
- }
135
- }
136
- return all;
137
- }, []);
138
- switch (publishType) {
139
- case "Global": {
140
- await rest.put(v9_1.Routes.applicationGuildCommands(me.id, guildId), { body });
141
- break;
142
- }
143
- case "Guild": {
144
- await rest.put(v9_1.Routes.applicationCommands(me.id), { body });
145
- break;
146
- }
147
- }
148
- }
149
- exports.publishInteractions = publishInteractions;
150
- //# sourceMappingURL=publishInteractions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publishInteractions.js","sourceRoot":"","sources":["../../../src/methods/publishInteractions.ts"],"names":[],"mappings":"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","sourcesContent":["import Discord from \"discord.js\";\r\nimport { DBIChatInput } from \"../types/ChatInput/ChatInput\";\r\nimport { REST } from \"@discordjs/rest\";\r\nimport { Routes, RESTGetAPIUserResult, RESTPutAPIApplicationCommandsJSONBody, ApplicationCommandType, ApplicationCommandOptionType } from \"discord-api-types/v9\";\r\nimport { reducePermissions } from \"../utils/permissions\";\r\nimport snakecaseKeys from \"snakecase-keys\";\r\n\r\nconst PUBLISHABLE_TYPES = [\"ChatInput\", \"UserContextMenu\", \"MessageContextMenu\"];\r\n\r\nexport async function publishInteractions(\r\n clientToken: string,\r\n interactions: Discord.Collection<string, DBIChatInput>,\r\n publishType: \"Guild\" | \"Global\",\r\n guildId?: string\r\n) {\r\n interactions = interactions.filter(i => PUBLISHABLE_TYPES.includes(i.type));\r\n\r\n const rest = new REST({ version: \"9\" });\r\n rest.setToken(clientToken);\r\n\r\n const me: RESTGetAPIUserResult = await rest.get(Routes.user()) as any;\r\n \r\n const body: RESTPutAPIApplicationCommandsJSONBody =\r\n interactions.reduce((all, current) => {\r\n switch (current.type) {\r\n case \"ChatInput\": {\r\n let nameSplitted = current.name.split(\" \");\r\n switch (nameSplitted.length) {\r\n case 1: {\r\n all.push({\r\n type: ApplicationCommandType.ChatInput,\r\n description: current.description,\r\n name: nameSplitted[0],\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n options: snakecaseKeys(current.options || [])\r\n });\r\n break;\r\n }\r\n case 2: {\r\n let baseItem = all.find(i => i.name == current.name.split(\" \")[0] && i.type == \"ChatInput\");\r\n let option = {\r\n type: ApplicationCommandOptionType.Subcommand,\r\n name: nameSplitted[1],\r\n description: current.description,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n options: snakecaseKeys(current.options || [])\r\n };\r\n if (!baseItem) {\r\n all.push({\r\n type: ApplicationCommandType.ChatInput,\r\n name: nameSplitted[0],\r\n description: \"...\",\r\n options: [\r\n option\r\n ]\r\n });\r\n } else {\r\n baseItem.options.push(option);\r\n }\r\n break;\r\n }\r\n case 3: {\r\n let level1Item = all.find(i => i.name == current.name.split(\" \")[0] && i.type == \"ChatInput\");\r\n if (!level1Item) {\r\n all.push({\r\n type: ApplicationCommandType.ChatInput,\r\n name: nameSplitted[0],\r\n description: \"...\",\r\n options: [\r\n {\r\n type: ApplicationCommandOptionType.SubcommandGroup,\r\n name: nameSplitted[1],\r\n description: \"...\",\r\n options: [\r\n {\r\n type: ApplicationCommandOptionType.Subcommand,\r\n name: nameSplitted[2],\r\n description: current.description,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n options: snakecaseKeys(current.options || [])\r\n }\r\n ]\r\n }\r\n ]\r\n });\r\n } else {\r\n let level2Item = level1Item.options.find(i => i.name == current.name.split(\" \")[1] && i.type == \"ChatInput\");\r\n if (!level2Item) {\r\n level1Item.options.push({\r\n type: ApplicationCommandOptionType.SubcommandGroup,\r\n name: nameSplitted[1],\r\n description: \"...\",\r\n options: [\r\n {\r\n type: ApplicationCommandOptionType.Subcommand,\r\n name: nameSplitted[2],\r\n description: current.description,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n options: snakecaseKeys(current.options || [])\r\n }\r\n ]\r\n })\r\n } else {\r\n level2Item.options.push({\r\n type: ApplicationCommandOptionType.Subcommand,\r\n name: nameSplitted[2],\r\n description: current.description,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n options: snakecaseKeys(current.options || [])\r\n });\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n case \"MessageContextMenu\": {\r\n all.push({\r\n type: ApplicationCommandType.Message,\r\n name: current.name,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages\r\n });\r\n break;\r\n }\r\n case \"UserContextMenu\": {\r\n all.push({\r\n type: ApplicationCommandType.User,\r\n name: current.name,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages\r\n });\r\n break;\r\n }\r\n }\r\n\r\n return all;\r\n }, []);\r\n \r\n \r\n switch (publishType) {\r\n case \"Global\": {\r\n await rest.put(Routes.applicationGuildCommands(me.id, guildId), { body });\r\n break;\r\n }\r\n case \"Guild\": {\r\n await rest.put(Routes.applicationCommands(me.id), { body });\r\n break;\r\n }\r\n }\r\n \r\n}"]}
@@ -1,19 +0,0 @@
1
- import Discord from "discord.js";
2
- import { DBI } from "../DBI";
3
- import { DBIBaseInteraction, IDBIBaseExecuteCtx } from "./Interaction";
4
- export interface IDBIButtonExecuteCtx extends IDBIBaseExecuteCtx {
5
- interaction: Discord.ButtonInteraction<Discord.CacheType>;
6
- data: ({
7
- [key: string]: any;
8
- $ref: string;
9
- $unRef(): boolean;
10
- } | string | number)[];
11
- }
12
- export declare type TDBIButtonOmitted = Omit<DBIButton, "type" | "description" | "dbi" | "toJSON">;
13
- export declare class DBIButton extends DBIBaseInteraction {
14
- constructor(dbi: DBI, args: TDBIButtonOmitted);
15
- options: Omit<Discord.ButtonComponentData, "customId" | "type">;
16
- onExecute(ctx: IDBIButtonExecuteCtx): Promise<any> | any;
17
- toJSON(...customData: (string | number | object)[]): Discord.ButtonComponentData;
18
- }
19
- //# sourceMappingURL=Button.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/types/Button.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGvE,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1D,IAAI,EAAE,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,IAAI,OAAO,CAAA;KAAE,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CACrF;AAED,oBAAY,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;AAE3F,qBAAa,SAAU,SAAQ,kBAAkB;gBACnC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB;IAOrC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;IAE/D,SAAS,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IAEjE,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,mBAAmB;CAOjF"}