@theholocron/discord-client 1.48.0 → 1.50.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.
- package/README.md +1 -1
- package/dist/index.d.mts +23 -2
- package/dist/index.mjs +13 -3
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -101,7 +101,7 @@ the create response.
|
|
|
101
101
|
|
|
102
102
|
| Resource | Methods |
|
|
103
103
|
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
104
|
-
| `client.users` | `me()` — `GET /users/@me`, a cheap token check; `get(id)` — a user's name
|
|
104
|
+
| `client.users` | `me()` — `GET /users/@me`, a cheap token check; `get(id)` — a user's name; `guilds({ limit, after })` — `GET /users/@me/guilds`, the servers the bot is in and whether it owns each (look here before retrying `guilds.create`) |
|
|
105
105
|
| `client.application` | `get`, `modify` (the bot's own application: description, tags, install settings, URLs, and `flags` for the privileged-intent toggles; `redirect_uris` can be read but not written, so add them in the developer portal) |
|
|
106
106
|
| `client.guilds` | `get`, `modify`, `channels`, `createChannel`, `roles`, `createRole`, `modifyRole`, `create`, `delete`, `emojis`, `member`, `members`, `membersWithRole`, `addMemberRole`, `removeMemberRole`, `welcomeScreen`, `modifyWelcomeScreen`, `onboarding`, `modifyOnboarding` |
|
|
107
107
|
| `client.channels` | `modify`, `webhooks`, `createWebhook`, `createMessage`, `createInvite`, `messages`, `pin`, `deleteMessage` |
|
package/dist/index.d.mts
CHANGED
|
@@ -45,6 +45,21 @@ interface DiscordUser {
|
|
|
45
45
|
username: string;
|
|
46
46
|
bot?: boolean;
|
|
47
47
|
}
|
|
48
|
+
/** A server as `GET /users/@me/guilds` lists it: a summary, not the full guild. */
|
|
49
|
+
interface DiscordUserGuild {
|
|
50
|
+
id: string;
|
|
51
|
+
name: string;
|
|
52
|
+
/** Whether the caller (here, the bot) owns the server. */
|
|
53
|
+
owner: boolean;
|
|
54
|
+
/** The caller's permission bitfield in the server, as a decimal string. */
|
|
55
|
+
permissions?: string;
|
|
56
|
+
}
|
|
57
|
+
/** Page options for `users.guilds`; Discord allows a `limit` of 1–200; values outside that are clamped. */
|
|
58
|
+
interface ListUserGuildsInput {
|
|
59
|
+
limit?: number;
|
|
60
|
+
/** Return servers after this server id. */
|
|
61
|
+
after?: string;
|
|
62
|
+
}
|
|
48
63
|
/** Guild fields `guilds.modify` can change; the numeric enums are Discord's own. */
|
|
49
64
|
interface DiscordGuild {
|
|
50
65
|
id: string;
|
|
@@ -359,10 +374,15 @@ declare function createDiscordBotClient(opts: DiscordBotClientOptions): {
|
|
|
359
374
|
me: () => Promise<DiscordUser>;
|
|
360
375
|
/** `GET /users/:id` — a user's name, for reports that would otherwise show a bare id. */
|
|
361
376
|
get: (userId: string) => Promise<DiscordUser>;
|
|
377
|
+
/**
|
|
378
|
+
* `GET /users/@me/guilds` — one page of the servers the bot is in, each with whether it owns it. This is
|
|
379
|
+
* how a retry finds a server `guilds.create` already made, since that call is not idempotent.
|
|
380
|
+
*/
|
|
381
|
+
guilds: (opts?: ListUserGuildsInput) => Promise<DiscordUserGuild[]>;
|
|
362
382
|
};
|
|
363
383
|
guilds: {
|
|
364
384
|
get: (guildId: string) => Promise<DiscordGuild>;
|
|
365
|
-
/** `POST /guilds` — a new server the bot owns. Not idempotent: look one up by name before retrying. */
|
|
385
|
+
/** `POST /guilds` — a new server the bot owns. Not idempotent: look one up by name (`users.guilds`) before retrying. */
|
|
366
386
|
create: (body: CreateGuildInput) => Promise<DiscordGuild>;
|
|
367
387
|
/** `DELETE /guilds/:id` — only the owner may; a 404 counts as done. */
|
|
368
388
|
delete: (guildId: string) => Promise<void>;
|
|
@@ -487,6 +507,7 @@ declare const Permission: {
|
|
|
487
507
|
readonly SendVoiceMessages: bigint;
|
|
488
508
|
readonly SendPolls: bigint;
|
|
489
509
|
readonly UseExternalApps: bigint;
|
|
510
|
+
readonly PinMessages: bigint;
|
|
490
511
|
};
|
|
491
512
|
type PermissionName = keyof typeof Permission;
|
|
492
513
|
/** The decimal-string bitfield Discord wants for the named permissions (`"0"` for none). */
|
|
@@ -611,4 +632,4 @@ declare function createDiscordClient(opts?: DiscordClientOptions): {
|
|
|
611
632
|
};
|
|
612
633
|
type DiscordClient = ReturnType<typeof createDiscordClient>;
|
|
613
634
|
//#endregion
|
|
614
|
-
export { ApplicationFlag, ChannelType, CreateChannelInput, CreateGuildInput, CreateInviteInput, CreateMessageInput, CreateRoleInput, DEFAULT_STATE_TTL_SECONDS, DiscordApplication, DiscordBotClient, DiscordBotClientOptions, DiscordChannel, DiscordChannelMessage, DiscordChannelWebhook, DiscordClient, type DiscordClientOptions, DiscordConnection, DiscordEmoji, DiscordGuild, DiscordGuildMember, DiscordInstallParams, DiscordInvite, DiscordMessage, DiscordOAuthClient, DiscordOAuthClientOptions, DiscordOAuthScope, DiscordOAuthToken, DiscordOAuthUser, DiscordOnboarding, DiscordOnboardingOption, DiscordOnboardingPrompt, DiscordPermissionOverwrite, DiscordRole, DiscordUser, type DiscordWebhookInfo, DiscordWelcomeChannel, DiscordWelcomeScreen, ListMembersInput, ModifyApplicationInput, ModifyChannelInput, ModifyGuildInput, ModifyRoleInput, ModifyWebhookInput, ModifyWelcomeScreenInput, Permission, PermissionName, createDiscordBotClient, createDiscordClient, createDiscordOAuthClient, findVerifiedConnection, parseWebhookUrl, permissionNames, permissions, signOAuthState, verifyOAuthState };
|
|
635
|
+
export { ApplicationFlag, ChannelType, CreateChannelInput, CreateGuildInput, CreateInviteInput, CreateMessageInput, CreateRoleInput, DEFAULT_STATE_TTL_SECONDS, DiscordApplication, DiscordBotClient, DiscordBotClientOptions, DiscordChannel, DiscordChannelMessage, DiscordChannelWebhook, DiscordClient, type DiscordClientOptions, DiscordConnection, DiscordEmoji, DiscordGuild, DiscordGuildMember, DiscordInstallParams, DiscordInvite, DiscordMessage, DiscordOAuthClient, DiscordOAuthClientOptions, DiscordOAuthScope, DiscordOAuthToken, DiscordOAuthUser, DiscordOnboarding, DiscordOnboardingOption, DiscordOnboardingPrompt, DiscordPermissionOverwrite, DiscordRole, DiscordUser, DiscordUserGuild, type DiscordWebhookInfo, DiscordWelcomeChannel, DiscordWelcomeScreen, ListMembersInput, ListUserGuildsInput, ModifyApplicationInput, ModifyChannelInput, ModifyGuildInput, ModifyRoleInput, ModifyWebhookInput, ModifyWelcomeScreenInput, Permission, PermissionName, createDiscordBotClient, createDiscordClient, createDiscordOAuthClient, findVerifiedConnection, parseWebhookUrl, permissionNames, permissions, signOAuthState, verifyOAuthState };
|
package/dist/index.mjs
CHANGED
|
@@ -158,11 +158,20 @@ function createDiscordBotClient(opts) {
|
|
|
158
158
|
/** `GET /users/@me` — the bot's own user; a cheap token check. */
|
|
159
159
|
me: () => rest.request("/users/@me"),
|
|
160
160
|
/** `GET /users/:id` — a user's name, for reports that would otherwise show a bare id. */
|
|
161
|
-
get: (userId) => rest.request(`/users/${id(userId)}`)
|
|
161
|
+
get: (userId) => rest.request(`/users/${id(userId)}`),
|
|
162
|
+
/**
|
|
163
|
+
* `GET /users/@me/guilds` — one page of the servers the bot is in, each with whether it owns it. This is
|
|
164
|
+
* how a retry finds a server `guilds.create` already made, since that call is not idempotent.
|
|
165
|
+
*/
|
|
166
|
+
guilds: (opts = {}) => {
|
|
167
|
+
const query = { limit: String(Math.min(Math.max(opts.limit ?? 200, 1), 200)) };
|
|
168
|
+
if (opts.after !== void 0) query.after = id(opts.after);
|
|
169
|
+
return rest.request("/users/@me/guilds", { query });
|
|
170
|
+
}
|
|
162
171
|
},
|
|
163
172
|
guilds: {
|
|
164
173
|
get: (guildId) => rest.request(`/guilds/${id(guildId)}`),
|
|
165
|
-
/** `POST /guilds` — a new server the bot owns. Not idempotent: look one up by name before retrying. */
|
|
174
|
+
/** `POST /guilds` — a new server the bot owns. Not idempotent: look one up by name (`users.guilds`) before retrying. */
|
|
166
175
|
create: (body) => rest.request("/guilds", {
|
|
167
176
|
method: "POST",
|
|
168
177
|
body
|
|
@@ -412,7 +421,8 @@ const Permission = {
|
|
|
412
421
|
UseExternalSounds: 1n << 45n,
|
|
413
422
|
SendVoiceMessages: 1n << 46n,
|
|
414
423
|
SendPolls: 1n << 49n,
|
|
415
|
-
UseExternalApps: 1n << 50n
|
|
424
|
+
UseExternalApps: 1n << 50n,
|
|
425
|
+
PinMessages: 1n << 51n
|
|
416
426
|
};
|
|
417
427
|
/** The decimal-string bitfield Discord wants for the named permissions (`"0"` for none). */
|
|
418
428
|
function permissions(names) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theholocron/discord-client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.50.0",
|
|
4
4
|
"description": "A TypeScript client for the Discord webhooks API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"discord",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"dist"
|
|
33
33
|
],
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@theholocron/http-client": "^1.
|
|
35
|
+
"@theholocron/http-client": "^1.50.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@theholocron/cli": "5.0.0-alpha.79",
|