@discordeno/bot 22.0.1-next.f334bb8 → 22.0.1-next.f4e424f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bot.d.ts +3 -3
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +3 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -2
- package/dist/desiredProperties.d.ts +4 -1
- package/dist/desiredProperties.d.ts.map +1 -1
- package/dist/desiredProperties.js +38 -1
- package/dist/events.d.ts +22 -7
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +1 -1
- package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js +2 -2
- package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js +2 -2
- package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js +2 -2
- package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js +2 -2
- package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +2 -2
- package/dist/handlers/invites/INVITE_CREATE.d.ts.map +1 -1
- package/dist/handlers/invites/INVITE_CREATE.js +20 -5
- package/dist/handlers/invites/INVITE_DELETE.d.ts.map +1 -1
- package/dist/handlers/invites/INVITE_DELETE.js +4 -4
- package/dist/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +1 -1
- package/dist/handlers/members/GUILD_MEMBER_UPDATE.js +4 -4
- package/dist/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -1
- package/dist/handlers/messages/MESSAGE_REACTION_ADD.js +4 -3
- package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -1
- package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.js +4 -3
- package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -1
- package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +4 -3
- package/dist/helpers.d.ts +15 -2
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +52 -12
- package/dist/transformers/activity.d.ts +17 -5
- package/dist/transformers/activity.d.ts.map +1 -1
- package/dist/transformers/activity.js +55 -37
- package/dist/transformers/application.d.ts +3 -3
- package/dist/transformers/application.d.ts.map +1 -1
- package/dist/transformers/application.js +18 -7
- package/dist/transformers/applicationCommand.d.ts +3 -2
- package/dist/transformers/applicationCommand.d.ts.map +1 -1
- package/dist/transformers/applicationCommand.js +19 -17
- package/dist/transformers/applicationCommandOption.d.ts +3 -2
- package/dist/transformers/applicationCommandOption.d.ts.map +1 -1
- package/dist/transformers/applicationCommandOption.js +22 -19
- package/dist/transformers/applicationCommandOptionChoice.d.ts +3 -2
- package/dist/transformers/applicationCommandOptionChoice.d.ts.map +1 -1
- package/dist/transformers/applicationCommandOptionChoice.js +10 -8
- package/dist/transformers/applicationCommandPermission.d.ts +7 -3
- package/dist/transformers/applicationCommandPermission.d.ts.map +1 -1
- package/dist/transformers/applicationCommandPermission.js +20 -13
- package/dist/transformers/attachment.d.ts +3 -1
- package/dist/transformers/attachment.d.ts.map +1 -1
- package/dist/transformers/attachment.js +12 -4
- package/dist/transformers/auditLogEntry.d.ts +7 -3
- package/dist/transformers/auditLogEntry.d.ts.map +1 -1
- package/dist/transformers/auditLogEntry.js +32 -25
- package/dist/transformers/automodActionExecution.d.ts +10 -3
- package/dist/transformers/automodActionExecution.d.ts.map +1 -1
- package/dist/transformers/automodActionExecution.js +35 -23
- package/dist/transformers/automodRule.d.ts +7 -3
- package/dist/transformers/automodRule.d.ts.map +1 -1
- package/dist/transformers/automodRule.js +30 -30
- package/dist/transformers/avatarDecorationData.d.ts +3 -2
- package/dist/transformers/avatarDecorationData.d.ts.map +1 -1
- package/dist/transformers/avatarDecorationData.js +6 -3
- package/dist/transformers/channel.d.ts +6 -3
- package/dist/transformers/channel.d.ts.map +1 -1
- package/dist/transformers/channel.js +11 -6
- package/dist/transformers/component.d.ts +9 -4
- package/dist/transformers/component.d.ts.map +1 -1
- package/dist/transformers/component.js +76 -51
- package/dist/transformers/embed.d.ts +16 -3
- package/dist/transformers/embed.d.ts.map +1 -1
- package/dist/transformers/embed.js +71 -42
- package/dist/transformers/emoji.d.ts +7 -3
- package/dist/transformers/emoji.d.ts.map +1 -1
- package/dist/transformers/emoji.js +10 -5
- package/dist/transformers/entitlement.d.ts +3 -2
- package/dist/transformers/entitlement.d.ts.map +1 -1
- package/dist/transformers/entitlement.js +6 -3
- package/dist/transformers/gatewayBot.d.ts +7 -3
- package/dist/transformers/gatewayBot.d.ts.map +1 -1
- package/dist/transformers/gatewayBot.js +20 -13
- package/dist/transformers/guild.d.ts +3 -2
- package/dist/transformers/guild.d.ts.map +1 -1
- package/dist/transformers/guild.js +25 -25
- package/dist/transformers/incidentsData.d.ts +3 -2
- package/dist/transformers/incidentsData.d.ts.map +1 -1
- package/dist/transformers/incidentsData.js +6 -3
- package/dist/transformers/integration.d.ts +10 -3
- package/dist/transformers/integration.d.ts.map +1 -1
- package/dist/transformers/integration.js +43 -31
- package/dist/transformers/interaction.d.ts +20 -12
- package/dist/transformers/interaction.d.ts.map +1 -1
- package/dist/transformers/interaction.js +47 -32
- package/dist/transformers/invite.d.ts +4 -4
- package/dist/transformers/invite.d.ts.map +1 -1
- package/dist/transformers/invite.js +26 -25
- package/dist/transformers/lobby.d.ts +13 -4
- package/dist/transformers/lobby.d.ts.map +1 -1
- package/dist/transformers/lobby.js +35 -5
- package/dist/transformers/member.d.ts +3 -2
- package/dist/transformers/member.d.ts.map +1 -1
- package/dist/transformers/member.js +6 -3
- package/dist/transformers/message.d.ts +20 -10
- package/dist/transformers/message.d.ts.map +1 -1
- package/dist/transformers/message.js +52 -25
- package/dist/transformers/onboarding.d.ts +9 -4
- package/dist/transformers/onboarding.d.ts.map +1 -1
- package/dist/transformers/onboarding.js +17 -10
- package/dist/transformers/poll.d.ts +6 -3
- package/dist/transformers/poll.d.ts.map +1 -1
- package/dist/transformers/poll.js +14 -7
- package/dist/transformers/presence.d.ts +3 -2
- package/dist/transformers/presence.d.ts.map +1 -1
- package/dist/transformers/presence.js +10 -6
- package/dist/transformers/reverse/activity.d.ts +4 -3
- package/dist/transformers/reverse/activity.d.ts.map +1 -1
- package/dist/transformers/reverse/activity.js +20 -24
- package/dist/transformers/reverse/applicationCommand.js +2 -2
- package/dist/transformers/reverse/component.d.ts.map +1 -1
- package/dist/transformers/reverse/component.js +4 -1
- package/dist/transformers/reverse/embed.d.ts.map +1 -1
- package/dist/transformers/reverse/embed.js +19 -4
- package/dist/transformers/reverse/member.d.ts.map +1 -1
- package/dist/transformers/reverse/member.js +4 -2
- package/dist/transformers/reverse/presence.d.ts.map +1 -1
- package/dist/transformers/reverse/presence.js +3 -2
- package/dist/transformers/reverse/user.d.ts +5 -0
- package/dist/transformers/reverse/user.d.ts.map +1 -0
- package/dist/transformers/reverse/user.js +17 -0
- package/dist/transformers/role.d.ts +7 -4
- package/dist/transformers/role.d.ts.map +1 -1
- package/dist/transformers/role.js +11 -7
- package/dist/transformers/scheduledEvent.d.ts +6 -3
- package/dist/transformers/scheduledEvent.d.ts.map +1 -1
- package/dist/transformers/scheduledEvent.js +10 -5
- package/dist/transformers/sku.d.ts +3 -2
- package/dist/transformers/sku.d.ts.map +1 -1
- package/dist/transformers/sku.js +6 -3
- package/dist/transformers/soundboardSound.d.ts +3 -2
- package/dist/transformers/soundboardSound.d.ts.map +1 -1
- package/dist/transformers/soundboardSound.js +6 -3
- package/dist/transformers/stageInstance.d.ts +3 -2
- package/dist/transformers/stageInstance.d.ts.map +1 -1
- package/dist/transformers/stageInstance.js +6 -3
- package/dist/transformers/stageInviteInstance.d.ts +3 -3
- package/dist/transformers/stageInviteInstance.d.ts.map +1 -1
- package/dist/transformers/stageInviteInstance.js +10 -8
- package/dist/transformers/sticker.d.ts +6 -3
- package/dist/transformers/sticker.d.ts.map +1 -1
- package/dist/transformers/sticker.js +18 -14
- package/dist/transformers/subscription.d.ts +3 -2
- package/dist/transformers/subscription.d.ts.map +1 -1
- package/dist/transformers/subscription.js +6 -3
- package/dist/transformers/team.d.ts +7 -3
- package/dist/transformers/team.d.ts.map +1 -1
- package/dist/transformers/team.js +22 -16
- package/dist/transformers/template.d.ts +3 -2
- package/dist/transformers/template.d.ts.map +1 -1
- package/dist/transformers/template.js +18 -16
- package/dist/transformers/threadMember.d.ts +6 -3
- package/dist/transformers/threadMember.d.ts.map +1 -1
- package/dist/transformers/threadMember.js +20 -16
- package/dist/transformers/toggles/channel.d.ts +2 -2
- package/dist/transformers/toggles/channel.d.ts.map +1 -1
- package/dist/transformers/toggles/channel.js +2 -2
- package/dist/transformers/toggles/emoji.d.ts +1 -1
- package/dist/transformers/toggles/emoji.d.ts.map +1 -1
- package/dist/transformers/toggles/emoji.js +1 -1
- package/dist/transformers/toggles/guild.d.ts +1 -1
- package/dist/transformers/toggles/guild.d.ts.map +1 -1
- package/dist/transformers/toggles/guild.js +1 -1
- package/dist/transformers/toggles/role.d.ts +1 -1
- package/dist/transformers/toggles/role.d.ts.map +1 -1
- package/dist/transformers/toggles/role.js +1 -1
- package/dist/transformers/toggles/user.d.ts +1 -1
- package/dist/transformers/toggles/user.d.ts.map +1 -1
- package/dist/transformers/toggles/user.js +1 -1
- package/dist/transformers/toggles/voice.d.ts +1 -1
- package/dist/transformers/toggles/voice.d.ts.map +1 -1
- package/dist/transformers/toggles/voice.js +1 -1
- package/dist/transformers/types.d.ts +194 -39
- package/dist/transformers/types.d.ts.map +1 -1
- package/dist/transformers/types.js +2 -2
- package/dist/transformers/user.d.ts +13 -5
- package/dist/transformers/user.d.ts.map +1 -1
- package/dist/transformers/user.js +18 -9
- package/dist/transformers/voiceRegion.d.ts +3 -2
- package/dist/transformers/voiceRegion.d.ts.map +1 -1
- package/dist/transformers/voiceRegion.js +12 -10
- package/dist/transformers/voiceState.d.ts +3 -3
- package/dist/transformers/voiceState.d.ts.map +1 -1
- package/dist/transformers/voiceState.js +6 -4
- package/dist/transformers/webhook.d.ts +3 -1
- package/dist/transformers/webhook.d.ts.map +1 -1
- package/dist/transformers/webhook.js +9 -6
- package/dist/transformers/welcomeScreen.d.ts +1 -2
- package/dist/transformers/welcomeScreen.d.ts.map +1 -1
- package/dist/transformers/welcomeScreen.js +1 -1
- package/dist/transformers/widget.d.ts +1 -2
- package/dist/transformers/widget.d.ts.map +1 -1
- package/dist/transformers/widget.js +7 -5
- package/dist/transformers/widgetSettings.d.ts +1 -2
- package/dist/transformers/widgetSettings.d.ts.map +1 -1
- package/dist/transformers/widgetSettings.js +1 -1
- package/dist/transformers.d.ts +190 -78
- package/dist/transformers.d.ts.map +1 -1
- package/dist/transformers.js +81 -21
- package/package.json +16 -16
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DiscordApplicationIntegrationType, InteractionResponseTypes, InteractionTypes, MessageFlags } from '@discordeno/types';
|
|
2
2
|
import { Collection } from '@discordeno/utils';
|
|
3
|
+
import { callCustomizer } from '../transformers.js';
|
|
3
4
|
// Assume we have all desired properties for this or else typescript will get very confused for the return types of these functions.
|
|
4
5
|
// This is used as a prototype, so the actual type with the user desired properties will be set later.
|
|
5
6
|
export const baseInteraction = {
|
|
@@ -89,9 +90,9 @@ export const baseInteraction = {
|
|
|
89
90
|
}
|
|
90
91
|
};
|
|
91
92
|
export function transformInteraction(bot, payload, extra) {
|
|
92
|
-
const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
|
|
93
|
-
const interaction = Object.create(baseInteraction);
|
|
94
93
|
const props = bot.transformers.desiredProperties.interaction;
|
|
94
|
+
const interaction = Object.create(baseInteraction);
|
|
95
|
+
const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
|
|
95
96
|
interaction.bot = bot;
|
|
96
97
|
interaction.acknowledged = false;
|
|
97
98
|
if (props.id && payload.id) interaction.id = bot.transformers.snowflake(payload.id);
|
|
@@ -101,9 +102,9 @@ export function transformInteraction(bot, payload, extra) {
|
|
|
101
102
|
if (props.version && payload.version) interaction.version = payload.version;
|
|
102
103
|
if (props.locale && payload.locale) interaction.locale = payload.locale;
|
|
103
104
|
if (props.guildLocale && payload.guild_locale) interaction.guildLocale = payload.guild_locale;
|
|
104
|
-
if (props.guild && payload.guild)
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
if (props.guild && payload.guild) interaction.guild = bot.transformers.guild(bot, payload.guild, {
|
|
106
|
+
shardId: extra?.shardId,
|
|
107
|
+
partial: true
|
|
107
108
|
});
|
|
108
109
|
if (props.guildId && guildId) interaction.guildId = guildId;
|
|
109
110
|
if (props.user) {
|
|
@@ -114,9 +115,9 @@ export function transformInteraction(bot, payload, extra) {
|
|
|
114
115
|
if (props.message && payload.message) interaction.message = bot.transformers.message(bot, payload.message, {
|
|
115
116
|
shardId: extra?.shardId
|
|
116
117
|
});
|
|
117
|
-
if (props.channel && payload.channel)
|
|
118
|
-
|
|
119
|
-
|
|
118
|
+
if (props.channel && payload.channel) interaction.channel = bot.transformers.channel(bot, payload.channel, {
|
|
119
|
+
guildId,
|
|
120
|
+
partial: true
|
|
120
121
|
});
|
|
121
122
|
if (props.channelId && payload.channel_id) interaction.channelId = bot.transformers.snowflake(payload.channel_id);
|
|
122
123
|
if (props.member && guildId && payload.member) interaction.member = bot.transformers.member(bot, payload.member, {
|
|
@@ -144,30 +145,33 @@ export function transformInteraction(bot, payload, extra) {
|
|
|
144
145
|
shardId: extra?.shardId,
|
|
145
146
|
guildId
|
|
146
147
|
}) : undefined,
|
|
147
|
-
options: payload.data.options?.map((opt)=>bot.transformers.
|
|
148
|
+
options: payload.data.options?.map((opt)=>bot.transformers.interactionDataOption(bot, opt)),
|
|
148
149
|
targetId: payload.data.target_id ? bot.transformers.snowflake(payload.data.target_id) : undefined
|
|
149
150
|
};
|
|
150
151
|
}
|
|
151
|
-
|
|
152
|
-
|
|
152
|
+
return callCustomizer('interaction', bot, payload, interaction, {
|
|
153
|
+
shardId: extra?.shardId,
|
|
154
|
+
partial: extra?.partial ?? false
|
|
155
|
+
});
|
|
153
156
|
}
|
|
154
|
-
export function transformInteractionDataOption(bot, option) {
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
157
|
+
export function transformInteractionDataOption(bot, option, extra) {
|
|
158
|
+
const interactionDataOption = {};
|
|
159
|
+
if (option.name) interactionDataOption.name = option.name;
|
|
160
|
+
if (option.type) interactionDataOption.type = option.type;
|
|
161
|
+
if (option.value !== undefined) interactionDataOption.value = option.value;
|
|
162
|
+
if (option.options) interactionDataOption.options = option.options.map((opt)=>bot.transformers.interactionDataOption(bot, opt));
|
|
163
|
+
if (option.focused !== undefined) interactionDataOption.focused = option.focused;
|
|
164
|
+
return callCustomizer('interactionDataOption', bot, option, interactionDataOption, {
|
|
165
|
+
partial: extra?.partial ?? false
|
|
166
|
+
});
|
|
163
167
|
}
|
|
164
168
|
export function transformInteractionDataResolved(bot, payload, extra) {
|
|
165
169
|
const transformed = {};
|
|
166
170
|
if (payload.messages) {
|
|
167
171
|
transformed.messages = new Collection(Object.entries(payload.messages).map(([key, value])=>{
|
|
168
|
-
// @ts-expect-error TODO: Deal with partials
|
|
169
172
|
const message = bot.transformers.message(bot, value, {
|
|
170
|
-
shardId: extra?.shardId
|
|
173
|
+
shardId: extra?.shardId,
|
|
174
|
+
partial: true
|
|
171
175
|
});
|
|
172
176
|
const id = bot.transformers.snowflake(key);
|
|
173
177
|
return [
|
|
@@ -188,10 +192,10 @@ export function transformInteractionDataResolved(bot, payload, extra) {
|
|
|
188
192
|
}
|
|
189
193
|
if (extra?.guildId && payload.members) {
|
|
190
194
|
transformed.members = new Collection(Object.entries(payload.members).map(([key, value])=>{
|
|
191
|
-
// @ts-expect-error TODO: Deal with partials, value is missing 2 values but the transformer can handle it, despite what the types says
|
|
192
195
|
const member = bot.transformers.member(bot, value, {
|
|
193
196
|
guildId: extra.guildId,
|
|
194
|
-
userId: bot.transformers.snowflake(key)
|
|
197
|
+
userId: bot.transformers.snowflake(key),
|
|
198
|
+
partial: true
|
|
195
199
|
});
|
|
196
200
|
const id = bot.transformers.snowflake(key);
|
|
197
201
|
return [
|
|
@@ -214,7 +218,9 @@ export function transformInteractionDataResolved(bot, payload, extra) {
|
|
|
214
218
|
}
|
|
215
219
|
if (payload.channels) {
|
|
216
220
|
transformed.channels = new Collection(Object.entries(payload.channels).map(([key, value])=>{
|
|
217
|
-
const channel = bot.transformers.channel(bot, value
|
|
221
|
+
const channel = bot.transformers.channel(bot, value, {
|
|
222
|
+
partial: true
|
|
223
|
+
});
|
|
218
224
|
const id = bot.transformers.snowflake(key);
|
|
219
225
|
return [
|
|
220
226
|
id,
|
|
@@ -232,9 +238,10 @@ export function transformInteractionDataResolved(bot, payload, extra) {
|
|
|
232
238
|
];
|
|
233
239
|
}));
|
|
234
240
|
}
|
|
235
|
-
return
|
|
241
|
+
return callCustomizer('interactionDataResolved', bot, payload, transformed, {
|
|
236
242
|
shardId: extra?.shardId,
|
|
237
|
-
guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined
|
|
243
|
+
guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined,
|
|
244
|
+
partial: extra?.partial ?? false
|
|
238
245
|
});
|
|
239
246
|
}
|
|
240
247
|
export function transformInteractionCallbackResponse(bot, payload, extra) {
|
|
@@ -244,9 +251,12 @@ export function transformInteractionCallbackResponse(bot, payload, extra) {
|
|
|
244
251
|
if (props.resource && payload.resource) response.resource = bot.transformers.interactionResource(bot, payload.resource, {
|
|
245
252
|
shardId: extra?.shardId
|
|
246
253
|
});
|
|
247
|
-
return
|
|
254
|
+
return callCustomizer('interactionCallbackResponse', bot, payload, response, {
|
|
255
|
+
shardId: extra?.shardId,
|
|
256
|
+
partial: extra?.partial ?? false
|
|
257
|
+
});
|
|
248
258
|
}
|
|
249
|
-
export function transformInteractionCallback(bot, payload) {
|
|
259
|
+
export function transformInteractionCallback(bot, payload, extra) {
|
|
250
260
|
const props = bot.transformers.desiredProperties.interactionCallback;
|
|
251
261
|
const callback = {};
|
|
252
262
|
if (props.id && payload.id) callback.id = bot.transformers.snowflake(payload.id);
|
|
@@ -255,7 +265,9 @@ export function transformInteractionCallback(bot, payload) {
|
|
|
255
265
|
if (props.responseMessageId && payload.response_message_id) callback.responseMessageId = bot.transformers.snowflake(payload.response_message_id);
|
|
256
266
|
if (props.responseMessageEphemeral && payload.response_message_ephemeral) callback.responseMessageEphemeral = payload.response_message_ephemeral;
|
|
257
267
|
if (props.responseMessageLoading && payload.response_message_loading) callback.responseMessageLoading = payload.response_message_loading;
|
|
258
|
-
return
|
|
268
|
+
return callCustomizer('interactionCallback', bot, payload, callback, {
|
|
269
|
+
partial: extra?.partial ?? false
|
|
270
|
+
});
|
|
259
271
|
}
|
|
260
272
|
export function transformInteractionResource(bot, payload, extra) {
|
|
261
273
|
const props = bot.transformers.desiredProperties.interactionResource;
|
|
@@ -265,7 +277,10 @@ export function transformInteractionResource(bot, payload, extra) {
|
|
|
265
277
|
if (props.message && payload.message) resource.message = bot.transformers.message(bot, payload.message, {
|
|
266
278
|
shardId: extra?.shardId
|
|
267
279
|
});
|
|
268
|
-
return
|
|
280
|
+
return callCustomizer('interactionResource', bot, payload, resource, {
|
|
281
|
+
shardId: extra?.shardId,
|
|
282
|
+
partial: extra?.partial ?? false
|
|
283
|
+
});
|
|
269
284
|
}
|
|
270
285
|
|
|
271
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBCaWdTdHJpbmcsXG4gIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2ssXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25EYXRhT3B0aW9uLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25SZXNvdXJjZSxcbiAgSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLFxuICBJbnRlcmFjdGlvblR5cGVzLFxuICBNZXNzYWdlRmxhZ3MsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICdAZGlzY29yZGVuby91dGlscyc7XG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcyc7XG5pbXBvcnQgdHlwZSB7IEludGVyYWN0aW9uUmVzb2x2ZWREYXRhQ2hhbm5lbCB9IGZyb20gJy4uL2NvbW1hbmRPcHRpb25zUGFyc2VyLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tcGxldGVEZXNpcmVkUHJvcGVydGllcyxcbiAgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcixcbiAgU2V0dXBEZXNpcmVkUHJvcHMsXG4gIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLFxuICBUcmFuc2Zvcm1Qcm9wZXJ0eSxcbn0gZnJvbSAnLi4vZGVzaXJlZFByb3BlcnRpZXMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBJbnRlcmFjdGlvbixcbiAgSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICBJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxuLy8gQXNzdW1lIHdlIGhhdmUgYWxsIGRlc2lyZWQgcHJvcGVydGllcyBmb3IgdGhpcyBvciBlbHNlIHR5cGVzY3JpcHQgd2lsbCBnZXQgdmVyeSBjb25mdXNlZCBmb3IgdGhlIHJldHVybiB0eXBlcyBvZiB0aGVzZSBmdW5jdGlvbnMuXG4vLyBUaGlzIGlzIHVzZWQgYXMgYSBwcm90b3R5cGUsIHNvIHRoZSBhY3R1YWwgdHlwZSB3aXRoIHRoZSB1c2VyIGRlc2lyZWQgcHJvcGVydGllcyB3aWxsIGJlIHNldCBsYXRlci5cbmV4cG9ydCBjb25zdCBiYXNlSW50ZXJhY3Rpb246IFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uLCBDb21wbGV0ZURlc2lyZWRQcm9wZXJ0aWVzPHt9LCB0cnVlPiwgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvci5SZW1vdmVLZXk+ID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uLCBDb21wbGV0ZURlc2lyZWRQcm9wZXJ0aWVzPHt9LCB0cnVlPiwgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvci5SZW1vdmVLZXk+KSxcblxuICBhc3luYyByZXNwb25kKHJlc3BvbnNlLCBvcHRpb25zKSB7XG4gICAgbGV0IHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlO1xuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9O1xuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHR5cGUsIHVzZSBpdFxuICAgIGlmIChvcHRpb25zPy50eXBlKSB0eXBlID0gb3B0aW9ucy50eXBlO1xuICAgIC8vIE90aGVyd2lzZSwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGVsc2Uge1xuICAgICAgaWYgKHJlc3BvbnNlLnRpdGxlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsO1xuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0O1xuICAgIH1cblxuICAgIC8vIE1vZGFscyBjYW5ub3QgYmUgY2hhaW5lZFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQgJiYgdHlwZSA9PT0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVzcG9uZCB0byBhIG1vZGFsIGludGVyYWN0aW9uIHdpdGggYW5vdGhlciBtb2RhbC4nKTtcblxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkge1xuICAgICAgcmVzcG9uc2UuZmxhZ3MgPz89IDA7XG4gICAgICByZXNwb25zZS5mbGFncyB8PSBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsO1xuICAgIH1cblxuICAgIC8vIFNpbmNlIHRoaXMgaGFzIGFscmVhZHkgYmVlbiBnaXZlbiBhIHJlc3BvbnNlLCBhbnkgZnVydGhlciByZXNwb25zZXMgbXVzdCBiZSBmb2xsb3d1cHMuXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSByZXR1cm4gYXdhaXQgdGhpcy5zZW5kRm9sbG93dXBNZXNzYWdlKHJlc3BvbnNlKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHsgdHlwZSwgZGF0YTogcmVzcG9uc2UgfSxcbiAgICAgIHsgd2l0aFJlc3BvbnNlOiBvcHRpb25zPy53aXRoUmVzcG9uc2UgfSxcbiAgICApO1xuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9LFxuICBhc3luYyBzZW5kRm9sbG93dXBNZXNzYWdlKHJlc3BvbnNlKSB7XG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9O1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCByZXNwb25zZSk7XG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKTtcblxuICAgIC8vIElmIHVzZXIgcHJvdmlkZXMgYSBzdHJpbmcsIGNoYW5nZSBpdCB0byBhIHJlc3BvbnNlIG9iamVjdFxuICAgIGlmICh0eXBlb2YgcmVzcG9uc2UgPT09ICdzdHJpbmcnKSByZXNwb25zZSA9IHsgY29udGVudDogcmVzcG9uc2UgfTtcblxuICAgIGlmIChtZXNzYWdlSWQpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5lZGl0Rm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIG1lc3NhZ2VJZCwgcmVzcG9uc2UpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgaW50ZXJhY3Rpb24gaGFzIG5vdCBiZWVuIHJlc3BvbmRlZCB0byB5ZXQgYW5kIHRoaXMgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShcbiAgICAgICAgdGhpcy5pZCxcbiAgICAgICAgdGhpcy50b2tlbixcbiAgICAgICAgeyB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuVXBkYXRlTWVzc2FnZSwgZGF0YTogcmVzcG9uc2UgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICk7XG4gICAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWU7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLmVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbiwgcmVzcG9uc2UpO1xuICB9LFxuICBhc3luYyBkZWZlckVkaXQob3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKTtcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpO1xuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50ICYmIHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBkZWZlciB0byB0aGVuIGVkaXQgYW4gaW50ZXJhY3Rpb24gdGhhdCBpc24ndCBhIE1lc3NhZ2VDb21wb25lbnQgb3IgTW9kYWxTdWJtaXQgaW50ZXJhY3Rpb24uXCIpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShcbiAgICAgIHRoaXMuaWQsXG4gICAgICB0aGlzLnRva2VuLFxuICAgICAgeyB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuRGVmZXJyZWRVcGRhdGVNZXNzYWdlIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sXG4gIGFzeW5jIGRlZmVyKGlzUHJpdmF0ZSwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVmZXIgYW4gYWxyZWFkeSByZXNwb25kZWQgaW50ZXJhY3Rpb24uJyk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgdGhpcy5pZCxcbiAgICAgIHRoaXMudG9rZW4sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGZsYWdzOiBpc1ByaXZhdGUgPyBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWU7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSxcbiAgYXN5bmMgZGVsZXRlKG1lc3NhZ2VJZCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWxldGUgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uJyk7XG5cbiAgICBpZiAobWVzc2FnZUlkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIG1lc3NhZ2VJZCk7XG4gICAgZWxzZSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMudG9rZW4pO1xuICB9LFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkSW50ZXJhY3Rpb24sIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyIH0pOiBJbnRlcmFjdGlvbiB7XG4gIGNvbnN0IGd1aWxkSWQgPSBwYXlsb2FkLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZCkgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgaW50ZXJhY3Rpb246IFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4gPSBPYmplY3QuY3JlYXRlKGJhc2VJbnRlcmFjdGlvbik7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvbjtcblxuICBpbnRlcmFjdGlvbi5ib3QgPSBib3Q7XG4gIGludGVyYWN0aW9uLmFja25vd2xlZGdlZCA9IGZhbHNlO1xuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpO1xuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKSBpbnRlcmFjdGlvbi5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hcHBsaWNhdGlvbl9pZCk7XG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLnRva2VuICYmIHBheWxvYWQudG9rZW4pIGludGVyYWN0aW9uLnRva2VuID0gcGF5bG9hZC50b2tlbjtcbiAgaWYgKHByb3BzLnZlcnNpb24gJiYgcGF5bG9hZC52ZXJzaW9uKSBpbnRlcmFjdGlvbi52ZXJzaW9uID0gcGF5bG9hZC52ZXJzaW9uO1xuICBpZiAocHJvcHMubG9jYWxlICYmIHBheWxvYWQubG9jYWxlKSBpbnRlcmFjdGlvbi5sb2NhbGUgPSBwYXlsb2FkLmxvY2FsZTtcbiAgaWYgKHByb3BzLmd1aWxkTG9jYWxlICYmIHBheWxvYWQuZ3VpbGRfbG9jYWxlKSBpbnRlcmFjdGlvbi5ndWlsZExvY2FsZSA9IHBheWxvYWQuZ3VpbGRfbG9jYWxlO1xuICBpZiAocHJvcHMuZ3VpbGQgJiYgcGF5bG9hZC5ndWlsZClcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHBheWxvYWQuZ3VpbGQgaXMgYSBQYXJ0aWFsPERpc2NvcmRHdWlsZD5cbiAgICBpbnRlcmFjdGlvbi5ndWlsZCA9IGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCBwYXlsb2FkLmd1aWxkLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkIH0pO1xuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBndWlsZElkKSBpbnRlcmFjdGlvbi5ndWlsZElkID0gZ3VpbGRJZDtcbiAgaWYgKHByb3BzLnVzZXIpIHtcbiAgICBpZiAocGF5bG9hZC5tZW1iZXI/LnVzZXIpIGludGVyYWN0aW9uLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLm1lbWJlcj8udXNlcik7XG4gICAgZWxzZSBpZiAocGF5bG9hZC51c2VyKSBpbnRlcmFjdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKTtcbiAgfVxuICBpZiAocHJvcHMuYXBwUGVybWlzc2lvbnMgJiYgcGF5bG9hZC5hcHBfcGVybWlzc2lvbnMpIGludGVyYWN0aW9uLmFwcFBlcm1pc3Npb25zID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hcHBfcGVybWlzc2lvbnMpO1xuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLm1lc3NhZ2UpIGludGVyYWN0aW9uLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLm1lc3NhZ2UsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQgfSk7XG4gIGlmIChwcm9wcy5jaGFubmVsICYmIHBheWxvYWQuY2hhbm5lbClcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHBheWxvYWQuY2hhbm5lbCBpcyBhIFBhcnRpYWw8PlxuICAgIGludGVyYWN0aW9uLmNoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCBwYXlsb2FkLmNoYW5uZWwsIHsgZ3VpbGRJZCB9KTtcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmNoYW5uZWxfaWQpIGludGVyYWN0aW9uLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZCk7XG4gIGlmIChwcm9wcy5tZW1iZXIgJiYgZ3VpbGRJZCAmJiBwYXlsb2FkLm1lbWJlcilcbiAgICBpbnRlcmFjdGlvbi5tZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHBheWxvYWQubWVtYmVyLCB7XG4gICAgICBndWlsZElkLFxuICAgICAgdXNlcklkOiBwYXlsb2FkLm1lbWJlcj8udXNlci5pZCA/PyBwYXlsb2FkLnVzZXI/LmlkLFxuICAgIH0pO1xuICBpZiAocHJvcHMuZW50aXRsZW1lbnRzICYmIHBheWxvYWQuZW50aXRsZW1lbnRzKSBpbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMgPSBwYXlsb2FkLmVudGl0bGVtZW50cy5tYXAoKGUpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBlKSk7XG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzICYmIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzKSB7XG4gICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9O1xuXG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10pXG4gICAgICBpbnRlcmFjdGlvbi5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5HdWlsZEluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10sXG4gICAgICApO1xuICAgIGlmIChwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuVXNlckluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10sXG4gICAgICApO1xuICB9XG4gIGlmIChwcm9wcy5jb250ZXh0ICYmIHBheWxvYWQuY29udGV4dCkgaW50ZXJhY3Rpb24uY29udGV4dCA9IHBheWxvYWQuY29udGV4dDtcbiAgaWYgKHByb3BzLmF0dGFjaG1lbnRTaXplTGltaXQgJiYgcGF5bG9hZC5hdHRhY2htZW50X3NpemVfbGltaXQpIGludGVyYWN0aW9uLmF0dGFjaG1lbnRTaXplTGltaXQgPSBwYXlsb2FkLmF0dGFjaG1lbnRfc2l6ZV9saW1pdDtcbiAgaWYgKHByb3BzLmRhdGEgJiYgcGF5bG9hZC5kYXRhKSB7XG4gICAgaW50ZXJhY3Rpb24uZGF0YSA9IHtcbiAgICAgIHR5cGU6IHBheWxvYWQuZGF0YS50eXBlLFxuICAgICAgY29tcG9uZW50VHlwZTogcGF5bG9hZC5kYXRhLmNvbXBvbmVudF90eXBlLFxuICAgICAgY3VzdG9tSWQ6IHBheWxvYWQuZGF0YS5jdXN0b21faWQsXG4gICAgICBjb21wb25lbnRzOiBwYXlsb2FkLmRhdGEuY29tcG9uZW50cz8ubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSksXG4gICAgICB2YWx1ZXM6IHBheWxvYWQuZGF0YS52YWx1ZXMsXG4gICAgICBpZDogcGF5bG9hZC5kYXRhLmlkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5kYXRhLmlkKSA6IHVuZGVmaW5lZCxcbiAgICAgIG5hbWU6IHBheWxvYWQuZGF0YS5uYW1lLFxuICAgICAgcmVzb2x2ZWQ6IHBheWxvYWQuZGF0YS5yZXNvbHZlZFxuICAgICAgICA/IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90LCBwYXlsb2FkLmRhdGEucmVzb2x2ZWQsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQsIGd1aWxkSWQgfSlcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBvcHRpb25zOiBwYXlsb2FkLmRhdGEub3B0aW9ucz8ubWFwKChvcHQpID0+IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyhib3QsIG9wdCkpLFxuICAgICAgdGFyZ2V0SWQ6IHBheWxvYWQuZGF0YS50YXJnZXRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmRhdGEudGFyZ2V0X2lkKSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgLy8gVHlwZXNjcmlwdCBoYXMgYW4gaGFyZCB0aW1lIHdpdGggaW50ZXJhY3Rpb24uYm90LCBzbyB3ZSBuZWVkIHRvIHRlbGwgaGltIGZvciBzdXJlIHRoaXMgaW50ZXJhY3Rpb24gaXMgdGhlIG9mIHRoZSBjb3JyZWN0IHR5cGVcbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb24oYm90LCBwYXlsb2FkLCBpbnRlcmFjdGlvbiBhcyB1bmtub3duIGFzIHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uLCBleHRyYSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFPcHRpb24oYm90OiBCb3QsIG9wdGlvbjogRGlzY29yZEludGVyYWN0aW9uRGF0YU9wdGlvbik6IEludGVyYWN0aW9uRGF0YU9wdGlvbiB7XG4gIGNvbnN0IG9wdCA9IHtcbiAgICBuYW1lOiBvcHRpb24ubmFtZSxcbiAgICB0eXBlOiBvcHRpb24udHlwZSxcbiAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgIG9wdGlvbnM6IG9wdGlvbi5vcHRpb25zLFxuICAgIGZvY3VzZWQ6IG9wdGlvbi5mb2N1c2VkLFxuICB9IGFzIEludGVyYWN0aW9uRGF0YU9wdGlvbjtcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkRhdGFPcHRpb25zKGJvdCwgb3B0aW9uLCBvcHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoXG4gIGJvdDogQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsXG4gIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyOyBndWlsZElkPzogQmlnU3RyaW5nIH0sXG4pOiBUcmFuc2Zvcm1Qcm9wZXJ0eTxJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IuUmVtb3ZlS2V5PiB7XG4gIGNvbnN0IHRyYW5zZm9ybWVkOiBUcmFuc2Zvcm1Qcm9wZXJ0eTxJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IuUmVtb3ZlS2V5PiA9IHt9O1xuXG4gIGlmIChwYXlsb2FkLm1lc3NhZ2VzKSB7XG4gICAgdHJhbnNmb3JtZWQubWVzc2FnZXMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQubWVzc2FnZXMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogRGVhbCB3aXRoIHBhcnRpYWxzXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB2YWx1ZSwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KTtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpO1xuXG4gICAgICAgIHJldHVybiBbaWQsIG1lc3NhZ2VdO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnVzZXJzKSB7XG4gICAgdHJhbnNmb3JtZWQudXNlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQudXNlcnMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB2YWx1ZSk7XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KTtcblxuICAgICAgICByZXR1cm4gW2lkLCB1c2VyXTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBpZiAoZXh0cmE/Lmd1aWxkSWQgJiYgcGF5bG9hZC5tZW1iZXJzKSB7XG4gICAgdHJhbnNmb3JtZWQubWVtYmVycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5tZW1iZXJzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE86IERlYWwgd2l0aCBwYXJ0aWFscywgdmFsdWUgaXMgbWlzc2luZyAyIHZhbHVlcyBidXQgdGhlIHRyYW5zZm9ybWVyIGNhbiBoYW5kbGUgaXQsIGRlc3BpdGUgd2hhdCB0aGUgdHlwZXMgc2F5c1xuICAgICAgICBjb25zdCBtZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHZhbHVlLCB7XG4gICAgICAgICAgZ3VpbGRJZDogZXh0cmEuZ3VpbGRJZCxcbiAgICAgICAgICB1c2VySWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGtleSksXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBpZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGtleSk7XG5cbiAgICAgICAgcmV0dXJuIFtpZCwgbWVtYmVyXTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBpZiAoZXh0cmE/Lmd1aWxkSWQgJiYgcGF5bG9hZC5yb2xlcykge1xuICAgIHRyYW5zZm9ybWVkLnJvbGVzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJvbGVzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCByb2xlID0gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgdmFsdWUsIHsgZ3VpbGRJZDogZXh0cmEuZ3VpbGRJZCB9KTtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpO1xuXG4gICAgICAgIHJldHVybiBbaWQsIHJvbGVdO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGlmIChwYXlsb2FkLmNoYW5uZWxzKSB7XG4gICAgdHJhbnNmb3JtZWQuY2hhbm5lbHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQuY2hhbm5lbHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB2YWx1ZSkgYXMgSW50ZXJhY3Rpb25SZXNvbHZlZERhdGFDaGFubmVsPFxuICAgICAgICAgIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLFxuICAgICAgICAgIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IuUmVtb3ZlS2V5XG4gICAgICAgID47XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KTtcblxuICAgICAgICByZXR1cm4gW2lkLCBjaGFubmVsXTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBpZiAocGF5bG9hZC5hdHRhY2htZW50cykge1xuICAgIHRyYW5zZm9ybWVkLmF0dGFjaG1lbnRzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLmF0dGFjaG1lbnRzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBpZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGtleSk7XG4gICAgICAgIGNvbnN0IGF0dGFjaG1lbnQgPSBib3QudHJhbnNmb3JtZXJzLmF0dGFjaG1lbnQoYm90LCB2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIFtpZCwgYXR0YWNobWVudF07XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90LCBwYXlsb2FkLCB0cmFuc2Zvcm1lZCwge1xuICAgIHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkLFxuICAgIGd1aWxkSWQ6IGV4dHJhPy5ndWlsZElkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZXh0cmEuZ3VpbGRJZCkgOiB1bmRlZmluZWQsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKFxuICBib3Q6IEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSxcbiAgZXh0cmE/OiB7IHNoYXJkSWQ/OiBudW1iZXIgfSxcbik6IEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2U7XG4gIGNvbnN0IHJlc3BvbnNlID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8SW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLmludGVyYWN0aW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24pIHJlc3BvbnNlLmludGVyYWN0aW9uID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkNhbGxiYWNrKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbik7XG4gIGlmIChwcm9wcy5yZXNvdXJjZSAmJiBwYXlsb2FkLnJlc291cmNlKVxuICAgIHJlc3BvbnNlLnJlc291cmNlID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvblJlc291cmNlKGJvdCwgcGF5bG9hZC5yZXNvdXJjZSwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KTtcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UoYm90LCBwYXlsb2FkLCByZXNwb25zZSwgZXh0cmEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFjayhib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2spOiBJbnRlcmFjdGlvbkNhbGxiYWNrIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludGVyYWN0aW9uQ2FsbGJhY2s7XG4gIGNvbnN0IGNhbGxiYWNrID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8SW50ZXJhY3Rpb25DYWxsYmFjaywgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBjYWxsYmFjay5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpO1xuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGNhbGxiYWNrLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5hY3Rpdml0eUluc3RhbmNlSWQgJiYgcGF5bG9hZC5hY3Rpdml0eV9pbnN0YW5jZV9pZCkgY2FsbGJhY2suYWN0aXZpdHlJbnN0YW5jZUlkID0gcGF5bG9hZC5hY3Rpdml0eV9pbnN0YW5jZV9pZDtcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUlkICYmIHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9pZCkgY2FsbGJhY2sucmVzcG9uc2VNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfaWQpO1xuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlRXBoZW1lcmFsICYmIHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWwpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCA9IHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWw7XG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VMb2FkaW5nICYmIHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9sb2FkaW5nKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VMb2FkaW5nID0gcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2xvYWRpbmc7XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25DYWxsYmFjayhib3QsIHBheWxvYWQsIGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlLCBleHRyYT86IHsgc2hhcmRJZD86IG51bWJlciB9KTogSW50ZXJhY3Rpb25SZXNvdXJjZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvblJlc291cmNlO1xuICBjb25zdCByZXNvdXJjZSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uUmVzb3VyY2UsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHJlc291cmNlLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5hY3Rpdml0eUluc3RhbmNlICYmIHBheWxvYWQuYWN0aXZpdHlfaW5zdGFuY2UpIHJlc291cmNlLmFjdGl2aXR5SW5zdGFuY2UgPSBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlO1xuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLm1lc3NhZ2UpIHJlc291cmNlLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLm1lc3NhZ2UsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQgfSk7XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25SZXNvdXJjZShib3QsIHBheWxvYWQsIHJlc291cmNlLCBleHRyYSk7XG59XG4iXSwibmFtZXMiOlsiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzIiwiSW50ZXJhY3Rpb25UeXBlcyIsIk1lc3NhZ2VGbGFncyIsIkNvbGxlY3Rpb24iLCJiYXNlSW50ZXJhY3Rpb24iLCJ1bmRlZmluZWQiLCJyZXNwb25kIiwicmVzcG9uc2UiLCJvcHRpb25zIiwidHlwZSIsIkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsImNvbnRlbnQiLCJ0aXRsZSIsIk1vZGFsIiwiQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlIiwiQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0IiwiTW9kYWxTdWJtaXQiLCJFcnJvciIsImlzUHJpdmF0ZSIsImZsYWdzIiwiRXBoZW1lcmFsIiwiYWNrbm93bGVkZ2VkIiwic2VuZEZvbGxvd3VwTWVzc2FnZSIsInJlc3VsdCIsImJvdCIsImhlbHBlcnMiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImlkIiwidG9rZW4iLCJkYXRhIiwid2l0aFJlc3BvbnNlIiwiZWRpdCIsIm1lc3NhZ2VJZCIsImVkaXRGb2xsb3d1cE1lc3NhZ2UiLCJNZXNzYWdlQ29tcG9uZW50IiwiVXBkYXRlTWVzc2FnZSIsImVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJkZWZlckVkaXQiLCJEZWZlcnJlZFVwZGF0ZU1lc3NhZ2UiLCJkZWZlciIsIkRlZmVycmVkQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlIiwiZGVsZXRlIiwiZGVsZXRlRm9sbG93dXBNZXNzYWdlIiwiZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwidHJhbnNmb3JtSW50ZXJhY3Rpb24iLCJwYXlsb2FkIiwiZXh0cmEiLCJndWlsZElkIiwiZ3VpbGRfaWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJpbnRlcmFjdGlvbiIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJ2ZXJzaW9uIiwibG9jYWxlIiwiZ3VpbGRMb2NhbGUiLCJndWlsZF9sb2NhbGUiLCJndWlsZCIsInNoYXJkSWQiLCJ1c2VyIiwibWVtYmVyIiwiYXBwUGVybWlzc2lvbnMiLCJhcHBfcGVybWlzc2lvbnMiLCJtZXNzYWdlIiwiY2hhbm5lbCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJ1c2VySWQiLCJlbnRpdGxlbWVudHMiLCJtYXAiLCJlIiwiZW50aXRsZW1lbnQiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJjb250ZXh0IiwiYXR0YWNobWVudFNpemVMaW1pdCIsImF0dGFjaG1lbnRfc2l6ZV9saW1pdCIsImNvbXBvbmVudFR5cGUiLCJjb21wb25lbnRfdHlwZSIsImN1c3RvbUlkIiwiY3VzdG9tX2lkIiwiY29tcG9uZW50cyIsImNvbXBvbmVudCIsInZhbHVlcyIsIm5hbWUiLCJyZXNvbHZlZCIsImludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwib3B0IiwiaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyIsInRhcmdldElkIiwidGFyZ2V0X2lkIiwiY3VzdG9taXplcnMiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFPcHRpb24iLCJvcHRpb24iLCJ2YWx1ZSIsImZvY3VzZWQiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCIsInRyYW5zZm9ybWVkIiwibWVzc2FnZXMiLCJlbnRyaWVzIiwia2V5IiwidXNlcnMiLCJtZW1iZXJzIiwicm9sZXMiLCJyb2xlIiwiY2hhbm5lbHMiLCJhdHRhY2htZW50cyIsImF0dGFjaG1lbnQiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UiLCJpbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UiLCJpbnRlcmFjdGlvbkNhbGxiYWNrIiwicmVzb3VyY2UiLCJpbnRlcmFjdGlvblJlc291cmNlIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFjayIsImNhbGxiYWNrIiwiYWN0aXZpdHlJbnN0YW5jZUlkIiwiYWN0aXZpdHlfaW5zdGFuY2VfaWQiLCJyZXNwb25zZU1lc3NhZ2VJZCIsInJlc3BvbnNlX21lc3NhZ2VfaWQiLCJyZXNwb25zZU1lc3NhZ2VFcGhlbWVyYWwiLCJyZXNwb25zZV9tZXNzYWdlX2VwaGVtZXJhbCIsInJlc3BvbnNlTWVzc2FnZUxvYWRpbmciLCJyZXNwb25zZV9tZXNzYWdlX2xvYWRpbmciLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvblJlc291cmNlIiwiYWN0aXZpdHlJbnN0YW5jZSIsImFjdGl2aXR5X2luc3RhbmNlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUVFQSxpQ0FBaUMsRUFPakNDLHdCQUF3QixFQUN4QkMsZ0JBQWdCLEVBQ2hCQyxZQUFZLFFBQ1Asb0JBQW9CO0FBQzNCLFNBQVNDLFVBQVUsUUFBUSxvQkFBb0I7QUFtQi9DLG9JQUFvSTtBQUNwSSxz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
|
|
286
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBCaWdTdHJpbmcsXG4gIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2ssXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25EYXRhT3B0aW9uLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25SZXNvdXJjZSxcbiAgSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLFxuICBJbnRlcmFjdGlvblR5cGVzLFxuICBNZXNzYWdlRmxhZ3MsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICdAZGlzY29yZGVuby91dGlscyc7XG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcyc7XG5pbXBvcnQgdHlwZSB7IEludGVyYWN0aW9uUmVzb2x2ZWREYXRhQ2hhbm5lbCB9IGZyb20gJy4uL2NvbW1hbmRPcHRpb25zUGFyc2VyLmpzJztcbmltcG9ydCB0eXBlIHsgQ29tcGxldGVEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvciwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vZGVzaXJlZFByb3BlcnRpZXMuanMnO1xuaW1wb3J0IHsgY2FsbEN1c3RvbWl6ZXIgfSBmcm9tICcuLi90cmFuc2Zvcm1lcnMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBJbnRlcmFjdGlvbixcbiAgSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICBJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxuLy8gQXNzdW1lIHdlIGhhdmUgYWxsIGRlc2lyZWQgcHJvcGVydGllcyBmb3IgdGhpcyBvciBlbHNlIHR5cGVzY3JpcHQgd2lsbCBnZXQgdmVyeSBjb25mdXNlZCBmb3IgdGhlIHJldHVybiB0eXBlcyBvZiB0aGVzZSBmdW5jdGlvbnMuXG4vLyBUaGlzIGlzIHVzZWQgYXMgYSBwcm90b3R5cGUsIHNvIHRoZSBhY3R1YWwgdHlwZSB3aXRoIHRoZSB1c2VyIGRlc2lyZWQgcHJvcGVydGllcyB3aWxsIGJlIHNldCBsYXRlci5cbmV4cG9ydCBjb25zdCBiYXNlSW50ZXJhY3Rpb246IFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uLCBDb21wbGV0ZURlc2lyZWRQcm9wZXJ0aWVzPHt9LCB0cnVlPiwgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvci5SZW1vdmVLZXk+ID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uLCBDb21wbGV0ZURlc2lyZWRQcm9wZXJ0aWVzPHt9LCB0cnVlPiwgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvci5SZW1vdmVLZXk+KSxcblxuICBhc3luYyByZXNwb25kKHJlc3BvbnNlLCBvcHRpb25zKSB7XG4gICAgbGV0IHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlO1xuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9O1xuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHR5cGUsIHVzZSBpdFxuICAgIGlmIChvcHRpb25zPy50eXBlKSB0eXBlID0gb3B0aW9ucy50eXBlO1xuICAgIC8vIE90aGVyd2lzZSwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGVsc2Uge1xuICAgICAgaWYgKHJlc3BvbnNlLnRpdGxlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsO1xuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0O1xuICAgIH1cblxuICAgIC8vIE1vZGFscyBjYW5ub3QgYmUgY2hhaW5lZFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQgJiYgdHlwZSA9PT0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVzcG9uZCB0byBhIG1vZGFsIGludGVyYWN0aW9uIHdpdGggYW5vdGhlciBtb2RhbC4nKTtcblxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkge1xuICAgICAgcmVzcG9uc2UuZmxhZ3MgPz89IDA7XG4gICAgICByZXNwb25zZS5mbGFncyB8PSBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsO1xuICAgIH1cblxuICAgIC8vIFNpbmNlIHRoaXMgaGFzIGFscmVhZHkgYmVlbiBnaXZlbiBhIHJlc3BvbnNlLCBhbnkgZnVydGhlciByZXNwb25zZXMgbXVzdCBiZSBmb2xsb3d1cHMuXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSByZXR1cm4gYXdhaXQgdGhpcy5zZW5kRm9sbG93dXBNZXNzYWdlKHJlc3BvbnNlKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHsgdHlwZSwgZGF0YTogcmVzcG9uc2UgfSxcbiAgICAgIHsgd2l0aFJlc3BvbnNlOiBvcHRpb25zPy53aXRoUmVzcG9uc2UgfSxcbiAgICApO1xuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9LFxuICBhc3luYyBzZW5kRm9sbG93dXBNZXNzYWdlKHJlc3BvbnNlKSB7XG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9O1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCByZXNwb25zZSk7XG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKTtcblxuICAgIC8vIElmIHVzZXIgcHJvdmlkZXMgYSBzdHJpbmcsIGNoYW5nZSBpdCB0byBhIHJlc3BvbnNlIG9iamVjdFxuICAgIGlmICh0eXBlb2YgcmVzcG9uc2UgPT09ICdzdHJpbmcnKSByZXNwb25zZSA9IHsgY29udGVudDogcmVzcG9uc2UgfTtcblxuICAgIGlmIChtZXNzYWdlSWQpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5lZGl0Rm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIG1lc3NhZ2VJZCwgcmVzcG9uc2UpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgaW50ZXJhY3Rpb24gaGFzIG5vdCBiZWVuIHJlc3BvbmRlZCB0byB5ZXQgYW5kIHRoaXMgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShcbiAgICAgICAgdGhpcy5pZCxcbiAgICAgICAgdGhpcy50b2tlbixcbiAgICAgICAgeyB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuVXBkYXRlTWVzc2FnZSwgZGF0YTogcmVzcG9uc2UgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICk7XG4gICAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWU7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLmVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbiwgcmVzcG9uc2UpO1xuICB9LFxuICBhc3luYyBkZWZlckVkaXQob3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKTtcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpO1xuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50ICYmIHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBkZWZlciB0byB0aGVuIGVkaXQgYW4gaW50ZXJhY3Rpb24gdGhhdCBpc24ndCBhIE1lc3NhZ2VDb21wb25lbnQgb3IgTW9kYWxTdWJtaXQgaW50ZXJhY3Rpb24uXCIpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShcbiAgICAgIHRoaXMuaWQsXG4gICAgICB0aGlzLnRva2VuLFxuICAgICAgeyB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuRGVmZXJyZWRVcGRhdGVNZXNzYWdlIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sXG4gIGFzeW5jIGRlZmVyKGlzUHJpdmF0ZSwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVmZXIgYW4gYWxyZWFkeSByZXNwb25kZWQgaW50ZXJhY3Rpb24uJyk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgdGhpcy5pZCxcbiAgICAgIHRoaXMudG9rZW4sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGZsYWdzOiBpc1ByaXZhdGUgPyBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWU7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSxcbiAgYXN5bmMgZGVsZXRlKG1lc3NhZ2VJZCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWxldGUgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uJyk7XG5cbiAgICBpZiAobWVzc2FnZUlkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIG1lc3NhZ2VJZCk7XG4gICAgZWxzZSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMudG9rZW4pO1xuICB9LFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uKGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRJbnRlcmFjdGlvbj4sIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyOyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvbjtcbiAgY29uc3QgaW50ZXJhY3Rpb246IFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4gPSBPYmplY3QuY3JlYXRlKGJhc2VJbnRlcmFjdGlvbik7XG5cbiAgY29uc3QgZ3VpbGRJZCA9IHBheWxvYWQuZ3VpbGRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkX2lkKSA6IHVuZGVmaW5lZDtcbiAgaW50ZXJhY3Rpb24uYm90ID0gYm90O1xuICBpbnRlcmFjdGlvbi5hY2tub3dsZWRnZWQgPSBmYWxzZTtcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKTtcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5hcHBsaWNhdGlvbl9pZCkgaW50ZXJhY3Rpb24uYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpO1xuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGludGVyYWN0aW9uLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy50b2tlbiAmJiBwYXlsb2FkLnRva2VuKSBpbnRlcmFjdGlvbi50b2tlbiA9IHBheWxvYWQudG9rZW47XG4gIGlmIChwcm9wcy52ZXJzaW9uICYmIHBheWxvYWQudmVyc2lvbikgaW50ZXJhY3Rpb24udmVyc2lvbiA9IHBheWxvYWQudmVyc2lvbjtcbiAgaWYgKHByb3BzLmxvY2FsZSAmJiBwYXlsb2FkLmxvY2FsZSkgaW50ZXJhY3Rpb24ubG9jYWxlID0gcGF5bG9hZC5sb2NhbGU7XG4gIGlmIChwcm9wcy5ndWlsZExvY2FsZSAmJiBwYXlsb2FkLmd1aWxkX2xvY2FsZSkgaW50ZXJhY3Rpb24uZ3VpbGRMb2NhbGUgPSBwYXlsb2FkLmd1aWxkX2xvY2FsZTtcbiAgaWYgKHByb3BzLmd1aWxkICYmIHBheWxvYWQuZ3VpbGQpIGludGVyYWN0aW9uLmd1aWxkID0gYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHBheWxvYWQuZ3VpbGQsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQsIHBhcnRpYWw6IHRydWUgfSk7XG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIGludGVyYWN0aW9uLmd1aWxkSWQgPSBndWlsZElkO1xuICBpZiAocHJvcHMudXNlcikge1xuICAgIGlmIChwYXlsb2FkLm1lbWJlcj8udXNlcikgaW50ZXJhY3Rpb24udXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQubWVtYmVyPy51c2VyKTtcbiAgICBlbHNlIGlmIChwYXlsb2FkLnVzZXIpIGludGVyYWN0aW9uLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpO1xuICB9XG4gIGlmIChwcm9wcy5hcHBQZXJtaXNzaW9ucyAmJiBwYXlsb2FkLmFwcF9wZXJtaXNzaW9ucykgaW50ZXJhY3Rpb24uYXBwUGVybWlzc2lvbnMgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcF9wZXJtaXNzaW9ucyk7XG4gIGlmIChwcm9wcy5tZXNzYWdlICYmIHBheWxvYWQubWVzc2FnZSkgaW50ZXJhY3Rpb24ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KTtcbiAgaWYgKHByb3BzLmNoYW5uZWwgJiYgcGF5bG9hZC5jaGFubmVsKSBpbnRlcmFjdGlvbi5jaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgcGF5bG9hZC5jaGFubmVsLCB7IGd1aWxkSWQsIHBhcnRpYWw6IHRydWUgfSk7XG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5jaGFubmVsX2lkKSBpbnRlcmFjdGlvbi5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWxfaWQpO1xuICBpZiAocHJvcHMubWVtYmVyICYmIGd1aWxkSWQgJiYgcGF5bG9hZC5tZW1iZXIpXG4gICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lbWJlciwge1xuICAgICAgZ3VpbGRJZCxcbiAgICAgIHVzZXJJZDogcGF5bG9hZC5tZW1iZXI/LnVzZXIuaWQgPz8gcGF5bG9hZC51c2VyPy5pZCxcbiAgICB9KTtcbiAgaWYgKHByb3BzLmVudGl0bGVtZW50cyAmJiBwYXlsb2FkLmVudGl0bGVtZW50cykgaW50ZXJhY3Rpb24uZW50aXRsZW1lbnRzID0gcGF5bG9hZC5lbnRpdGxlbWVudHMubWFwKChlKSA9PiBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgZSkpO1xuICBpZiAocHJvcHMuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyAmJiBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVycykge1xuICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMgPSB7fTtcblxuICAgIGlmIChwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuR3VpbGRJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddLFxuICAgICAgKTtcbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKTtcbiAgfVxuICBpZiAocHJvcHMuY29udGV4dCAmJiBwYXlsb2FkLmNvbnRleHQpIGludGVyYWN0aW9uLmNvbnRleHQgPSBwYXlsb2FkLmNvbnRleHQ7XG4gIGlmIChwcm9wcy5hdHRhY2htZW50U2l6ZUxpbWl0ICYmIHBheWxvYWQuYXR0YWNobWVudF9zaXplX2xpbWl0KSBpbnRlcmFjdGlvbi5hdHRhY2htZW50U2l6ZUxpbWl0ID0gcGF5bG9hZC5hdHRhY2htZW50X3NpemVfbGltaXQ7XG4gIGlmIChwcm9wcy5kYXRhICYmIHBheWxvYWQuZGF0YSkge1xuICAgIGludGVyYWN0aW9uLmRhdGEgPSB7XG4gICAgICB0eXBlOiBwYXlsb2FkLmRhdGEudHlwZSxcbiAgICAgIGNvbXBvbmVudFR5cGU6IHBheWxvYWQuZGF0YS5jb21wb25lbnRfdHlwZSxcbiAgICAgIGN1c3RvbUlkOiBwYXlsb2FkLmRhdGEuY3VzdG9tX2lkLFxuICAgICAgY29tcG9uZW50czogcGF5bG9hZC5kYXRhLmNvbXBvbmVudHM/Lm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpLFxuICAgICAgdmFsdWVzOiBwYXlsb2FkLmRhdGEudmFsdWVzLFxuICAgICAgaWQ6IHBheWxvYWQuZGF0YS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZGF0YS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICBuYW1lOiBwYXlsb2FkLmRhdGEubmFtZSxcbiAgICAgIHJlc29sdmVkOiBwYXlsb2FkLmRhdGEucmVzb2x2ZWRcbiAgICAgICAgPyBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdCwgcGF5bG9hZC5kYXRhLnJlc29sdmVkLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkLCBndWlsZElkIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogcGF5bG9hZC5kYXRhLm9wdGlvbnM/Lm1hcCgob3B0KSA9PiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbihib3QsIG9wdCkpLFxuICAgICAgdGFyZ2V0SWQ6IHBheWxvYWQuZGF0YS50YXJnZXRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmRhdGEudGFyZ2V0X2lkKSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGNhbGxDdXN0b21pemVyKCdpbnRlcmFjdGlvbicsIGJvdCwgcGF5bG9hZCwgaW50ZXJhY3Rpb24sIHtcbiAgICBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCxcbiAgICBwYXJ0aWFsOiBleHRyYT8ucGFydGlhbCA/PyBmYWxzZSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFPcHRpb24oYm90OiBCb3QsIG9wdGlvbjogUGFydGlhbDxEaXNjb3JkSW50ZXJhY3Rpb25EYXRhT3B0aW9uPiwgZXh0cmE/OiB7IHBhcnRpYWw/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgaW50ZXJhY3Rpb25EYXRhT3B0aW9uID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8SW50ZXJhY3Rpb25EYXRhT3B0aW9uLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKG9wdGlvbi5uYW1lKSBpbnRlcmFjdGlvbkRhdGFPcHRpb24ubmFtZSA9IG9wdGlvbi5uYW1lO1xuICBpZiAob3B0aW9uLnR5cGUpIGludGVyYWN0aW9uRGF0YU9wdGlvbi50eXBlID0gb3B0aW9uLnR5cGU7XG4gIGlmIChvcHRpb24udmFsdWUgIT09IHVuZGVmaW5lZCkgaW50ZXJhY3Rpb25EYXRhT3B0aW9uLnZhbHVlID0gb3B0aW9uLnZhbHVlO1xuICBpZiAob3B0aW9uLm9wdGlvbnMpIGludGVyYWN0aW9uRGF0YU9wdGlvbi5vcHRpb25zID0gb3B0aW9uLm9wdGlvbnMubWFwKChvcHQpID0+IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25EYXRhT3B0aW9uKGJvdCwgb3B0KSk7XG4gIGlmIChvcHRpb24uZm9jdXNlZCAhPT0gdW5kZWZpbmVkKSBpbnRlcmFjdGlvbkRhdGFPcHRpb24uZm9jdXNlZCA9IG9wdGlvbi5mb2N1c2VkO1xuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignaW50ZXJhY3Rpb25EYXRhT3B0aW9uJywgYm90LCBvcHRpb24sIGludGVyYWN0aW9uRGF0YU9wdGlvbiwge1xuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/IGZhbHNlLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkKFxuICBib3Q6IEJvdCxcbiAgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQ+LFxuICBleHRyYT86IHsgc2hhcmRJZD86IG51bWJlcjsgZ3VpbGRJZD86IEJpZ1N0cmluZzsgcGFydGlhbD86IGJvb2xlYW4gfSxcbikge1xuICBjb25zdCB0cmFuc2Zvcm1lZDogU2V0dXBEZXNpcmVkUHJvcHM8SW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLlJlbW92ZUtleT4gPSB7fTtcblxuICBpZiAocGF5bG9hZC5tZXNzYWdlcykge1xuICAgIHRyYW5zZm9ybWVkLm1lc3NhZ2VzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLm1lc3NhZ2VzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgdmFsdWUsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQsIHBhcnRpYWw6IHRydWUgfSk7XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KTtcblxuICAgICAgICByZXR1cm4gW2lkLCBtZXNzYWdlXTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBpZiAocGF5bG9hZC51c2Vycykge1xuICAgIHRyYW5zZm9ybWVkLnVzZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnVzZXJzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCB1c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgdmFsdWUpO1xuICAgICAgICBjb25zdCBpZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGtleSk7XG5cbiAgICAgICAgcmV0dXJuIFtpZCwgdXNlcl07XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgaWYgKGV4dHJhPy5ndWlsZElkICYmIHBheWxvYWQubWVtYmVycykge1xuICAgIHRyYW5zZm9ybWVkLm1lbWJlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQubWVtYmVycykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCB2YWx1ZSwge1xuICAgICAgICAgIGd1aWxkSWQ6IGV4dHJhLmd1aWxkSWQsXG4gICAgICAgICAgdXNlcklkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpLFxuICAgICAgICAgIHBhcnRpYWw6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBpZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGtleSk7XG5cbiAgICAgICAgcmV0dXJuIFtpZCwgbWVtYmVyXTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBpZiAoZXh0cmE/Lmd1aWxkSWQgJiYgcGF5bG9hZC5yb2xlcykge1xuICAgIHRyYW5zZm9ybWVkLnJvbGVzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJvbGVzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCByb2xlID0gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgdmFsdWUsIHsgZ3VpbGRJZDogZXh0cmEuZ3VpbGRJZCB9KTtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpO1xuXG4gICAgICAgIHJldHVybiBbaWQsIHJvbGVdO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGlmIChwYXlsb2FkLmNoYW5uZWxzKSB7XG4gICAgdHJhbnNmb3JtZWQuY2hhbm5lbHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQuY2hhbm5lbHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB2YWx1ZSwgeyBwYXJ0aWFsOiB0cnVlIH0pO1xuICAgICAgICBjb25zdCBpZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGtleSk7XG5cbiAgICAgICAgcmV0dXJuIFtpZCwgY2hhbm5lbCBhcyBJbnRlcmFjdGlvblJlc29sdmVkRGF0YUNoYW5uZWw8VHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IuUmVtb3ZlS2V5Pl07XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgaWYgKHBheWxvYWQuYXR0YWNobWVudHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5hdHRhY2htZW50cyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5hdHRhY2htZW50cykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpO1xuICAgICAgICBjb25zdCBhdHRhY2htZW50ID0gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgdmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBbaWQsIGF0dGFjaG1lbnRdO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQnLCBib3QsIHBheWxvYWQsIHRyYW5zZm9ybWVkLCB7XG4gICAgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQsXG4gICAgZ3VpbGRJZDogZXh0cmE/Lmd1aWxkSWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShleHRyYS5ndWlsZElkKSA6IHVuZGVmaW5lZCxcbiAgICBwYXJ0aWFsOiBleHRyYT8ucGFydGlhbCA/PyBmYWxzZSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UoXG4gIGJvdDogQm90LFxuICBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2U+LFxuICBleHRyYT86IHsgc2hhcmRJZD86IG51bWJlcjsgcGFydGlhbD86IGJvb2xlYW4gfSxcbikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlO1xuICBjb25zdCByZXNwb25zZSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbiAmJiBwYXlsb2FkLmludGVyYWN0aW9uKSByZXNwb25zZS5pbnRlcmFjdGlvbiA9IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25DYWxsYmFjayhib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24pO1xuICBpZiAocHJvcHMucmVzb3VyY2UgJiYgcGF5bG9hZC5yZXNvdXJjZSlcbiAgICByZXNwb25zZS5yZXNvdXJjZSA9IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25SZXNvdXJjZShib3QsIHBheWxvYWQucmVzb3VyY2UsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQgfSk7XG5cbiAgcmV0dXJuIGNhbGxDdXN0b21pemVyKCdpbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UnLCBib3QsIHBheWxvYWQsIHJlc3BvbnNlLCB7XG4gICAgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQsXG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFjayhib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjaz4sIGV4dHJhPzogeyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvbkNhbGxiYWNrO1xuICBjb25zdCBjYWxsYmFjayA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uQ2FsbGJhY2ssIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgY2FsbGJhY2suaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKTtcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBjYWxsYmFjay50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuYWN0aXZpdHlJbnN0YW5jZUlkICYmIHBheWxvYWQuYWN0aXZpdHlfaW5zdGFuY2VfaWQpIGNhbGxiYWNrLmFjdGl2aXR5SW5zdGFuY2VJZCA9IHBheWxvYWQuYWN0aXZpdHlfaW5zdGFuY2VfaWQ7XG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfaWQpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2lkKTtcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VFcGhlbWVyYWwgPSBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsO1xuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlTG9hZGluZyAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfbG9hZGluZykgY2FsbGJhY2sucmVzcG9uc2VNZXNzYWdlTG9hZGluZyA9IHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9sb2FkaW5nO1xuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignaW50ZXJhY3Rpb25DYWxsYmFjaycsIGJvdCwgcGF5bG9hZCwgY2FsbGJhY2ssIHtcbiAgICBwYXJ0aWFsOiBleHRyYT8ucGFydGlhbCA/PyBmYWxzZSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvblJlc291cmNlKFxuICBib3Q6IEJvdCxcbiAgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkSW50ZXJhY3Rpb25SZXNvdXJjZT4sXG4gIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyOyBwYXJ0aWFsPzogYm9vbGVhbiB9LFxuKSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvblJlc291cmNlO1xuICBjb25zdCByZXNvdXJjZSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uUmVzb3VyY2UsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHJlc291cmNlLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5hY3Rpdml0eUluc3RhbmNlICYmIHBheWxvYWQuYWN0aXZpdHlfaW5zdGFuY2UpIHJlc291cmNlLmFjdGl2aXR5SW5zdGFuY2UgPSBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlO1xuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLm1lc3NhZ2UpIHJlc291cmNlLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLm1lc3NhZ2UsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQgfSk7XG5cbiAgcmV0dXJuIGNhbGxDdXN0b21pemVyKCdpbnRlcmFjdGlvblJlc291cmNlJywgYm90LCBwYXlsb2FkLCByZXNvdXJjZSwge1xuICAgIHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkLFxuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/IGZhbHNlLFxuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUiLCJJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMiLCJJbnRlcmFjdGlvblR5cGVzIiwiTWVzc2FnZUZsYWdzIiwiQ29sbGVjdGlvbiIsImNhbGxDdXN0b21pemVyIiwiYmFzZUludGVyYWN0aW9uIiwidW5kZWZpbmVkIiwicmVzcG9uZCIsInJlc3BvbnNlIiwib3B0aW9ucyIsInR5cGUiLCJDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UiLCJjb250ZW50IiwidGl0bGUiLCJNb2RhbCIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdCIsIk1vZGFsU3VibWl0IiwiRXJyb3IiLCJpc1ByaXZhdGUiLCJmbGFncyIsIkVwaGVtZXJhbCIsImFja25vd2xlZGdlZCIsInNlbmRGb2xsb3d1cE1lc3NhZ2UiLCJyZXN1bHQiLCJib3QiLCJoZWxwZXJzIiwic2VuZEludGVyYWN0aW9uUmVzcG9uc2UiLCJpZCIsInRva2VuIiwiZGF0YSIsIndpdGhSZXNwb25zZSIsImVkaXQiLCJtZXNzYWdlSWQiLCJlZGl0Rm9sbG93dXBNZXNzYWdlIiwiTWVzc2FnZUNvbXBvbmVudCIsIlVwZGF0ZU1lc3NhZ2UiLCJlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwiZGVmZXJFZGl0IiwiRGVmZXJyZWRVcGRhdGVNZXNzYWdlIiwiZGVmZXIiLCJEZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsImRlbGV0ZSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsInRyYW5zZm9ybUludGVyYWN0aW9uIiwicGF5bG9hZCIsImV4dHJhIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImludGVyYWN0aW9uIiwiT2JqZWN0IiwiY3JlYXRlIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwic25vd2ZsYWtlIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwidmVyc2lvbiIsImxvY2FsZSIsImd1aWxkTG9jYWxlIiwiZ3VpbGRfbG9jYWxlIiwiZ3VpbGQiLCJzaGFyZElkIiwicGFydGlhbCIsInVzZXIiLCJtZW1iZXIiLCJhcHBQZXJtaXNzaW9ucyIsImFwcF9wZXJtaXNzaW9ucyIsIm1lc3NhZ2UiLCJjaGFubmVsIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsInVzZXJJZCIsImVudGl0bGVtZW50cyIsIm1hcCIsImUiLCJlbnRpdGxlbWVudCIsImF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMiLCJhdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMiLCJHdWlsZEluc3RhbGwiLCJVc2VySW5zdGFsbCIsImNvbnRleHQiLCJhdHRhY2htZW50U2l6ZUxpbWl0IiwiYXR0YWNobWVudF9zaXplX2xpbWl0IiwiY29tcG9uZW50VHlwZSIsImNvbXBvbmVudF90eXBlIiwiY3VzdG9tSWQiLCJjdXN0b21faWQiLCJjb21wb25lbnRzIiwiY29tcG9uZW50IiwidmFsdWVzIiwibmFtZSIsInJlc29sdmVkIiwiaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQiLCJvcHQiLCJpbnRlcmFjdGlvbkRhdGFPcHRpb24iLCJ0YXJnZXRJZCIsInRhcmdldF9pZCIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbiIsIm9wdGlvbiIsInZhbHVlIiwiZm9jdXNlZCIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwidHJhbnNmb3JtZWQiLCJtZXNzYWdlcyIsImVudHJpZXMiLCJrZXkiLCJ1c2VycyIsIm1lbWJlcnMiLCJyb2xlcyIsInJvbGUiLCJjaGFubmVscyIsImF0dGFjaG1lbnRzIiwiYXR0YWNobWVudCIsInRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2siLCJyZXNvdXJjZSIsImludGVyYWN0aW9uUmVzb3VyY2UiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrIiwiY2FsbGJhY2siLCJhY3Rpdml0eUluc3RhbmNlSWQiLCJhY3Rpdml0eV9pbnN0YW5jZV9pZCIsInJlc3BvbnNlTWVzc2FnZUlkIiwicmVzcG9uc2VfbWVzc2FnZV9pZCIsInJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCIsInJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsIiwicmVzcG9uc2VNZXNzYWdlTG9hZGluZyIsInJlc3BvbnNlX21lc3NhZ2VfbG9hZGluZyIsInRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UiLCJhY3Rpdml0eUluc3RhbmNlIiwiYWN0aXZpdHlfaW5zdGFuY2UiXSwibWFwcGluZ3MiOiJBQUFBLFNBRUVBLGlDQUFpQyxFQU9qQ0Msd0JBQXdCLEVBQ3hCQyxnQkFBZ0IsRUFDaEJDLFlBQVksUUFDUCxvQkFBb0I7QUFDM0IsU0FBU0MsVUFBVSxRQUFRLG9CQUFvQjtBQUkvQyxTQUFTQyxjQUFjLFFBQVEscUJBQXFCO0FBVXBELG9JQUFvSTtBQUNwSSxzR0FBc0c7QUFDdEcsT0FBTyxNQUFNQyxrQkFBNEg7SUFDdkksMkVBQTJFO0lBQzNFLEdBQUlDLFNBQVM7SUFFYixNQUFNQyxTQUFRQyxRQUFRLEVBQUVDLE9BQU87UUFDN0IsSUFBSUMsT0FBT1YseUJBQXlCVyx3QkFBd0I7UUFFNUQsNERBQTREO1FBQzVELElBQUksT0FBT0gsYUFBYSxVQUFVQSxXQUFXO1lBQUVJLFNBQVNKO1FBQVM7UUFFakUsa0NBQWtDO1FBQ2xDLElBQUlDLFNBQVNDLE1BQU1BLE9BQU9ELFFBQVFDLElBQUk7YUFFakM7WUFDSCxJQUFJRixTQUFTSyxLQUFLLEVBQUVILE9BQU9WLHlCQUF5QmMsS0FBSztZQUN6RCxJQUFJLElBQUksQ0FBQ0osSUFBSSxLQUFLVCxpQkFBaUJjLDhCQUE4QixFQUFFTCxPQUFPVix5QkFBeUJnQixvQ0FBb0M7UUFDekk7UUFFQSwyQkFBMkI7UUFDM0IsSUFBSSxJQUFJLENBQUNOLElBQUksS0FBS1QsaUJBQWlCZ0IsV0FBVyxJQUFJUCxTQUFTVix5QkFBeUJjLEtBQUssRUFDdkYsTUFBTSxJQUFJSSxNQUFNO1FBRWxCLElBQUlSLFNBQVNWLHlCQUF5Qlcsd0JBQXdCLElBQUlGLFNBQVNVLFdBQVc7WUFDcEZYLFNBQVNZLEtBQUssS0FBSztZQUNuQlosU0FBU1ksS0FBSyxJQUFJbEIsYUFBYW1CLFNBQVM7UUFDMUM7UUFFQSx5RkFBeUY7UUFDekYsSUFBSSxJQUFJLENBQUNDLFlBQVksRUFBRSxPQUFPLE1BQU0s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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DiscordInviteMetadata } from '@discordeno/types';
|
|
2
2
|
import type { Bot } from '../bot.js';
|
|
3
|
-
|
|
4
|
-
export declare function transformInvite(bot: Bot, payload: DiscordInviteCreate | DiscordInviteMetadata, extra?: {
|
|
3
|
+
export declare function transformInvite(bot: Bot, payload: Partial<DiscordInviteMetadata>, extra?: {
|
|
5
4
|
shardId?: number;
|
|
6
|
-
|
|
5
|
+
partial?: boolean;
|
|
6
|
+
}): any;
|
|
7
7
|
//# sourceMappingURL=invite.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invite.d.ts","sourceRoot":"","sources":["../../src/transformers/invite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"invite.d.ts","sourceRoot":"","sources":["../../src/transformers/invite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAMrC,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAkCjI"}
|
|
@@ -1,39 +1,40 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { callCustomizer } from '../transformers.js';
|
|
2
2
|
import { ToggleBitfield } from './toggles/ToggleBitfield.js';
|
|
3
3
|
export function transformInvite(bot, payload, extra) {
|
|
4
4
|
const props = bot.transformers.desiredProperties.invite;
|
|
5
5
|
const invite = {};
|
|
6
|
-
if (props.type &&
|
|
6
|
+
if (props.type && payload.type !== undefined) invite.type = payload.type;
|
|
7
7
|
if (props.code && payload.code) invite.code = payload.code;
|
|
8
8
|
if (props.createdAt && payload.created_at) invite.createdAt = Date.parse(payload.created_at);
|
|
9
9
|
if (props.inviter && payload.inviter) invite.inviter = bot.transformers.user(bot, payload.inviter);
|
|
10
|
-
if (props.maxAge) invite.maxAge = payload.max_age;
|
|
11
|
-
if (props.maxUses) invite.maxUses = payload.max_uses;
|
|
10
|
+
if (props.maxAge && payload.max_age !== undefined) invite.maxAge = payload.max_age;
|
|
11
|
+
if (props.maxUses && payload.max_uses !== undefined) invite.maxUses = payload.max_uses;
|
|
12
12
|
if (props.targetType && payload.target_type) invite.targetType = payload.target_type;
|
|
13
13
|
if (props.targetUser && payload.target_user) invite.targetUser = bot.transformers.user(bot, payload.target_user);
|
|
14
|
-
if (props.targetApplication && payload.target_application)
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
if (props.targetApplication && payload.target_application) invite.targetApplication = bot.transformers.application(bot, payload.target_application, {
|
|
15
|
+
shardId: extra?.shardId,
|
|
16
|
+
partial: true
|
|
17
17
|
});
|
|
18
18
|
if (props.temporary && payload.temporary) invite.temporary = payload.temporary;
|
|
19
|
-
if (props.uses && payload.uses) invite.uses = payload.uses;
|
|
20
|
-
if (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (props.channelId && payload.channel_id) invite.channelId = bot.transformers.snowflake(payload.channel_id);
|
|
34
|
-
if (props.guildId && payload.guild_id) invite.guildId = bot.transformers.snowflake(payload.guild_id);
|
|
19
|
+
if (props.uses && payload.uses !== undefined) invite.uses = payload.uses;
|
|
20
|
+
if (props.channelId && payload.channel?.id) invite.channelId = bot.transformers.snowflake(payload.channel.id);
|
|
21
|
+
if (props.guildId && payload.guild?.id) invite.guildId = bot.transformers.snowflake(payload.guild.id);
|
|
22
|
+
if (props.approximateMemberCount && payload.approximate_member_count) invite.approximateMemberCount = payload.approximate_member_count;
|
|
23
|
+
if (props.approximatePresenceCount && payload.approximate_presence_count !== undefined) invite.approximatePresenceCount = payload.approximate_presence_count;
|
|
24
|
+
if (props.guildScheduledEvent && payload.guild_scheduled_event) invite.guildScheduledEvent = bot.transformers.scheduledEvent(bot, payload.guild_scheduled_event);
|
|
25
|
+
if (props.expiresAt && payload.expires_at) invite.expiresAt = Date.parse(payload.expires_at);
|
|
26
|
+
if (props.flags && payload.flags) invite.flags = new ToggleBitfield(payload.flags);
|
|
27
|
+
if (props.roles && payload.roles) {
|
|
28
|
+
// Going from a Partial<T> To Pick<T, K> requires an as, as typescript can't guarantee that the properties exist on the partial
|
|
29
|
+
invite.roles = payload.roles.map((role)=>bot.transformers.role(bot, role, {
|
|
30
|
+
partial: true,
|
|
31
|
+
guildId: payload.guild?.id
|
|
32
|
+
}));
|
|
35
33
|
}
|
|
36
|
-
return
|
|
34
|
+
return callCustomizer('invite', bot, payload, invite, {
|
|
35
|
+
shardId: extra?.shardId,
|
|
36
|
+
partial: extra?.partial ?? false
|
|
37
|
+
});
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW52aXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZEludml0ZU1ldGFkYXRhIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi9ib3QuanMnO1xuaW1wb3J0IHR5cGUgeyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBTZXR1cERlc2lyZWRQcm9wcywgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMgfSBmcm9tICcuLi9kZXNpcmVkUHJvcGVydGllcy5qcyc7XG5pbXBvcnQgeyBjYWxsQ3VzdG9taXplciB9IGZyb20gJy4uL3RyYW5zZm9ybWVycy5qcyc7XG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZCB9IGZyb20gJy4vdG9nZ2xlcy9Ub2dnbGVCaXRmaWVsZC5qcyc7XG5pbXBvcnQgdHlwZSB7IEludml0ZSB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW52aXRlKGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRJbnZpdGVNZXRhZGF0YT4sIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyOyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnZpdGU7XG4gIGNvbnN0IGludml0ZSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPEludml0ZSwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSAhPT0gdW5kZWZpbmVkKSBpbnZpdGUudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmNvZGUgJiYgcGF5bG9hZC5jb2RlKSBpbnZpdGUuY29kZSA9IHBheWxvYWQuY29kZTtcbiAgaWYgKHByb3BzLmNyZWF0ZWRBdCAmJiBwYXlsb2FkLmNyZWF0ZWRfYXQpIGludml0ZS5jcmVhdGVkQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQuY3JlYXRlZF9hdCk7XG4gIGlmIChwcm9wcy5pbnZpdGVyICYmIHBheWxvYWQuaW52aXRlcikgaW52aXRlLmludml0ZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmludml0ZXIpO1xuICBpZiAocHJvcHMubWF4QWdlICYmIHBheWxvYWQubWF4X2FnZSAhPT0gdW5kZWZpbmVkKSBpbnZpdGUubWF4QWdlID0gcGF5bG9hZC5tYXhfYWdlO1xuICBpZiAocHJvcHMubWF4VXNlcyAmJiBwYXlsb2FkLm1heF91c2VzICE9PSB1bmRlZmluZWQpIGludml0ZS5tYXhVc2VzID0gcGF5bG9hZC5tYXhfdXNlcztcbiAgaWYgKHByb3BzLnRhcmdldFR5cGUgJiYgcGF5bG9hZC50YXJnZXRfdHlwZSkgaW52aXRlLnRhcmdldFR5cGUgPSBwYXlsb2FkLnRhcmdldF90eXBlO1xuICBpZiAocHJvcHMudGFyZ2V0VXNlciAmJiBwYXlsb2FkLnRhcmdldF91c2VyKSBpbnZpdGUudGFyZ2V0VXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudGFyZ2V0X3VzZXIpO1xuICBpZiAocHJvcHMudGFyZ2V0QXBwbGljYXRpb24gJiYgcGF5bG9hZC50YXJnZXRfYXBwbGljYXRpb24pXG4gICAgaW52aXRlLnRhcmdldEFwcGxpY2F0aW9uID0gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbihib3QsIHBheWxvYWQudGFyZ2V0X2FwcGxpY2F0aW9uLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkLCBwYXJ0aWFsOiB0cnVlIH0pO1xuICBpZiAocHJvcHMudGVtcG9yYXJ5ICYmIHBheWxvYWQudGVtcG9yYXJ5KSBpbnZpdGUudGVtcG9yYXJ5ID0gcGF5bG9hZC50ZW1wb3Jhcnk7XG4gIGlmIChwcm9wcy51c2VzICYmIHBheWxvYWQudXNlcyAhPT0gdW5kZWZpbmVkKSBpbnZpdGUudXNlcyA9IHBheWxvYWQudXNlcztcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmNoYW5uZWw/LmlkKSBpbnZpdGUuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsLmlkKTtcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgcGF5bG9hZC5ndWlsZD8uaWQpIGludml0ZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5pZCk7XG4gIGlmIChwcm9wcy5hcHByb3hpbWF0ZU1lbWJlckNvdW50ICYmIHBheWxvYWQuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50KSBpbnZpdGUuYXBwcm94aW1hdGVNZW1iZXJDb3VudCA9IHBheWxvYWQuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50O1xuICBpZiAocHJvcHMuYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50ICYmIHBheWxvYWQuYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnQgIT09IHVuZGVmaW5lZClcbiAgICBpbnZpdGUuYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50ID0gcGF5bG9hZC5hcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudDtcbiAgaWYgKHByb3BzLmd1aWxkU2NoZWR1bGVkRXZlbnQgJiYgcGF5bG9hZC5ndWlsZF9zY2hlZHVsZWRfZXZlbnQpXG4gICAgaW52aXRlLmd1aWxkU2NoZWR1bGVkRXZlbnQgPSBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgcGF5bG9hZC5ndWlsZF9zY2hlZHVsZWRfZXZlbnQpO1xuICBpZiAocHJvcHMuZXhwaXJlc0F0ICYmIHBheWxvYWQuZXhwaXJlc19hdCkgaW52aXRlLmV4cGlyZXNBdCA9IERhdGUucGFyc2UocGF5bG9hZC5leHBpcmVzX2F0KTtcbiAgaWYgKHByb3BzLmZsYWdzICYmIHBheWxvYWQuZmxhZ3MpIGludml0ZS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmZsYWdzKTtcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIHtcbiAgICAvLyBHb2luZyBmcm9tIGEgUGFydGlhbDxUPiBUbyBQaWNrPFQsIEs+IHJlcXVpcmVzIGFuIGFzLCBhcyB0eXBlc2NyaXB0IGNhbid0IGd1YXJhbnRlZSB0aGF0IHRoZSBwcm9wZXJ0aWVzIGV4aXN0IG9uIHRoZSBwYXJ0aWFsXG4gICAgaW52aXRlLnJvbGVzID0gcGF5bG9hZC5yb2xlcy5tYXAoKHJvbGUpID0+IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHJvbGUsIHsgcGFydGlhbDogdHJ1ZSwgZ3VpbGRJZDogcGF5bG9hZC5ndWlsZD8uaWQgfSkpIGFzIEludml0ZVsncm9sZXMnXTtcbiAgfVxuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignaW52aXRlJywgYm90LCBwYXlsb2FkLCBpbnZpdGUsIHtcbiAgICBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCxcbiAgICBwYXJ0aWFsOiBleHRyYT8ucGFydGlhbCA/PyBmYWxzZSxcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiY2FsbEN1c3RvbWl6ZXIiLCJUb2dnbGVCaXRmaWVsZCIsInRyYW5zZm9ybUludml0ZSIsImJvdCIsInBheWxvYWQiLCJleHRyYSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpbnZpdGUiLCJ0eXBlIiwidW5kZWZpbmVkIiwiY29kZSIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJEYXRlIiwicGFyc2UiLCJpbnZpdGVyIiwidXNlciIsIm1heEFnZSIsIm1heF9hZ2UiLCJtYXhVc2VzIiwibWF4X3VzZXMiLCJ0YXJnZXRUeXBlIiwidGFyZ2V0X3R5cGUiLCJ0YXJnZXRVc2VyIiwidGFyZ2V0X3VzZXIiLCJ0YXJnZXRBcHBsaWNhdGlvbiIsInRhcmdldF9hcHBsaWNhdGlvbiIsImFwcGxpY2F0aW9uIiwic2hhcmRJZCIsInBhcnRpYWwiLCJ0ZW1wb3JhcnkiLCJ1c2VzIiwiY2hhbm5lbElkIiwiY2hhbm5lbCIsImlkIiwic25vd2ZsYWtlIiwiZ3VpbGRJZCIsImd1aWxkIiwiYXBwcm94aW1hdGVNZW1iZXJDb3VudCIsImFwcHJveGltYXRlX21lbWJlcl9jb3VudCIsImFwcHJveGltYXRlUHJlc2VuY2VDb3VudCIsImFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50IiwiZ3VpbGRTY2hlZHVsZWRFdmVudCIsImd1aWxkX3NjaGVkdWxlZF9ldmVudCIsInNjaGVkdWxlZEV2ZW50IiwiZXhwaXJlc0F0IiwiZXhwaXJlc19hdCIsImZsYWdzIiwicm9sZXMiLCJtYXAiLCJyb2xlIl0sIm1hcHBpbmdzIjoiQUFHQSxTQUFTQSxjQUFjLFFBQVEscUJBQXFCO0FBQ3BELFNBQVNDLGNBQWMsUUFBUSw4QkFBOEI7QUFHN0QsT0FBTyxTQUFTQyxnQkFBZ0JDLEdBQVEsRUFBRUMsT0FBdUMsRUFBRUMsS0FBK0M7SUFDaEksTUFBTUMsUUFBUUgsSUFBSUksWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsTUFBTTtJQUN2RCxNQUFNQSxTQUFTLENBQUM7SUFFaEIsSUFBSUgsTUFBTUksSUFBSSxJQUFJTixRQUFRTSxJQUFJLEtBQUtDLFdBQVdGLE9BQU9DLElBQUksR0FBR04sUUFBUU0sSUFBSTtJQUN4RSxJQUFJSixNQUFNTSxJQUFJLElBQUlSLFFBQVFRLElBQUksRUFBRUgsT0FBT0csSUFBSSxHQUFHUixRQUFRUSxJQUFJO0lBQzFELElBQUlOLE1BQU1PLFNBQVMsSUFBSVQsUUFBUVUsVUFBVSxFQUFFTCxPQUFPSSxTQUFTLEdBQUdFLEtBQUtDLEtBQUssQ0FBQ1osUUFBUVUsVUFBVTtJQUMzRixJQUFJUixNQUFNVyxPQUFPLElBQUliLFFBQVFhLE9BQU8sRUFBRVIsT0FBT1EsT0FBTyxHQUFHZCxJQUFJSSxZQUFZLENBQUNXLElBQUksQ0FBQ2YsS0FBS0MsUUFBUWEsT0FBTztJQUNqRyxJQUFJWCxNQUFNYSxNQUFNLElBQUlmLFFBQVFnQixPQUFPLEtBQUtULFdBQVdGLE9BQU9VLE1BQU0sR0FBR2YsUUFBUWdCLE9BQU87SUFDbEYsSUFBSWQsTUFBTWUsT0FBTyxJQUFJakIsUUFBUWtCLFFBQVEsS0FBS1gsV0FBV0YsT0FBT1ksT0FBTyxHQUFHakIsUUFBUWtCLFFBQVE7SUFDdEYsSUFBSWhCLE1BQU1pQixVQUFVLElBQUluQixRQUFRb0IsV0FBVyxFQUFFZixPQUFPYyxVQUFVLEdBQUduQixRQUFRb0IsV0FBVztJQUNwRixJQUFJbEIsTUFBTW1CLFVBQVUsSUFBSXJCLFFBQVFzQixXQUFXLEVBQUVqQixPQUFPZ0IsVUFBVSxHQUFHdEIsSUFBSUksWUFBWSxDQUFDVyxJQUFJLENBQUNmLEtBQUtDLFFBQVFzQixXQUFXO0lBQy9HLElBQUlwQixNQUFNcUIsaUJBQWlCLElBQUl2QixRQUFRd0Isa0JBQWtCLEVBQ3ZEbkIsT0FBT2tCLGlCQUFpQixHQUFHeEIsSUFBSUksWUFBWSxDQUFDc0IsV0FBVyxDQUFDMUIsS0FBS0MsUUFBUXdCLGtCQUFrQixFQUFFO1FBQUVFLFNBQVN6QixPQUFPeUI7UUFBU0MsU0FBUztJQUFLO0lBQ3BJLElBQUl6QixNQUFNMEIsU0FBUyxJQUFJNUIsUUFBUTRCLFNBQVMsRUFBRXZCLE9BQU91QixTQUFTLEdBQUc1QixRQUFRNEIsU0FBUztJQUM5RSxJQUFJMUIsTUFBTTJCLElBQUksSUFBSTdCLFFBQVE2QixJQUFJLEtBQUt0QixXQUFXRixPQUFPd0IsSUFBSSxHQUFHN0IsUUFBUTZCLElBQUk7SUFDeEUsSUFBSTNCLE1BQU00QixTQUFTLElBQUk5QixRQUFRK0IsT0FBTyxFQUFFQyxJQUFJM0IsT0FBT3lCLFNBQVMsR0FBRy9CLElBQUlJLFlBQVksQ0FBQzhCLFNBQVMsQ0FBQ2pDLFFBQVErQixPQUFPLENBQUNDLEVBQUU7SUFDNUcsSUFBSTlCLE1BQU1nQyxPQUFPLElBQUlsQyxRQUFRbUMsS0FBSyxFQUFFSCxJQUFJM0IsT0FBTzZCLE9BQU8sR0FBR25DLElBQUlJLFlBQVksQ0FBQzhCLFNBQVMsQ0FBQ2pDLFFBQVFtQyxLQUFLLENBQUNILEVBQUU7SUFDcEcsSUFBSTlCLE1BQU1rQyxzQkFBc0IsSUFBSXBDLFFBQVFxQyx3QkFBd0IsRUFBRWhDLE9BQU8rQixzQkFBc0IsR0FBR3BDLFFBQVFxQyx3QkFBd0I7SUFDdEksSUFBSW5DLE1BQU1vQyx3QkFBd0IsSUFBSXRDLFFBQVF1QywwQkFBMEIsS0FBS2hDLFdBQzNFRixPQUFPaUMsd0JBQXdCLEdBQUd0QyxRQUFRdUMsMEJBQTBCO0lBQ3RFLElBQUlyQyxNQUFNc0MsbUJBQW1CLElBQUl4QyxRQUFReUMscUJBQXFCLEVBQzVEcEMsT0FBT21DLG1CQUFtQixHQUFHekMsSUFBSUksWUFBWSxDQUFDdUMsY0FBYyxDQUFDM0MsS0FBS0MsUUFBUXlDLHFCQUFxQjtJQUNqRyxJQUFJdkMsTUFBTXlDLFNBQVMsSUFBSTNDLFFBQVE0QyxVQUFVLEVBQUV2QyxPQUFPc0MsU0FBUyxHQUFHaEMsS0FBS0MsS0FBSyxDQUFDWixRQUFRNEMsVUFBVTtJQUMzRixJQUFJMUMsTUFBTTJDLEtBQUssSUFBSTdDLFFBQVE2QyxLQUFLLEVBQUV4QyxPQUFPd0MsS0FBSyxHQUFHLElBQUloRCxlQUFlRyxRQUFRNkMsS0FBSztJQUNqRixJQUFJM0MsTUFBTTRDLEtBQUssSUFBSTlDLFFBQVE4QyxLQUFLLEVBQUU7UUFDaEMsK0hBQStIO1FBQy9IekMsT0FBT3lDLEtBQUssR0FBRzlDLFFBQVE4QyxLQUFLLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxPQUFTakQsSUFBSUksWUFBWSxDQUFDNkMsSUFBSSxDQUFDakQsS0FBS2lELE1BQU07Z0JBQUVyQixTQUFTO2dCQUFNTyxTQUFTbEMsUUFBUW1DLEtBQUssRUFBRUg7WUFBRztJQUMxSDtJQUVBLE9BQU9wQyxlQUFlLFVBQVVHLEtBQUtDLFNBQVNLLFFBQVE7UUFDcERxQixTQUFTekIsT0FBT3lCO1FBQ2hCQyxTQUFTMUIsT0FBTzBCLFdBQVc7SUFDN0I7QUFDRiJ9
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
import type { DiscordLobby, DiscordLobbyMember } from '@discordeno/types';
|
|
1
|
+
import type { DiscordLobby, DiscordLobbyInvite, DiscordLobbyMember, DiscordLobbyMessage } from '@discordeno/types';
|
|
2
2
|
import type { Bot } from '../bot.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export declare function transformLobby(bot: Bot, payload: Partial<DiscordLobby>, extra?: {
|
|
4
|
+
partial?: boolean;
|
|
5
|
+
}): any;
|
|
6
|
+
export declare function transformLobbyMember(bot: Bot, payload: Partial<DiscordLobbyMember>, extra?: {
|
|
7
|
+
partial?: boolean;
|
|
8
|
+
}): any;
|
|
9
|
+
export declare function transformLobbyMessage(bot: Bot, payload: Partial<DiscordLobbyMessage>, extra?: {
|
|
10
|
+
partial?: boolean;
|
|
11
|
+
}): any;
|
|
12
|
+
export declare function transformLobbyInvite(bot: Bot, payload: Partial<DiscordLobbyInvite>, extra?: {
|
|
13
|
+
partial?: boolean;
|
|
14
|
+
}): any;
|
|
6
15
|
//# sourceMappingURL=lobby.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lobby.d.ts","sourceRoot":"","sources":["../../src/transformers/lobby.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"lobby.d.ts","sourceRoot":"","sources":["../../src/transformers/lobby.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAMrC,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAarG;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAWjH;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAkBnH;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OASjH"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { callCustomizer } from '../transformers.js';
|
|
1
2
|
import { ToggleBitfield } from './toggles/ToggleBitfield.js';
|
|
2
|
-
export function transformLobby(bot, payload) {
|
|
3
|
+
export function transformLobby(bot, payload, extra) {
|
|
3
4
|
const props = bot.transformers.desiredProperties.lobby;
|
|
4
5
|
const lobby = {};
|
|
5
6
|
if (props.id && payload.id) lobby.id = bot.transformers.snowflake(payload.id);
|
|
@@ -7,15 +8,44 @@ export function transformLobby(bot, payload) {
|
|
|
7
8
|
if (props.metadata && payload.metadata) lobby.metadata = payload.metadata;
|
|
8
9
|
if (props.members && payload.members) lobby.members = payload.members.map((member)=>bot.transformers.lobbyMember(bot, member));
|
|
9
10
|
if (props.linkedChannel && payload.linked_channel) lobby.linkedChannel = bot.transformers.channel(bot, payload.linked_channel);
|
|
10
|
-
return
|
|
11
|
+
return callCustomizer('lobby', bot, payload, lobby, {
|
|
12
|
+
partial: extra?.partial ?? false
|
|
13
|
+
});
|
|
11
14
|
}
|
|
12
|
-
export function transformLobbyMember(bot, payload) {
|
|
15
|
+
export function transformLobbyMember(bot, payload, extra) {
|
|
13
16
|
const props = bot.transformers.desiredProperties.lobbyMember;
|
|
14
17
|
const lobbyMember = {};
|
|
15
18
|
if (props.id && payload.id) lobbyMember.id = bot.transformers.snowflake(payload.id);
|
|
16
19
|
if (props.metadata && payload.metadata) lobbyMember.metadata = payload.metadata;
|
|
17
20
|
if (props.flags && payload.flags) lobbyMember.flags = new ToggleBitfield(payload.flags);
|
|
18
|
-
return
|
|
21
|
+
return callCustomizer('lobbyMember', bot, payload, lobbyMember, {
|
|
22
|
+
partial: extra?.partial ?? false
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export function transformLobbyMessage(bot, payload, extra) {
|
|
26
|
+
const props = bot.transformers.desiredProperties.lobbyMessage;
|
|
27
|
+
const lobbyMessage = {};
|
|
28
|
+
if (props.id && payload.id) lobbyMessage.id = bot.transformers.snowflake(payload.id);
|
|
29
|
+
if (props.type && payload.type !== undefined) lobbyMessage.type = payload.type;
|
|
30
|
+
if (props.content && payload.content) lobbyMessage.content = payload.content;
|
|
31
|
+
if (props.lobbyId && payload.lobby_id) lobbyMessage.lobbyId = bot.transformers.snowflake(payload.lobby_id);
|
|
32
|
+
if (props.channelId && payload.channel_id) lobbyMessage.channelId = bot.transformers.snowflake(payload.channel_id);
|
|
33
|
+
if (props.author && payload.author) lobbyMessage.author = bot.transformers.user(bot, payload.author);
|
|
34
|
+
if (props.metadata && payload.metadata) lobbyMessage.metadata = payload.metadata;
|
|
35
|
+
if (props.moderationMetadata && payload.moderation_metadata) lobbyMessage.moderationMetadata = payload.moderation_metadata;
|
|
36
|
+
if (props.flags && payload.flags) lobbyMessage.flags = new ToggleBitfield(payload.flags);
|
|
37
|
+
if (props.applicationId && payload.application_id) lobbyMessage.applicationId = bot.transformers.snowflake(payload.application_id);
|
|
38
|
+
return callCustomizer('lobbyMessage', bot, payload, lobbyMessage, {
|
|
39
|
+
partial: extra?.partial ?? false
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
export function transformLobbyInvite(bot, payload, extra) {
|
|
43
|
+
const props = bot.transformers.desiredProperties.lobbyInvite;
|
|
44
|
+
const lobbyInvite = {};
|
|
45
|
+
if (props.code && payload.code) lobbyInvite.code = payload.code;
|
|
46
|
+
return callCustomizer('lobbyInvite', bot, payload, lobbyInvite, {
|
|
47
|
+
partial: extra?.partial ?? false
|
|
48
|
+
});
|
|
19
49
|
}
|
|
20
50
|
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbG9iYnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkTG9iYnksIERpc2NvcmRMb2JieUludml0ZSwgRGlzY29yZExvYmJ5TWVtYmVyLCBEaXNjb3JkTG9iYnlNZXNzYWdlIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi9ib3QuanMnO1xuaW1wb3J0IHR5cGUgeyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBTZXR1cERlc2lyZWRQcm9wcywgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMgfSBmcm9tICcuLi9kZXNpcmVkUHJvcGVydGllcy5qcyc7XG5pbXBvcnQgeyBjYWxsQ3VzdG9taXplciB9IGZyb20gJy4uL3RyYW5zZm9ybWVycy5qcyc7XG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZCB9IGZyb20gJy4vdG9nZ2xlcy9Ub2dnbGVCaXRmaWVsZC5qcyc7XG5pbXBvcnQgdHlwZSB7IExvYmJ5LCBMb2JieUludml0ZSwgTG9iYnlNZW1iZXIsIExvYmJ5TWVzc2FnZSB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTG9iYnkoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZExvYmJ5PiwgZXh0cmE/OiB7IHBhcnRpYWw/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmxvYmJ5O1xuICBjb25zdCBsb2JieSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPExvYmJ5LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGxvYmJ5LmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZCk7XG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuYXBwbGljYXRpb25faWQpIGxvYmJ5LmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKTtcbiAgaWYgKHByb3BzLm1ldGFkYXRhICYmIHBheWxvYWQubWV0YWRhdGEpIGxvYmJ5Lm1ldGFkYXRhID0gcGF5bG9hZC5tZXRhZGF0YTtcbiAgaWYgKHByb3BzLm1lbWJlcnMgJiYgcGF5bG9hZC5tZW1iZXJzKSBsb2JieS5tZW1iZXJzID0gcGF5bG9hZC5tZW1iZXJzLm1hcCgobWVtYmVyKSA9PiBib3QudHJhbnNmb3JtZXJzLmxvYmJ5TWVtYmVyKGJvdCwgbWVtYmVyKSk7XG4gIGlmIChwcm9wcy5saW5rZWRDaGFubmVsICYmIHBheWxvYWQubGlua2VkX2NoYW5uZWwpIGxvYmJ5LmxpbmtlZENoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCBwYXlsb2FkLmxpbmtlZF9jaGFubmVsKTtcblxuICByZXR1cm4gY2FsbEN1c3RvbWl6ZXIoJ2xvYmJ5JywgYm90LCBwYXlsb2FkLCBsb2JieSwge1xuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/IGZhbHNlLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUxvYmJ5TWVtYmVyKGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRMb2JieU1lbWJlcj4sIGV4dHJhPzogeyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5sb2JieU1lbWJlcjtcbiAgY29uc3QgbG9iYnlNZW1iZXIgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxMb2JieU1lbWJlciwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBsb2JieU1lbWJlci5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpO1xuICBpZiAocHJvcHMubWV0YWRhdGEgJiYgcGF5bG9hZC5tZXRhZGF0YSkgbG9iYnlNZW1iZXIubWV0YWRhdGEgPSBwYXlsb2FkLm1ldGFkYXRhO1xuICBpZiAocHJvcHMuZmxhZ3MgJiYgcGF5bG9hZC5mbGFncykgbG9iYnlNZW1iZXIuZmxhZ3MgPSBuZXcgVG9nZ2xlQml0ZmllbGQocGF5bG9hZC5mbGFncyk7XG5cbiAgcmV0dXJuIGNhbGxDdXN0b21pemVyKCdsb2JieU1lbWJlcicsIGJvdCwgcGF5bG9hZCwgbG9iYnlNZW1iZXIsIHtcbiAgICBwYXJ0aWFsOiBleHRyYT8ucGFydGlhbCA/PyBmYWxzZSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1Mb2JieU1lc3NhZ2UoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZExvYmJ5TWVzc2FnZT4sIGV4dHJhPzogeyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5sb2JieU1lc3NhZ2U7XG4gIGNvbnN0IGxvYmJ5TWVzc2FnZSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPExvYmJ5TWVzc2FnZSwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBsb2JieU1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKTtcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlICE9PSB1bmRlZmluZWQpIGxvYmJ5TWVzc2FnZS50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuY29udGVudCAmJiBwYXlsb2FkLmNvbnRlbnQpIGxvYmJ5TWVzc2FnZS5jb250ZW50ID0gcGF5bG9hZC5jb250ZW50O1xuICBpZiAocHJvcHMubG9iYnlJZCAmJiBwYXlsb2FkLmxvYmJ5X2lkKSBsb2JieU1lc3NhZ2UubG9iYnlJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubG9iYnlfaWQpO1xuICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuY2hhbm5lbF9pZCkgbG9iYnlNZXNzYWdlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZCk7XG4gIGlmIChwcm9wcy5hdXRob3IgJiYgcGF5bG9hZC5hdXRob3IpIGxvYmJ5TWVzc2FnZS5hdXRob3IgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmF1dGhvcik7XG4gIGlmIChwcm9wcy5tZXRhZGF0YSAmJiBwYXlsb2FkLm1ldGFkYXRhKSBsb2JieU1lc3NhZ2UubWV0YWRhdGEgPSBwYXlsb2FkLm1ldGFkYXRhO1xuICBpZiAocHJvcHMubW9kZXJhdGlvbk1ldGFkYXRhICYmIHBheWxvYWQubW9kZXJhdGlvbl9tZXRhZGF0YSkgbG9iYnlNZXNzYWdlLm1vZGVyYXRpb25NZXRhZGF0YSA9IHBheWxvYWQubW9kZXJhdGlvbl9tZXRhZGF0YTtcbiAgaWYgKHByb3BzLmZsYWdzICYmIHBheWxvYWQuZmxhZ3MpIGxvYmJ5TWVzc2FnZS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmZsYWdzKTtcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5hcHBsaWNhdGlvbl9pZCkgbG9iYnlNZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKTtcblxuICByZXR1cm4gY2FsbEN1c3RvbWl6ZXIoJ2xvYmJ5TWVzc2FnZScsIGJvdCwgcGF5bG9hZCwgbG9iYnlNZXNzYWdlLCB7XG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTG9iYnlJbnZpdGUoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZExvYmJ5SW52aXRlPiwgZXh0cmE/OiB7IHBhcnRpYWw/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmxvYmJ5SW52aXRlO1xuICBjb25zdCBsb2JieUludml0ZSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPExvYmJ5SW52aXRlLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLmNvZGUgJiYgcGF5bG9hZC5jb2RlKSBsb2JieUludml0ZS5jb2RlID0gcGF5bG9hZC5jb2RlO1xuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignbG9iYnlJbnZpdGUnLCBib3QsIHBheWxvYWQsIGxvYmJ5SW52aXRlLCB7XG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImNhbGxDdXN0b21pemVyIiwiVG9nZ2xlQml0ZmllbGQiLCJ0cmFuc2Zvcm1Mb2JieSIsImJvdCIsInBheWxvYWQiLCJleHRyYSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJsb2JieSIsImlkIiwic25vd2ZsYWtlIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwibWV0YWRhdGEiLCJtZW1iZXJzIiwibWFwIiwibWVtYmVyIiwibG9iYnlNZW1iZXIiLCJsaW5rZWRDaGFubmVsIiwibGlua2VkX2NoYW5uZWwiLCJjaGFubmVsIiwicGFydGlhbCIsInRyYW5zZm9ybUxvYmJ5TWVtYmVyIiwiZmxhZ3MiLCJ0cmFuc2Zvcm1Mb2JieU1lc3NhZ2UiLCJsb2JieU1lc3NhZ2UiLCJ0eXBlIiwidW5kZWZpbmVkIiwiY29udGVudCIsImxvYmJ5SWQiLCJsb2JieV9pZCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJhdXRob3IiLCJ1c2VyIiwibW9kZXJhdGlvbk1ldGFkYXRhIiwibW9kZXJhdGlvbl9tZXRhZGF0YSIsInRyYW5zZm9ybUxvYmJ5SW52aXRlIiwibG9iYnlJbnZpdGUiLCJjb2RlIl0sIm1hcHBpbmdzIjoiQUFHQSxTQUFTQSxjQUFjLFFBQVEscUJBQXFCO0FBQ3BELFNBQVNDLGNBQWMsUUFBUSw4QkFBOEI7QUFHN0QsT0FBTyxTQUFTQyxlQUFlQyxHQUFRLEVBQUVDLE9BQThCLEVBQUVDLEtBQTZCO0lBQ3BHLE1BQU1DLFFBQVFILElBQUlJLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLEtBQUs7SUFDdEQsTUFBTUEsUUFBUSxDQUFDO0lBRWYsSUFBSUgsTUFBTUksRUFBRSxJQUFJTixRQUFRTSxFQUFFLEVBQUVELE1BQU1DLEVBQUUsR0FBR1AsSUFBSUksWUFBWSxDQUFDSSxTQUFTLENBQUNQLFFBQVFNLEVBQUU7SUFDNUUsSUFBSUosTUFBTU0sYUFBYSxJQUFJUixRQUFRUyxjQUFjLEVBQUVKLE1BQU1HLGFBQWEsR0FBR1QsSUFBSUksWUFBWSxDQUFDSSxTQUFTLENBQUNQLFFBQVFTLGNBQWM7SUFDMUgsSUFBSVAsTUFBTVEsUUFBUSxJQUFJVixRQUFRVSxRQUFRLEVBQUVMLE1BQU1LLFFBQVEsR0FBR1YsUUFBUVUsUUFBUTtJQUN6RSxJQUFJUixNQUFNUyxPQUFPLElBQUlYLFFBQVFXLE9BQU8sRUFBRU4sTUFBTU0sT0FBTyxHQUFHWCxRQUFRVyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxTQUFXZCxJQUFJSSxZQUFZLENBQUNXLFdBQVcsQ0FBQ2YsS0FBS2M7SUFDeEgsSUFBSVgsTUFBTWEsYUFBYSxJQUFJZixRQUFRZ0IsY0FBYyxFQUFFWCxNQUFNVSxhQUFhLEdBQUdoQixJQUFJSSxZQUFZLENBQUNjLE9BQU8sQ0FBQ2xCLEtBQUtDLFFBQVFnQixj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
|
|
@@ -2,8 +2,9 @@ import type { BigString, DiscordMember } from '@discordeno/types';
|
|
|
2
2
|
import type { Bot } from '../bot.js';
|
|
3
3
|
import type { Member } from './types.js';
|
|
4
4
|
export declare const baseMember: Member;
|
|
5
|
-
export declare function transformMember(bot: Bot, payload: DiscordMember
|
|
5
|
+
export declare function transformMember(bot: Bot, payload: Partial<DiscordMember>, extra?: {
|
|
6
6
|
guildId?: BigString;
|
|
7
7
|
userId?: BigString;
|
|
8
|
-
|
|
8
|
+
partial?: boolean;
|
|
9
|
+
}): any;
|
|
9
10
|
//# sourceMappingURL=member.d.ts.map
|