@fluxerjs/core 1.0.6 → 1.0.8

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 (59) hide show
  1. package/dist/{Channel-2WNJ445K.mjs → Channel-TWPDKW2P.mjs} +3 -1
  2. package/dist/{ClientUser-J6HQVSDJ.mjs → ClientUser-2K2BACK7.mjs} +1 -2
  3. package/dist/{Guild-GOQZ7XP4.mjs → Guild-CMZGA6DW.mjs} +3 -1
  4. package/dist/GuildMember-DW2N6ITI.mjs +7 -0
  5. package/dist/{Webhook-NUQCJAWZ.mjs → Message-G2QIKZQK.mjs} +3 -3
  6. package/dist/MessageReaction-XRPYZDSC.mjs +7 -0
  7. package/dist/Role-SVLWIAMN.mjs +7 -0
  8. package/dist/{Webhook-2RHBXH7R.mjs → Webhook-2MQESB7Z.mjs} +1 -1
  9. package/dist/chunk-4GCZFOS5.mjs +86 -0
  10. package/dist/chunk-CO5EL5LH.mjs +168 -0
  11. package/dist/chunk-CZIO2D7F.mjs +207 -0
  12. package/dist/chunk-HBF5QEDH.mjs +42 -0
  13. package/dist/chunk-JVEOQFUX.mjs +52 -0
  14. package/dist/chunk-SQVCCSNN.mjs +41 -0
  15. package/dist/chunk-TJVZEILY.mjs +120 -0
  16. package/dist/{chunk-BUEXP5SZ.mjs → chunk-ZGMM6IPQ.mjs} +12 -3
  17. package/dist/index.d.mts +539 -73
  18. package/dist/index.d.ts +539 -73
  19. package/dist/index.js +1125 -355
  20. package/dist/index.mjs +520 -194
  21. package/package.json +27 -8
  22. package/dist/Channel-HM2UY4DN.mjs +0 -17
  23. package/dist/Channel-IKL3SJXN.mjs +0 -17
  24. package/dist/Channel-KILNV5V3.mjs +0 -17
  25. package/dist/Channel-TOAQGSRX.mjs +0 -17
  26. package/dist/Channel-VENHOL7S.mjs +0 -17
  27. package/dist/ClientUser-RNDKHQ3Z.mjs +0 -9
  28. package/dist/Guild-36EGAAEW.mjs +0 -8
  29. package/dist/Guild-CA3W6DOD.mjs +0 -8
  30. package/dist/Guild-NHNQ5TIA.mjs +0 -8
  31. package/dist/Guild-ZOFF5LFR.mjs +0 -8
  32. package/dist/GuildMember-RGVPVUAG.mjs +0 -9
  33. package/dist/GuildMember-XF7K2R45.mjs +0 -9
  34. package/dist/Message-23Z3RPCZ.mjs +0 -9
  35. package/dist/Message-33APPS76.mjs +0 -9
  36. package/dist/Message-PZUU7ZFR.mjs +0 -9
  37. package/dist/Message-XB5WNMHL.mjs +0 -9
  38. package/dist/chunk-3CNUPFDI.mjs +0 -59
  39. package/dist/chunk-4DBGMFOQ.mjs +0 -14
  40. package/dist/chunk-6CEMF2LO.mjs +0 -14
  41. package/dist/chunk-6EBNOON4.mjs +0 -86
  42. package/dist/chunk-72OY7B3D.mjs +0 -72
  43. package/dist/chunk-7FYM4D2E.mjs +0 -50
  44. package/dist/chunk-7GZN6JXT.mjs +0 -50
  45. package/dist/chunk-7H3TKJUT.mjs +0 -53
  46. package/dist/chunk-EF32ILJL.mjs +0 -102
  47. package/dist/chunk-F2EEQP5O.mjs +0 -86
  48. package/dist/chunk-GUNWHOQO.mjs +0 -42
  49. package/dist/chunk-L25ON7WB.mjs +0 -52
  50. package/dist/chunk-LBBIQOSH.mjs +0 -53
  51. package/dist/chunk-OHIHIQAS.mjs +0 -102
  52. package/dist/chunk-P4IRDGB4.mjs +0 -43
  53. package/dist/chunk-QDCFQF6J.mjs +0 -36
  54. package/dist/chunk-QDNFJVVE.mjs +0 -70
  55. package/dist/chunk-SW6KNICI.mjs +0 -52
  56. package/dist/chunk-TE5IC7IP.mjs +0 -36
  57. package/dist/chunk-WFONGZGK.mjs +0 -42
  58. package/dist/chunk-XXCBJJZE.mjs +0 -88
  59. package/dist/chunk-ZHRQQZ4X.mjs +0 -102
@@ -0,0 +1,120 @@
1
+ import {
2
+ CDN_URL
3
+ } from "./chunk-HQMYRYMY.mjs";
4
+ import {
5
+ GuildMember
6
+ } from "./chunk-JVEOQFUX.mjs";
7
+ import {
8
+ Role
9
+ } from "./chunk-SQVCCSNN.mjs";
10
+ import {
11
+ Base
12
+ } from "./chunk-XNS4O6QJ.mjs";
13
+
14
+ // src/structures/Guild.ts
15
+ import { parseRoleMention } from "@fluxerjs/util";
16
+ import { Collection } from "@fluxerjs/collection";
17
+ import { Routes } from "@fluxerjs/types";
18
+ var Guild = class extends Base {
19
+ client;
20
+ id;
21
+ name;
22
+ icon;
23
+ banner;
24
+ ownerId;
25
+ members = new Collection();
26
+ channels = new Collection();
27
+ roles = new Collection();
28
+ /** @param data - API guild from GET /guilds/{id} or gateway GUILD_CREATE */
29
+ constructor(client, data) {
30
+ super();
31
+ this.client = client;
32
+ this.id = data.id;
33
+ this.name = data.name;
34
+ this.icon = data.icon ?? null;
35
+ this.banner = data.banner ?? null;
36
+ this.ownerId = data.owner_id;
37
+ for (const r of data.roles ?? []) {
38
+ this.roles.set(r.id, new Role(client, r, this.id));
39
+ }
40
+ }
41
+ /** Get the guild icon URL, or null if no icon. */
42
+ iconURL(options) {
43
+ if (!this.icon) return null;
44
+ const size = options?.size ? `?size=${options.size}` : "";
45
+ return `${CDN_URL}/icons/${this.id}/${this.icon}.png${size}`;
46
+ }
47
+ /** Get the guild banner URL, or null if no banner. */
48
+ bannerURL(options) {
49
+ if (!this.banner) return null;
50
+ const size = options?.size ? `?size=${options.size}` : "";
51
+ return `${CDN_URL}/banners/${this.id}/${this.banner}.png${size}`;
52
+ }
53
+ /**
54
+ * Add a role to a member by user ID. Does not require fetching the member first.
55
+ * @param userId - The user ID of the member
56
+ * @param roleId - The role ID to add (or use guild.resolveRoleId for mention/name resolution)
57
+ * Requires Manage Roles permission.
58
+ */
59
+ async addRoleToMember(userId, roleId) {
60
+ await this.client.rest.put(Routes.guildMemberRole(this.id, userId, roleId));
61
+ }
62
+ /**
63
+ * Remove a role from a member by user ID. Does not require fetching the member first.
64
+ * @param userId - The user ID of the member
65
+ * @param roleId - The role ID to remove
66
+ * Requires Manage Roles permission.
67
+ */
68
+ async removeRoleFromMember(userId, roleId) {
69
+ await this.client.rest.delete(Routes.guildMemberRole(this.id, userId, roleId));
70
+ }
71
+ /**
72
+ * Resolve a role ID from an argument (role mention, raw ID, or name).
73
+ * Fetches guild roles if name is provided.
74
+ * @param arg - Role mention (@role), role ID, or role name
75
+ * @returns The role ID, or null if not found
76
+ */
77
+ async resolveRoleId(arg) {
78
+ const parsed = parseRoleMention(arg);
79
+ if (parsed) return parsed;
80
+ if (/^\d{17,19}$/.test(arg.trim())) return arg.trim();
81
+ const cached = this.roles.find(
82
+ (r) => !!(r.name && r.name.toLowerCase() === arg.trim().toLowerCase())
83
+ );
84
+ if (cached) return cached.id;
85
+ const roles = await this.client.rest.get(Routes.guildRoles(this.id));
86
+ const list = Array.isArray(roles) ? roles : Object.values(roles ?? {});
87
+ const role = list.find((r) => !!(r.name && r.name.toLowerCase() === arg.trim().toLowerCase()));
88
+ if (role) {
89
+ this.roles.set(role.id, new Role(this.client, role, this.id));
90
+ return role.id;
91
+ }
92
+ return null;
93
+ }
94
+ /**
95
+ * Fetch a guild member by user ID.
96
+ * @param userId - The user ID of the member to fetch
97
+ * @returns The guild member, or null if not found
98
+ */
99
+ async fetchMember(userId) {
100
+ try {
101
+ const data = await this.client.rest.get(
102
+ Routes.guildMember(this.id, userId)
103
+ );
104
+ return new GuildMember(this.client, { ...data, guild_id: this.id }, this);
105
+ } catch {
106
+ return null;
107
+ }
108
+ }
109
+ /** Fetch all webhooks in this guild. Returned webhooks do not include the token (cannot send). */
110
+ async fetchWebhooks() {
111
+ const { Webhook } = await import("./Webhook-2MQESB7Z.mjs");
112
+ const data = await this.client.rest.get(Routes.guildWebhooks(this.id));
113
+ const list = Array.isArray(data) ? data : Object.values(data ?? {});
114
+ return list.map((w) => new Webhook(this.client, w));
115
+ }
116
+ };
117
+
118
+ export {
119
+ Guild
120
+ };
@@ -13,6 +13,7 @@ var Webhook = class _Webhook extends Base {
13
13
  avatar;
14
14
  /** Present only when webhook was created via createWebhook(); not returned when fetching. */
15
15
  token;
16
+ /** @param data - API webhook from POST /channels/{id}/webhooks (has token) or GET /webhooks/{id} (no token) */
16
17
  constructor(client, data) {
17
18
  super();
18
19
  this.client = client;
@@ -33,7 +34,9 @@ var Webhook = class _Webhook extends Base {
33
34
  */
34
35
  async send(options) {
35
36
  if (!this.token) {
36
- throw new Error("Webhook token is required to send. The token is only returned when creating a webhook; fetched webhooks cannot send.");
37
+ throw new Error(
38
+ "Webhook token is required to send. The token is only returned when creating a webhook; fetched webhooks cannot send."
39
+ );
37
40
  }
38
41
  const body = typeof options === "string" ? { content: options } : options;
39
42
  await this.client.rest.post(Routes.webhookExecute(this.id, this.token), {
@@ -42,7 +45,10 @@ var Webhook = class _Webhook extends Base {
42
45
  });
43
46
  }
44
47
  /**
45
- * Fetch a webhook by ID using bot auth. The returned webhook will not have a token (cannot send).
48
+ * Fetch a webhook by ID using bot auth.
49
+ * @param client - The client instance
50
+ * @param webhookId - The webhook ID
51
+ * @returns Webhook without token (cannot send)
46
52
  */
47
53
  static async fetch(client, webhookId) {
48
54
  const data = await client.rest.get(Routes.webhook(webhookId));
@@ -50,7 +56,10 @@ var Webhook = class _Webhook extends Base {
50
56
  }
51
57
  /**
52
58
  * Create a Webhook instance from an ID and token (e.g. from a stored webhook URL).
53
- * Useful when you have the token from a previous createWebhook() call.
59
+ * @param client - The client instance
60
+ * @param webhookId - The webhook ID
61
+ * @param token - The webhook token (from createWebhook or stored)
62
+ * @param options - Optional channelId, guildId, name for display
54
63
  */
55
64
  static fromToken(client, webhookId, token, options) {
56
65
  return new _Webhook(client, {