@discordeno/bot 22.0.1-next.1096ae3 → 22.0.1-next.11decde
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/transformers/integration.d.ts +10 -2
- package/dist/transformers/integration.d.ts.map +1 -1
- package/dist/transformers/integration.js +43 -31
- package/dist/transformers/interaction.d.ts +3 -1
- package/dist/transformers/interaction.d.ts.map +1 -1
- package/dist/transformers/interaction.js +12 -11
- package/dist/transformers/sticker.d.ts +3 -1
- package/dist/transformers/sticker.d.ts.map +1 -1
- package/dist/transformers/sticker.js +13 -12
- package/dist/transformers/team.d.ts +7 -2
- package/dist/transformers/team.d.ts.map +1 -1
- package/dist/transformers/team.js +22 -16
- package/dist/transformers/template.d.ts +3 -1
- package/dist/transformers/template.d.ts.map +1 -1
- package/dist/transformers/template.js +18 -16
- package/dist/transformers/threadMember.d.ts +6 -2
- package/dist/transformers/threadMember.d.ts.map +1 -1
- package/dist/transformers/threadMember.js +20 -16
- package/dist/transformers/types.d.ts +1 -1
- package/dist/transformers/types.d.ts.map +1 -1
- package/dist/transformers/types.js +1 -1
- package/dist/transformers/voiceRegion.d.ts +3 -1
- package/dist/transformers/voiceRegion.d.ts.map +1 -1
- package/dist/transformers/voiceRegion.js +12 -10
- package/dist/transformers/welcomeScreen.d.ts +7 -2
- package/dist/transformers/welcomeScreen.d.ts.map +1 -1
- package/dist/transformers/welcomeScreen.js +19 -12
- package/dist/transformers.d.ts +15 -11
- package/dist/transformers.d.ts.map +1 -1
- package/dist/transformers.js +14 -6
- package/package.json +5 -5
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
import type { DiscordIntegrationCreateUpdate } from '@discordeno/types';
|
|
1
|
+
import type { DiscordIntegrationAccount, DiscordIntegrationApplication, DiscordIntegrationCreateUpdate } from '@discordeno/types';
|
|
2
2
|
import type { Bot } from '../bot.js';
|
|
3
|
-
export declare function transformIntegration(bot: Bot, payload: DiscordIntegrationCreateUpdate
|
|
3
|
+
export declare function transformIntegration(bot: Bot, payload: Partial<DiscordIntegrationCreateUpdate>, extra?: {
|
|
4
|
+
partial?: boolean;
|
|
5
|
+
}): any;
|
|
6
|
+
export declare function transformIntegrationAccount(bot: Bot, payload: Partial<DiscordIntegrationAccount>, extra?: {
|
|
7
|
+
partial?: boolean;
|
|
8
|
+
}): any;
|
|
9
|
+
export declare function transformIntegrationApplication(bot: Bot, payload: Partial<DiscordIntegrationApplication>, extra?: {
|
|
10
|
+
partial?: boolean;
|
|
11
|
+
}): any;
|
|
4
12
|
//# sourceMappingURL=integration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../src/transformers/integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../src/transformers/integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAElI,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAKrC,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,8BAA8B,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAwB7H;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAS/H;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,6BAA6B,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAYvI"}
|
|
@@ -1,34 +1,46 @@
|
|
|
1
1
|
import { iconHashToBigInt } from '@discordeno/utils';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
2
|
+
import { callCustomizer } from '../transformers.js';
|
|
3
|
+
export function transformIntegration(bot, payload, extra) {
|
|
4
|
+
const integration = {};
|
|
5
|
+
if (payload.guild_id) integration.guildId = bot.transformers.snowflake(payload.guild_id);
|
|
6
|
+
if (payload.id) integration.id = bot.transformers.snowflake(payload.id);
|
|
7
|
+
if (payload.name) integration.name = payload.name;
|
|
8
|
+
if (payload.type) integration.type = payload.type;
|
|
9
|
+
if (payload.enabled) integration.enabled = payload.enabled;
|
|
10
|
+
if (payload.syncing) integration.syncing = payload.syncing;
|
|
11
|
+
if (payload.role_id) integration.roleId = bot.transformers.snowflake(payload.role_id);
|
|
12
|
+
if (payload.enable_emoticons) integration.enableEmoticons = payload.enable_emoticons;
|
|
13
|
+
if (payload.expire_behavior !== undefined) integration.expireBehavior = payload.expire_behavior;
|
|
14
|
+
if (payload.expire_grace_period) integration.expireGracePeriod = payload.expire_grace_period;
|
|
15
|
+
if (payload.user) integration.user = bot.transformers.user(bot, payload.user);
|
|
16
|
+
if (payload.account) integration.account = bot.transformers.integrationAccount(bot, payload.account);
|
|
17
|
+
if (payload.synced_at) integration.syncedAt = Date.parse(payload.synced_at);
|
|
18
|
+
if (payload.subscriber_count) integration.subscriberCount = payload.subscriber_count;
|
|
19
|
+
if (payload.revoked) integration.revoked = payload.revoked;
|
|
20
|
+
if (payload.application) integration.application = bot.transformers.integrationApplication(bot, payload.application);
|
|
21
|
+
if (payload.scopes) integration.scopes = payload.scopes;
|
|
22
|
+
return callCustomizer('integration', bot, payload, integration, {
|
|
23
|
+
partial: extra?.partial ?? false
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
export function transformIntegrationAccount(bot, payload, extra) {
|
|
27
|
+
const integrationAccount = {};
|
|
28
|
+
if (payload.id !== undefined) integrationAccount.id = bot.transformers.snowflake(payload.id);
|
|
29
|
+
if (payload.name !== undefined) integrationAccount.name = payload.name;
|
|
30
|
+
return callCustomizer('integrationAccount', bot, payload, integrationAccount, {
|
|
31
|
+
partial: extra?.partial ?? false
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
export function transformIntegrationApplication(bot, payload, extra) {
|
|
35
|
+
const integrationApplication = {};
|
|
36
|
+
if (payload.id !== undefined) integrationApplication.id = bot.transformers.snowflake(payload.id);
|
|
37
|
+
if (payload.name !== undefined) integrationApplication.name = payload.name;
|
|
38
|
+
if (payload.description !== undefined) integrationApplication.description = payload.description;
|
|
39
|
+
if (payload.icon !== undefined) integrationApplication.icon = payload.icon ? iconHashToBigInt(payload.icon) : undefined;
|
|
40
|
+
if (payload.bot !== undefined) integrationApplication.bot = bot.transformers.user(bot, payload.bot);
|
|
41
|
+
return callCustomizer('integrationApplication', bot, payload, integrationApplication, {
|
|
42
|
+
partial: extra?.partial ?? false
|
|
43
|
+
});
|
|
32
44
|
}
|
|
33
45
|
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZWdyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkSW50ZWdyYXRpb25BY2NvdW50LCBEaXNjb3JkSW50ZWdyYXRpb25BcHBsaWNhdGlvbiwgRGlzY29yZEludGVncmF0aW9uQ3JlYXRlVXBkYXRlIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHsgaWNvbkhhc2hUb0JpZ0ludCB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJztcbmltcG9ydCB0eXBlIHsgQm90IH0gZnJvbSAnLi4vYm90LmpzJztcbmltcG9ydCB0eXBlIHsgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvciwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vZGVzaXJlZFByb3BlcnRpZXMuanMnO1xuaW1wb3J0IHsgY2FsbEN1c3RvbWl6ZXIgfSBmcm9tICcuLi90cmFuc2Zvcm1lcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBJbnRlZ3JhdGlvbiwgSW50ZWdyYXRpb25BY2NvdW50LCBJbnRlZ3JhdGlvbkFwcGxpY2F0aW9uIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlZ3JhdGlvbihib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkSW50ZWdyYXRpb25DcmVhdGVVcGRhdGU+LCBleHRyYT86IHsgcGFydGlhbD86IGJvb2xlYW4gfSkge1xuICBjb25zdCBpbnRlZ3JhdGlvbiA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPEludGVncmF0aW9uLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHBheWxvYWQuZ3VpbGRfaWQpIGludGVncmF0aW9uLmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkX2lkKTtcbiAgaWYgKHBheWxvYWQuaWQpIGludGVncmF0aW9uLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZCk7XG4gIGlmIChwYXlsb2FkLm5hbWUpIGludGVncmF0aW9uLm5hbWUgPSBwYXlsb2FkLm5hbWU7XG4gIGlmIChwYXlsb2FkLnR5cGUpIGludGVncmF0aW9uLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwYXlsb2FkLmVuYWJsZWQpIGludGVncmF0aW9uLmVuYWJsZWQgPSBwYXlsb2FkLmVuYWJsZWQ7XG4gIGlmIChwYXlsb2FkLnN5bmNpbmcpIGludGVncmF0aW9uLnN5bmNpbmcgPSBwYXlsb2FkLnN5bmNpbmc7XG4gIGlmIChwYXlsb2FkLnJvbGVfaWQpIGludGVncmF0aW9uLnJvbGVJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucm9sZV9pZCk7XG4gIGlmIChwYXlsb2FkLmVuYWJsZV9lbW90aWNvbnMpIGludGVncmF0aW9uLmVuYWJsZUVtb3RpY29ucyA9IHBheWxvYWQuZW5hYmxlX2Vtb3RpY29ucztcbiAgaWYgKHBheWxvYWQuZXhwaXJlX2JlaGF2aW9yICE9PSB1bmRlZmluZWQpIGludGVncmF0aW9uLmV4cGlyZUJlaGF2aW9yID0gcGF5bG9hZC5leHBpcmVfYmVoYXZpb3I7XG4gIGlmIChwYXlsb2FkLmV4cGlyZV9ncmFjZV9wZXJpb2QpIGludGVncmF0aW9uLmV4cGlyZUdyYWNlUGVyaW9kID0gcGF5bG9hZC5leHBpcmVfZ3JhY2VfcGVyaW9kO1xuICBpZiAocGF5bG9hZC51c2VyKSBpbnRlZ3JhdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKTtcbiAgaWYgKHBheWxvYWQuYWNjb3VudCkgaW50ZWdyYXRpb24uYWNjb3VudCA9IGJvdC50cmFuc2Zvcm1lcnMuaW50ZWdyYXRpb25BY2NvdW50KGJvdCwgcGF5bG9hZC5hY2NvdW50KTtcbiAgaWYgKHBheWxvYWQuc3luY2VkX2F0KSBpbnRlZ3JhdGlvbi5zeW5jZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5zeW5jZWRfYXQpO1xuICBpZiAocGF5bG9hZC5zdWJzY3JpYmVyX2NvdW50KSBpbnRlZ3JhdGlvbi5zdWJzY3JpYmVyQ291bnQgPSBwYXlsb2FkLnN1YnNjcmliZXJfY291bnQ7XG4gIGlmIChwYXlsb2FkLnJldm9rZWQpIGludGVncmF0aW9uLnJldm9rZWQgPSBwYXlsb2FkLnJldm9rZWQ7XG4gIGlmIChwYXlsb2FkLmFwcGxpY2F0aW9uKSBpbnRlZ3JhdGlvbi5hcHBsaWNhdGlvbiA9IGJvdC50cmFuc2Zvcm1lcnMuaW50ZWdyYXRpb25BcHBsaWNhdGlvbihib3QsIHBheWxvYWQuYXBwbGljYXRpb24pO1xuICBpZiAocGF5bG9hZC5zY29wZXMpIGludGVncmF0aW9uLnNjb3BlcyA9IHBheWxvYWQuc2NvcGVzO1xuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignaW50ZWdyYXRpb24nLCBib3QsIHBheWxvYWQsIGludGVncmF0aW9uLCB7XG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZWdyYXRpb25BY2NvdW50KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRJbnRlZ3JhdGlvbkFjY291bnQ+LCBleHRyYT86IHsgcGFydGlhbD86IGJvb2xlYW4gfSkge1xuICBjb25zdCBpbnRlZ3JhdGlvbkFjY291bnQgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxJbnRlZ3JhdGlvbkFjY291bnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocGF5bG9hZC5pZCAhPT0gdW5kZWZpbmVkKSBpbnRlZ3JhdGlvbkFjY291bnQuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKTtcbiAgaWYgKHBheWxvYWQubmFtZSAhPT0gdW5kZWZpbmVkKSBpbnRlZ3JhdGlvbkFjY291bnQubmFtZSA9IHBheWxvYWQubmFtZTtcblxuICByZXR1cm4gY2FsbEN1c3RvbWl6ZXIoJ2ludGVncmF0aW9uQWNjb3VudCcsIGJvdCwgcGF5bG9hZCwgaW50ZWdyYXRpb25BY2NvdW50LCB7XG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZWdyYXRpb25BcHBsaWNhdGlvbihib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkSW50ZWdyYXRpb25BcHBsaWNhdGlvbj4sIGV4dHJhPzogeyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IGludGVncmF0aW9uQXBwbGljYXRpb24gPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxJbnRlZ3JhdGlvbkFwcGxpY2F0aW9uLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHBheWxvYWQuaWQgIT09IHVuZGVmaW5lZCkgaW50ZWdyYXRpb25BcHBsaWNhdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpO1xuICBpZiAocGF5bG9hZC5uYW1lICE9PSB1bmRlZmluZWQpIGludGVncmF0aW9uQXBwbGljYXRpb24ubmFtZSA9IHBheWxvYWQubmFtZTtcbiAgaWYgKHBheWxvYWQuZGVzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkgaW50ZWdyYXRpb25BcHBsaWNhdGlvbi5kZXNjcmlwdGlvbiA9IHBheWxvYWQuZGVzY3JpcHRpb247XG4gIGlmIChwYXlsb2FkLmljb24gIT09IHVuZGVmaW5lZCkgaW50ZWdyYXRpb25BcHBsaWNhdGlvbi5pY29uID0gcGF5bG9hZC5pY29uID8gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmljb24pIDogdW5kZWZpbmVkO1xuICBpZiAocGF5bG9hZC5ib3QgIT09IHVuZGVmaW5lZCkgaW50ZWdyYXRpb25BcHBsaWNhdGlvbi5ib3QgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmJvdCk7XG5cbiAgcmV0dXJuIGNhbGxDdXN0b21pemVyKCdpbnRlZ3JhdGlvbkFwcGxpY2F0aW9uJywgYm90LCBwYXlsb2FkLCBpbnRlZ3JhdGlvbkFwcGxpY2F0aW9uLCB7XG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImljb25IYXNoVG9CaWdJbnQiLCJjYWxsQ3VzdG9taXplciIsInRyYW5zZm9ybUludGVncmF0aW9uIiwiYm90IiwicGF5bG9hZCIsImV4dHJhIiwiaW50ZWdyYXRpb24iLCJndWlsZF9pZCIsImd1aWxkSWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJpZCIsIm5hbWUiLCJ0eXBlIiwiZW5hYmxlZCIsInN5bmNpbmciLCJyb2xlX2lkIiwicm9sZUlkIiwiZW5hYmxlX2Vtb3RpY29ucyIsImVuYWJsZUVtb3RpY29ucyIsImV4cGlyZV9iZWhhdmlvciIsInVuZGVmaW5lZCIsImV4cGlyZUJlaGF2aW9yIiwiZXhwaXJlX2dyYWNlX3BlcmlvZCIsImV4cGlyZUdyYWNlUGVyaW9kIiwidXNlciIsImFjY291bnQiLCJpbnRlZ3JhdGlvbkFjY291bnQiLCJzeW5jZWRfYXQiLCJzeW5jZWRBdCIsIkRhdGUiLCJwYXJzZSIsInN1YnNjcmliZXJfY291bnQiLCJzdWJzY3JpYmVyQ291bnQiLCJyZXZva2VkIiwiYXBwbGljYXRpb24iLCJpbnRlZ3JhdGlvbkFwcGxpY2F0aW9uIiwic2NvcGVzIiwicGFydGlhbCIsInRyYW5zZm9ybUludGVncmF0aW9uQWNjb3VudCIsInRyYW5zZm9ybUludGVncmF0aW9uQXBwbGljYXRpb24iLCJkZXNjcmlwdGlvbiIsImljb24iXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGdCQUFnQixRQUFRLG9CQUFvQjtBQUdy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
|
|
@@ -7,7 +7,9 @@ export declare function transformInteraction(bot: Bot, payload: Partial<DiscordI
|
|
|
7
7
|
shardId?: number;
|
|
8
8
|
partial?: boolean;
|
|
9
9
|
}): any;
|
|
10
|
-
export declare function transformInteractionDataOption(bot: Bot, option: DiscordInteractionDataOption
|
|
10
|
+
export declare function transformInteractionDataOption(bot: Bot, option: Partial<DiscordInteractionDataOption>, extra?: {
|
|
11
|
+
partial?: boolean;
|
|
12
|
+
}): any;
|
|
11
13
|
export declare function transformInteractionDataResolved(bot: Bot, payload: Partial<DiscordInteractionDataResolved>, extra?: {
|
|
12
14
|
shardId?: number;
|
|
13
15
|
guildId?: BigString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../src/transformers/interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,kCAAkC,EACvC,KAAK,4BAA4B,EACjC,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,EAIhC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,iBAAiB,EAAiC,MAAM,yBAAyB,CAAC;AAEtJ,OAAO,KAAK,EACV,WAAW,EAMZ,MAAM,YAAY,CAAC;AAIpB,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,WAAW,EAAE,yBAAyB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,yBAAyB,CAAC,SAAS,CA8GpI,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAkEnI;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,4BAA4B,
|
|
1
|
+
{"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../src/transformers/interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,kCAAkC,EACvC,KAAK,4BAA4B,EACjC,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,EAIhC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,iBAAiB,EAAiC,MAAM,yBAAyB,CAAC;AAEtJ,OAAO,KAAK,EACV,WAAW,EAMZ,MAAM,YAAY,CAAC;AAIpB,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,WAAW,EAAE,yBAAyB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,yBAAyB,CAAC,SAAS,CA8GpI,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAkEnI;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,4BAA4B,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAYpI;AAED,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,CAAC,8BAA8B,CAAC,EAChD,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OA+ErE;AAED,wBAAgB,oCAAoC,CAClD,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,CAAC,kCAAkC,CAAC,EACpD,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAahD;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,0BAA0B,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAcjI;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,CAAC,0BAA0B,CAAC,EAC5C,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAahD"}
|
|
@@ -145,7 +145,7 @@ export function transformInteraction(bot, payload, extra) {
|
|
|
145
145
|
shardId: extra?.shardId,
|
|
146
146
|
guildId
|
|
147
147
|
}) : undefined,
|
|
148
|
-
options: payload.data.options?.map((opt)=>bot.transformers.
|
|
148
|
+
options: payload.data.options?.map((opt)=>bot.transformers.interactionDataOption(bot, opt)),
|
|
149
149
|
targetId: payload.data.target_id ? bot.transformers.snowflake(payload.data.target_id) : undefined
|
|
150
150
|
};
|
|
151
151
|
}
|
|
@@ -154,15 +154,16 @@ export function transformInteraction(bot, payload, extra) {
|
|
|
154
154
|
partial: extra?.partial ?? false
|
|
155
155
|
});
|
|
156
156
|
}
|
|
157
|
-
export function transformInteractionDataOption(bot, option) {
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
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
|
+
});
|
|
166
167
|
}
|
|
167
168
|
export function transformInteractionDataResolved(bot, payload, extra) {
|
|
168
169
|
const transformed = {};
|
|
@@ -282,4 +283,4 @@ export function transformInteractionResource(bot, payload, extra) {
|
|
|
282
283
|
});
|
|
283
284
|
}
|
|
284
285
|
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBCaWdTdHJpbmcsXG4gIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2ssXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25EYXRhT3B0aW9uLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25SZXNvdXJjZSxcbiAgSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLFxuICBJbnRlcmFjdGlvblR5cGVzLFxuICBNZXNzYWdlRmxhZ3MsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICdAZGlzY29yZGVuby91dGlscyc7XG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcyc7XG5pbXBvcnQgdHlwZSB7IEludGVyYWN0aW9uUmVzb2x2ZWREYXRhQ2hhbm5lbCB9IGZyb20gJy4uL2NvbW1hbmRPcHRpb25zUGFyc2VyLmpzJztcbmltcG9ydCB0eXBlIHsgQ29tcGxldGVEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvciwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vZGVzaXJlZFByb3BlcnRpZXMuanMnO1xuaW1wb3J0IHsgY2FsbEN1c3RvbWl6ZXIgfSBmcm9tICcuLi90cmFuc2Zvcm1lcnMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBJbnRlcmFjdGlvbixcbiAgSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICBJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxuLy8gQXNzdW1lIHdlIGhhdmUgYWxsIGRlc2lyZWQgcHJvcGVydGllcyBmb3IgdGhpcyBvciBlbHNlIHR5cGVzY3JpcHQgd2lsbCBnZXQgdmVyeSBjb25mdXNlZCBmb3IgdGhlIHJldHVybiB0eXBlcyBvZiB0aGVzZSBmdW5jdGlvbnMuXG4vLyBUaGlzIGlzIHVzZWQgYXMgYSBwcm90b3R5cGUsIHNvIHRoZSBhY3R1YWwgdHlwZSB3aXRoIHRoZSB1c2VyIGRlc2lyZWQgcHJvcGVydGllcyB3aWxsIGJlIHNldCBsYXRlci5cbmV4cG9ydCBjb25zdCBiYXNlSW50ZXJhY3Rpb246IFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uLCBDb21wbGV0ZURlc2lyZWRQcm9wZXJ0aWVzPHt9LCB0cnVlPiwgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvci5SZW1vdmVLZXk+ID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uLCBDb21wbGV0ZURlc2lyZWRQcm9wZXJ0aWVzPHt9LCB0cnVlPiwgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvci5SZW1vdmVLZXk+KSxcblxuICBhc3luYyByZXNwb25kKHJlc3BvbnNlLCBvcHRpb25zKSB7XG4gICAgbGV0IHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlO1xuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9O1xuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHR5cGUsIHVzZSBpdFxuICAgIGlmIChvcHRpb25zPy50eXBlKSB0eXBlID0gb3B0aW9ucy50eXBlO1xuICAgIC8vIE90aGVyd2lzZSwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGVsc2Uge1xuICAgICAgaWYgKHJlc3BvbnNlLnRpdGxlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsO1xuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0O1xuICAgIH1cblxuICAgIC8vIE1vZGFscyBjYW5ub3QgYmUgY2hhaW5lZFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQgJiYgdHlwZSA9PT0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVzcG9uZCB0byBhIG1vZGFsIGludGVyYWN0aW9uIHdpdGggYW5vdGhlciBtb2RhbC4nKTtcblxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkge1xuICAgICAgcmVzcG9uc2UuZmxhZ3MgPz89IDA7XG4gICAgICByZXNwb25zZS5mbGFncyB8PSBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsO1xuICAgIH1cblxuICAgIC8vIFNpbmNlIHRoaXMgaGFzIGFscmVhZHkgYmVlbiBnaXZlbiBhIHJlc3BvbnNlLCBhbnkgZnVydGhlciByZXNwb25zZXMgbXVzdCBiZSBmb2xsb3d1cHMuXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSByZXR1cm4gYXdhaXQgdGhpcy5zZW5kRm9sbG93dXBNZXNzYWdlKHJlc3BvbnNlKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHsgdHlwZSwgZGF0YTogcmVzcG9uc2UgfSxcbiAgICAgIHsgd2l0aFJlc3BvbnNlOiBvcHRpb25zPy53aXRoUmVzcG9uc2UgfSxcbiAgICApO1xuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9LFxuICBhc3luYyBzZW5kRm9sbG93dXBNZXNzYWdlKHJlc3BvbnNlKSB7XG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9O1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCByZXNwb25zZSk7XG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKTtcblxuICAgIC8vIElmIHVzZXIgcHJvdmlkZXMgYSBzdHJpbmcsIGNoYW5nZSBpdCB0byBhIHJlc3BvbnNlIG9iamVjdFxuICAgIGlmICh0eXBlb2YgcmVzcG9uc2UgPT09ICdzdHJpbmcnKSByZXNwb25zZSA9IHsgY29udGVudDogcmVzcG9uc2UgfTtcblxuICAgIGlmIChtZXNzYWdlSWQpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5lZGl0Rm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIG1lc3NhZ2VJZCwgcmVzcG9uc2UpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgaW50ZXJhY3Rpb24gaGFzIG5vdCBiZWVuIHJlc3BvbmRlZCB0byB5ZXQgYW5kIHRoaXMgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShcbiAgICAgICAgdGhpcy5pZCxcbiAgICAgICAgdGhpcy50b2tlbixcbiAgICAgICAgeyB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuVXBkYXRlTWVzc2FnZSwgZGF0YTogcmVzcG9uc2UgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICk7XG4gICAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWU7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLmVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbiwgcmVzcG9uc2UpO1xuICB9LFxuICBhc3luYyBkZWZlckVkaXQob3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKTtcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpO1xuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50ICYmIHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBkZWZlciB0byB0aGVuIGVkaXQgYW4gaW50ZXJhY3Rpb24gdGhhdCBpc24ndCBhIE1lc3NhZ2VDb21wb25lbnQgb3IgTW9kYWxTdWJtaXQgaW50ZXJhY3Rpb24uXCIpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShcbiAgICAgIHRoaXMuaWQsXG4gICAgICB0aGlzLnRva2VuLFxuICAgICAgeyB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuRGVmZXJyZWRVcGRhdGVNZXNzYWdlIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sXG4gIGFzeW5jIGRlZmVyKGlzUHJpdmF0ZSwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVmZXIgYW4gYWxyZWFkeSByZXNwb25kZWQgaW50ZXJhY3Rpb24uJyk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgdGhpcy5pZCxcbiAgICAgIHRoaXMudG9rZW4sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGZsYWdzOiBpc1ByaXZhdGUgPyBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWU7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSxcbiAgYXN5bmMgZGVsZXRlKG1lc3NhZ2VJZCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWxldGUgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uJyk7XG5cbiAgICBpZiAobWVzc2FnZUlkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIG1lc3NhZ2VJZCk7XG4gICAgZWxzZSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMudG9rZW4pO1xuICB9LFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uKGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRJbnRlcmFjdGlvbj4sIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyOyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvbjtcbiAgY29uc3QgaW50ZXJhY3Rpb246IFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4gPSBPYmplY3QuY3JlYXRlKGJhc2VJbnRlcmFjdGlvbik7XG5cbiAgY29uc3QgZ3VpbGRJZCA9IHBheWxvYWQuZ3VpbGRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkX2lkKSA6IHVuZGVmaW5lZDtcbiAgaW50ZXJhY3Rpb24uYm90ID0gYm90O1xuICBpbnRlcmFjdGlvbi5hY2tub3dsZWRnZWQgPSBmYWxzZTtcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKTtcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5hcHBsaWNhdGlvbl9pZCkgaW50ZXJhY3Rpb24uYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpO1xuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGludGVyYWN0aW9uLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy50b2tlbiAmJiBwYXlsb2FkLnRva2VuKSBpbnRlcmFjdGlvbi50b2tlbiA9IHBheWxvYWQudG9rZW47XG4gIGlmIChwcm9wcy52ZXJzaW9uICYmIHBheWxvYWQudmVyc2lvbikgaW50ZXJhY3Rpb24udmVyc2lvbiA9IHBheWxvYWQudmVyc2lvbjtcbiAgaWYgKHByb3BzLmxvY2FsZSAmJiBwYXlsb2FkLmxvY2FsZSkgaW50ZXJhY3Rpb24ubG9jYWxlID0gcGF5bG9hZC5sb2NhbGU7XG4gIGlmIChwcm9wcy5ndWlsZExvY2FsZSAmJiBwYXlsb2FkLmd1aWxkX2xvY2FsZSkgaW50ZXJhY3Rpb24uZ3VpbGRMb2NhbGUgPSBwYXlsb2FkLmd1aWxkX2xvY2FsZTtcbiAgaWYgKHByb3BzLmd1aWxkICYmIHBheWxvYWQuZ3VpbGQpIGludGVyYWN0aW9uLmd1aWxkID0gYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHBheWxvYWQuZ3VpbGQsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQsIHBhcnRpYWw6IHRydWUgfSk7XG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIGludGVyYWN0aW9uLmd1aWxkSWQgPSBndWlsZElkO1xuICBpZiAocHJvcHMudXNlcikge1xuICAgIGlmIChwYXlsb2FkLm1lbWJlcj8udXNlcikgaW50ZXJhY3Rpb24udXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQubWVtYmVyPy51c2VyKTtcbiAgICBlbHNlIGlmIChwYXlsb2FkLnVzZXIpIGludGVyYWN0aW9uLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpO1xuICB9XG4gIGlmIChwcm9wcy5hcHBQZXJtaXNzaW9ucyAmJiBwYXlsb2FkLmFwcF9wZXJtaXNzaW9ucykgaW50ZXJhY3Rpb24uYXBwUGVybWlzc2lvbnMgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcF9wZXJtaXNzaW9ucyk7XG4gIGlmIChwcm9wcy5tZXNzYWdlICYmIHBheWxvYWQubWVzc2FnZSkgaW50ZXJhY3Rpb24ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KTtcbiAgaWYgKHByb3BzLmNoYW5uZWwgJiYgcGF5bG9hZC5jaGFubmVsKSBpbnRlcmFjdGlvbi5jaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgcGF5bG9hZC5jaGFubmVsLCB7IGd1aWxkSWQsIHBhcnRpYWw6IHRydWUgfSk7XG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5jaGFubmVsX2lkKSBpbnRlcmFjdGlvbi5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWxfaWQpO1xuICBpZiAocHJvcHMubWVtYmVyICYmIGd1aWxkSWQgJiYgcGF5bG9hZC5tZW1iZXIpXG4gICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lbWJlciwge1xuICAgICAgZ3VpbGRJZCxcbiAgICAgIHVzZXJJZDogcGF5bG9hZC5tZW1iZXI/LnVzZXIuaWQgPz8gcGF5bG9hZC51c2VyPy5pZCxcbiAgICB9KTtcbiAgaWYgKHByb3BzLmVudGl0bGVtZW50cyAmJiBwYXlsb2FkLmVudGl0bGVtZW50cykgaW50ZXJhY3Rpb24uZW50aXRsZW1lbnRzID0gcGF5bG9hZC5lbnRpdGxlbWVudHMubWFwKChlKSA9PiBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgZSkpO1xuICBpZiAocHJvcHMuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyAmJiBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVycykge1xuICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMgPSB7fTtcblxuICAgIGlmIChwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuR3VpbGRJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddLFxuICAgICAgKTtcbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKTtcbiAgfVxuICBpZiAocHJvcHMuY29udGV4dCAmJiBwYXlsb2FkLmNvbnRleHQpIGludGVyYWN0aW9uLmNvbnRleHQgPSBwYXlsb2FkLmNvbnRleHQ7XG4gIGlmIChwcm9wcy5hdHRhY2htZW50U2l6ZUxpbWl0ICYmIHBheWxvYWQuYXR0YWNobWVudF9zaXplX2xpbWl0KSBpbnRlcmFjdGlvbi5hdHRhY2htZW50U2l6ZUxpbWl0ID0gcGF5bG9hZC5hdHRhY2htZW50X3NpemVfbGltaXQ7XG4gIGlmIChwcm9wcy5kYXRhICYmIHBheWxvYWQuZGF0YSkge1xuICAgIGludGVyYWN0aW9uLmRhdGEgPSB7XG4gICAgICB0eXBlOiBwYXlsb2FkLmRhdGEudHlwZSxcbiAgICAgIGNvbXBvbmVudFR5cGU6IHBheWxvYWQuZGF0YS5jb21wb25lbnRfdHlwZSxcbiAgICAgIGN1c3RvbUlkOiBwYXlsb2FkLmRhdGEuY3VzdG9tX2lkLFxuICAgICAgY29tcG9uZW50czogcGF5bG9hZC5kYXRhLmNvbXBvbmVudHM/Lm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpLFxuICAgICAgdmFsdWVzOiBwYXlsb2FkLmRhdGEudmFsdWVzLFxuICAgICAgaWQ6IHBheWxvYWQuZGF0YS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZGF0YS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICBuYW1lOiBwYXlsb2FkLmRhdGEubmFtZSxcbiAgICAgIHJlc29sdmVkOiBwYXlsb2FkLmRhdGEucmVzb2x2ZWRcbiAgICAgICAgPyBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdCwgcGF5bG9hZC5kYXRhLnJlc29sdmVkLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkLCBndWlsZElkIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogcGF5bG9hZC5kYXRhLm9wdGlvbnM/Lm1hcCgob3B0KSA9PiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHQpKSxcbiAgICAgIHRhcmdldElkOiBwYXlsb2FkLmRhdGEudGFyZ2V0X2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5kYXRhLnRhcmdldF9pZCkgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignaW50ZXJhY3Rpb24nLCBib3QsIHBheWxvYWQsIGludGVyYWN0aW9uLCB7XG4gICAgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQsXG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhT3B0aW9uKGJvdDogQm90LCBvcHRpb246IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24pIHtcbiAgY29uc3Qgb3B0ID0ge1xuICAgIG5hbWU6IG9wdGlvbi5uYW1lLFxuICAgIHR5cGU6IG9wdGlvbi50eXBlLFxuICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgb3B0aW9uczogb3B0aW9uLm9wdGlvbnMsXG4gICAgZm9jdXNlZDogb3B0aW9uLmZvY3VzZWQsXG4gIH0gYXMgSW50ZXJhY3Rpb25EYXRhT3B0aW9uO1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHRpb24sIG9wdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChcbiAgYm90OiBCb3QsXG4gIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkPixcbiAgZXh0cmE/OiB7IHNoYXJkSWQ/OiBudW1iZXI7IGd1aWxkSWQ/OiBCaWdTdHJpbmc7IHBhcnRpYWw/OiBib29sZWFuIH0sXG4pIHtcbiAgY29uc3QgdHJhbnNmb3JtZWQ6IFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uRGF0YVJlc29sdmVkLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvci5SZW1vdmVLZXk+ID0ge307XG5cbiAgaWYgKHBheWxvYWQubWVzc2FnZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZXNzYWdlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5tZXNzYWdlcykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHZhbHVlLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkLCBwYXJ0aWFsOiB0cnVlIH0pO1xuICAgICAgICBjb25zdCBpZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGtleSk7XG5cbiAgICAgICAgcmV0dXJuIFtpZCwgbWVzc2FnZV07XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgaWYgKHBheWxvYWQudXNlcnMpIHtcbiAgICB0cmFuc2Zvcm1lZC51c2VycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC51c2VycykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgdXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHZhbHVlKTtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpO1xuXG4gICAgICAgIHJldHVybiBbaWQsIHVzZXJdO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGlmIChleHRyYT8uZ3VpbGRJZCAmJiBwYXlsb2FkLm1lbWJlcnMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZW1iZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLm1lbWJlcnMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IG1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgdmFsdWUsIHtcbiAgICAgICAgICBndWlsZElkOiBleHRyYS5ndWlsZElkLFxuICAgICAgICAgIHVzZXJJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KSxcbiAgICAgICAgICBwYXJ0aWFsOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpO1xuXG4gICAgICAgIHJldHVybiBbaWQsIG1lbWJlcl07XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgaWYgKGV4dHJhPy5ndWlsZElkICYmIHBheWxvYWQucm9sZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5yb2xlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yb2xlcykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3Qgcm9sZSA9IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHZhbHVlLCB7IGd1aWxkSWQ6IGV4dHJhLmd1aWxkSWQgfSk7XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KTtcblxuICAgICAgICByZXR1cm4gW2lkLCByb2xlXTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBpZiAocGF5bG9hZC5jaGFubmVscykge1xuICAgIHRyYW5zZm9ybWVkLmNoYW5uZWxzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLmNoYW5uZWxzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBjaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgdmFsdWUsIHsgcGFydGlhbDogdHJ1ZSB9KTtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpO1xuXG4gICAgICAgIHJldHVybiBbaWQsIGNoYW5uZWwgYXMgSW50ZXJhY3Rpb25SZXNvbHZlZERhdGFDaGFubmVsPFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLlJlbW92ZUtleT5dO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGlmIChwYXlsb2FkLmF0dGFjaG1lbnRzKSB7XG4gICAgdHJhbnNmb3JtZWQuYXR0YWNobWVudHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQuYXR0YWNobWVudHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KTtcbiAgICAgICAgY29uc3QgYXR0YWNobWVudCA9IGJvdC50cmFuc2Zvcm1lcnMuYXR0YWNobWVudChib3QsIHZhbHVlKTtcblxuICAgICAgICByZXR1cm4gW2lkLCBhdHRhY2htZW50XTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gY2FsbEN1c3RvbWl6ZXIoJ2ludGVyYWN0aW9uRGF0YVJlc29sdmVkJywgYm90LCBwYXlsb2FkLCB0cmFuc2Zvcm1lZCwge1xuICAgIHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkLFxuICAgIGd1aWxkSWQ6IGV4dHJhPy5ndWlsZElkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZXh0cmEuZ3VpbGRJZCkgOiB1bmRlZmluZWQsXG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKFxuICBib3Q6IEJvdCxcbiAgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlPixcbiAgZXh0cmE/OiB7IHNoYXJkSWQ/OiBudW1iZXI7IHBhcnRpYWw/OiBib29sZWFuIH0sXG4pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZTtcbiAgY29uc3QgcmVzcG9uc2UgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb24gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbikgcmVzcG9uc2UuaW50ZXJhY3Rpb24gPSBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLmludGVyYWN0aW9uKTtcbiAgaWYgKHByb3BzLnJlc291cmNlICYmIHBheWxvYWQucmVzb3VyY2UpXG4gICAgcmVzcG9uc2UucmVzb3VyY2UgPSBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uUmVzb3VyY2UoYm90LCBwYXlsb2FkLnJlc291cmNlLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkIH0pO1xuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlJywgYm90LCBwYXlsb2FkLCByZXNwb25zZSwge1xuICAgIHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkLFxuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/IGZhbHNlLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2soYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2s+LCBleHRyYT86IHsgcGFydGlhbD86IGJvb2xlYW4gfSkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25DYWxsYmFjaztcbiAgY29uc3QgY2FsbGJhY2sgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxJbnRlcmFjdGlvbkNhbGxiYWNrLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGNhbGxiYWNrLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZCk7XG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgY2FsbGJhY2sudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmFjdGl2aXR5SW5zdGFuY2VJZCAmJiBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkKSBjYWxsYmFjay5hY3Rpdml0eUluc3RhbmNlSWQgPSBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkO1xuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlSWQgJiYgcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2lkKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9pZCk7XG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VFcGhlbWVyYWwgJiYgcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2VwaGVtZXJhbCkgY2FsbGJhY2sucmVzcG9uc2VNZXNzYWdlRXBoZW1lcmFsID0gcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2VwaGVtZXJhbDtcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgJiYgcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2xvYWRpbmcpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgPSBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfbG9hZGluZztcblxuICByZXR1cm4gY2FsbEN1c3RvbWl6ZXIoJ2ludGVyYWN0aW9uQ2FsbGJhY2snLCBib3QsIHBheWxvYWQsIGNhbGxiYWNrLCB7XG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25SZXNvdXJjZShcbiAgYm90OiBCb3QsXG4gIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZEludGVyYWN0aW9uUmVzb3VyY2U+LFxuICBleHRyYT86IHsgc2hhcmRJZD86IG51bWJlcjsgcGFydGlhbD86IGJvb2xlYW4gfSxcbikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25SZXNvdXJjZTtcbiAgY29uc3QgcmVzb3VyY2UgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxJbnRlcmFjdGlvblJlc291cmNlLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSByZXNvdXJjZS50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuYWN0aXZpdHlJbnN0YW5jZSAmJiBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlKSByZXNvdXJjZS5hY3Rpdml0eUluc3RhbmNlID0gcGF5bG9hZC5hY3Rpdml0eV9pbnN0YW5jZTtcbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlKSByZXNvdXJjZS5tZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgcGF5bG9hZC5tZXNzYWdlLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkIH0pO1xuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignaW50ZXJhY3Rpb25SZXNvdXJjZScsIGJvdCwgcGF5bG9hZCwgcmVzb3VyY2UsIHtcbiAgICBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCxcbiAgICBwYXJ0aWFsOiBleHRyYT8ucGFydGlhbCA/PyBmYWxzZSxcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzIiwiSW50ZXJhY3Rpb25UeXBlcyIsIk1lc3NhZ2VGbGFncyIsIkNvbGxlY3Rpb24iLCJjYWxsQ3VzdG9taXplciIsImJhc2VJbnRlcmFjdGlvbiIsInVuZGVmaW5lZCIsInJlc3BvbmQiLCJyZXNwb25zZSIsIm9wdGlvbnMiLCJ0eXBlIiwiQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlIiwiY29udGVudCIsInRpdGxlIiwiTW9kYWwiLCJBcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUiLCJBcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGVSZXN1bHQiLCJNb2RhbFN1Ym1pdCIsIkVycm9yIiwiaXNQcml2YXRlIiwiZmxhZ3MiLCJFcGhlbWVyYWwiLCJhY2tub3dsZWRnZWQiLCJzZW5kRm9sbG93dXBNZXNzYWdlIiwicmVzdWx0IiwiYm90IiwiaGVscGVycyIsInNlbmRJbnRlcmFjdGlvblJlc3BvbnNlIiwiaWQiLCJ0b2tlbiIsImRhdGEiLCJ3aXRoUmVzcG9uc2UiLCJlZGl0IiwibWVzc2FnZUlkIiwiZWRpdEZvbGxvd3VwTWVzc2FnZSIsIk1lc3NhZ2VDb21wb25lbnQiLCJVcGRhdGVNZXNzYWdlIiwiZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImRlZmVyRWRpdCIsIkRlZmVycmVkVXBkYXRlTWVzc2FnZSIsImRlZmVyIiwiRGVmZXJyZWRDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UiLCJkZWxldGUiLCJkZWxldGVGb2xsb3d1cE1lc3NhZ2UiLCJkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbiIsInBheWxvYWQiLCJleHRyYSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpbnRlcmFjdGlvbiIsIk9iamVjdCIsImNyZWF0ZSIsImd1aWxkSWQiLCJndWlsZF9pZCIsInNub3dmbGFrZSIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsInZlcnNpb24iLCJsb2NhbGUiLCJndWlsZExvY2FsZSIsImd1aWxkX2xvY2FsZSIsImd1aWxkIiwic2hhcmRJZCIsInBhcnRpYWwiLCJ1c2VyIiwibWVtYmVyIiwiYXBwUGVybWlzc2lvbnMiLCJhcHBfcGVybWlzc2lvbnMiLCJtZXNzYWdlIiwiY2hhbm5lbCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJ1c2VySWQiLCJlbnRpdGxlbWVudHMiLCJtYXAiLCJlIiwiZW50aXRsZW1lbnQiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJjb250ZXh0IiwiYXR0YWNobWVudFNpemVMaW1pdCIsImF0dGFjaG1lbnRfc2l6ZV9saW1pdCIsImNvbXBvbmVudFR5cGUiLCJjb21wb25lbnRfdHlwZSIsImN1c3RvbUlkIiwiY3VzdG9tX2lkIiwiY29tcG9uZW50cyIsImNvbXBvbmVudCIsInZhbHVlcyIsIm5hbWUiLCJyZXNvbHZlZCIsImludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwib3B0IiwiaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyIsInRhcmdldElkIiwidGFyZ2V0X2lkIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhT3B0aW9uIiwib3B0aW9uIiwidmFsdWUiLCJmb2N1c2VkIiwiY3VzdG9taXplcnMiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCIsInRyYW5zZm9ybWVkIiwibWVzc2FnZXMiLCJlbnRyaWVzIiwia2V5IiwidXNlcnMiLCJtZW1iZXJzIiwicm9sZXMiLCJyb2xlIiwiY2hhbm5lbHMiLCJhdHRhY2htZW50cyIsImF0dGFjaG1lbnQiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UiLCJpbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UiLCJpbnRlcmFjdGlvbkNhbGxiYWNrIiwicmVzb3VyY2UiLCJpbnRlcmFjdGlvblJlc291cmNlIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFjayIsImNhbGxiYWNrIiwiYWN0aXZpdHlJbnN0YW5jZUlkIiwiYWN0aXZpdHlfaW5zdGFuY2VfaWQiLCJyZXNwb25zZU1lc3NhZ2VJZCIsInJlc3BvbnNlX21lc3NhZ2VfaWQiLCJyZXNwb25zZU1lc3NhZ2VFcGhlbWVyYWwiLCJyZXNwb25zZV9tZXNzYWdlX2VwaGVtZXJhbCIsInJlc3BvbnNlTWVzc2FnZUxvYWRpbmciLCJyZXNwb25zZV9tZXNzYWdlX2xvYWRpbmciLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvblJlc291cmNlIiwiYWN0aXZpdHlJbnN0YW5jZSIsImFjdGl2aXR5X2luc3RhbmNlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUVFQSxpQ0FBaUMsRUFPakNDLHdCQUF3QixFQUN4QkMsZ0JBQWdCLEVBQ2hCQyxZQUFZLFFBQ1Asb0JBQW9CO0FBQzNCLFNBQVNDLFVBQVUsUUFBUSxvQkFBb0I7QUFJL0MsU0FBU0MsY0FBYyxRQUFRLHFCQUFxQjtBQVVwRCxvSUFBb0k7QUFDcEksc0dBQXNHO0FBQ3RHLE9BQU8sTUFBTUMsa0JBQTRIO0lBQ3ZJLDJFQUEyRTtJQUMzRSxHQUFJQyxTQUFTO0lBRWIsTUFBTUMsU0FBUUMsUUFBUSxFQUFFQyxPQUFPO1FBQzdCLElBQUlDLE9BQU9WLHlCQUF5Qlcsd0JBQXdCO1FBRTVELDREQUE0RDtRQUM1RCxJQUFJLE9BQU9ILGFBQWEsVUFBVUEsV0FBVztZQUFFSSxTQUFTSjtRQUFTO1FBRWpFLGtDQUFrQztRQUNsQyxJQUFJ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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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
|
|
@@ -3,5 +3,7 @@ import type { Bot } from '../bot.js';
|
|
|
3
3
|
export declare function transformSticker(bot: Bot, payload: Partial<DiscordSticker>, extra?: {
|
|
4
4
|
partial?: boolean;
|
|
5
5
|
}): any;
|
|
6
|
-
export declare function transformStickerPack(bot: Bot, payload: DiscordStickerPack
|
|
6
|
+
export declare function transformStickerPack(bot: Bot, payload: Partial<DiscordStickerPack>, extra?: {
|
|
7
|
+
partial?: boolean;
|
|
8
|
+
}): any;
|
|
7
9
|
//# sourceMappingURL=sticker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sticker.d.ts","sourceRoot":"","sources":["../../src/transformers/sticker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAKrC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAmBzG;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"sticker.d.ts","sourceRoot":"","sources":["../../src/transformers/sticker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAKrC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAmBzG;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,OAcjH"}
|
|
@@ -17,17 +17,18 @@ export function transformSticker(bot, payload, extra) {
|
|
|
17
17
|
partial: extra?.partial ?? false
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
|
-
export function transformStickerPack(bot, payload) {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
20
|
+
export function transformStickerPack(bot, payload, extra) {
|
|
21
|
+
const stickerPack = {};
|
|
22
|
+
if (payload.id) stickerPack.id = bot.transformers.snowflake(payload.id);
|
|
23
|
+
if (payload.stickers) stickerPack.stickers = payload.stickers.map((sticker)=>bot.transformers.sticker(bot, sticker));
|
|
24
|
+
if (payload.name) stickerPack.name = payload.name;
|
|
25
|
+
if (payload.sku_id) stickerPack.skuId = bot.transformers.snowflake(payload.sku_id);
|
|
26
|
+
if (payload.cover_sticker_id) stickerPack.coverStickerId = bot.transformers.snowflake(payload.cover_sticker_id);
|
|
27
|
+
if (payload.description) stickerPack.description = payload.description;
|
|
28
|
+
if (payload.banner_asset_id) stickerPack.bannerAssetId = bot.transformers.snowflake(payload.banner_asset_id);
|
|
29
|
+
return callCustomizer('stickerPack', bot, payload, stickerPack, {
|
|
30
|
+
partial: extra?.partial ?? false
|
|
31
|
+
});
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvc3RpY2tlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRTdGlja2VyLCBEaXNjb3JkU3RpY2tlclBhY2sgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcyc7XG5pbXBvcnQgdHlwZSB7IERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IsIFNldHVwRGVzaXJlZFByb3BzLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyB9IGZyb20gJy4uL2Rlc2lyZWRQcm9wZXJ0aWVzLmpzJztcbmltcG9ydCB7IGNhbGxDdXN0b21pemVyIH0gZnJvbSAnLi4vdHJhbnNmb3JtZXJzLmpzJztcbmltcG9ydCB0eXBlIHsgU3RpY2tlciwgU3RpY2tlclBhY2sgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVN0aWNrZXIoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZFN0aWNrZXI+LCBleHRyYT86IHsgcGFydGlhbD86IGJvb2xlYW4gfSkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuc3RpY2tlcjtcbiAgY29uc3Qgc3RpY2tlciA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPFN0aWNrZXIsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc3RpY2tlci5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpO1xuICBpZiAocHJvcHMucGFja0lkICYmIHBheWxvYWQucGFja19pZCkgc3RpY2tlci5wYWNrSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnBhY2tfaWQpO1xuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIHN0aWNrZXIubmFtZSA9IHBheWxvYWQubmFtZTtcbiAgaWYgKHByb3BzLmRlc2NyaXB0aW9uICYmIHBheWxvYWQuZGVzY3JpcHRpb24pIHN0aWNrZXIuZGVzY3JpcHRpb24gPSBwYXlsb2FkLmRlc2NyaXB0aW9uO1xuICBpZiAocHJvcHMudGFncyAmJiBwYXlsb2FkLnRhZ3MpIHN0aWNrZXIudGFncyA9IHBheWxvYWQudGFncztcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBzdGlja2VyLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5mb3JtYXRUeXBlICYmIHBheWxvYWQuZm9ybWF0X3R5cGUpIHN0aWNrZXIuZm9ybWF0VHlwZSA9IHBheWxvYWQuZm9ybWF0X3R5cGU7XG4gIGlmIChwcm9wcy5hdmFpbGFibGUgJiYgcGF5bG9hZC5hdmFpbGFibGUpIHN0aWNrZXIuYXZhaWxhYmxlID0gcGF5bG9hZC5hdmFpbGFibGU7XG4gIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuZ3VpbGRfaWQpIHN0aWNrZXIuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGRfaWQpO1xuICBpZiAocHJvcHMudXNlciAmJiBwYXlsb2FkLnVzZXIpIHN0aWNrZXIudXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudXNlcik7XG4gIGlmIChwcm9wcy5zb3J0VmFsdWUgJiYgcGF5bG9hZC5zb3J0X3ZhbHVlICE9PSB1bmRlZmluZWQpIHN0aWNrZXIuc29ydFZhbHVlID0gcGF5bG9hZC5zb3J0X3ZhbHVlO1xuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignc3RpY2tlcicsIGJvdCwgcGF5bG9hZCwgc3RpY2tlciwge1xuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvc3RpY2tlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRTdGlja2VyLCBEaXNjb3JkU3RpY2tlclBhY2sgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcyc7XG5pbXBvcnQgdHlwZSB7IERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IsIFNldHVwRGVzaXJlZFByb3BzLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyB9IGZyb20gJy4uL2Rlc2lyZWRQcm9wZXJ0aWVzLmpzJztcbmltcG9ydCB7IGNhbGxDdXN0b21pemVyIH0gZnJvbSAnLi4vdHJhbnNmb3JtZXJzLmpzJztcbmltcG9ydCB0eXBlIHsgU3RpY2tlciwgU3RpY2tlclBhY2sgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVN0aWNrZXIoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZFN0aWNrZXI+LCBleHRyYT86IHsgcGFydGlhbD86IGJvb2xlYW4gfSkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuc3RpY2tlcjtcbiAgY29uc3Qgc3RpY2tlciA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPFN0aWNrZXIsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc3RpY2tlci5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpO1xuICBpZiAocHJvcHMucGFja0lkICYmIHBheWxvYWQucGFja19pZCkgc3RpY2tlci5wYWNrSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnBhY2tfaWQpO1xuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIHN0aWNrZXIubmFtZSA9IHBheWxvYWQubmFtZTtcbiAgaWYgKHByb3BzLmRlc2NyaXB0aW9uICYmIHBheWxvYWQuZGVzY3JpcHRpb24pIHN0aWNrZXIuZGVzY3JpcHRpb24gPSBwYXlsb2FkLmRlc2NyaXB0aW9uO1xuICBpZiAocHJvcHMudGFncyAmJiBwYXlsb2FkLnRhZ3MpIHN0aWNrZXIudGFncyA9IHBheWxvYWQudGFncztcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBzdGlja2VyLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5mb3JtYXRUeXBlICYmIHBheWxvYWQuZm9ybWF0X3R5cGUpIHN0aWNrZXIuZm9ybWF0VHlwZSA9IHBheWxvYWQuZm9ybWF0X3R5cGU7XG4gIGlmIChwcm9wcy5hdmFpbGFibGUgJiYgcGF5bG9hZC5hdmFpbGFibGUpIHN0aWNrZXIuYXZhaWxhYmxlID0gcGF5bG9hZC5hdmFpbGFibGU7XG4gIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuZ3VpbGRfaWQpIHN0aWNrZXIuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGRfaWQpO1xuICBpZiAocHJvcHMudXNlciAmJiBwYXlsb2FkLnVzZXIpIHN0aWNrZXIudXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudXNlcik7XG4gIGlmIChwcm9wcy5zb3J0VmFsdWUgJiYgcGF5bG9hZC5zb3J0X3ZhbHVlICE9PSB1bmRlZmluZWQpIHN0aWNrZXIuc29ydFZhbHVlID0gcGF5bG9hZC5zb3J0X3ZhbHVlO1xuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignc3RpY2tlcicsIGJvdCwgcGF5bG9hZCwgc3RpY2tlciwge1xuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/IGZhbHNlLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVN0aWNrZXJQYWNrKGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRTdGlja2VyUGFjaz4sIGV4dHJhPzogeyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHN0aWNrZXJQYWNrID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8U3RpY2tlclBhY2ssIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocGF5bG9hZC5pZCkgc3RpY2tlclBhY2suaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKTtcbiAgaWYgKHBheWxvYWQuc3RpY2tlcnMpIHN0aWNrZXJQYWNrLnN0aWNrZXJzID0gcGF5bG9hZC5zdGlja2Vycy5tYXAoKHN0aWNrZXIpID0+IGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHN0aWNrZXIpKTtcbiAgaWYgKHBheWxvYWQubmFtZSkgc3RpY2tlclBhY2submFtZSA9IHBheWxvYWQubmFtZTtcbiAgaWYgKHBheWxvYWQuc2t1X2lkKSBzdGlja2VyUGFjay5za3VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuc2t1X2lkKTtcbiAgaWYgKHBheWxvYWQuY292ZXJfc3RpY2tlcl9pZCkgc3RpY2tlclBhY2suY292ZXJTdGlja2VySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNvdmVyX3N0aWNrZXJfaWQpO1xuICBpZiAocGF5bG9hZC5kZXNjcmlwdGlvbikgc3RpY2tlclBhY2suZGVzY3JpcHRpb24gPSBwYXlsb2FkLmRlc2NyaXB0aW9uO1xuICBpZiAocGF5bG9hZC5iYW5uZXJfYXNzZXRfaWQpIHN0aWNrZXJQYWNrLmJhbm5lckFzc2V0SWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmJhbm5lcl9hc3NldF9pZCk7XG5cbiAgcmV0dXJuIGNhbGxDdXN0b21pemVyKCdzdGlja2VyUGFjaycsIGJvdCwgcGF5bG9hZCwgc3RpY2tlclBhY2ssIHtcbiAgICBwYXJ0aWFsOiBleHRyYT8ucGFydGlhbCA/PyBmYWxzZSxcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiY2FsbEN1c3RvbWl6ZXIiLCJ0cmFuc2Zvcm1TdGlja2VyIiwiYm90IiwicGF5bG9hZCIsImV4dHJhIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsInN0aWNrZXIiLCJpZCIsInNub3dmbGFrZSIsInBhY2tJZCIsInBhY2tfaWQiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJ0YWdzIiwidHlwZSIsImZvcm1hdFR5cGUiLCJmb3JtYXRfdHlwZSIsImF2YWlsYWJsZSIsImd1aWxkSWQiLCJndWlsZF9pZCIsInVzZXIiLCJzb3J0VmFsdWUiLCJzb3J0X3ZhbHVlIiwidW5kZWZpbmVkIiwicGFydGlhbCIsInRyYW5zZm9ybVN0aWNrZXJQYWNrIiwic3RpY2tlclBhY2siLCJzdGlja2VycyIsIm1hcCIsInNrdV9pZCIsInNrdUlkIiwiY292ZXJfc3RpY2tlcl9pZCIsImNvdmVyU3RpY2tlcklkIiwiYmFubmVyX2Fzc2V0X2lkIiwiYmFubmVyQXNzZXRJZCJdLCJtYXBwaW5ncyI6IkFBR0EsU0FBU0EsY0FBYyxRQUFRLHFCQUFxQjtBQUdwRCxPQUFPLFNBQVNDLGlCQUFpQkMsR0FBUSxFQUFFQyxPQUFnQyxFQUFFQyxLQUE2QjtJQUN4RyxNQUFNQyxRQUFRSCxJQUFJSSxZQUFZLENBQUNDLGlCQUFpQixDQUFDQyxPQUFPO0lBQ3hELE1BQU1BLFVBQVUsQ0FBQztJQUVqQixJQUFJSCxNQUFNSSxFQUFFLElBQUlOLFFBQVFNLEVBQUUsRUFBRUQsUUFBUUMsRUFBRSxHQUFHUCxJQUFJSSxZQUFZLENBQUNJLFNBQVMsQ0FBQ1AsUUFBUU0sRUFBRTtJQUM5RSxJQUFJSixNQUFNTSxNQUFNLElBQUlSLFFBQVFTLE9BQU8sRUFBRUosUUFBUUcsTUFBTSxHQUFHVCxJQUFJSSxZQUFZLENBQUNJLFNBQVMsQ0FBQ1AsUUFBUVMs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
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import type { DiscordTeam } from '@discordeno/types';
|
|
1
|
+
import type { DiscordTeam, DiscordTeamMember } from '@discordeno/types';
|
|
2
2
|
import type { Bot } from '../bot.js';
|
|
3
|
-
export declare function transformTeam(bot: Bot, payload: DiscordTeam
|
|
3
|
+
export declare function transformTeam(bot: Bot, payload: Partial<DiscordTeam>, extra?: {
|
|
4
|
+
partial?: boolean;
|
|
5
|
+
}): any;
|
|
6
|
+
export declare function transformTeamMember(bot: Bot, payload: Partial<DiscordTeamMember>, extra?: {
|
|
7
|
+
partial?: boolean;
|
|
8
|
+
}): any;
|
|
4
9
|
//# sourceMappingURL=team.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/transformers/team.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/transformers/team.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAKrC,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAYnG;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAW/G"}
|
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
import { iconHashToBigInt } from '@discordeno/utils';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const team = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
|
|
2
|
+
import { callCustomizer } from '../transformers.js';
|
|
3
|
+
export function transformTeam(bot, payload, extra) {
|
|
4
|
+
const team = {};
|
|
5
|
+
if (payload.id !== undefined) team.id = bot.transformers.snowflake(payload.id);
|
|
6
|
+
if (payload.name !== undefined) team.name = payload.name;
|
|
7
|
+
if (payload.icon) team.icon = iconHashToBigInt(payload.icon);
|
|
8
|
+
if (payload.owner_user_id !== undefined) team.ownerUserId = bot.transformers.snowflake(payload.owner_user_id);
|
|
9
|
+
if (payload.members !== undefined) team.members = payload.members.map((member)=>bot.transformers.teamMember(bot, member));
|
|
10
|
+
return callCustomizer('team', bot, payload, team, {
|
|
11
|
+
partial: extra?.partial ?? false
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
export function transformTeamMember(bot, payload, extra) {
|
|
15
|
+
const teamMember = {};
|
|
16
|
+
if (payload.membership_state !== undefined) teamMember.membershipState = payload.membership_state;
|
|
17
|
+
if (payload.team_id !== undefined) teamMember.teamId = bot.transformers.snowflake(payload.team_id);
|
|
18
|
+
if (payload.user !== undefined) teamMember.user = bot.transformers.user(bot, payload.user);
|
|
19
|
+
if (payload.role !== undefined) teamMember.role = payload.role;
|
|
20
|
+
return callCustomizer('teamMember', bot, payload, teamMember, {
|
|
21
|
+
partial: extra?.partial ?? false
|
|
22
|
+
});
|
|
17
23
|
}
|
|
18
24
|
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdGVhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRUZWFtLCBEaXNjb3JkVGVhbU1lbWJlciB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJztcbmltcG9ydCB7IGljb25IYXNoVG9CaWdJbnQgfSBmcm9tICdAZGlzY29yZGVuby91dGlscyc7XG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcyc7XG5pbXBvcnQgdHlwZSB7IERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IsIFNldHVwRGVzaXJlZFByb3BzLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyB9IGZyb20gJy4uL2Rlc2lyZWRQcm9wZXJ0aWVzLmpzJztcbmltcG9ydCB7IGNhbGxDdXN0b21pemVyIH0gZnJvbSAnLi4vdHJhbnNmb3JtZXJzLmpzJztcbmltcG9ydCB0eXBlIHsgVGVhbSwgVGVhbU1lbWJlciB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtVGVhbShib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkVGVhbT4sIGV4dHJhPzogeyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHRlYW0gPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxUZWFtLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHBheWxvYWQuaWQgIT09IHVuZGVmaW5lZCkgdGVhbS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpO1xuICBpZiAocGF5bG9hZC5uYW1lICE9PSB1bmRlZmluZWQpIHRlYW0ubmFtZSA9IHBheWxvYWQubmFtZTtcbiAgaWYgKHBheWxvYWQuaWNvbikgdGVhbS5pY29uID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmljb24pO1xuICBpZiAocGF5bG9hZC5vd25lcl91c2VyX2lkICE9PSB1bmRlZmluZWQpIHRlYW0ub3duZXJVc2VySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm93bmVyX3VzZXJfaWQpO1xuICBpZiAocGF5bG9hZC5tZW1iZXJzICE9PSB1bmRlZmluZWQpIHRlYW0ubWVtYmVycyA9IHBheWxvYWQubWVtYmVycy5tYXAoKG1lbWJlcikgPT4gYm90LnRyYW5zZm9ybWVycy50ZWFtTWVtYmVyKGJvdCwgbWVtYmVyKSk7XG5cbiAgcmV0dXJuIGNhbGxDdXN0b21pemVyKCd0ZWFtJywgYm90LCBwYXlsb2FkLCB0ZWFtLCB7XG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtVGVhbU1lbWJlcihib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkVGVhbU1lbWJlcj4sIGV4dHJhPzogeyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHRlYW1NZW1iZXIgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxUZWFtTWVtYmVyLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHBheWxvYWQubWVtYmVyc2hpcF9zdGF0ZSAhPT0gdW5kZWZpbmVkKSB0ZWFtTWVtYmVyLm1lbWJlcnNoaXBTdGF0ZSA9IHBheWxvYWQubWVtYmVyc2hpcF9zdGF0ZTtcbiAgaWYgKHBheWxvYWQudGVhbV9pZCAhPT0gdW5kZWZpbmVkKSB0ZWFtTWVtYmVyLnRlYW1JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQudGVhbV9pZCk7XG4gIGlmIChwYXlsb2FkLnVzZXIgIT09IHVuZGVmaW5lZCkgdGVhbU1lbWJlci51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKTtcbiAgaWYgKHBheWxvYWQucm9sZSAhPT0gdW5kZWZpbmVkKSB0ZWFtTWVtYmVyLnJvbGUgPSBwYXlsb2FkLnJvbGU7XG5cbiAgcmV0dXJuIGNhbGxDdXN0b21pemVyKCd0ZWFtTWVtYmVyJywgYm90LCBwYXlsb2FkLCB0ZWFtTWVtYmVyLCB7XG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImljb25IYXNoVG9CaWdJbnQiLCJjYWxsQ3VzdG9taXplciIsInRyYW5zZm9ybVRlYW0iLCJib3QiLCJwYXlsb2FkIiwiZXh0cmEiLCJ0ZWFtIiwiaWQiLCJ1bmRlZmluZWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJuYW1lIiwiaWNvbiIsIm93bmVyX3VzZXJfaWQiLCJvd25lclVzZXJJZCIsIm1lbWJlcnMiLCJtYXAiLCJtZW1iZXIiLCJ0ZWFtTWVtYmVyIiwicGFydGlhbCIsInRyYW5zZm9ybVRlYW1NZW1iZXIiLCJtZW1iZXJzaGlwX3N0YXRlIiwibWVtYmVyc2hpcFN0YXRlIiwidGVhbV9pZCIsInRlYW1JZCIsInVzZXIiLCJyb2xlIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxnQkFBZ0IsUUFBUSxvQkFBb0I7QUFHckQsU0FBU0MsY0FBYyxRQUFRLHFCQUFxQjtBQUdwRCxPQUFPLFNBQVNDLGNBQWNDLEdBQVEsRUFBRUMsT0FBNkIsRUFBRUMsS0FBNkI7SUFDbEcsTUFBTUMsT0FBTyxDQUFDO0lBRWQsSUFBSUYsUUFBUUcsRUFBRSxLQUFLQyxXQUFXRixLQUFLQyxFQUFFLEdBQUdKLElBQUlNLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTixRQUFRRyxFQUFFO0lBQzdFLElBQUlILFFBQVFPLElBQUksS0FBS0gsV0FBV0YsS0FBS0ssSUFBSSxHQUFHUCxRQUFRTyxJQUFJO0lBQ3hELElBQUlQLFFBQVFRLElBQUksRUFBRU4sS0FBS00sSUFBSSxHQUFHWixpQkFBaUJJLFFBQVFRLElBQUk7SUFDM0QsSUFBSVIsUUFBUVMsYUFBYSxLQUFLTCxXQUFXRixLQUFLUSxXQUFXLEdBQUdYLElBQUlNLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTixRQUFRUyxhQUFhO0lBQzVHLElBQUlULFFBQVFXLE9BQU8sS0FBS1AsV0FBV0YsS0FBS1MsT0FBTyxHQUFHWCxRQUFRVyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxTQUFXZCxJQUFJTSxZQUFZLENBQUNTLFVBQVUsQ0FBQ2YsS0FBS2M7SUFFbkgsT0FBT2hCLGVBQWUsUUFBUUUsS0FBS0MsU0FBU0UsTUFBTTtRQUNoRGEsU0FBU2QsT0FBT2MsV0FBVztJQUM3QjtBQUNGO0FBRUEsT0FBTyxTQUFTQyxvQkFBb0JqQixHQUFRLEVBQUVDLE9BQW1DLEVBQUVDLEtBQTZCO0lBQzlHLE1BQU1hLGFBQWEsQ0FBQztJQUVwQixJQUFJZCxRQUFRaUIsZ0JBQWdCLEtBQUtiLFdBQVdVLFdBQVdJLGVBQWUsR0FBR2xCLFFBQVFpQixnQkFBZ0I7SUFDakcsSUFBSWpCLFFBQVFtQixPQUFPLEtBQUtmLFdBQVdVLFdBQVdNLE1BQU0sR0FBR3JCLElBQUlNLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTixRQUFRbUIsT0FBTztJQUNqRyxJQUFJbkIsUUFBUXFCLElBQUksS0FBS2pCLFdBQVdVLFdBQVdPLElBQUksR0FBR3RCLElBQUlNLFlBQVksQ0FBQ2dCLElBQUksQ0FBQ3RCLEtBQUtDLFFBQVFxQixJQUFJO0lBQ3pGLElBQUlyQixRQUFRc0IsSUFBSSxLQUFLbEIsV0FBV1UsV0FBV1EsSUFBSSxHQUFHdEIsUUFBUXNCLElBQUk7SUFFOUQsT0FBT3pCLGVBQWUsY0FBY0UsS0FBS0MsU0FBU2MsWUFBWTtRQUM1REMsU0FBU2QsT0FBT2MsV0FBVztJQUM3QjtBQUNGIn0=
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { DiscordTemplate } from '@discordeno/types';
|
|
2
2
|
import type { Bot } from '../bot.js';
|
|
3
|
-
export declare function transformTemplate(bot: Bot, payload: DiscordTemplate
|
|
3
|
+
export declare function transformTemplate(bot: Bot, payload: Partial<DiscordTemplate>, extra?: {
|
|
4
|
+
partial?: boolean;
|
|
5
|
+
}): any;
|
|
4
6
|
//# sourceMappingURL=template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/transformers/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/transformers/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIrC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAkB3G"}
|