@jubbio/core 1.3.1 → 1.3.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 (121) hide show
  1. package/dist/cjs/Client.d.ts +157 -0
  2. package/dist/cjs/Client.js +640 -0
  3. package/dist/cjs/builders/ActionRowBuilder.d.ts +53 -0
  4. package/dist/cjs/builders/ActionRowBuilder.js +68 -0
  5. package/dist/cjs/builders/ButtonBuilder.d.ts +77 -0
  6. package/dist/cjs/builders/ButtonBuilder.js +96 -0
  7. package/dist/cjs/builders/EmbedBuilder.d.ts +157 -0
  8. package/dist/cjs/builders/EmbedBuilder.js +208 -0
  9. package/dist/cjs/builders/ModalBuilder.d.ts +122 -0
  10. package/dist/cjs/builders/ModalBuilder.js +162 -0
  11. package/dist/cjs/builders/SelectMenuBuilder.d.ts +123 -0
  12. package/dist/cjs/builders/SelectMenuBuilder.js +165 -0
  13. package/dist/cjs/builders/SlashCommandBuilder.d.ts +197 -0
  14. package/dist/cjs/builders/SlashCommandBuilder.js +324 -0
  15. package/dist/cjs/builders/index.d.ts +9 -0
  16. package/dist/cjs/builders/index.js +26 -0
  17. package/dist/cjs/enums.d.ts +191 -0
  18. package/dist/cjs/enums.js +211 -0
  19. package/dist/cjs/index.d.ts +25 -0
  20. package/dist/cjs/index.js +130 -0
  21. package/dist/cjs/managers/BaseManager.d.ts +69 -0
  22. package/dist/cjs/managers/BaseManager.js +106 -0
  23. package/dist/cjs/managers/ChannelManager.d.ts +95 -0
  24. package/dist/cjs/managers/ChannelManager.js +205 -0
  25. package/dist/cjs/managers/GuildMemberManager.d.ts +74 -0
  26. package/dist/cjs/managers/GuildMemberManager.js +157 -0
  27. package/dist/cjs/managers/RoleManager.d.ts +84 -0
  28. package/dist/cjs/managers/RoleManager.js +207 -0
  29. package/dist/cjs/managers/index.d.ts +7 -0
  30. package/dist/cjs/managers/index.js +24 -0
  31. package/dist/cjs/rest/REST.d.ts +527 -0
  32. package/dist/cjs/rest/REST.js +904 -0
  33. package/dist/cjs/rest/index.d.ts +1 -0
  34. package/dist/cjs/rest/index.js +18 -0
  35. package/dist/cjs/sharding/ShardingManager.d.ts +179 -0
  36. package/dist/cjs/sharding/ShardingManager.js +375 -0
  37. package/dist/cjs/sharding/index.d.ts +4 -0
  38. package/dist/cjs/sharding/index.js +21 -0
  39. package/dist/cjs/structures/Channel.d.ts +122 -0
  40. package/dist/cjs/structures/Channel.js +240 -0
  41. package/dist/cjs/structures/Collection.d.ts +53 -0
  42. package/dist/cjs/structures/Collection.js +115 -0
  43. package/dist/cjs/structures/Guild.d.ts +59 -0
  44. package/dist/cjs/structures/Guild.js +94 -0
  45. package/dist/cjs/structures/GuildMember.d.ts +174 -0
  46. package/dist/cjs/structures/GuildMember.js +311 -0
  47. package/dist/cjs/structures/Interaction.d.ts +245 -0
  48. package/dist/cjs/structures/Interaction.js +450 -0
  49. package/dist/cjs/structures/Message.d.ts +98 -0
  50. package/dist/cjs/structures/Message.js +195 -0
  51. package/dist/cjs/structures/User.d.ts +37 -0
  52. package/dist/cjs/structures/User.js +65 -0
  53. package/dist/cjs/structures/index.d.ts +7 -0
  54. package/dist/cjs/structures/index.js +25 -0
  55. package/dist/cjs/structures.d.ts +1 -0
  56. package/dist/cjs/structures.js +19 -0
  57. package/dist/cjs/types.d.ts +255 -0
  58. package/dist/cjs/types.js +3 -0
  59. package/dist/cjs/utils/BitField.d.ts +66 -0
  60. package/dist/cjs/utils/BitField.js +138 -0
  61. package/dist/cjs/utils/Collection.d.ts +116 -0
  62. package/dist/cjs/utils/Collection.js +265 -0
  63. package/dist/cjs/utils/Collector.d.ts +152 -0
  64. package/dist/cjs/utils/Collector.js +314 -0
  65. package/dist/cjs/utils/DataResolver.d.ts +61 -0
  66. package/dist/cjs/utils/DataResolver.js +146 -0
  67. package/dist/cjs/utils/Formatters.d.ts +145 -0
  68. package/dist/cjs/utils/Formatters.js +213 -0
  69. package/dist/cjs/utils/IntentsBitField.d.ts +85 -0
  70. package/dist/cjs/utils/IntentsBitField.js +99 -0
  71. package/dist/cjs/utils/Partials.d.ts +104 -0
  72. package/dist/cjs/utils/Partials.js +148 -0
  73. package/dist/cjs/utils/PermissionsBitField.d.ts +118 -0
  74. package/dist/cjs/utils/PermissionsBitField.js +145 -0
  75. package/dist/cjs/utils/SnowflakeUtil.d.ts +63 -0
  76. package/dist/cjs/utils/SnowflakeUtil.js +93 -0
  77. package/dist/cjs/utils/Sweepers.d.ts +119 -0
  78. package/dist/cjs/utils/Sweepers.js +249 -0
  79. package/dist/cjs/utils/index.d.ts +13 -0
  80. package/dist/cjs/utils/index.js +30 -0
  81. package/dist/esm/Client.js +634 -0
  82. package/dist/esm/builders/ActionRowBuilder.js +64 -0
  83. package/dist/esm/builders/ButtonBuilder.js +92 -0
  84. package/dist/esm/builders/EmbedBuilder.js +204 -0
  85. package/dist/esm/builders/ModalBuilder.js +157 -0
  86. package/dist/esm/builders/SelectMenuBuilder.js +161 -0
  87. package/dist/esm/builders/SlashCommandBuilder.js +311 -0
  88. package/dist/esm/builders/index.js +10 -0
  89. package/dist/esm/enums.js +208 -0
  90. package/dist/esm/index.js +34 -0
  91. package/dist/esm/managers/BaseManager.js +100 -0
  92. package/dist/esm/managers/ChannelManager.js +200 -0
  93. package/dist/esm/managers/GuildMemberManager.js +153 -0
  94. package/dist/esm/managers/RoleManager.js +203 -0
  95. package/dist/esm/managers/index.js +8 -0
  96. package/dist/esm/rest/REST.js +900 -0
  97. package/dist/esm/rest/index.js +2 -0
  98. package/dist/esm/sharding/ShardingManager.js +366 -0
  99. package/dist/esm/sharding/index.js +5 -0
  100. package/dist/esm/structures/Channel.js +232 -0
  101. package/dist/esm/structures/Collection.js +111 -0
  102. package/dist/esm/structures/Guild.js +90 -0
  103. package/dist/esm/structures/GuildMember.js +306 -0
  104. package/dist/esm/structures/Interaction.js +438 -0
  105. package/dist/esm/structures/Message.js +191 -0
  106. package/dist/esm/structures/User.js +61 -0
  107. package/dist/esm/structures/index.js +9 -0
  108. package/dist/esm/structures.js +3 -0
  109. package/dist/esm/types.js +2 -0
  110. package/dist/esm/utils/BitField.js +134 -0
  111. package/dist/esm/utils/Collection.js +261 -0
  112. package/dist/esm/utils/Collector.js +305 -0
  113. package/dist/esm/utils/DataResolver.js +142 -0
  114. package/dist/esm/utils/Formatters.js +191 -0
  115. package/dist/esm/utils/IntentsBitField.js +93 -0
  116. package/dist/esm/utils/Partials.js +137 -0
  117. package/dist/esm/utils/PermissionsBitField.js +141 -0
  118. package/dist/esm/utils/SnowflakeUtil.js +89 -0
  119. package/dist/esm/utils/Sweepers.js +245 -0
  120. package/dist/esm/utils/index.js +14 -0
  121. package/package.json +14 -4
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OverwriteType = exports.PermissionFlagsBits = exports.PresenceStatus = exports.ActivityType = exports.MessageFlags = exports.InteractionResponseType = exports.ChannelType = exports.ApplicationCommandOptionType = exports.ApplicationCommandType = exports.InteractionType = exports.GatewayOpcodes = exports.GatewayIntentBits = void 0;
4
+ /**
5
+ * Gateway Intent Bits
6
+ */
7
+ var GatewayIntentBits;
8
+ (function (GatewayIntentBits) {
9
+ GatewayIntentBits[GatewayIntentBits["Guilds"] = 1] = "Guilds";
10
+ GatewayIntentBits[GatewayIntentBits["GuildMembers"] = 2] = "GuildMembers";
11
+ GatewayIntentBits[GatewayIntentBits["GuildModeration"] = 4] = "GuildModeration";
12
+ GatewayIntentBits[GatewayIntentBits["GuildEmojisAndStickers"] = 8] = "GuildEmojisAndStickers";
13
+ GatewayIntentBits[GatewayIntentBits["GuildIntegrations"] = 16] = "GuildIntegrations";
14
+ GatewayIntentBits[GatewayIntentBits["GuildWebhooks"] = 32] = "GuildWebhooks";
15
+ GatewayIntentBits[GatewayIntentBits["GuildInvites"] = 64] = "GuildInvites";
16
+ GatewayIntentBits[GatewayIntentBits["GuildVoiceStates"] = 128] = "GuildVoiceStates";
17
+ GatewayIntentBits[GatewayIntentBits["GuildPresences"] = 256] = "GuildPresences";
18
+ GatewayIntentBits[GatewayIntentBits["GuildMessages"] = 512] = "GuildMessages";
19
+ GatewayIntentBits[GatewayIntentBits["GuildMessageReactions"] = 1024] = "GuildMessageReactions";
20
+ GatewayIntentBits[GatewayIntentBits["GuildMessageTyping"] = 2048] = "GuildMessageTyping";
21
+ GatewayIntentBits[GatewayIntentBits["DirectMessages"] = 4096] = "DirectMessages";
22
+ GatewayIntentBits[GatewayIntentBits["DirectMessageReactions"] = 8192] = "DirectMessageReactions";
23
+ GatewayIntentBits[GatewayIntentBits["DirectMessageTyping"] = 16384] = "DirectMessageTyping";
24
+ GatewayIntentBits[GatewayIntentBits["MessageContent"] = 32768] = "MessageContent";
25
+ GatewayIntentBits[GatewayIntentBits["GuildScheduledEvents"] = 65536] = "GuildScheduledEvents";
26
+ GatewayIntentBits[GatewayIntentBits["AutoModerationConfiguration"] = 1048576] = "AutoModerationConfiguration";
27
+ GatewayIntentBits[GatewayIntentBits["AutoModerationExecution"] = 2097152] = "AutoModerationExecution";
28
+ })(GatewayIntentBits || (exports.GatewayIntentBits = GatewayIntentBits = {}));
29
+ /**
30
+ * Gateway Opcodes
31
+ */
32
+ var GatewayOpcodes;
33
+ (function (GatewayOpcodes) {
34
+ GatewayOpcodes[GatewayOpcodes["Dispatch"] = 0] = "Dispatch";
35
+ GatewayOpcodes[GatewayOpcodes["Heartbeat"] = 1] = "Heartbeat";
36
+ GatewayOpcodes[GatewayOpcodes["Identify"] = 2] = "Identify";
37
+ GatewayOpcodes[GatewayOpcodes["PresenceUpdate"] = 3] = "PresenceUpdate";
38
+ GatewayOpcodes[GatewayOpcodes["VoiceStateUpdate"] = 4] = "VoiceStateUpdate";
39
+ GatewayOpcodes[GatewayOpcodes["Resume"] = 6] = "Resume";
40
+ GatewayOpcodes[GatewayOpcodes["Reconnect"] = 7] = "Reconnect";
41
+ GatewayOpcodes[GatewayOpcodes["RequestGuildMembers"] = 8] = "RequestGuildMembers";
42
+ GatewayOpcodes[GatewayOpcodes["InvalidSession"] = 9] = "InvalidSession";
43
+ GatewayOpcodes[GatewayOpcodes["Hello"] = 10] = "Hello";
44
+ GatewayOpcodes[GatewayOpcodes["HeartbeatAck"] = 11] = "HeartbeatAck";
45
+ })(GatewayOpcodes || (exports.GatewayOpcodes = GatewayOpcodes = {}));
46
+ /**
47
+ * Interaction Types
48
+ */
49
+ var InteractionType;
50
+ (function (InteractionType) {
51
+ InteractionType[InteractionType["Ping"] = 1] = "Ping";
52
+ InteractionType[InteractionType["ApplicationCommand"] = 2] = "ApplicationCommand";
53
+ InteractionType[InteractionType["MessageComponent"] = 3] = "MessageComponent";
54
+ InteractionType[InteractionType["ApplicationCommandAutocomplete"] = 4] = "ApplicationCommandAutocomplete";
55
+ InteractionType[InteractionType["ModalSubmit"] = 5] = "ModalSubmit";
56
+ })(InteractionType || (exports.InteractionType = InteractionType = {}));
57
+ /**
58
+ * Application Command Types
59
+ */
60
+ var ApplicationCommandType;
61
+ (function (ApplicationCommandType) {
62
+ ApplicationCommandType[ApplicationCommandType["ChatInput"] = 1] = "ChatInput";
63
+ ApplicationCommandType[ApplicationCommandType["User"] = 2] = "User";
64
+ ApplicationCommandType[ApplicationCommandType["Message"] = 3] = "Message";
65
+ })(ApplicationCommandType || (exports.ApplicationCommandType = ApplicationCommandType = {}));
66
+ /**
67
+ * Application Command Option Types
68
+ */
69
+ var ApplicationCommandOptionType;
70
+ (function (ApplicationCommandOptionType) {
71
+ ApplicationCommandOptionType[ApplicationCommandOptionType["Subcommand"] = 1] = "Subcommand";
72
+ ApplicationCommandOptionType[ApplicationCommandOptionType["SubcommandGroup"] = 2] = "SubcommandGroup";
73
+ ApplicationCommandOptionType[ApplicationCommandOptionType["String"] = 3] = "String";
74
+ ApplicationCommandOptionType[ApplicationCommandOptionType["Integer"] = 4] = "Integer";
75
+ ApplicationCommandOptionType[ApplicationCommandOptionType["Boolean"] = 5] = "Boolean";
76
+ ApplicationCommandOptionType[ApplicationCommandOptionType["User"] = 6] = "User";
77
+ ApplicationCommandOptionType[ApplicationCommandOptionType["Channel"] = 7] = "Channel";
78
+ ApplicationCommandOptionType[ApplicationCommandOptionType["Role"] = 8] = "Role";
79
+ ApplicationCommandOptionType[ApplicationCommandOptionType["Mentionable"] = 9] = "Mentionable";
80
+ ApplicationCommandOptionType[ApplicationCommandOptionType["Number"] = 10] = "Number";
81
+ ApplicationCommandOptionType[ApplicationCommandOptionType["Attachment"] = 11] = "Attachment";
82
+ })(ApplicationCommandOptionType || (exports.ApplicationCommandOptionType = ApplicationCommandOptionType = {}));
83
+ /**
84
+ * Channel Types
85
+ */
86
+ var ChannelType;
87
+ (function (ChannelType) {
88
+ ChannelType[ChannelType["GuildText"] = 0] = "GuildText";
89
+ ChannelType[ChannelType["DM"] = 1] = "DM";
90
+ ChannelType[ChannelType["GuildVoice"] = 2] = "GuildVoice";
91
+ ChannelType[ChannelType["GroupDM"] = 3] = "GroupDM";
92
+ ChannelType[ChannelType["GuildCategory"] = 4] = "GuildCategory";
93
+ ChannelType[ChannelType["GuildAnnouncement"] = 5] = "GuildAnnouncement";
94
+ ChannelType[ChannelType["GuildStageVoice"] = 13] = "GuildStageVoice";
95
+ ChannelType[ChannelType["GuildDirectory"] = 14] = "GuildDirectory";
96
+ ChannelType[ChannelType["GuildForum"] = 15] = "GuildForum";
97
+ })(ChannelType || (exports.ChannelType = ChannelType = {}));
98
+ /**
99
+ * Interaction Response Types
100
+ */
101
+ var InteractionResponseType;
102
+ (function (InteractionResponseType) {
103
+ InteractionResponseType[InteractionResponseType["Pong"] = 1] = "Pong";
104
+ InteractionResponseType[InteractionResponseType["ChannelMessageWithSource"] = 4] = "ChannelMessageWithSource";
105
+ InteractionResponseType[InteractionResponseType["DeferredChannelMessageWithSource"] = 5] = "DeferredChannelMessageWithSource";
106
+ InteractionResponseType[InteractionResponseType["DeferredUpdateMessage"] = 6] = "DeferredUpdateMessage";
107
+ InteractionResponseType[InteractionResponseType["UpdateMessage"] = 7] = "UpdateMessage";
108
+ InteractionResponseType[InteractionResponseType["ApplicationCommandAutocompleteResult"] = 8] = "ApplicationCommandAutocompleteResult";
109
+ InteractionResponseType[InteractionResponseType["Modal"] = 9] = "Modal";
110
+ })(InteractionResponseType || (exports.InteractionResponseType = InteractionResponseType = {}));
111
+ /**
112
+ * Message Flags
113
+ */
114
+ var MessageFlags;
115
+ (function (MessageFlags) {
116
+ MessageFlags[MessageFlags["Crossposted"] = 1] = "Crossposted";
117
+ MessageFlags[MessageFlags["IsCrosspost"] = 2] = "IsCrosspost";
118
+ MessageFlags[MessageFlags["SuppressEmbeds"] = 4] = "SuppressEmbeds";
119
+ MessageFlags[MessageFlags["SourceMessageDeleted"] = 8] = "SourceMessageDeleted";
120
+ MessageFlags[MessageFlags["Urgent"] = 16] = "Urgent";
121
+ MessageFlags[MessageFlags["Ephemeral"] = 64] = "Ephemeral";
122
+ MessageFlags[MessageFlags["Loading"] = 128] = "Loading";
123
+ MessageFlags[MessageFlags["SuppressNotifications"] = 4096] = "SuppressNotifications";
124
+ })(MessageFlags || (exports.MessageFlags = MessageFlags = {}));
125
+ /**
126
+ * Activity Types
127
+ */
128
+ var ActivityType;
129
+ (function (ActivityType) {
130
+ ActivityType[ActivityType["Playing"] = 0] = "Playing";
131
+ ActivityType[ActivityType["Streaming"] = 1] = "Streaming";
132
+ ActivityType[ActivityType["Listening"] = 2] = "Listening";
133
+ ActivityType[ActivityType["Watching"] = 3] = "Watching";
134
+ ActivityType[ActivityType["Custom"] = 4] = "Custom";
135
+ ActivityType[ActivityType["Competing"] = 5] = "Competing";
136
+ })(ActivityType || (exports.ActivityType = ActivityType = {}));
137
+ /**
138
+ * Presence Status
139
+ */
140
+ var PresenceStatus;
141
+ (function (PresenceStatus) {
142
+ PresenceStatus["Online"] = "online";
143
+ PresenceStatus["Idle"] = "idle";
144
+ PresenceStatus["DoNotDisturb"] = "dnd";
145
+ PresenceStatus["Invisible"] = "invisible";
146
+ PresenceStatus["Offline"] = "offline";
147
+ })(PresenceStatus || (exports.PresenceStatus = PresenceStatus = {}));
148
+ /**
149
+ * Permission Flags Bits
150
+ * Used for channel permission overwrites
151
+ */
152
+ exports.PermissionFlagsBits = {
153
+ // General (0-9)
154
+ CreateInstantInvite: 1n << 0n,
155
+ KickMembers: 1n << 1n,
156
+ BanMembers: 1n << 2n,
157
+ Administrator: 1n << 3n,
158
+ ManageChannels: 1n << 4n,
159
+ ManageGuild: 1n << 5n,
160
+ AddReactions: 1n << 6n,
161
+ ViewAuditLog: 1n << 7n,
162
+ ViewGuildInsights: 1n << 8n,
163
+ Stream: 1n << 9n,
164
+ ViewChannel: 1n << 10n,
165
+ // Messages (11-19)
166
+ SendMessages: 1n << 11n,
167
+ SendTTSMessages: 1n << 12n,
168
+ ManageMessages: 1n << 13n,
169
+ EmbedLinks: 1n << 14n,
170
+ AttachFiles: 1n << 15n,
171
+ ReadMessageHistory: 1n << 16n,
172
+ UseExternalEmojis: 1n << 17n,
173
+ UseSlashCommands: 1n << 18n,
174
+ MentionEveryone: 1n << 19n,
175
+ // Voice (20-27)
176
+ Connect: 1n << 20n,
177
+ Speak: 1n << 21n,
178
+ MuteMembers: 1n << 22n,
179
+ DeafenMembers: 1n << 23n,
180
+ MoveMembers: 1n << 24n,
181
+ UseVAD: 1n << 25n,
182
+ ChangeCodec: 1n << 26n,
183
+ AudioQualityAdmin: 1n << 27n,
184
+ // Video and Screen Sharing (28-37)
185
+ VideoCall: 1n << 28n,
186
+ ShareScreen: 1n << 29n,
187
+ ShareCamera: 1n << 30n,
188
+ ControlQuality: 1n << 31n,
189
+ RequestToSpeak: 1n << 32n,
190
+ ManageEvents: 1n << 33n,
191
+ AddMembers: 1n << 34n,
192
+ RemoveMembers: 1n << 35n,
193
+ ChangeGroupIcon: 1n << 36n,
194
+ ChangeDMSettings: 1n << 37n,
195
+ // Advanced (38-43)
196
+ ManageGroup: 1n << 38n,
197
+ UseActivities: 1n << 39n,
198
+ ModerateMembers: 1n << 40n,
199
+ ManageRoles: 1n << 41n,
200
+ ManageEmojis: 1n << 42n,
201
+ PrioritySpeaker: 1n << 43n,
202
+ };
203
+ /**
204
+ * Overwrite Type - for permission overwrites
205
+ */
206
+ var OverwriteType;
207
+ (function (OverwriteType) {
208
+ OverwriteType[OverwriteType["Role"] = 0] = "Role";
209
+ OverwriteType[OverwriteType["Member"] = 1] = "Member";
210
+ })(OverwriteType || (exports.OverwriteType = OverwriteType = {}));
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW51bXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxJQUFZLGlCQW9CWDtBQXBCRCxXQUFZLGlCQUFpQjtJQUMzQiw2REFBZSxDQUFBO0lBQ2YseUVBQXFCLENBQUE7SUFDckIsK0VBQXdCLENBQUE7SUFDeEIsNkZBQStCLENBQUE7SUFDL0Isb0ZBQTBCLENBQUE7SUFDMUIsNEVBQXNCLENBQUE7SUFDdEIsMEVBQXFCLENBQUE7SUFDckIsbUZBQXlCLENBQUE7SUFDekIsK0VBQXVCLENBQUE7SUFDdkIsNkVBQXNCLENBQUE7SUFDdEIsOEZBQStCLENBQUE7SUFDL0Isd0ZBQTRCLENBQUE7SUFDNUIsZ0ZBQXdCLENBQUE7SUFDeEIsZ0dBQWdDLENBQUE7SUFDaEMsMkZBQTZCLENBQUE7SUFDN0IsaUZBQXdCLENBQUE7SUFDeEIsNkZBQThCLENBQUE7SUFDOUIsNkdBQXFDLENBQUE7SUFDckMscUdBQWlDLENBQUE7QUFDbkMsQ0FBQyxFQXBCVyxpQkFBaUIsaUNBQWpCLGlCQUFpQixRQW9CNUI7QUFFRDs7R0FFRztBQUNILElBQVksY0FZWDtBQVpELFdBQVksY0FBYztJQUN4QiwyREFBWSxDQUFBO0lBQ1osNkRBQWEsQ0FBQTtJQUNiLDJEQUFZLENBQUE7SUFDWix1RUFBa0IsQ0FBQTtJQUNsQiwyRUFBb0IsQ0FBQTtJQUNwQix1REFBVSxDQUFBO0lBQ1YsNkRBQWEsQ0FBQTtJQUNiLGlGQUF1QixDQUFBO0lBQ3ZCLHVFQUFrQixDQUFBO0lBQ2xCLHNEQUFVLENBQUE7SUFDVixvRUFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBWlcsY0FBYyw4QkFBZCxjQUFjLFFBWXpCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLGVBTVg7QUFORCxXQUFZLGVBQWU7SUFDekIscURBQVEsQ0FBQTtJQUNSLGlGQUFzQixDQUFBO0lBQ3RCLDZFQUFvQixDQUFBO0lBQ3BC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QUUsRUFBRSxJQUFJLEdBQUc7SUFDMUIsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEdBQUc7SUFFM0IsbUJBQW1CO0lBQ25CLFdBQVcsRUFBRSxFQUFFLElBQUksR0FBRztJQUN0QixhQUFhLEVBQUUsRUFBRSxJQUFJLEdBQUc7SUFDeEIsZUFBZSxFQUFFLEVBQUUsSUFBSSxHQUFHO0lBQzFCLFdBQVcsRUFBRSxFQUFFLElBQUksR0FBRztJQUN0QixZQUFZLEVBQUUsRUFBRSxJQUFJLEdBQUc7SUFDdkIsZUFBZSxFQUFFLEVBQUUsSUFBSSxHQUFHO0NBQ2xCLENBQUM7QUFFWDs7R0FFRztBQUNILElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUN2QixpREFBUSxDQUFBO0lBQ1IscURBQVUsQ0FBQTtBQUNaLENBQUMsRUFIVyxhQUFhLDZCQUFiLGFBQWEsUUFHeEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogR2F0ZXdheSBJbnRlbnQgQml0c1xyXG4gKi9cclxuZXhwb3J0IGVudW0gR2F0ZXdheUludGVudEJpdHMge1xyXG4gIEd1aWxkcyA9IDEgPDwgMCxcclxuICBHdWlsZE1lbWJlcnMgPSAxIDw8IDEsXHJcbiAgR3VpbGRNb2RlcmF0aW9uID0gMSA8PCAyLFxyXG4gIEd1aWxkRW1vamlzQW5kU3RpY2tlcnMgPSAxIDw8IDMsXHJcbiAgR3VpbGRJbnRlZ3JhdGlvbnMgPSAxIDw8IDQsXHJcbiAgR3VpbGRXZWJob29rcyA9IDEgPDwgNSxcclxuICBHdWlsZEludml0ZXMgPSAxIDw8IDYsXHJcbiAgR3VpbGRWb2ljZVN0YXRlcyA9IDEgPDwgNyxcclxuICBHdWlsZFByZXNlbmNlcyA9IDEgPDwgOCxcclxuICBHdWlsZE1lc3NhZ2VzID0gMSA8PCA5LFxyXG4gIEd1aWxkTWVzc2FnZVJlYWN0aW9ucyA9IDEgPDwgMTAsXHJcbiAgR3VpbGRNZXNzYWdlVHlwaW5nID0gMSA8PCAxMSxcclxuICBEaXJlY3RNZXNzYWdlcyA9IDEgPDwgMTIsXHJcbiAgRGlyZWN0TWVzc2FnZVJlYWN0aW9ucyA9IDEgPDwgMTMsXHJcbiAgRGlyZWN0TWVzc2FnZVR5cGluZyA9IDEgPDwgMTQsXHJcbiAgTWVzc2FnZUNvbnRlbnQgPSAxIDw8IDE1LFxyXG4gIEd1aWxkU2NoZWR1bGVkRXZlbnRzID0gMSA8PCAxNixcclxuICBBdXRvTW9kZXJhdGlvbkNvbmZpZ3VyYXRpb24gPSAxIDw8IDIwLFxyXG4gIEF1dG9Nb2RlcmF0aW9uRXhlY3V0aW9uID0gMSA8PCAyMVxyXG59XHJcblxyXG4vKipcclxuICogR2F0ZXdheSBPcGNvZGVzXHJcbiAqL1xyXG5leHBvcnQgZW51bSBHYXRld2F5T3Bjb2RlcyB7XHJcbiAgRGlzcGF0Y2ggPSAwLFxyXG4gIEhlYXJ0YmVhdCA9IDEsXHJcbiAgSWRlbnRpZnkgPSAyLFxyXG4gIFByZXNlbmNlVXBkYXRlID0gMyxcclxuICBWb2ljZVN0YXRlVXBkYXRlID0gNCxcclxuICBSZXN1bWUgPSA2LFxyXG4gIFJlY29ubmVjdCA9IDcsXHJcbiAgUmVxdWVzdEd1aWxkTWVtYmVycyA9IDgsXHJcbiAgSW52YWxpZFNlc3Npb24gPSA5LFxyXG4gIEhlbGxvID0gMTAsXHJcbiAgSGVhcnRiZWF0QWNrID0gMTFcclxufVxyXG5cclxuLyoqXHJcbiAqIEludGVyYWN0aW9uIFR5cGVzXHJcbiAqL1xyXG5leHBvcnQgZW51bSBJbnRlcmFjdGlvblR5cGUge1xyXG4gIFBpbmcgPSAxLFxyXG4gIEFwcGxpY2F0aW9uQ29tbWFuZCA9IDIsXHJcbiAgTWVzc2FnZUNvbXBvbmVudCA9IDMsXHJcbiAgQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlID0gNCxcclxuICBNb2RhbFN1Ym1pdCA9IDVcclxufVxyXG5cclxuLyoqXHJcbiAqIEFwcGxpY2F0aW9uIENvbW1hbmQgVHlwZXNcclxuICovXHJcbmV4cG9ydCBlbnVtIEFwcGxpY2F0aW9uQ29tbWFuZFR5cGUge1xyXG4gIENoYXRJbnB1dCA9IDEsXHJcbiAgVXNlciA9IDIsXHJcbiAgTWVzc2FnZSA9IDNcclxufVxyXG5cclxuLyoqXHJcbiAqIEFwcGxpY2F0aW9uIENvbW1hbmQgT3B0aW9uIFR5cGVzXHJcbiAqL1xyXG5leHBvcnQgZW51bSBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlIHtcclxuICBTdWJjb21tYW5kID0gMSxcclxuICBTdWJjb21tYW5kR3JvdXAgPSAyLFxyXG4gIFN0cmluZyA9IDMsXHJcbiAgSW50ZWdlciA9IDQsXHJcbiAgQm9vbGVhbiA9IDUsXHJcbiAgVXNlciA9IDYsXHJcbiAgQ2hhbm5lbCA9IDcsXHJcbiAgUm9sZSA9IDgsXHJcbiAgTWVudGlvbmFibGUgPSA5LFxyXG4gIE51bWJlciA9IDEwLFxyXG4gIEF0dGFjaG1lbnQgPSAxMVxyXG59XHJcblxyXG4vKipcclxuICogQ2hhbm5lbCBUeXBlc1xyXG4gKi9cclxuZXhwb3J0IGVudW0gQ2hhbm5lbFR5cGUge1xyXG4gIEd1aWxkVGV4dCA9IDAsXHJcbiAgRE0gPSAxLFxyXG4gIEd1aWxkVm9pY2UgPSAyLFxyXG4gIEdyb3VwRE0gPSAzLFxyXG4gIEd1aWxkQ2F0ZWdvcnkgPSA0LFxyXG4gIEd1aWxkQW5ub3VuY2VtZW50ID0gNSxcclxuICBHdWlsZFN0YWdlVm9pY2UgPSAxMyxcclxuICBHdWlsZERpcmVjdG9yeSA9IDE0LFxyXG4gIEd1aWxkRm9ydW0gPSAxNVxyXG59XHJcblxyXG4vKipcclxuICogSW50ZXJhY3Rpb24gUmVzcG9uc2UgVHlwZXNcclxuICovXHJcbmV4cG9ydCBlbnVtIEludGVyYWN0aW9uUmVzcG9uc2VUeXBlIHtcclxuICBQb25nID0gMSxcclxuICBDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UgPSA0LFxyXG4gIERlZmVycmVkQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlID0gNSxcclxuICBEZWZlcnJlZFVwZGF0ZU1lc3NhZ2UgPSA2LFxyXG4gIFVwZGF0ZU1lc3NhZ2UgPSA3LFxyXG4gIEFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdCA9IDgsXHJcbiAgTW9kYWwgPSA5XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBNZXNzYWdlIEZsYWdzXHJcbiAqL1xyXG5leHBvcnQgZW51bSBNZXNzYWdlRmxhZ3Mge1xyXG4gIENyb3NzcG9zdGVkID0gMSA8PCAwLFxyXG4gIElzQ3Jvc3Nwb3N0ID0gMSA8PCAxLFxyXG4gIFN1cHByZXNzRW1iZWRzID0gMSA8PCAyLFxyXG4gIFNvdXJjZU1lc3NhZ2VEZWxldGVkID0gMSA8PCAzLFxyXG4gIFVyZ2VudCA9IDEgPDwgNCxcclxuICBFcGhlbWVyYWwgPSAxIDw8IDYsXHJcbiAgTG9hZGluZyA9IDEgPDwgNyxcclxuICBTdXBwcmVzc05vdGlmaWNhdGlvbnMgPSAxIDw8IDEyXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBY3Rpdml0eSBUeXBlc1xyXG4gKi9cclxuZXhwb3J0IGVudW0gQWN0aXZpdHlUeXBlIHtcclxuICBQbGF5aW5nID0gMCxcclxuICBTdHJlYW1pbmcgPSAxLFxyXG4gIExpc3RlbmluZyA9IDIsXHJcbiAgV2F0Y2hpbmcgPSAzLFxyXG4gIEN1c3RvbSA9IDQsXHJcbiAgQ29tcGV0aW5nID0gNVxyXG59XHJcblxyXG4vKipcclxuICogUHJlc2VuY2UgU3RhdHVzXHJcbiAqL1xyXG5leHBvcnQgZW51bSBQcmVzZW5jZVN0YXR1cyB7XHJcbiAgT25saW5lID0gJ29ubGluZScsXHJcbiAgSWRsZSA9ICdpZGxlJyxcclxuICBEb05vdERpc3R1cmIgPSAnZG5kJyxcclxuICBJbnZpc2libGUgPSAnaW52aXNpYmxlJyxcclxuICBPZmZsaW5lID0gJ29mZmxpbmUnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQZXJtaXNzaW9uIEZsYWdzIEJpdHNcclxuICogVXNlZCBmb3IgY2hhbm5lbCBwZXJtaXNzaW9uIG92ZXJ3cml0ZXNcclxuICovXHJcbmV4cG9ydCBjb25zdCBQZXJtaXNzaW9uRmxhZ3NCaXRzID0ge1xyXG4gIC8vIEdlbmVyYWwgKDAtOSlcclxuICBDcmVhdGVJbnN0YW50SW52aXRlOiAxbiA8PCAwbixcclxuICBLaWNrTWVtYmVyczogMW4gPDwgMW4sXHJcbiAgQmFuTWVtYmVyczogMW4gPDwgMm4sXHJcbiAgQWRtaW5pc3RyYXRvcjogMW4gPDwgM24sXHJcbiAgTWFuYWdlQ2hhbm5lbHM6IDFuIDw8IDRuLFxyXG4gIE1hbmFnZUd1aWxkOiAxbiA8PCA1bixcclxuICBBZGRSZWFjdGlvbnM6IDFuIDw8IDZuLFxyXG4gIFZpZXdBdWRpdExvZzogMW4gPDwgN24sXHJcbiAgVmlld0d1aWxkSW5zaWdodHM6IDFuIDw8IDhuLFxyXG4gIFN0cmVhbTogMW4gPDwgOW4sXHJcbiAgVmlld0NoYW5uZWw6IDFuIDw8IDEwbixcclxuXHJcbiAgLy8gTWVzc2FnZXMgKDExLTE5KVxyXG4gIFNlbmRNZXNzYWdlczogMW4gPDwgMTFuLFxyXG4gIFNlbmRUVFNNZXNzYWdlczogMW4gPDwgMTJuLFxyXG4gIE1hbmFnZU1lc3NhZ2VzOiAxbiA8PCAxM24sXHJcbiAgRW1iZWRMaW5rczogMW4gPDwgMTRuLFxyXG4gIEF0dGFjaEZpbGVzOiAxbiA8PCAxNW4sXHJcbiAgUmVhZE1lc3NhZ2VIaXN0b3J5OiAxbiA8PCAxNm4sXHJcbiAgVXNlRXh0ZXJuYWxFbW9qaXM6IDFuIDw8IDE3bixcclxuICBVc2VTbGFzaENvbW1hbmRzOiAxbiA8PCAxOG4sXHJcbiAgTWVudGlvbkV2ZXJ5b25lOiAxbiA8PCAxOW4sXHJcblxyXG4gIC8vIFZvaWNlICgyMC0yNylcclxuICBDb25uZWN0OiAxbiA8PCAyMG4sXHJcbiAgU3BlYWs6IDFuIDw8IDIxbixcclxuICBNdXRlTWVtYmVyczogMW4gPDwgMjJuLFxyXG4gIERlYWZlbk1lbWJlcnM6IDFuIDw8IDIzbixcclxuICBNb3ZlTWVtYmVyczogMW4gPDwgMjRuLFxyXG4gIFVzZVZBRDogMW4gPDwgMjVuLFxyXG4gIENoYW5nZUNvZGVjOiAxbiA8PCAyNm4sXHJcbiAgQXVkaW9RdWFsaXR5QWRtaW46IDFuIDw8IDI3bixcclxuXHJcbiAgLy8gVmlkZW8gYW5kIFNjcmVlbiBTaGFyaW5nICgyOC0zNylcclxuICBWaWRlb0NhbGw6IDFuIDw8IDI4bixcclxuICBTaGFyZVNjcmVlbjogMW4gPDwgMjluLFxyXG4gIFNoYXJlQ2FtZXJhOiAxbiA8PCAzMG4sXHJcbiAgQ29udHJvbFF1YWxpdHk6IDFuIDw8IDMxbixcclxuICBSZXF1ZXN0VG9TcGVhazogMW4gPDwgMzJuLFxyXG4gIE1hbmFnZUV2ZW50czogMW4gPDwgMzNuLFxyXG4gIEFkZE1lbWJlcnM6IDFuIDw8IDM0bixcclxuICBSZW1vdmVNZW1iZXJzOiAxbiA8PCAzNW4sXHJcbiAgQ2hhbmdlR3JvdXBJY29uOiAxbiA8PCAzNm4sXHJcbiAgQ2hhbmdlRE1TZXR0aW5nczogMW4gPDwgMzduLFxyXG5cclxuICAvLyBBZHZhbmNlZCAoMzgtNDMpXHJcbiAgTWFuYWdlR3JvdXA6IDFuIDw8IDM4bixcclxuICBVc2VBY3Rpdml0aWVzOiAxbiA8PCAzOW4sXHJcbiAgTW9kZXJhdGVNZW1iZXJzOiAxbiA8PCA0MG4sXHJcbiAgTWFuYWdlUm9sZXM6IDFuIDw8IDQxbixcclxuICBNYW5hZ2VFbW9qaXM6IDFuIDw8IDQybixcclxuICBQcmlvcml0eVNwZWFrZXI6IDFuIDw8IDQzbixcclxufSBhcyBjb25zdDtcclxuXHJcbi8qKlxyXG4gKiBPdmVyd3JpdGUgVHlwZSAtIGZvciBwZXJtaXNzaW9uIG92ZXJ3cml0ZXNcclxuICovXHJcbmV4cG9ydCBlbnVtIE92ZXJ3cml0ZVR5cGUge1xyXG4gIFJvbGUgPSAwLFxyXG4gIE1lbWJlciA9IDEsXHJcbn1cclxuIl19
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @jubbio/core - Bot library for Jubbio
3
+ */
4
+ export { Client, GatewayIntentBits } from './Client';
5
+ export * from './types';
6
+ export * from './enums';
7
+ export { REST, type MentionsData, type MentionUser, type MentionRole } from './rest/REST';
8
+ export { Collection } from './structures/Collection';
9
+ export { User } from './structures/User';
10
+ export { Guild } from './structures/Guild';
11
+ export { GuildMember, Permissions, PermissionFlags } from './structures/GuildMember';
12
+ export { Message, type MessageMentions } from './structures/Message';
13
+ export { Interaction, CommandInteraction, ButtonInteraction, SelectMenuInteraction, AutocompleteInteraction, ModalSubmitInteraction, CommandInteractionOptions, createInteraction, type InteractionReplyOptions, type AutocompleteChoice, type ModalData, } from './structures/Interaction';
14
+ export { BaseChannel, TextChannel, VoiceChannel, DMChannel, createChannel, type MessageCreateOptions, } from './structures/Channel';
15
+ export { Collector, MessageCollector, InteractionCollector, ReactionCollector, awaitMessages, awaitReactions, type CollectorOptions, type MessageCollectorOptions, type InteractionCollectorOptions, type ReactionCollectorOptions, } from './utils/Collector';
16
+ export { EmbedBuilder, Colors, type APIEmbed, type APIEmbedField, type APIEmbedAuthor, type APIEmbedFooter, type APIEmbedImage, type APIEmbedThumbnail, } from './builders/EmbedBuilder';
17
+ export { ButtonBuilder, ButtonStyle, type APIButtonComponent, } from './builders/ButtonBuilder';
18
+ export { StringSelectMenuBuilder, SelectMenuBuilder, StringSelectMenuOptionBuilder, type APISelectMenuOption, type APISelectMenuComponent, } from './builders/SelectMenuBuilder';
19
+ export { ActionRowBuilder, type APIActionRow, type APIActionRowComponent, } from './builders/ActionRowBuilder';
20
+ export { ModalBuilder, TextInputBuilder, TextInputStyle, type APITextInputComponent, type APIModalActionRow, type APIModal, } from './builders/ModalBuilder';
21
+ export { SlashCommandBuilder, SlashCommandStringOption, SlashCommandIntegerOption, SlashCommandNumberOption, SlashCommandBooleanOption, SlashCommandUserOption, SlashCommandChannelOption, SlashCommandRoleOption, SlashCommandMentionableOption, SlashCommandAttachmentOption, ApplicationCommandOptionType as SlashCommandOptionType, } from './builders/SlashCommandBuilder';
22
+ export { Formatters, userMention, channelMention, roleMention, formatEmoji, bold, italic, underline, strikethrough, spoiler, inlineCode, codeBlock, blockQuote, quote, hyperlink, hideLinkEmbed, time, heading, unorderedList, orderedList, TimestampStyles, } from './utils/Formatters';
23
+ export { BitField, type BitFieldResolvable } from './utils/BitField';
24
+ export { PermissionsBitField, type PermissionString, type PermissionResolvable } from './utils/PermissionsBitField';
25
+ export { ShardingManager, Shard, ShardClientUtil, ShardStatus, type ShardingManagerOptions, } from './sharding/ShardingManager';
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ /**
3
+ * @jubbio/core - Bot library for Jubbio
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.SlashCommandAttachmentOption = exports.SlashCommandMentionableOption = exports.SlashCommandRoleOption = exports.SlashCommandChannelOption = exports.SlashCommandUserOption = exports.SlashCommandBooleanOption = exports.SlashCommandNumberOption = exports.SlashCommandIntegerOption = exports.SlashCommandStringOption = exports.SlashCommandBuilder = exports.TextInputStyle = exports.TextInputBuilder = exports.ModalBuilder = exports.ActionRowBuilder = exports.StringSelectMenuOptionBuilder = exports.SelectMenuBuilder = exports.StringSelectMenuBuilder = exports.ButtonStyle = exports.ButtonBuilder = exports.Colors = exports.EmbedBuilder = exports.awaitReactions = exports.awaitMessages = exports.ReactionCollector = exports.InteractionCollector = exports.MessageCollector = exports.Collector = exports.createChannel = exports.DMChannel = exports.VoiceChannel = exports.TextChannel = exports.BaseChannel = exports.createInteraction = exports.CommandInteractionOptions = exports.ModalSubmitInteraction = exports.AutocompleteInteraction = exports.SelectMenuInteraction = exports.ButtonInteraction = exports.CommandInteraction = exports.Interaction = exports.Message = exports.PermissionFlags = exports.Permissions = exports.GuildMember = exports.Guild = exports.User = exports.Collection = exports.REST = exports.GatewayIntentBits = exports.Client = void 0;
21
+ exports.ShardStatus = exports.ShardClientUtil = exports.Shard = exports.ShardingManager = exports.PermissionsBitField = exports.BitField = exports.TimestampStyles = exports.orderedList = exports.unorderedList = exports.heading = exports.time = exports.hideLinkEmbed = exports.hyperlink = exports.quote = exports.blockQuote = exports.codeBlock = exports.inlineCode = exports.spoiler = exports.strikethrough = exports.underline = exports.italic = exports.bold = exports.formatEmoji = exports.roleMention = exports.channelMention = exports.userMention = exports.Formatters = exports.SlashCommandOptionType = void 0;
22
+ // Core
23
+ var Client_1 = require("./Client");
24
+ Object.defineProperty(exports, "Client", { enumerable: true, get: function () { return Client_1.Client; } });
25
+ Object.defineProperty(exports, "GatewayIntentBits", { enumerable: true, get: function () { return Client_1.GatewayIntentBits; } });
26
+ __exportStar(require("./types"), exports);
27
+ __exportStar(require("./enums"), exports);
28
+ // REST
29
+ var REST_1 = require("./rest/REST");
30
+ Object.defineProperty(exports, "REST", { enumerable: true, get: function () { return REST_1.REST; } });
31
+ // Structures
32
+ var Collection_1 = require("./structures/Collection");
33
+ Object.defineProperty(exports, "Collection", { enumerable: true, get: function () { return Collection_1.Collection; } });
34
+ var User_1 = require("./structures/User");
35
+ Object.defineProperty(exports, "User", { enumerable: true, get: function () { return User_1.User; } });
36
+ var Guild_1 = require("./structures/Guild");
37
+ Object.defineProperty(exports, "Guild", { enumerable: true, get: function () { return Guild_1.Guild; } });
38
+ var GuildMember_1 = require("./structures/GuildMember");
39
+ Object.defineProperty(exports, "GuildMember", { enumerable: true, get: function () { return GuildMember_1.GuildMember; } });
40
+ Object.defineProperty(exports, "Permissions", { enumerable: true, get: function () { return GuildMember_1.Permissions; } });
41
+ Object.defineProperty(exports, "PermissionFlags", { enumerable: true, get: function () { return GuildMember_1.PermissionFlags; } });
42
+ var Message_1 = require("./structures/Message");
43
+ Object.defineProperty(exports, "Message", { enumerable: true, get: function () { return Message_1.Message; } });
44
+ var Interaction_1 = require("./structures/Interaction");
45
+ Object.defineProperty(exports, "Interaction", { enumerable: true, get: function () { return Interaction_1.Interaction; } });
46
+ Object.defineProperty(exports, "CommandInteraction", { enumerable: true, get: function () { return Interaction_1.CommandInteraction; } });
47
+ Object.defineProperty(exports, "ButtonInteraction", { enumerable: true, get: function () { return Interaction_1.ButtonInteraction; } });
48
+ Object.defineProperty(exports, "SelectMenuInteraction", { enumerable: true, get: function () { return Interaction_1.SelectMenuInteraction; } });
49
+ Object.defineProperty(exports, "AutocompleteInteraction", { enumerable: true, get: function () { return Interaction_1.AutocompleteInteraction; } });
50
+ Object.defineProperty(exports, "ModalSubmitInteraction", { enumerable: true, get: function () { return Interaction_1.ModalSubmitInteraction; } });
51
+ Object.defineProperty(exports, "CommandInteractionOptions", { enumerable: true, get: function () { return Interaction_1.CommandInteractionOptions; } });
52
+ Object.defineProperty(exports, "createInteraction", { enumerable: true, get: function () { return Interaction_1.createInteraction; } });
53
+ var Channel_1 = require("./structures/Channel");
54
+ Object.defineProperty(exports, "BaseChannel", { enumerable: true, get: function () { return Channel_1.BaseChannel; } });
55
+ Object.defineProperty(exports, "TextChannel", { enumerable: true, get: function () { return Channel_1.TextChannel; } });
56
+ Object.defineProperty(exports, "VoiceChannel", { enumerable: true, get: function () { return Channel_1.VoiceChannel; } });
57
+ Object.defineProperty(exports, "DMChannel", { enumerable: true, get: function () { return Channel_1.DMChannel; } });
58
+ Object.defineProperty(exports, "createChannel", { enumerable: true, get: function () { return Channel_1.createChannel; } });
59
+ // Collectors (from utils - more comprehensive)
60
+ var Collector_1 = require("./utils/Collector");
61
+ Object.defineProperty(exports, "Collector", { enumerable: true, get: function () { return Collector_1.Collector; } });
62
+ Object.defineProperty(exports, "MessageCollector", { enumerable: true, get: function () { return Collector_1.MessageCollector; } });
63
+ Object.defineProperty(exports, "InteractionCollector", { enumerable: true, get: function () { return Collector_1.InteractionCollector; } });
64
+ Object.defineProperty(exports, "ReactionCollector", { enumerable: true, get: function () { return Collector_1.ReactionCollector; } });
65
+ Object.defineProperty(exports, "awaitMessages", { enumerable: true, get: function () { return Collector_1.awaitMessages; } });
66
+ Object.defineProperty(exports, "awaitReactions", { enumerable: true, get: function () { return Collector_1.awaitReactions; } });
67
+ // Builders
68
+ var EmbedBuilder_1 = require("./builders/EmbedBuilder");
69
+ Object.defineProperty(exports, "EmbedBuilder", { enumerable: true, get: function () { return EmbedBuilder_1.EmbedBuilder; } });
70
+ Object.defineProperty(exports, "Colors", { enumerable: true, get: function () { return EmbedBuilder_1.Colors; } });
71
+ var ButtonBuilder_1 = require("./builders/ButtonBuilder");
72
+ Object.defineProperty(exports, "ButtonBuilder", { enumerable: true, get: function () { return ButtonBuilder_1.ButtonBuilder; } });
73
+ Object.defineProperty(exports, "ButtonStyle", { enumerable: true, get: function () { return ButtonBuilder_1.ButtonStyle; } });
74
+ var SelectMenuBuilder_1 = require("./builders/SelectMenuBuilder");
75
+ Object.defineProperty(exports, "StringSelectMenuBuilder", { enumerable: true, get: function () { return SelectMenuBuilder_1.StringSelectMenuBuilder; } });
76
+ Object.defineProperty(exports, "SelectMenuBuilder", { enumerable: true, get: function () { return SelectMenuBuilder_1.SelectMenuBuilder; } });
77
+ Object.defineProperty(exports, "StringSelectMenuOptionBuilder", { enumerable: true, get: function () { return SelectMenuBuilder_1.StringSelectMenuOptionBuilder; } });
78
+ var ActionRowBuilder_1 = require("./builders/ActionRowBuilder");
79
+ Object.defineProperty(exports, "ActionRowBuilder", { enumerable: true, get: function () { return ActionRowBuilder_1.ActionRowBuilder; } });
80
+ var ModalBuilder_1 = require("./builders/ModalBuilder");
81
+ Object.defineProperty(exports, "ModalBuilder", { enumerable: true, get: function () { return ModalBuilder_1.ModalBuilder; } });
82
+ Object.defineProperty(exports, "TextInputBuilder", { enumerable: true, get: function () { return ModalBuilder_1.TextInputBuilder; } });
83
+ Object.defineProperty(exports, "TextInputStyle", { enumerable: true, get: function () { return ModalBuilder_1.TextInputStyle; } });
84
+ var SlashCommandBuilder_1 = require("./builders/SlashCommandBuilder");
85
+ Object.defineProperty(exports, "SlashCommandBuilder", { enumerable: true, get: function () { return SlashCommandBuilder_1.SlashCommandBuilder; } });
86
+ Object.defineProperty(exports, "SlashCommandStringOption", { enumerable: true, get: function () { return SlashCommandBuilder_1.SlashCommandStringOption; } });
87
+ Object.defineProperty(exports, "SlashCommandIntegerOption", { enumerable: true, get: function () { return SlashCommandBuilder_1.SlashCommandIntegerOption; } });
88
+ Object.defineProperty(exports, "SlashCommandNumberOption", { enumerable: true, get: function () { return SlashCommandBuilder_1.SlashCommandNumberOption; } });
89
+ Object.defineProperty(exports, "SlashCommandBooleanOption", { enumerable: true, get: function () { return SlashCommandBuilder_1.SlashCommandBooleanOption; } });
90
+ Object.defineProperty(exports, "SlashCommandUserOption", { enumerable: true, get: function () { return SlashCommandBuilder_1.SlashCommandUserOption; } });
91
+ Object.defineProperty(exports, "SlashCommandChannelOption", { enumerable: true, get: function () { return SlashCommandBuilder_1.SlashCommandChannelOption; } });
92
+ Object.defineProperty(exports, "SlashCommandRoleOption", { enumerable: true, get: function () { return SlashCommandBuilder_1.SlashCommandRoleOption; } });
93
+ Object.defineProperty(exports, "SlashCommandMentionableOption", { enumerable: true, get: function () { return SlashCommandBuilder_1.SlashCommandMentionableOption; } });
94
+ Object.defineProperty(exports, "SlashCommandAttachmentOption", { enumerable: true, get: function () { return SlashCommandBuilder_1.SlashCommandAttachmentOption; } });
95
+ Object.defineProperty(exports, "SlashCommandOptionType", { enumerable: true, get: function () { return SlashCommandBuilder_1.ApplicationCommandOptionType; } });
96
+ // Utils - Formatters
97
+ var Formatters_1 = require("./utils/Formatters");
98
+ Object.defineProperty(exports, "Formatters", { enumerable: true, get: function () { return Formatters_1.Formatters; } });
99
+ Object.defineProperty(exports, "userMention", { enumerable: true, get: function () { return Formatters_1.userMention; } });
100
+ Object.defineProperty(exports, "channelMention", { enumerable: true, get: function () { return Formatters_1.channelMention; } });
101
+ Object.defineProperty(exports, "roleMention", { enumerable: true, get: function () { return Formatters_1.roleMention; } });
102
+ Object.defineProperty(exports, "formatEmoji", { enumerable: true, get: function () { return Formatters_1.formatEmoji; } });
103
+ Object.defineProperty(exports, "bold", { enumerable: true, get: function () { return Formatters_1.bold; } });
104
+ Object.defineProperty(exports, "italic", { enumerable: true, get: function () { return Formatters_1.italic; } });
105
+ Object.defineProperty(exports, "underline", { enumerable: true, get: function () { return Formatters_1.underline; } });
106
+ Object.defineProperty(exports, "strikethrough", { enumerable: true, get: function () { return Formatters_1.strikethrough; } });
107
+ Object.defineProperty(exports, "spoiler", { enumerable: true, get: function () { return Formatters_1.spoiler; } });
108
+ Object.defineProperty(exports, "inlineCode", { enumerable: true, get: function () { return Formatters_1.inlineCode; } });
109
+ Object.defineProperty(exports, "codeBlock", { enumerable: true, get: function () { return Formatters_1.codeBlock; } });
110
+ Object.defineProperty(exports, "blockQuote", { enumerable: true, get: function () { return Formatters_1.blockQuote; } });
111
+ Object.defineProperty(exports, "quote", { enumerable: true, get: function () { return Formatters_1.quote; } });
112
+ Object.defineProperty(exports, "hyperlink", { enumerable: true, get: function () { return Formatters_1.hyperlink; } });
113
+ Object.defineProperty(exports, "hideLinkEmbed", { enumerable: true, get: function () { return Formatters_1.hideLinkEmbed; } });
114
+ Object.defineProperty(exports, "time", { enumerable: true, get: function () { return Formatters_1.time; } });
115
+ Object.defineProperty(exports, "heading", { enumerable: true, get: function () { return Formatters_1.heading; } });
116
+ Object.defineProperty(exports, "unorderedList", { enumerable: true, get: function () { return Formatters_1.unorderedList; } });
117
+ Object.defineProperty(exports, "orderedList", { enumerable: true, get: function () { return Formatters_1.orderedList; } });
118
+ Object.defineProperty(exports, "TimestampStyles", { enumerable: true, get: function () { return Formatters_1.TimestampStyles; } });
119
+ // Utils - BitFields
120
+ var BitField_1 = require("./utils/BitField");
121
+ Object.defineProperty(exports, "BitField", { enumerable: true, get: function () { return BitField_1.BitField; } });
122
+ var PermissionsBitField_1 = require("./utils/PermissionsBitField");
123
+ Object.defineProperty(exports, "PermissionsBitField", { enumerable: true, get: function () { return PermissionsBitField_1.PermissionsBitField; } });
124
+ // Sharding
125
+ var ShardingManager_1 = require("./sharding/ShardingManager");
126
+ Object.defineProperty(exports, "ShardingManager", { enumerable: true, get: function () { return ShardingManager_1.ShardingManager; } });
127
+ Object.defineProperty(exports, "Shard", { enumerable: true, get: function () { return ShardingManager_1.Shard; } });
128
+ Object.defineProperty(exports, "ShardClientUtil", { enumerable: true, get: function () { return ShardingManager_1.ShardClientUtil; } });
129
+ Object.defineProperty(exports, "ShardStatus", { enumerable: true, get: function () { return ShardingManager_1.ShardStatus; } });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxPQUFPO0FBQ1AsbUNBQXFEO0FBQTVDLGdHQUFBLE1BQU0sT0FBQTtBQUFFLDJHQUFBLGlCQUFpQixPQUFBO0FBQ2xDLDBDQUF3QjtBQUN4QiwwQ0FBd0I7QUFFeEIsT0FBTztBQUNQLG9DQUEwRjtBQUFqRiw0RkFBQSxJQUFJLE9BQUE7QUFFYixhQUFhO0FBQ2Isc0RBQXFEO0FBQTVDLHdHQUFBLFVBQVUsT0FBQTtBQUNuQiwwQ0FBeUM7QUFBaEMsNEZBQUEsSUFBSSxPQUFBO0FBQ2IsNENBQTJDO0FBQWxDLDhGQUFBLEtBQUssT0FBQTtBQUNkLHdEQUFxRjtBQUE1RSwwR0FBQSxXQUFXLE9BQUE7QUFBRSwwR0FBQSxXQUFXLE9BQUE7QUFBRSw4R0FBQSxlQUFlLE9BQUE7QUFDbEQsZ0RBQXFFO0FBQTVELGtHQUFBLE9BQU8sT0FBQTtBQUNoQix3REFZa0M7QUFYaEMsMEdBQUEsV0FBVyxPQUFBO0FBQ1gsaUhBQUEsa0JBQWtCLE9BQUE7QUFDbEIsZ0hBQUEsaUJBQWlCLE9BQUE7QUFDakIsb0hBQUEscUJBQXFCLE9BQUE7QUFDckIsc0hBQUEsdUJBQXVCLE9BQUE7QUFDdkIscUhBQUEsc0JBQXNCLE9BQUE7QUFDdEIsd0hBQUEseUJBQXlCLE9BQUE7QUFDekIsZ0hBQUEsaUJBQWlCLE9BQUE7QUFLbkIsZ0RBTzhCO0FBTjVCLHNHQUFBLFdBQVcsT0FBQTtBQUNYLHNHQUFBLFdBQVcsT0FBQTtBQUNYLHVHQUFBLFlBQVksT0FBQTtBQUNaLG9HQUFBLFNBQVMsT0FBQTtBQUNULHdHQUFBLGFBQWEsT0FBQTtBQUlmLCtDQUErQztBQUMvQywrQ0FXMkI7QUFWekIsc0dBQUEsU0FBUyxPQUFBO0FBQ1QsNkdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsaUhBQUEsb0JBQW9CLE9BQUE7QUFDcEIsOEdBQUEsaUJBQWlCLE9BQUE7QUFDakIsMEdBQUEsYUFBYSxPQUFBO0FBQ2IsMkdBQUEsY0FBYyxPQUFBO0FBT2hCLFdBQVc7QUFDWCx3REFTaUM7QUFSL0IsNEdBQUEsWUFBWSxPQUFBO0FBQ1osc0dBQUEsTUFBTSxPQUFBO0FBU1IsMERBSWtDO0FBSGhDLDhHQUFBLGFBQWEsT0FBQTtBQUNiLDRHQUFBLFdBQVcsT0FBQTtBQUliLGtFQU1zQztBQUxwQyw0SEFBQSx1QkFBdUIsT0FBQTtBQUN2QixzSEFBQSxpQkFBaUIsT0FBQTtBQUNqQixrSUFBQSw2QkFBNkIsT0FBQTtBQUsvQixnRUFJcUM7QUFIbkMsb0hBQUEsZ0JBQWdCLE9BQUE7QUFLbEIsd0RBT2lDO0FBTi9CLDRHQUFBLFlBQVksT0FBQTtBQUNaLGdIQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDhHQUFBLGNBQWMsT0FBQTtBQU1oQixzRUFZd0M7QUFYdEMsMEhBQUEsbUJBQW1CLE9BQUE7QUFDbkIsK0hBQUEsd0JBQXdCLE9BQUE7QUFDeEIsZ0lBQUEseUJBQXlCLE9BQUE7QUFDekIsK0hBQUEsd0JBQXdCLE9BQUE7QUFDeEIsZ0lBQUEseUJBQXlCLE9BQUE7QUFDekIsNkhBQUEsc0JBQXNCLE9BQUE7QUFDdEIsZ0lBQUEseUJBQXlCLE9BQUE7QUFDekIsNkhBQUEsc0JBQXNCLE9BQUE7QUFDdEIsb0lBQUEsNkJBQTZCLE9BQUE7QUFDN0IsbUlBQUEsNEJBQTRCLE9BQUE7QUFDNUIsNkhBQUEsNEJBQTRCLE9BQTBCO0FBR3hELHFCQUFxQjtBQUNyQixpREFzQjRCO0FBckIxQix3R0FBQSxVQUFVLE9BQUE7QUFDVix5R0FBQSxXQUFXLE9BQUE7QUFDWCw0R0FBQSxjQUFjLE9BQUE7QUFDZCx5R0FBQSxXQUFXLE9BQUE7QUFDWCx5R0FBQSxXQUFXLE9BQUE7QUFDWCxrR0FBQSxJQUFJLE9BQUE7QUFDSixvR0FBQSxNQUFNLE9BQUE7QUFDTix1R0FBQSxTQUFTLE9BQUE7QUFDVCwyR0FBQSxhQUFhLE9BQUE7QUFDYixxR0FBQSxPQUFPLE9BQUE7QUFDUCx3R0FBQSxVQUFVLE9BQUE7QUFDVix1R0FBQSxTQUFTLE9BQUE7QUFDVCx3R0FBQSxVQUFVLE9BQUE7QUFDVixtR0FBQSxLQUFLLE9BQUE7QUFDTCx1R0FBQSxTQUFTLE9BQUE7QUFDVCwyR0FBQSxhQUFhLE9BQUE7QUFDYixrR0FBQSxJQUFJLE9BQUE7QUFDSixxR0FBQSxPQUFPLE9BQUE7QUFDUCwyR0FBQSxhQUFhLE9BQUE7QUFDYix5R0FBQSxXQUFXLE9BQUE7QUFDWCw2R0FBQSxlQUFlLE9BQUE7QUFHakIsb0JBQW9CO0FBQ3BCLDZDQUFxRTtBQUE1RCxvR0FBQSxRQUFRLE9BQUE7QUFDakIsbUVBSXFDO0FBSG5DLDBIQUFBLG1CQUFtQixPQUFBO0FBS3JCLFdBQVc7QUFDWCw4REFNb0M7QUFMbEMsa0hBQUEsZUFBZSxPQUFBO0FBQ2Ysd0dBQUEsS0FBSyxPQUFBO0FBQ0wsa0hBQUEsZUFBZSxPQUFBO0FBQ2YsOEdBQUEsV0FBVyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBqdWJiaW8vY29yZSAtIEJvdCBsaWJyYXJ5IGZvciBKdWJiaW9cclxuICovXHJcblxyXG4vLyBDb3JlXHJcbmV4cG9ydCB7IENsaWVudCwgR2F0ZXdheUludGVudEJpdHMgfSBmcm9tICcuL0NsaWVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2VudW1zJztcclxuXHJcbi8vIFJFU1RcclxuZXhwb3J0IHsgUkVTVCwgdHlwZSBNZW50aW9uc0RhdGEsIHR5cGUgTWVudGlvblVzZXIsIHR5cGUgTWVudGlvblJvbGUgfSBmcm9tICcuL3Jlc3QvUkVTVCc7XHJcblxyXG4vLyBTdHJ1Y3R1cmVzXHJcbmV4cG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuL3N0cnVjdHVyZXMvQ29sbGVjdGlvbic7XHJcbmV4cG9ydCB7IFVzZXIgfSBmcm9tICcuL3N0cnVjdHVyZXMvVXNlcic7XHJcbmV4cG9ydCB7IEd1aWxkIH0gZnJvbSAnLi9zdHJ1Y3R1cmVzL0d1aWxkJztcclxuZXhwb3J0IHsgR3VpbGRNZW1iZXIsIFBlcm1pc3Npb25zLCBQZXJtaXNzaW9uRmxhZ3MgfSBmcm9tICcuL3N0cnVjdHVyZXMvR3VpbGRNZW1iZXInO1xyXG5leHBvcnQgeyBNZXNzYWdlLCB0eXBlIE1lc3NhZ2VNZW50aW9ucyB9IGZyb20gJy4vc3RydWN0dXJlcy9NZXNzYWdlJztcclxuZXhwb3J0IHsgXHJcbiAgSW50ZXJhY3Rpb24sIFxyXG4gIENvbW1hbmRJbnRlcmFjdGlvbiwgXHJcbiAgQnV0dG9uSW50ZXJhY3Rpb24sIFxyXG4gIFNlbGVjdE1lbnVJbnRlcmFjdGlvbixcclxuICBBdXRvY29tcGxldGVJbnRlcmFjdGlvbixcclxuICBNb2RhbFN1Ym1pdEludGVyYWN0aW9uLFxyXG4gIENvbW1hbmRJbnRlcmFjdGlvbk9wdGlvbnMsXHJcbiAgY3JlYXRlSW50ZXJhY3Rpb24sXHJcbiAgdHlwZSBJbnRlcmFjdGlvblJlcGx5T3B0aW9ucyxcclxuICB0eXBlIEF1dG9jb21wbGV0ZUNob2ljZSxcclxuICB0eXBlIE1vZGFsRGF0YSxcclxufSBmcm9tICcuL3N0cnVjdHVyZXMvSW50ZXJhY3Rpb24nO1xyXG5leHBvcnQgeyBcclxuICBCYXNlQ2hhbm5lbCwgXHJcbiAgVGV4dENoYW5uZWwsIFxyXG4gIFZvaWNlQ2hhbm5lbCwgXHJcbiAgRE1DaGFubmVsLFxyXG4gIGNyZWF0ZUNoYW5uZWwsXHJcbiAgdHlwZSBNZXNzYWdlQ3JlYXRlT3B0aW9ucyxcclxufSBmcm9tICcuL3N0cnVjdHVyZXMvQ2hhbm5lbCc7XHJcblxyXG4vLyBDb2xsZWN0b3JzIChmcm9tIHV0aWxzIC0gbW9yZSBjb21wcmVoZW5zaXZlKVxyXG5leHBvcnQge1xyXG4gIENvbGxlY3RvcixcclxuICBNZXNzYWdlQ29sbGVjdG9yLFxyXG4gIEludGVyYWN0aW9uQ29sbGVjdG9yLFxyXG4gIFJlYWN0aW9uQ29sbGVjdG9yLFxyXG4gIGF3YWl0TWVzc2FnZXMsXHJcbiAgYXdhaXRSZWFjdGlvbnMsXHJcbiAgdHlwZSBDb2xsZWN0b3JPcHRpb25zLFxyXG4gIHR5cGUgTWVzc2FnZUNvbGxlY3Rvck9wdGlvbnMsXHJcbiAgdHlwZSBJbnRlcmFjdGlvbkNvbGxlY3Rvck9wdGlvbnMsXHJcbiAgdHlwZSBSZWFjdGlvbkNvbGxlY3Rvck9wdGlvbnMsXHJcbn0gZnJvbSAnLi91dGlscy9Db2xsZWN0b3InO1xyXG5cclxuLy8gQnVpbGRlcnNcclxuZXhwb3J0IHsgXHJcbiAgRW1iZWRCdWlsZGVyLCBcclxuICBDb2xvcnMsXHJcbiAgdHlwZSBBUElFbWJlZCxcclxuICB0eXBlIEFQSUVtYmVkRmllbGQsXHJcbiAgdHlwZSBBUElFbWJlZEF1dGhvcixcclxuICB0eXBlIEFQSUVtYmVkRm9vdGVyLFxyXG4gIHR5cGUgQVBJRW1iZWRJbWFnZSxcclxuICB0eXBlIEFQSUVtYmVkVGh1bWJuYWlsLFxyXG59IGZyb20gJy4vYnVpbGRlcnMvRW1iZWRCdWlsZGVyJztcclxuXHJcbmV4cG9ydCB7IFxyXG4gIEJ1dHRvbkJ1aWxkZXIsIFxyXG4gIEJ1dHRvblN0eWxlLFxyXG4gIHR5cGUgQVBJQnV0dG9uQ29tcG9uZW50LFxyXG59IGZyb20gJy4vYnVpbGRlcnMvQnV0dG9uQnVpbGRlcic7XHJcblxyXG5leHBvcnQgeyBcclxuICBTdHJpbmdTZWxlY3RNZW51QnVpbGRlciwgXHJcbiAgU2VsZWN0TWVudUJ1aWxkZXIsXHJcbiAgU3RyaW5nU2VsZWN0TWVudU9wdGlvbkJ1aWxkZXIsXHJcbiAgdHlwZSBBUElTZWxlY3RNZW51T3B0aW9uLFxyXG4gIHR5cGUgQVBJU2VsZWN0TWVudUNvbXBvbmVudCxcclxufSBmcm9tICcuL2J1aWxkZXJzL1NlbGVjdE1lbnVCdWlsZGVyJztcclxuXHJcbmV4cG9ydCB7IFxyXG4gIEFjdGlvblJvd0J1aWxkZXIsXHJcbiAgdHlwZSBBUElBY3Rpb25Sb3csXHJcbiAgdHlwZSBBUElBY3Rpb25Sb3dDb21wb25lbnQsXHJcbn0gZnJvbSAnLi9idWlsZGVycy9BY3Rpb25Sb3dCdWlsZGVyJztcclxuXHJcbmV4cG9ydCB7IFxyXG4gIE1vZGFsQnVpbGRlciwgXHJcbiAgVGV4dElucHV0QnVpbGRlciwgXHJcbiAgVGV4dElucHV0U3R5bGUsXHJcbiAgdHlwZSBBUElUZXh0SW5wdXRDb21wb25lbnQsXHJcbiAgdHlwZSBBUElNb2RhbEFjdGlvblJvdyxcclxuICB0eXBlIEFQSU1vZGFsLFxyXG59IGZyb20gJy4vYnVpbGRlcnMvTW9kYWxCdWlsZGVyJztcclxuXHJcbmV4cG9ydCB7IFxyXG4gIFNsYXNoQ29tbWFuZEJ1aWxkZXIsXHJcbiAgU2xhc2hDb21tYW5kU3RyaW5nT3B0aW9uLFxyXG4gIFNsYXNoQ29tbWFuZEludGVnZXJPcHRpb24sXHJcbiAgU2xhc2hDb21tYW5kTnVtYmVyT3B0aW9uLFxyXG4gIFNsYXNoQ29tbWFuZEJvb2xlYW5PcHRpb24sXHJcbiAgU2xhc2hDb21tYW5kVXNlck9wdGlvbixcclxuICBTbGFzaENvbW1hbmRDaGFubmVsT3B0aW9uLFxyXG4gIFNsYXNoQ29tbWFuZFJvbGVPcHRpb24sXHJcbiAgU2xhc2hDb21tYW5kTWVudGlvbmFibGVPcHRpb24sXHJcbiAgU2xhc2hDb21tYW5kQXR0YWNobWVudE9wdGlvbixcclxuICBBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25UeXBlIGFzIFNsYXNoQ29tbWFuZE9wdGlvblR5cGUsXHJcbn0gZnJvbSAnLi9idWlsZGVycy9TbGFzaENvbW1hbmRCdWlsZGVyJztcclxuXHJcbi8vIFV0aWxzIC0gRm9ybWF0dGVyc1xyXG5leHBvcnQgeyBcclxuICBGb3JtYXR0ZXJzLFxyXG4gIHVzZXJNZW50aW9uLFxyXG4gIGNoYW5uZWxNZW50aW9uLFxyXG4gIHJvbGVNZW50aW9uLFxyXG4gIGZvcm1hdEVtb2ppLFxyXG4gIGJvbGQsXHJcbiAgaXRhbGljLFxyXG4gIHVuZGVybGluZSxcclxuICBzdHJpa2V0aHJvdWdoLFxyXG4gIHNwb2lsZXIsXHJcbiAgaW5saW5lQ29kZSxcclxuICBjb2RlQmxvY2ssXHJcbiAgYmxvY2tRdW90ZSxcclxuICBxdW90ZSxcclxuICBoeXBlcmxpbmssXHJcbiAgaGlkZUxpbmtFbWJlZCxcclxuICB0aW1lLFxyXG4gIGhlYWRpbmcsXHJcbiAgdW5vcmRlcmVkTGlzdCxcclxuICBvcmRlcmVkTGlzdCxcclxuICBUaW1lc3RhbXBTdHlsZXMsXHJcbn0gZnJvbSAnLi91dGlscy9Gb3JtYXR0ZXJzJztcclxuXHJcbi8vIFV0aWxzIC0gQml0RmllbGRzXHJcbmV4cG9ydCB7IEJpdEZpZWxkLCB0eXBlIEJpdEZpZWxkUmVzb2x2YWJsZSB9IGZyb20gJy4vdXRpbHMvQml0RmllbGQnO1xyXG5leHBvcnQgeyBcclxuICBQZXJtaXNzaW9uc0JpdEZpZWxkLCBcclxuICB0eXBlIFBlcm1pc3Npb25TdHJpbmcsIFxyXG4gIHR5cGUgUGVybWlzc2lvblJlc29sdmFibGUgXHJcbn0gZnJvbSAnLi91dGlscy9QZXJtaXNzaW9uc0JpdEZpZWxkJztcclxuXHJcbi8vIFNoYXJkaW5nXHJcbmV4cG9ydCB7XHJcbiAgU2hhcmRpbmdNYW5hZ2VyLFxyXG4gIFNoYXJkLFxyXG4gIFNoYXJkQ2xpZW50VXRpbCxcclxuICBTaGFyZFN0YXR1cyxcclxuICB0eXBlIFNoYXJkaW5nTWFuYWdlck9wdGlvbnMsXHJcbn0gZnJvbSAnLi9zaGFyZGluZy9TaGFyZGluZ01hbmFnZXInO1xyXG4iXX0=
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Base manager class for caching and managing structures
3
+ */
4
+ import { Collection } from '../utils/Collection';
5
+ /**
6
+ * Base manager for caching structures
7
+ */
8
+ export declare abstract class BaseManager<K extends string, V, R = V> {
9
+ /** The client that instantiated this manager */
10
+ readonly client: any;
11
+ /** The cache of items */
12
+ readonly cache: Collection<K, V>;
13
+ /** The class to instantiate for items */
14
+ protected readonly holds: new (...args: any[]) => V;
15
+ constructor(client: any, holds: new (...args: any[]) => V, iterable?: Iterable<R>);
16
+ /**
17
+ * Add an item to the cache
18
+ */
19
+ abstract _add(data: any, cache?: boolean, options?: {
20
+ id?: K;
21
+ extras?: any[];
22
+ }): V;
23
+ /**
24
+ * Resolve an item from the cache or ID
25
+ */
26
+ resolve(idOrInstance: K | V): V | null;
27
+ /**
28
+ * Resolve an ID from an item or ID
29
+ */
30
+ resolveId(idOrInstance: K | V | {
31
+ id: K;
32
+ }): K | null;
33
+ /**
34
+ * Get the cache as a JSON array
35
+ */
36
+ valueOf(): V[];
37
+ }
38
+ /**
39
+ * Caching manager that fetches data from the API
40
+ */
41
+ export declare abstract class CachedManager<K extends string, V, R = V> extends BaseManager<K, V, R> {
42
+ /**
43
+ * Fetch an item from the API
44
+ */
45
+ abstract fetch(id: K, options?: {
46
+ cache?: boolean;
47
+ force?: boolean;
48
+ }): Promise<V>;
49
+ /**
50
+ * Fetch an item, using cache if available (async version)
51
+ */
52
+ resolveAsync(idOrInstance: K | V, options?: {
53
+ cache?: boolean;
54
+ force?: boolean;
55
+ }): Promise<V | null>;
56
+ }
57
+ /**
58
+ * Data manager that doesn't cache
59
+ */
60
+ export declare abstract class DataManager<K extends string, V, R = V> extends BaseManager<K, V, R> {
61
+ /**
62
+ * Add an item to the cache
63
+ */
64
+ _add(data: any, cache?: boolean, options?: {
65
+ id?: K;
66
+ extras?: any[];
67
+ }): V;
68
+ }
69
+ export default BaseManager;
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ /**
3
+ * Base manager class for caching and managing structures
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DataManager = exports.CachedManager = exports.BaseManager = void 0;
7
+ const Collection_1 = require("../utils/Collection");
8
+ /**
9
+ * Base manager for caching structures
10
+ */
11
+ class BaseManager {
12
+ /** The client that instantiated this manager */
13
+ client;
14
+ /** The cache of items */
15
+ cache;
16
+ /** The class to instantiate for items */
17
+ holds;
18
+ constructor(client, holds, iterable) {
19
+ this.client = client;
20
+ this.holds = holds;
21
+ this.cache = new Collection_1.Collection();
22
+ if (iterable) {
23
+ for (const item of iterable) {
24
+ this._add(item);
25
+ }
26
+ }
27
+ }
28
+ /**
29
+ * Resolve an item from the cache or ID
30
+ */
31
+ resolve(idOrInstance) {
32
+ if (idOrInstance instanceof this.holds)
33
+ return idOrInstance;
34
+ if (typeof idOrInstance === 'string')
35
+ return this.cache.get(idOrInstance) ?? null;
36
+ return null;
37
+ }
38
+ /**
39
+ * Resolve an ID from an item or ID
40
+ */
41
+ resolveId(idOrInstance) {
42
+ if (idOrInstance instanceof this.holds)
43
+ return idOrInstance.id;
44
+ if (typeof idOrInstance === 'string')
45
+ return idOrInstance;
46
+ if (typeof idOrInstance === 'object' && idOrInstance !== null && 'id' in idOrInstance) {
47
+ return idOrInstance.id;
48
+ }
49
+ return null;
50
+ }
51
+ /**
52
+ * Get the cache as a JSON array
53
+ */
54
+ valueOf() {
55
+ return [...this.cache.values()];
56
+ }
57
+ }
58
+ exports.BaseManager = BaseManager;
59
+ /**
60
+ * Caching manager that fetches data from the API
61
+ */
62
+ class CachedManager extends BaseManager {
63
+ /**
64
+ * Fetch an item, using cache if available (async version)
65
+ */
66
+ async resolveAsync(idOrInstance, options) {
67
+ const existing = super.resolve(idOrInstance);
68
+ if (existing && !options?.force)
69
+ return existing;
70
+ const id = this.resolveId(idOrInstance);
71
+ if (!id)
72
+ return null;
73
+ try {
74
+ return await this.fetch(id, options);
75
+ }
76
+ catch {
77
+ return null;
78
+ }
79
+ }
80
+ }
81
+ exports.CachedManager = CachedManager;
82
+ /**
83
+ * Data manager that doesn't cache
84
+ */
85
+ class DataManager extends BaseManager {
86
+ /**
87
+ * Add an item to the cache
88
+ */
89
+ _add(data, cache = true, options) {
90
+ const existing = this.cache.get(options?.id ?? data.id);
91
+ if (existing) {
92
+ if (cache) {
93
+ existing._patch?.(data);
94
+ }
95
+ return existing;
96
+ }
97
+ const entry = new this.holds(this.client, data, ...(options?.extras ?? []));
98
+ if (cache) {
99
+ this.cache.set(options?.id ?? data.id, entry);
100
+ }
101
+ return entry;
102
+ }
103
+ }
104
+ exports.DataManager = DataManager;
105
+ exports.default = BaseManager;
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZU1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWFuYWdlcnMvQmFzZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFSCxvREFBaUQ7QUFFakQ7O0dBRUc7QUFDSCxNQUFzQixXQUFXO0lBQy9CLGdEQUFnRDtJQUNoQyxNQUFNLENBQU07SUFFNUIseUJBQXlCO0lBQ1QsS0FBSyxDQUFtQjtJQUV4Qyx5Q0FBeUM7SUFDdEIsS0FBSyxDQUE0QjtJQUVwRCxZQUFZLE1BQVcsRUFBRSxLQUFnQyxFQUFFLFFBQXNCO1FBQy9FLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSx1QkFBVSxFQUFRLENBQUM7UUFFcEMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLEtBQUssTUFBTSxJQUFJLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBVyxDQUFDLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBT0Q7O09BRUc7SUFDSCxPQUFPLENBQUMsWUFBbUI7UUFDekIsSUFBSSxZQUFZLFlBQVksSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLFlBQVksQ0FBQztRQUM1RCxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVE7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQWlCLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDdkYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLENBQUMsWUFBK0I7UUFDdkMsSUFBSSxZQUFZLFlBQVksSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFRLFlBQW9CLENBQUMsRUFBRSxDQUFDO1FBQ3hFLElBQUksT0FBTyxZQUFZLEtBQUssUUFBUTtZQUFFLE9BQU8sWUFBaUIsQ0FBQztRQUMvRCxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVEsSUFBSSxZQUFZLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUN0RixPQUFPLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUF0REQsa0NBc0RDO0FBRUQ7O0dBRUc7QUFDSCxNQUFzQixhQUEwQyxTQUFRLFdBQW9CO0lBTTFGOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFtQixFQUFFLE9BQThDO1FBQ3BGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0MsSUFBSSxRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSztZQUFFLE9BQU8sUUFBUSxDQUFDO1FBRWpELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVyQixJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXRCRCxzQ0FzQkM7QUFFRDs7R0FFRztBQUNILE1BQXNCLFdBQXdDLFNBQVEsV0FBb0I7SUFDeEY7O09BRUc7SUFDSCxJQUFJLENBQUMsSUFBUyxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsT0FBb0M7UUFDaEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1QsUUFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGO0FBbkJELGtDQW1CQztBQUVELGtCQUFlLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQmFzZSBtYW5hZ2VyIGNsYXNzIGZvciBjYWNoaW5nIGFuZCBtYW5hZ2luZyBzdHJ1Y3R1cmVzXG4gKi9cblxuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL3V0aWxzL0NvbGxlY3Rpb24nO1xuXG4vKipcbiAqIEJhc2UgbWFuYWdlciBmb3IgY2FjaGluZyBzdHJ1Y3R1cmVzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTWFuYWdlcjxLIGV4dGVuZHMgc3RyaW5nLCBWLCBSID0gVj4ge1xuICAvKiogVGhlIGNsaWVudCB0aGF0IGluc3RhbnRpYXRlZCB0aGlzIG1hbmFnZXIgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNsaWVudDogYW55O1xuICBcbiAgLyoqIFRoZSBjYWNoZSBvZiBpdGVtcyAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2FjaGU6IENvbGxlY3Rpb248SywgVj47XG4gIFxuICAvKiogVGhlIGNsYXNzIHRvIGluc3RhbnRpYXRlIGZvciBpdGVtcyAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaG9sZHM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFY7XG5cbiAgY29uc3RydWN0b3IoY2xpZW50OiBhbnksIGhvbGRzOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBWLCBpdGVyYWJsZT86IEl0ZXJhYmxlPFI+KSB7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnQ7XG4gICAgdGhpcy5ob2xkcyA9IGhvbGRzO1xuICAgIHRoaXMuY2FjaGUgPSBuZXcgQ29sbGVjdGlvbjxLLCBWPigpO1xuICAgIFxuICAgIGlmIChpdGVyYWJsZSkge1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZXJhYmxlKSB7XG4gICAgICAgIHRoaXMuX2FkZChpdGVtIGFzIGFueSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBpdGVtIHRvIHRoZSBjYWNoZVxuICAgKi9cbiAgYWJzdHJhY3QgX2FkZChkYXRhOiBhbnksIGNhY2hlPzogYm9vbGVhbiwgb3B0aW9ucz86IHsgaWQ/OiBLOyBleHRyYXM/OiBhbnlbXSB9KTogVjtcblxuICAvKipcbiAgICogUmVzb2x2ZSBhbiBpdGVtIGZyb20gdGhlIGNhY2hlIG9yIElEXG4gICAqL1xuICByZXNvbHZlKGlkT3JJbnN0YW5jZTogSyB8IFYpOiBWIHwgbnVsbCB7XG4gICAgaWYgKGlkT3JJbnN0YW5jZSBpbnN0YW5jZW9mIHRoaXMuaG9sZHMpIHJldHVybiBpZE9ySW5zdGFuY2U7XG4gICAgaWYgKHR5cGVvZiBpZE9ySW5zdGFuY2UgPT09ICdzdHJpbmcnKSByZXR1cm4gdGhpcy5jYWNoZS5nZXQoaWRPckluc3RhbmNlIGFzIEspID8/IG51bGw7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSBhbiBJRCBmcm9tIGFuIGl0ZW0gb3IgSURcbiAgICovXG4gIHJlc29sdmVJZChpZE9ySW5zdGFuY2U6IEsgfCBWIHwgeyBpZDogSyB9KTogSyB8IG51bGwge1xuICAgIGlmIChpZE9ySW5zdGFuY2UgaW5zdGFuY2VvZiB0aGlzLmhvbGRzKSByZXR1cm4gKGlkT3JJbnN0YW5jZSBhcyBhbnkpLmlkO1xuICAgIGlmICh0eXBlb2YgaWRPckluc3RhbmNlID09PSAnc3RyaW5nJykgcmV0dXJuIGlkT3JJbnN0YW5jZSBhcyBLO1xuICAgIGlmICh0eXBlb2YgaWRPckluc3RhbmNlID09PSAnb2JqZWN0JyAmJiBpZE9ySW5zdGFuY2UgIT09IG51bGwgJiYgJ2lkJyBpbiBpZE9ySW5zdGFuY2UpIHtcbiAgICAgIHJldHVybiBpZE9ySW5zdGFuY2UuaWQ7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY2FjaGUgYXMgYSBKU09OIGFycmF5XG4gICAqL1xuICB2YWx1ZU9mKCk6IFZbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmNhY2hlLnZhbHVlcygpXTtcbiAgfVxufVxuXG4vKipcbiAqIENhY2hpbmcgbWFuYWdlciB0aGF0IGZldGNoZXMgZGF0YSBmcm9tIHRoZSBBUElcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENhY2hlZE1hbmFnZXI8SyBleHRlbmRzIHN0cmluZywgViwgUiA9IFY+IGV4dGVuZHMgQmFzZU1hbmFnZXI8SywgViwgUj4ge1xuICAvKipcbiAgICogRmV0Y2ggYW4gaXRlbSBmcm9tIHRoZSBBUElcbiAgICovXG4gIGFic3RyYWN0IGZldGNoKGlkOiBLLCBvcHRpb25zPzogeyBjYWNoZT86IGJvb2xlYW47IGZvcmNlPzogYm9vbGVhbiB9KTogUHJvbWlzZTxWPjtcblxuICAvKipcbiAgICogRmV0Y2ggYW4gaXRlbSwgdXNpbmcgY2FjaGUgaWYgYXZhaWxhYmxlIChhc3luYyB2ZXJzaW9uKVxuICAgKi9cbiAgYXN5bmMgcmVzb2x2ZUFzeW5jKGlkT3JJbnN0YW5jZTogSyB8IFYsIG9wdGlvbnM/OiB7IGNhY2hlPzogYm9vbGVhbjsgZm9yY2U/OiBib29sZWFuIH0pOiBQcm9taXNlPFYgfCBudWxsPiB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBzdXBlci5yZXNvbHZlKGlkT3JJbnN0YW5jZSk7XG4gICAgaWYgKGV4aXN0aW5nICYmICFvcHRpb25zPy5mb3JjZSkgcmV0dXJuIGV4aXN0aW5nO1xuICAgIFxuICAgIGNvbnN0IGlkID0gdGhpcy5yZXNvbHZlSWQoaWRPckluc3RhbmNlKTtcbiAgICBpZiAoIWlkKSByZXR1cm4gbnVsbDtcbiAgICBcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZmV0Y2goaWQsIG9wdGlvbnMpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRGF0YSBtYW5hZ2VyIHRoYXQgZG9lc24ndCBjYWNoZVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YU1hbmFnZXI8SyBleHRlbmRzIHN0cmluZywgViwgUiA9IFY+IGV4dGVuZHMgQmFzZU1hbmFnZXI8SywgViwgUj4ge1xuICAvKipcbiAgICogQWRkIGFuIGl0ZW0gdG8gdGhlIGNhY2hlXG4gICAqL1xuICBfYWRkKGRhdGE6IGFueSwgY2FjaGUgPSB0cnVlLCBvcHRpb25zPzogeyBpZD86IEs7IGV4dHJhcz86IGFueVtdIH0pOiBWIHtcbiAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuY2FjaGUuZ2V0KG9wdGlvbnM/LmlkID8/IGRhdGEuaWQpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIChleGlzdGluZyBhcyBhbnkpLl9wYXRjaD8uKGRhdGEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBlbnRyeSA9IG5ldyB0aGlzLmhvbGRzKHRoaXMuY2xpZW50LCBkYXRhLCAuLi4ob3B0aW9ucz8uZXh0cmFzID8/IFtdKSk7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICB0aGlzLmNhY2hlLnNldChvcHRpb25zPy5pZCA/PyBkYXRhLmlkLCBlbnRyeSk7XG4gICAgfVxuICAgIHJldHVybiBlbnRyeTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCYXNlTWFuYWdlcjtcbiJdfQ==