@satorijs/adapter-discord 4.1.3 → 4.1.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.
- package/lib/index.js +15 -21
- package/lib/index.js.map +2 -3
- package/lib/types/internal.d.ts +3 -2
- package/lib/utils.d.ts +1 -1
- package/package.json +5 -4
- package/src/bot.ts +218 -0
- package/src/index.ts +27 -0
- package/src/message.ts +444 -0
- package/src/types/.eslintrc.yml +2 -0
- package/src/types/application-role-connection.ts +61 -0
- package/src/types/application.ts +120 -0
- package/src/types/audit-log.ts +219 -0
- package/src/types/auto-moderation.ts +189 -0
- package/src/types/ban.ts +92 -0
- package/src/types/channel.ts +501 -0
- package/src/types/command.ts +320 -0
- package/src/types/component.ts +125 -0
- package/src/types/device.ts +44 -0
- package/src/types/emoji.ts +96 -0
- package/src/types/gateway.ts +334 -0
- package/src/types/guild-member.ts +260 -0
- package/src/types/guild-template.ts +109 -0
- package/src/types/guild.ts +476 -0
- package/src/types/index.ts +49 -0
- package/src/types/integration.ts +130 -0
- package/src/types/interaction.ts +283 -0
- package/src/types/internal.ts +43 -0
- package/src/types/invite.ts +192 -0
- package/src/types/message.ts +470 -0
- package/src/types/presence.ts +163 -0
- package/src/types/reaction.ts +139 -0
- package/src/types/role.ts +252 -0
- package/src/types/scheduled-event.ts +200 -0
- package/src/types/stage-instance.ts +98 -0
- package/src/types/sticker.ts +179 -0
- package/src/types/team.ts +33 -0
- package/src/types/thread.ts +298 -0
- package/src/types/user.ts +154 -0
- package/src/types/voice.ts +124 -0
- package/src/types/webhook.ts +246 -0
- package/src/utils.ts +391 -0
- package/src/ws.ts +122 -0
package/lib/index.js
CHANGED
|
@@ -100,10 +100,9 @@ var import_satori2 = require("@satorijs/satori");
|
|
|
100
100
|
|
|
101
101
|
// satori/adapters/discord/src/types/internal.ts
|
|
102
102
|
var import_satori = require("@satorijs/satori");
|
|
103
|
-
var logger = new import_satori.Logger("discord");
|
|
104
103
|
var _Internal = class _Internal {
|
|
105
|
-
constructor(
|
|
106
|
-
this.
|
|
104
|
+
constructor(bot) {
|
|
105
|
+
this.bot = bot;
|
|
107
106
|
}
|
|
108
107
|
static define(routes) {
|
|
109
108
|
for (const path in routes) {
|
|
@@ -131,8 +130,8 @@ var _Internal = class _Internal {
|
|
|
131
130
|
throw new Error(`too many arguments for ${path}, received ${raw}`);
|
|
132
131
|
}
|
|
133
132
|
try {
|
|
134
|
-
logger.debug(`${method} ${url}`, config);
|
|
135
|
-
return await this.http(method, url, config);
|
|
133
|
+
this.bot.logger.debug(`${method} ${url}`, config);
|
|
134
|
+
return await this.bot.http(method, url, config);
|
|
136
135
|
} catch (error) {
|
|
137
136
|
if (!import_satori.Quester.isAxiosError(error) || !error.response)
|
|
138
137
|
throw error;
|
|
@@ -1538,7 +1537,6 @@ __name(encodeCommandOptions, "encodeCommandOptions");
|
|
|
1538
1537
|
// satori/adapters/discord/src/message.ts
|
|
1539
1538
|
var import_satori3 = require("@satorijs/satori");
|
|
1540
1539
|
var import_form_data = __toESM(require("form-data"));
|
|
1541
|
-
var logger2 = new import_satori3.Logger("discord");
|
|
1542
1540
|
var _State = class _State {
|
|
1543
1541
|
// forward: send the first message and create a thread
|
|
1544
1542
|
constructor(type) {
|
|
@@ -1607,7 +1605,7 @@ var _DiscordMessageEncoder = class _DiscordMessageEncoder extends import_satori3
|
|
|
1607
1605
|
} catch (e) {
|
|
1608
1606
|
if (import_satori3.Quester.isAxiosError(e) && e.response) {
|
|
1609
1607
|
if (((_a = e.response.data) == null ? void 0 : _a.code) === 10015) {
|
|
1610
|
-
|
|
1608
|
+
this.bot.logger.debug("webhook has been deleted, recreating..., %o", e.response.data);
|
|
1611
1609
|
if (!this.bot.webhookLock[this.channelId])
|
|
1612
1610
|
this.bot.webhooks[this.channelId] = null;
|
|
1613
1611
|
await this.ensureWebhook();
|
|
@@ -1775,7 +1773,6 @@ var _DiscordMessageEncoder = class _DiscordMessageEncoder extends import_satori3
|
|
|
1775
1773
|
await this.render(children);
|
|
1776
1774
|
if (!this.buffer.endsWith("\n"))
|
|
1777
1775
|
this.buffer += "\n";
|
|
1778
|
-
this.buffer += "\n";
|
|
1779
1776
|
} else if (type === "blockquote") {
|
|
1780
1777
|
if (!this.buffer.endsWith("\n"))
|
|
1781
1778
|
this.buffer += "\n";
|
|
@@ -1953,7 +1950,6 @@ var DiscordMessageEncoder = _DiscordMessageEncoder;
|
|
|
1953
1950
|
|
|
1954
1951
|
// satori/adapters/discord/src/ws.ts
|
|
1955
1952
|
var import_satori4 = require("@satorijs/satori");
|
|
1956
|
-
var logger3 = new import_satori4.Logger("discord");
|
|
1957
1953
|
var _WsClient = class _WsClient extends import_satori4.Adapter.WsClient {
|
|
1958
1954
|
_d = 0;
|
|
1959
1955
|
_ping;
|
|
@@ -1967,7 +1963,7 @@ var _WsClient = class _WsClient extends import_satori4.Adapter.WsClient {
|
|
|
1967
1963
|
return this.bot.http.ws(url + "/?v=10&encoding=json");
|
|
1968
1964
|
}
|
|
1969
1965
|
heartbeat() {
|
|
1970
|
-
|
|
1966
|
+
this.bot.logger.debug(`heartbeat d ${this._d}`);
|
|
1971
1967
|
this.socket.send(JSON.stringify({
|
|
1972
1968
|
op: Gateway.Opcode.HEARTBEAT,
|
|
1973
1969
|
d: this._d
|
|
@@ -1980,16 +1976,16 @@ var _WsClient = class _WsClient extends import_satori4.Adapter.WsClient {
|
|
|
1980
1976
|
try {
|
|
1981
1977
|
parsed = JSON.parse(data.toString());
|
|
1982
1978
|
} catch (error) {
|
|
1983
|
-
return
|
|
1979
|
+
return this.bot.logger.warn("cannot parse message", data);
|
|
1984
1980
|
}
|
|
1985
|
-
|
|
1981
|
+
this.bot.logger.debug(parsed);
|
|
1986
1982
|
if (parsed.s) {
|
|
1987
1983
|
this._d = parsed.s;
|
|
1988
1984
|
}
|
|
1989
1985
|
if (parsed.op === Gateway.Opcode.HELLO) {
|
|
1990
1986
|
this._ping = setInterval(() => this.heartbeat(), parsed.d.heartbeat_interval);
|
|
1991
1987
|
if (this._sessionId) {
|
|
1992
|
-
|
|
1988
|
+
this.bot.logger.debug("resuming");
|
|
1993
1989
|
this.socket.send(JSON.stringify({
|
|
1994
1990
|
op: Gateway.Opcode.RESUME,
|
|
1995
1991
|
d: {
|
|
@@ -2014,7 +2010,7 @@ var _WsClient = class _WsClient extends import_satori4.Adapter.WsClient {
|
|
|
2014
2010
|
if (parsed.d)
|
|
2015
2011
|
return;
|
|
2016
2012
|
this._sessionId = "";
|
|
2017
|
-
|
|
2013
|
+
this.bot.logger.warn("offline: invalid session");
|
|
2018
2014
|
(_a = this.socket) == null ? void 0 : _a.close();
|
|
2019
2015
|
}
|
|
2020
2016
|
if (parsed.op === Gateway.Opcode.DISPATCH) {
|
|
@@ -2027,7 +2023,7 @@ var _WsClient = class _WsClient extends import_satori4.Adapter.WsClient {
|
|
|
2027
2023
|
this._sessionId = parsed.d.session_id;
|
|
2028
2024
|
this._resumeUrl = parsed.d.resume_gateway_url;
|
|
2029
2025
|
this.bot.user = decodeUser(parsed.d.user);
|
|
2030
|
-
|
|
2026
|
+
this.bot.logger.debug("session_id " + this._sessionId);
|
|
2031
2027
|
return this.bot.online();
|
|
2032
2028
|
}
|
|
2033
2029
|
if (parsed.t === "RESUMED") {
|
|
@@ -2038,7 +2034,7 @@ var _WsClient = class _WsClient extends import_satori4.Adapter.WsClient {
|
|
|
2038
2034
|
this.bot.dispatch(session);
|
|
2039
2035
|
}
|
|
2040
2036
|
if (parsed.op === Gateway.Opcode.RECONNECT) {
|
|
2041
|
-
|
|
2037
|
+
this.bot.logger.warn("offline: discord request reconnect");
|
|
2042
2038
|
(_b = this.socket) == null ? void 0 : _b.close();
|
|
2043
2039
|
}
|
|
2044
2040
|
});
|
|
@@ -2060,7 +2056,6 @@ var WsClient = _WsClient;
|
|
|
2060
2056
|
|
|
2061
2057
|
// satori/adapters/discord/src/bot.ts
|
|
2062
2058
|
var import_package = require("../package.json");
|
|
2063
|
-
var logger4 = new import_satori5.Logger("discord");
|
|
2064
2059
|
var _DiscordBot = class _DiscordBot extends import_satori5.Bot {
|
|
2065
2060
|
http;
|
|
2066
2061
|
internal;
|
|
@@ -2068,8 +2063,7 @@ var _DiscordBot = class _DiscordBot extends import_satori5.Bot {
|
|
|
2068
2063
|
webhookLock = {};
|
|
2069
2064
|
commands = [];
|
|
2070
2065
|
constructor(ctx, config) {
|
|
2071
|
-
super(ctx, config);
|
|
2072
|
-
this.platform = "discord";
|
|
2066
|
+
super(ctx, config, "discord");
|
|
2073
2067
|
this.http = ctx.http.extend({
|
|
2074
2068
|
...config,
|
|
2075
2069
|
headers: {
|
|
@@ -2078,7 +2072,7 @@ var _DiscordBot = class _DiscordBot extends import_satori5.Bot {
|
|
|
2078
2072
|
...config.headers
|
|
2079
2073
|
}
|
|
2080
2074
|
});
|
|
2081
|
-
this.internal = new Internal(this
|
|
2075
|
+
this.internal = new Internal(this);
|
|
2082
2076
|
ctx.plugin(WsClient, this);
|
|
2083
2077
|
}
|
|
2084
2078
|
async _ensureWebhook(channelId) {
|
|
@@ -2222,7 +2216,7 @@ var _DiscordBot = class _DiscordBot extends import_satori5.Bot {
|
|
|
2222
2216
|
this.commands = commands;
|
|
2223
2217
|
const updates = commands.map(encodeCommand);
|
|
2224
2218
|
if (updates.length) {
|
|
2225
|
-
|
|
2219
|
+
this.logger.debug("update %d command(s)", updates.length);
|
|
2226
2220
|
await this.internal.bulkOverwriteGlobalApplicationCommands(this.selfId, updates);
|
|
2227
2221
|
}
|
|
2228
2222
|
}
|