oceanic.js 1.12.1-dev.fd0cb72 → 1.13.1-dev.1f55dd6

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 (38) hide show
  1. package/dist/lib/Client.d.ts +3 -3
  2. package/dist/lib/Client.js +11 -14
  3. package/dist/lib/Constants.d.ts +6 -8
  4. package/dist/lib/Constants.js +5 -5
  5. package/dist/lib/gateway/Shard.js +2 -2
  6. package/dist/lib/gateway/ShardManager.js +2 -2
  7. package/dist/lib/gateway/events.js +7 -6
  8. package/dist/lib/routes/Guilds.d.ts +18 -45
  9. package/dist/lib/routes/Guilds.js +25 -96
  10. package/dist/lib/routes/Webhooks.js +2 -1
  11. package/dist/lib/structures/Guild.d.ts +3 -11
  12. package/dist/lib/structures/Guild.js +9 -21
  13. package/dist/lib/structures/GuildTemplate.d.ts +1 -6
  14. package/dist/lib/structures/GuildTemplate.js +1 -8
  15. package/dist/lib/structures/ModalSubmitInteraction.d.ts +2 -2
  16. package/dist/lib/structures/ModalSubmitInteraction.js +50 -5
  17. package/dist/lib/structures/Role.d.ts +7 -2
  18. package/dist/lib/structures/Role.js +20 -2
  19. package/dist/lib/structures/User.d.ts +3 -1
  20. package/dist/lib/structures/User.js +15 -1
  21. package/dist/lib/types/channels.d.ts +55 -8
  22. package/dist/lib/types/guild-template.d.ts +0 -7
  23. package/dist/lib/types/guilds.d.ts +21 -37
  24. package/dist/lib/types/interactions.d.ts +77 -7
  25. package/dist/lib/types/json.d.ts +6 -2
  26. package/dist/lib/types/users.d.ts +26 -1
  27. package/dist/lib/types/webhooks.d.ts +1 -1
  28. package/dist/lib/util/Routes.d.ts +0 -2
  29. package/dist/lib/util/Routes.js +4 -7
  30. package/dist/lib/util/Util.d.ts +6 -6
  31. package/dist/lib/util/Util.js +61 -5
  32. package/dist/lib/util/interactions/ModalSubmitInteractionComponentsWrapper.d.ts +94 -5
  33. package/dist/lib/util/interactions/ModalSubmitInteractionComponentsWrapper.js +49 -3
  34. package/dist/lib/util/interactions/SelectMenuValuesWrapper.js +10 -54
  35. package/dist/lib/util/interactions/shared.d.ts +7 -0
  36. package/dist/lib/util/interactions/shared.js +22 -0
  37. package/dist/package.json +6 -6
  38. package/package.json +6 -6
@@ -1,14 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
3
4
  /** @module ModalSubmitInteractionComponentsWrapper */
5
+ const shared_1 = require("./shared");
4
6
  const Errors_1 = require("../Errors");
5
7
  const Constants_1 = require("../../Constants");
8
+ const Collection_1 = tslib_1.__importDefault(require("../Collection"));
6
9
  /** A wrapper for interaction components. */
7
10
  class ModalSubmitInteractionComponentsWrapper {
8
11
  /** The raw components from Discord. */
9
12
  raw;
10
- constructor(data) {
13
+ resolved;
14
+ constructor(resolved, data) {
11
15
  this.raw = data;
16
+ this.resolved = resolved;
12
17
  }
13
18
  _getComponent(customID, required = false, type) {
14
19
  const opt = this.getComponents().find(o => o.customID === customID && o.type === type);
@@ -19,9 +24,43 @@ class ModalSubmitInteractionComponentsWrapper {
19
24
  return opt;
20
25
  }
21
26
  }
27
+ getChannelSelectComponent(name, required) {
28
+ return this._getComponent(name, required, Constants_1.ComponentTypes.CHANNEL_SELECT);
29
+ }
30
+ getChannelSelectValues(name, required) {
31
+ const component = this.getChannelSelectComponent(name, required);
32
+ return component?.values && (0, shared_1.mapRawToResolved)("channel", component.values, this.resolved.channels, false);
33
+ }
22
34
  /** Get the components in this interaction. */
23
35
  getComponents() {
24
- return this.raw.reduce((a, b) => a.concat(...b.components), []);
36
+ return this.raw.flatMap(r => r.type === Constants_1.ComponentTypes.ACTION_ROW ? r.components : r.component).filter(Boolean);
37
+ }
38
+ getFileUploadComponent(name, required) {
39
+ return this._getComponent(name, required, Constants_1.ComponentTypes.FILE_UPLOAD);
40
+ }
41
+ getFileUploadValues(name, required) {
42
+ const component = this.getFileUploadComponent(name, required);
43
+ return component?.values && (0, shared_1.mapRawToResolved)("attachment", component.values, this.resolved.attachments, false);
44
+ }
45
+ getMentionableSelectComponent(name, required) {
46
+ return this._getComponent(name, required, Constants_1.ComponentTypes.MENTIONABLE_SELECT);
47
+ }
48
+ getMentionableSelectValues(name, required) {
49
+ const component = this.getMentionableSelectComponent(name, required);
50
+ return component?.values && (0, shared_1.mapRawToResolved)("mentionable", component.values, new Collection_1.default([...this.resolved.users, ...this.resolved.roles]), false);
51
+ }
52
+ getRoleSelectComponent(name, required) {
53
+ return this._getComponent(name, required, Constants_1.ComponentTypes.ROLE_SELECT);
54
+ }
55
+ getRoleSelectValues(name, required) {
56
+ const component = this.getRoleSelectComponent(name, required);
57
+ return component?.values && (0, shared_1.mapRawToResolved)("role", component.values, this.resolved.roles, false);
58
+ }
59
+ getStringSelectComponent(name, required) {
60
+ return this._getComponent(name, required, Constants_1.ComponentTypes.STRING_SELECT);
61
+ }
62
+ getStringSelectValues(name, required) {
63
+ return this.getStringSelectComponent(name, required)?.values;
25
64
  }
26
65
  getTextInput(name, required) {
27
66
  return this.getTextInputComponent(name, required)?.value;
@@ -29,6 +68,13 @@ class ModalSubmitInteractionComponentsWrapper {
29
68
  getTextInputComponent(name, required) {
30
69
  return this._getComponent(name, required, Constants_1.ComponentTypes.TEXT_INPUT);
31
70
  }
71
+ getUserSelectComponent(name, required) {
72
+ return this._getComponent(name, required, Constants_1.ComponentTypes.USER_SELECT);
73
+ }
74
+ getUserSelectValues(name, required) {
75
+ const component = this.getUserSelectComponent(name, required);
76
+ return component?.values && (0, shared_1.mapRawToResolved)("user", component.values, this.resolved.users, false);
77
+ }
32
78
  }
33
79
  exports.default = ModalSubmitInteractionComponentsWrapper;
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kYWxTdWJtaXRJbnRlcmFjdGlvbkNvbXBvbmVudHNXcmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL3V0aWwvaW50ZXJhY3Rpb25zL01vZGFsU3VibWl0SW50ZXJhY3Rpb25Db21wb25lbnRzV3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNEQUFzRDtBQUN0RCxzQ0FBeUM7QUFDekMsK0NBQTJFO0FBRzNFLDRDQUE0QztBQUM1QyxNQUFxQix1Q0FBdUM7SUFDeEQsd0NBQXdDO0lBQ3hDLEdBQUcsQ0FBd0M7SUFDM0MsWUFBWSxJQUEyQztRQUNuRCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztJQUNwQixDQUFDO0lBRU8sYUFBYSxDQUEwRCxRQUFnQixFQUFFLFFBQVEsR0FBRyxLQUFLLEVBQUUsSUFBeUI7UUFDeEksTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFrQixDQUFDO1FBQ3hHLElBQUksQ0FBQyxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLHFCQUFZLENBQUMsK0JBQStCLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdEUsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUM7SUFDTCxDQUFDO0lBRUQsOENBQThDO0lBQzlDLGFBQWE7UUFDVCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFrQyxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQVNELFlBQVksQ0FBQyxJQUFZLEVBQUUsUUFBa0I7UUFDekMsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLFFBQWlCLENBQUMsRUFBRSxLQUFLLENBQUM7SUFDdEUsQ0FBQztJQVNELHFCQUFxQixDQUFDLElBQVksRUFBRSxRQUFrQjtRQUNsRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSwwQkFBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FDSjtBQTFDRCwwREEwQ0MifQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kYWxTdWJtaXRJbnRlcmFjdGlvbkNvbXBvbmVudHNXcmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL3V0aWwvaW50ZXJhY3Rpb25zL01vZGFsU3VibWl0SW50ZXJhY3Rpb25Db21wb25lbnRzV3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBc0Q7QUFDdEQscUNBQTRDO0FBQzVDLHNDQUF5QztBQUN6QywrQ0FBMkU7QUFnQjNFLHVFQUF1QztBQUl2Qyw0Q0FBNEM7QUFDNUMsTUFBcUIsdUNBQXVDO0lBQ3hELHdDQUF3QztJQUN4QyxHQUFHLENBQXFFO0lBQ3hFLFFBQVEsQ0FBcUM7SUFDN0MsWUFBWSxRQUE0QyxFQUFFLElBQXdFO1FBQzlILElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFTyxhQUFhLENBQTBELFFBQWdCLEVBQUUsUUFBUSxHQUFHLEtBQUssRUFBRSxJQUF5QjtRQUN4SSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQWtCLENBQUM7UUFDeEcsSUFBSSxDQUFDLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNuQixNQUFNLElBQUkscUJBQVksQ0FBQywrQkFBK0IsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN0RSxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQztJQUNMLENBQUM7SUFTRCx5QkFBeUIsQ0FBQyxJQUFZLEVBQUUsUUFBa0I7UUFDdEQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsMEJBQWMsQ0FBQyxj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
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
3
4
  /** @module SelectMenuValuesWrapper */
4
- const Errors_1 = require("../Errors");
5
+ const shared_1 = require("./shared");
5
6
  const Constants_1 = require("../../Constants");
7
+ const Collection_1 = tslib_1.__importDefault(require("../Collection"));
6
8
  /** A wrapper for select menu data. */
7
9
  class SelectMenuValuesWrapper {
8
10
  /** The raw received values. */
@@ -20,13 +22,7 @@ class SelectMenuValuesWrapper {
20
22
  * @param ensurePresent If true, an error will be thrown if any value cannot be mapped to a channel.
21
23
  */
22
24
  getChannels(ensurePresent) {
23
- return this.raw.map(id => {
24
- const ch = this.resolved.channels.get(id);
25
- if (!ch && ensurePresent) {
26
- throw new Errors_1.WrapperError(`Failed to find channel in resolved data: ${id}`);
27
- }
28
- return ch;
29
- }).filter(Boolean);
25
+ return (0, shared_1.mapRawToResolved)("channel", this.raw, this.resolved.channels, ensurePresent);
30
26
  }
31
27
  /**
32
28
  * Get the complete version of the selected channels. This will only succeed if the channel is cached. If the channel is private and isn't cached, an `InteractionResolvedChannel` instance will still be returned.
@@ -35,16 +31,7 @@ class SelectMenuValuesWrapper {
35
31
  * @param ensurePresent If true, an error will be thrown if any value cannot be mapped to a channel.
36
32
  */
37
33
  getCompleteChannels(ensurePresent) {
38
- return this.raw.map(id => {
39
- const ch = this.resolved.channels.get(id);
40
- if (ch && ch.type === Constants_1.ChannelTypes.DM) {
41
- return ch?.completeChannel ?? ch;
42
- }
43
- if (!ch && ensurePresent) {
44
- throw new Errors_1.WrapperError(`Failed to find channel in resolved data: ${id}`);
45
- }
46
- return ch;
47
- }).filter(Boolean);
34
+ return this.getChannels(ensurePresent).map(ch => ch.type === Constants_1.ChannelTypes.DM ? ch.completeChannel ?? ch : ch);
48
35
  }
49
36
  /**
50
37
  * Get the selected members.
@@ -53,13 +40,7 @@ class SelectMenuValuesWrapper {
53
40
  * @param ensurePresent If true, an error will be thrown if any value cannot be mapped to a member.
54
41
  */
55
42
  getMembers(ensurePresent) {
56
- return this.raw.map(id => {
57
- const member = this.resolved.members.get(id);
58
- if (!member && ensurePresent) {
59
- throw new Errors_1.WrapperError(`Failed to find member in resolved data: ${id}`);
60
- }
61
- return member;
62
- }).filter(Boolean);
43
+ return (0, shared_1.mapRawToResolved)("member", this.raw, this.resolved.members, ensurePresent);
63
44
  }
64
45
  /**
65
46
  * Get the selected mentionables. (users, roles)
@@ -68,20 +49,7 @@ class SelectMenuValuesWrapper {
68
49
  * @param ensurePresent If true, an error will be thrown if any value cannot be mapped to a user, or role.
69
50
  */
70
51
  getMentionables(ensurePresent) {
71
- const res = [];
72
- for (const id of this.raw) {
73
- const role = this.resolved.roles.get(id);
74
- const user = this.resolved.users.get(id);
75
- if ((!role && !user)) {
76
- if (ensurePresent) {
77
- throw new Errors_1.WrapperError(`Failed to find mentionable in resolved data: ${id}`);
78
- }
79
- }
80
- else {
81
- res.push((role ?? user));
82
- }
83
- }
84
- return res;
52
+ return (0, shared_1.mapRawToResolved)("mentionable", this.raw, new Collection_1.default([...this.resolved.users, ...this.resolved.roles]), ensurePresent);
85
53
  }
86
54
  /**
87
55
  * Get the selected roles.
@@ -90,13 +58,7 @@ class SelectMenuValuesWrapper {
90
58
  * @param ensurePresent If true, an error will be thrown if any value cannot be mapped to a role.
91
59
  */
92
60
  getRoles(ensurePresent) {
93
- return this.raw.map(id => {
94
- const role = this.resolved.roles.get(id);
95
- if (!role && ensurePresent) {
96
- throw new Errors_1.WrapperError(`Failed to find role in resolved data: ${id}`);
97
- }
98
- return role;
99
- }).filter(Boolean);
61
+ return (0, shared_1.mapRawToResolved)("role", this.raw, this.resolved.roles, ensurePresent);
100
62
  }
101
63
  /**
102
64
  * Get the selected string values. This cannot fail.
@@ -111,14 +73,8 @@ class SelectMenuValuesWrapper {
111
73
  * @param ensurePresent If true, an error will be thrown if any value cannot be mapped to a user.
112
74
  */
113
75
  getUsers(ensurePresent) {
114
- return this.raw.map(id => {
115
- const user = this.resolved.users.get(id);
116
- if (!user && ensurePresent) {
117
- throw new Errors_1.WrapperError(`Failed to find user in resolved data: ${id}`);
118
- }
119
- return user;
120
- }).filter(Boolean);
76
+ return (0, shared_1.mapRawToResolved)("user", this.raw, this.resolved.users, ensurePresent);
121
77
  }
122
78
  }
123
79
  exports.default = SelectMenuValuesWrapper;
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VsZWN0TWVudVZhbHVlc1dyYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvdXRpbC9pbnRlcmFjdGlvbnMvU2VsZWN0TWVudVZhbHVlc1dyYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQ0FBc0M7QUFDdEMsc0NBQXlDO0FBQ3pDLCtDQUErQztBQVEvQyxzQ0FBc0M7QUFDdEMsTUFBcUIsdUJBQXVCO0lBQ3hDLCtCQUErQjtJQUMvQixHQUFHLENBQWdCO0lBQ25CLDJDQUEyQztJQUMzQyxRQUFRLENBQTBDO0lBQ2xELFlBQVksUUFBaUQsRUFBRSxNQUFxQjtRQUNoRixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsR0FBRyxHQUFLLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsYUFBdUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNyQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxJQUFJLHFCQUFZLENBQUMsNENBQTRDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0UsQ0FBQztZQUNELE9BQU8sRUFBRyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG1CQUFtQixDQUFDLGFBQXVCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDckIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEtBQUssd0JBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDcEMsT0FBTyxFQUFFLEVBQUUsZUFBZSxJQUFJLEVBQUUsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLEVBQUUsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxJQUFJLHFCQUFZLENBQUMsNENBQTRDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0UsQ0FBQztZQUNELE9BQU8sRUFBRyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxhQUF1QjtRQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsTUFBTSxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUMzQixNQUFNLElBQUkscUJBQVksQ0FBQywyQ0FBMkMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1RSxDQUFDO1lBQ0QsT0FBTyxNQUFPLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxhQUF1QjtRQUNuQyxNQUFNLEdBQUcsR0FBdUIsRUFBRSxDQUFDO1FBQ25DLEtBQUssTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxhQUFhLEVBQUUsQ0FBQztvQkFDaEIsTUFBTSxJQUFJLHFCQUFZLENBQUMsZ0RBQWdELEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2pGLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUUsQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsYUFBdUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLElBQUksSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxJQUFJLHFCQUFZLENBQUMseUNBQXlDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUUsQ0FBQztZQUNELE9BQU8sSUFBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsQ0FBQyxhQUF1QjtRQUM1QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsSUFBSSxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUN6QixNQUFNLElBQUkscUJBQVksQ0FBQyx5Q0FBeUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxRSxDQUFDO1lBQ0QsT0FBTyxJQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7Q0FDSjtBQTFIRCwwQ0EwSEMifQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VsZWN0TWVudVZhbHVlc1dyYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvdXRpbC9pbnRlcmFjdGlvbnMvU2VsZWN0TWVudVZhbHVlc1dyYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0NBQXNDO0FBQ3RDLHFDQUE0QztBQUM1QywrQ0FBK0M7QUFPL0MsdUVBQXVDO0FBRXZDLHNDQUFzQztBQUN0QyxNQUFxQix1QkFBdUI7SUFDeEMsK0JBQStCO0lBQy9CLEdBQUcsQ0FBZ0I7SUFDbkIsMkNBQTJDO0lBQzNDLFFBQVEsQ0FBMEM7SUFDbEQsWUFBWSxRQUFpRCxFQUFFLE1BQXFCO1FBQ2hGLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxhQUF1QjtRQUMvQixPQUFPLElBQUEseUJBQWdCLEVBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsbUJBQW1CLENBQUMsYUFBdUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssd0JBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsYUFBdUI7UUFDOUIsT0FBTyxJQUFBLHlCQUFnQixFQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxhQUF1QjtRQUNuQyxPQUFPLElBQUEseUJBQWdCLEVBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxvQkFBVSxDQUFzQixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDM0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxDQUFDLGFBQXVCO1FBQzVCLE9BQU8sSUFBQSx5QkFBZ0IsRUFBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsQ0FBQyxhQUF1QjtRQUM1QixPQUFPLElBQUEseUJBQWdCLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDbEYsQ0FBQztDQUNKO0FBNUVELDBDQTRFQyJ9
@@ -0,0 +1,7 @@
1
+ import type Collection from "../Collection";
2
+ /**
3
+ * Maps raw select menu values to resolved objects.
4
+ *
5
+ * If `ensurePresent` is false, values that aren't in `resolved` will be ignored.
6
+ */
7
+ export declare function mapRawToResolved<T, R extends Collection<string, T>>(type: string, raw: Array<string>, resolved: R, ensurePresent?: boolean): Array<T>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapRawToResolved = void 0;
4
+ const Errors_1 = require("../Errors");
5
+ /**
6
+ * Maps raw select menu values to resolved objects.
7
+ *
8
+ * If `ensurePresent` is false, values that aren't in `resolved` will be ignored.
9
+ */
10
+ function mapRawToResolved(type, raw, resolved, ensurePresent = false) {
11
+ return raw
12
+ .map(id => {
13
+ const value = resolved.get(id);
14
+ if (!value && ensurePresent) {
15
+ throw new Errors_1.WrapperError(`Failed to find ${type} in resolved data: ${id}`);
16
+ }
17
+ return value;
18
+ })
19
+ .filter(Boolean);
20
+ }
21
+ exports.mapRawToResolved = mapRawToResolved;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL3V0aWwvaW50ZXJhY3Rpb25zL3NoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxzQ0FBeUM7QUFFekM7Ozs7R0FJRztBQUNILFNBQWdCLGdCQUFnQixDQUM1QixJQUFZLEVBQ1osR0FBa0IsRUFDbEIsUUFBVyxFQUNYLGFBQWEsR0FBRyxLQUFLO0lBRXJCLE9BQU8sR0FBRztTQUNMLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUNOLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEtBQUssSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUkscUJBQVksQ0FBQyxrQkFBa0IsSUFBSSxzQkFBc0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3RSxDQUFDO1FBQ0QsT0FBTyxLQUFNLENBQUM7SUFDbEIsQ0FBQyxDQUFDO1NBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFmRCw0Q0FlQyJ9
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oceanic.js",
3
- "version": "1.12.1-dev.fd0cb72",
3
+ "version": "1.13.1-dev.1f55dd6",
4
4
  "description": "A NodeJS library for interfacing with Discord.",
5
5
  "packageManager": "pnpm@9.6.0",
6
6
  "main": "./dist/lib/index.js",
@@ -45,20 +45,20 @@
45
45
  "devDependencies": {
46
46
  "@favware/npm-deprecate": "^2.0.0",
47
47
  "@mxssfd/typedoc-theme": "^1.1.3",
48
- "@types/node": "^18.19.87",
49
- "@types/pako": "^2.0.3",
48
+ "@types/node": "^18.19.129",
49
+ "@types/pako": "^2.0.4",
50
50
  "@types/ws": "^8.18.1",
51
51
  "@typescript-eslint/eslint-plugin": "^7.18.0",
52
52
  "@typescript-eslint/parser": "^7.18.0",
53
53
  "erlpack": "^0.1.4",
54
54
  "eslint": "^8.57.1",
55
- "eslint-plugin-import": "^2.31.0",
55
+ "eslint-plugin-import": "^2.32.0",
56
56
  "eslint-plugin-import-newlines": "^1.4.0",
57
57
  "eslint-plugin-jsdoc": "^50.6.11",
58
58
  "eslint-plugin-json": "^4.0.1",
59
59
  "eslint-plugin-prefer-arrow": "^1.2.3",
60
60
  "eslint-plugin-unicorn": "^56.0.1",
61
- "eslint-plugin-unused-imports": "^4.1.4",
61
+ "eslint-plugin-unused-imports": "^4.2.0",
62
62
  "pako": "^2.1.0",
63
63
  "rimraf": "^6.0.1",
64
64
  "typedoc": "~0.25.13",
@@ -71,7 +71,7 @@
71
71
  },
72
72
  "dependencies": {
73
73
  "tslib": "^2.8.1",
74
- "ws": "^8.18.1"
74
+ "ws": "^8.18.3"
75
75
  },
76
76
  "engines": {
77
77
  "node": ">=18.13.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oceanic.js",
3
- "version": "1.12.1-dev.fd0cb72",
3
+ "version": "1.13.1-dev.1f55dd6",
4
4
  "description": "A NodeJS library for interfacing with Discord.",
5
5
  "main": "./dist/lib/index.js",
6
6
  "types": "./dist/lib/index.d.ts",
@@ -35,20 +35,20 @@
35
35
  "devDependencies": {
36
36
  "@favware/npm-deprecate": "^2.0.0",
37
37
  "@mxssfd/typedoc-theme": "^1.1.3",
38
- "@types/node": "^18.19.87",
39
- "@types/pako": "^2.0.3",
38
+ "@types/node": "^18.19.129",
39
+ "@types/pako": "^2.0.4",
40
40
  "@types/ws": "^8.18.1",
41
41
  "@typescript-eslint/eslint-plugin": "^7.18.0",
42
42
  "@typescript-eslint/parser": "^7.18.0",
43
43
  "erlpack": "^0.1.4",
44
44
  "eslint": "^8.57.1",
45
- "eslint-plugin-import": "^2.31.0",
45
+ "eslint-plugin-import": "^2.32.0",
46
46
  "eslint-plugin-import-newlines": "^1.4.0",
47
47
  "eslint-plugin-jsdoc": "^50.6.11",
48
48
  "eslint-plugin-json": "^4.0.1",
49
49
  "eslint-plugin-prefer-arrow": "^1.2.3",
50
50
  "eslint-plugin-unicorn": "^56.0.1",
51
- "eslint-plugin-unused-imports": "^4.1.4",
51
+ "eslint-plugin-unused-imports": "^4.2.0",
52
52
  "pako": "^2.1.0",
53
53
  "rimraf": "^6.0.1",
54
54
  "typedoc": "~0.25.13",
@@ -61,7 +61,7 @@
61
61
  },
62
62
  "dependencies": {
63
63
  "tslib": "^2.8.1",
64
- "ws": "^8.18.1"
64
+ "ws": "^8.18.3"
65
65
  },
66
66
  "engines": {
67
67
  "node": ">=18.13.0"