lunibee 0.2.0 → 0.2.2

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 (45) hide show
  1. package/README.md +6 -6
  2. package/dist/builders/attachment.d.ts +5 -1
  3. package/dist/builders/commands.d.ts +131 -45
  4. package/dist/builders/components.d.ts +183 -41
  5. package/dist/builders/embed.d.ts +12 -8
  6. package/dist/builders/index.d.ts +9 -4
  7. package/dist/builders/index.js +234 -110
  8. package/dist/builders/index.js.map +8 -8
  9. package/dist/core/events.d.ts +28 -12
  10. package/dist/core/index.d.ts +5 -3
  11. package/dist/core/index.js +414 -78
  12. package/dist/core/index.js.map +18 -18
  13. package/dist/core/permissions.d.ts +6 -2
  14. package/dist/index.d.ts +5 -4
  15. package/dist/index.js +869 -194
  16. package/dist/index.js.map +25 -24
  17. package/dist/managers/guild-resources.d.ts +22 -2
  18. package/dist/managers/guild.d.ts +3 -1
  19. package/dist/managers/index.d.ts +7 -3
  20. package/dist/managers/index.js +167 -33
  21. package/dist/managers/index.js.map +13 -13
  22. package/dist/managers/member.d.ts +13 -12
  23. package/dist/managers/message.d.ts +16 -4
  24. package/dist/rest/index.js +2 -2
  25. package/dist/rest/index.js.map +1 -1
  26. package/dist/sharding/index.js +3 -2
  27. package/dist/sharding/index.js.map +4 -4
  28. package/dist/structures/base.d.ts +36 -0
  29. package/dist/structures/index.d.ts +38 -3
  30. package/dist/structures/index.js +240 -34
  31. package/dist/structures/index.js.map +11 -11
  32. package/dist/structures/interactions.d.ts +110 -12
  33. package/dist/structures/options.d.ts +2 -0
  34. package/dist/structures/resources.d.ts +40 -4
  35. package/dist/types/gateway.d.ts +14 -0
  36. package/dist/types/index.d.ts +185 -10
  37. package/dist/types/index.js +37 -10
  38. package/dist/types/index.js.map +4 -4
  39. package/dist/utils/args.d.ts +79 -0
  40. package/dist/utils/index.d.ts +1 -0
  41. package/dist/utils/index.js +190 -2
  42. package/dist/utils/index.js.map +5 -4
  43. package/dist/ws/index.js +2 -1
  44. package/dist/ws/index.js.map +4 -4
  45. package/package.json +14 -14
@@ -1,6 +1,6 @@
1
- import type { APIEntitlement, APISoundboardSound } from "@lunibee/types";
1
+ import type { APIEntitlement, APISoundboardSound, APISticker } from "@lunibee/types";
2
2
  import type { APIAutoModerationActionExecution, APIAutoModerationRule, APIChannel, APIChannelPinsUpdate, APIGuild, APIGuildBanEvent, APIGuildEmojisUpdateEvent, APIGuildMember, APIGuildMembersChunk, APIGuildRoleDeleteEvent, APIGuildRoleEvent, APIGuildScheduledEvent, APIGuildScheduledEventUserEvent, APIGuildStickersUpdateEvent, APIInviteCreate, APIInviteDelete, APIMessageDeleteBulkEvent, APIMessageDeleteEvent, APIMessagePollVoteEvent, APIMessageReactionEvent, APIMessageReactionRemoveEmojiEvent, APIPresenceUpdate, APIStageInstance, APIThreadEvent, APIThreadListSync, APIThreadMember, APIThreadMembersUpdate, APITypingStart, APIVoiceServerUpdate, APIVoiceState, APIWebhooksUpdate, ClientUser } from "@lunibee/types";
3
- import type { Channel, Interaction, Message } from "@lunibee/structures";
3
+ import type { Channel, Emoji, Guild, GuildMember, Interaction, Message, Role } from "@lunibee/structures";
4
4
  /** Names of events emitted by a Lunibee client. */
5
5
  export declare enum ClientEvent {
6
6
  Ready = "ready",
@@ -107,7 +107,8 @@ export type ClientEvents = {
107
107
  messagePollVoteAdd: [data: APIMessagePollVoteEvent];
108
108
  messagePollVoteRemove: [data: APIMessagePollVoteEvent];
109
109
  guildCreate: [data: APIGuild];
110
- guildUpdate: [data: APIGuild];
110
+ /** `previous` is a copy of the cached guild before the update, or null when it was not cached. */
111
+ guildUpdate: [data: APIGuild, previous: Guild | null];
111
112
  guildDelete: [data: {
112
113
  id: string;
113
114
  unavailable?: boolean;
@@ -120,16 +121,27 @@ export type ClientEvents = {
120
121
  unavailable?: boolean;
121
122
  }];
122
123
  guildMemberAdd: [member: APIGuildMember];
123
- guildMemberUpdate: [member: APIGuildMember];
124
+ /** `previous` is a copy of the cached member before the update, or null when it was not cached. */
125
+ guildMemberUpdate: [member: APIGuildMember, previous: GuildMember | null];
124
126
  guildMemberRemove: [member: APIGuildMember];
125
127
  guildMembersChunk: [data: APIGuildMembersChunk];
126
128
  guildBanAdd: [data: APIGuildBanEvent];
127
129
  guildBanRemove: [data: APIGuildBanEvent];
128
130
  guildRoleCreate: [data: APIGuildRoleEvent];
129
- guildRoleUpdate: [data: APIGuildRoleEvent];
130
- guildRoleDelete: [data: APIGuildRoleDeleteEvent];
131
- guildEmojisUpdate: [data: APIGuildEmojisUpdateEvent];
132
- guildStickersUpdate: [data: APIGuildStickersUpdateEvent];
131
+ /** `previous` is a copy of the cached role before the update, or null when it was not cached. */
132
+ guildRoleUpdate: [data: APIGuildRoleEvent, previous: Role | null];
133
+ /** `removed` is the role that was cached, or null. */
134
+ guildRoleDelete: [data: APIGuildRoleDeleteEvent, removed: Role | null];
135
+ /** `previous` is the cached emoji list before the update, or null without the emoji cache. */
136
+ guildEmojisUpdate: [
137
+ data: APIGuildEmojisUpdateEvent,
138
+ previous: Emoji[] | null
139
+ ];
140
+ /** `previous` is the cached sticker list before the update (empty when none were cached). */
141
+ guildStickersUpdate: [
142
+ data: APIGuildStickersUpdateEvent,
143
+ previous: APISticker[]
144
+ ];
133
145
  entitlementCreate: [entitlement: APIEntitlement];
134
146
  entitlementUpdate: [entitlement: APIEntitlement];
135
147
  entitlementDelete: [entitlement: APIEntitlement];
@@ -158,12 +170,16 @@ export type ClientEvents = {
158
170
  autoModerationRuleDelete: [data: APIAutoModerationRule];
159
171
  autoModerationActionExecution: [data: APIAutoModerationActionExecution];
160
172
  channelCreate: [channel: Channel];
161
- channelUpdate: [channel: Channel];
162
- channelDelete: [data: APIChannel];
173
+ /** `previous` is a copy of the cached channel before the update, or null when it was not cached. */
174
+ channelUpdate: [channel: Channel, previous: Channel | null];
175
+ /** `removed` is the channel that was cached, or null. */
176
+ channelDelete: [data: APIChannel, removed: Channel | null];
163
177
  channelPinsUpdate: [data: APIChannelPinsUpdate];
164
178
  threadCreate: [channel: Channel];
165
- threadUpdate: [channel: Channel];
166
- threadDelete: [data: APIThreadEvent];
179
+ /** `previous` is a copy of the cached thread before the update, or null when it was not cached. */
180
+ threadUpdate: [channel: Channel, previous: Channel | null];
181
+ /** `removed` is the thread that was cached, or null. */
182
+ threadDelete: [data: APIThreadEvent, removed: Channel | null];
167
183
  threadListSync: [data: APIThreadListSync];
168
184
  threadMembersUpdate: [data: APIThreadMembersUpdate];
169
185
  threadMemberUpdate: [data: APIThreadMember];
@@ -1,4 +1,4 @@
1
- export { Permission, Permissions, PermissionFlagsBits, PermissionSet, PermissionsBitField, PermissionOverwriteType, computePermissions, type PermissionContext, type PermissionOverwrite, type PermissionRole, type PermissionName, } from "./permissions.js";
1
+ export { Permission, Permissions, PermissionFlagsBits, PermissionSet, PermissionsBitField, PermissionOverwriteEnum, PermissionOverwriteType, computePermissions, type PermissionContext, type PermissionOverwrite, type PermissionRole, type PermissionName, } from "./permissions.js";
2
2
  export { ClientEvent,
3
3
  /** Discord.js-familiar alias for {@link ClientEvent}. */
4
4
  ClientEvent as Events, type ClientEventName, type ClientEvents, type ClientListener, } from "./events.js";
@@ -6,12 +6,12 @@ export { Collector, type CollectorOptions } from "./collector.js";
6
6
  export { GatewayIntentBits, IntentBits, Intents, IntentsBitField, resolveGatewayIntents, type GatewayIntentResolvable, } from "@lunibee/types";
7
7
  import { ApplicationCommandManager, ChannelManager, GuildManager, MonetizationManager, StageInstanceManager, UserManager } from "@lunibee/managers";
8
8
  import { REST } from "@lunibee/rest";
9
- import { type InteractionClient } from "@lunibee/structures";
9
+ import { type InteractionClient, type ResourceContext } from "@lunibee/structures";
10
10
  import { Gateway } from "@lunibee/ws";
11
11
  import type { APISoundboardSound, ClientOptions, ClientUser } from "@lunibee/types";
12
12
  import { type ClientEvents } from "./events.js";
13
13
  import { Collector, type CollectorOptions } from "./collector.js";
14
- import { type PermissionSet } from "./permissions.js";
14
+ import { PermissionSet } from "./permissions.js";
15
15
  /** Lifecycle state of a client. */
16
16
  export type ClientState = "idle" | "connecting" | "ready" | "destroyed";
17
17
  type Listener<T extends unknown[]> = (...args: T) => unknown;
@@ -72,6 +72,8 @@ export declare class Client extends EventEmitter<ClientEvents> implements Intera
72
72
  createCollector<E extends keyof ClientEvents>(event: E, options?: CollectorOptions<ClientEvents[E][0]> & {
73
73
  key?: (item: ClientEvents[E][0]) => string;
74
74
  }): Collector<string, ClientEvents[E][0]>;
75
+ /** Structures built by this client (members from interactions...) act through this. */
76
+ get resourceContext(): ResourceContext;
75
77
  /**
76
78
  * Resolves a member's permissions from cached state: guild-level for a
77
79
  * guild ID, or channel-level (including overwrites) for a cached channel