@discordeno/bot 22.0.1-next.8a2eb95 → 22.0.1-next.8a66a76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/dist/bot.d.ts +3 -3
  2. package/dist/bot.d.ts.map +1 -1
  3. package/dist/bot.js +1 -1
  4. package/dist/desiredProperties.d.ts +114 -92
  5. package/dist/desiredProperties.d.ts.map +1 -1
  6. package/dist/desiredProperties.js +288 -1
  7. package/dist/events.d.ts +32 -17
  8. package/dist/events.d.ts.map +1 -1
  9. package/dist/events.js +1 -1
  10. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.js +2 -2
  11. package/dist/handlers/invites/INVITE_CREATE.d.ts.map +1 -1
  12. package/dist/handlers/invites/INVITE_CREATE.js +20 -4
  13. package/dist/handlers/invites/INVITE_DELETE.d.ts.map +1 -1
  14. package/dist/handlers/invites/INVITE_DELETE.js +4 -4
  15. package/dist/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +1 -1
  16. package/dist/handlers/members/GUILD_MEMBER_UPDATE.js +4 -4
  17. package/dist/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -1
  18. package/dist/handlers/messages/MESSAGE_REACTION_ADD.js +4 -3
  19. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -1
  20. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.js +4 -3
  21. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -1
  22. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +4 -3
  23. package/dist/helpers.d.ts +60 -44
  24. package/dist/helpers.d.ts.map +1 -1
  25. package/dist/helpers.js +63 -15
  26. package/dist/transformers/activity.d.ts +10 -5
  27. package/dist/transformers/activity.d.ts.map +1 -1
  28. package/dist/transformers/activity.js +34 -19
  29. package/dist/transformers/application.d.ts +3 -3
  30. package/dist/transformers/application.d.ts.map +1 -1
  31. package/dist/transformers/application.js +18 -7
  32. package/dist/transformers/applicationCommand.d.ts +1 -2
  33. package/dist/transformers/applicationCommand.d.ts.map +1 -1
  34. package/dist/transformers/applicationCommand.js +1 -1
  35. package/dist/transformers/applicationCommandOption.d.ts +1 -2
  36. package/dist/transformers/applicationCommandOption.d.ts.map +1 -1
  37. package/dist/transformers/applicationCommandOption.js +3 -2
  38. package/dist/transformers/applicationCommandOptionChoice.d.ts +1 -2
  39. package/dist/transformers/applicationCommandOptionChoice.d.ts.map +1 -1
  40. package/dist/transformers/applicationCommandOptionChoice.js +1 -1
  41. package/dist/transformers/applicationCommandPermission.d.ts +1 -2
  42. package/dist/transformers/applicationCommandPermission.d.ts.map +1 -1
  43. package/dist/transformers/applicationCommandPermission.js +1 -1
  44. package/dist/transformers/attachment.d.ts +3 -1
  45. package/dist/transformers/attachment.d.ts.map +1 -1
  46. package/dist/transformers/attachment.js +12 -4
  47. package/dist/transformers/auditLogEntry.d.ts +1 -2
  48. package/dist/transformers/auditLogEntry.d.ts.map +1 -1
  49. package/dist/transformers/auditLogEntry.js +1 -1
  50. package/dist/transformers/automodActionExecution.d.ts +1 -2
  51. package/dist/transformers/automodActionExecution.d.ts.map +1 -1
  52. package/dist/transformers/automodActionExecution.js +1 -1
  53. package/dist/transformers/automodRule.d.ts +1 -2
  54. package/dist/transformers/automodRule.d.ts.map +1 -1
  55. package/dist/transformers/automodRule.js +1 -1
  56. package/dist/transformers/avatarDecorationData.d.ts +3 -2
  57. package/dist/transformers/avatarDecorationData.d.ts.map +1 -1
  58. package/dist/transformers/avatarDecorationData.js +6 -3
  59. package/dist/transformers/channel.d.ts +6 -3
  60. package/dist/transformers/channel.d.ts.map +1 -1
  61. package/dist/transformers/channel.js +14 -9
  62. package/dist/transformers/component.d.ts +9 -4
  63. package/dist/transformers/component.d.ts.map +1 -1
  64. package/dist/transformers/component.js +197 -28
  65. package/dist/transformers/embed.d.ts +1 -2
  66. package/dist/transformers/embed.d.ts.map +1 -1
  67. package/dist/transformers/embed.js +22 -5
  68. package/dist/transformers/emoji.d.ts +7 -3
  69. package/dist/transformers/emoji.d.ts.map +1 -1
  70. package/dist/transformers/emoji.js +10 -5
  71. package/dist/transformers/entitlement.d.ts +3 -2
  72. package/dist/transformers/entitlement.d.ts.map +1 -1
  73. package/dist/transformers/entitlement.js +6 -3
  74. package/dist/transformers/gatewayBot.d.ts +1 -2
  75. package/dist/transformers/gatewayBot.d.ts.map +1 -1
  76. package/dist/transformers/gatewayBot.js +1 -1
  77. package/dist/transformers/guild.d.ts +3 -2
  78. package/dist/transformers/guild.d.ts.map +1 -1
  79. package/dist/transformers/guild.js +25 -25
  80. package/dist/transformers/incidentsData.d.ts +3 -2
  81. package/dist/transformers/incidentsData.d.ts.map +1 -1
  82. package/dist/transformers/incidentsData.js +6 -3
  83. package/dist/transformers/integration.d.ts +1 -2
  84. package/dist/transformers/integration.d.ts.map +1 -1
  85. package/dist/transformers/integration.js +1 -1
  86. package/dist/transformers/interaction.d.ts +18 -12
  87. package/dist/transformers/interaction.d.ts.map +1 -1
  88. package/dist/transformers/interaction.js +44 -23
  89. package/dist/transformers/invite.d.ts +4 -4
  90. package/dist/transformers/invite.d.ts.map +1 -1
  91. package/dist/transformers/invite.js +26 -23
  92. package/dist/transformers/lobby.d.ts +13 -4
  93. package/dist/transformers/lobby.d.ts.map +1 -1
  94. package/dist/transformers/lobby.js +35 -5
  95. package/dist/transformers/member.d.ts +3 -2
  96. package/dist/transformers/member.d.ts.map +1 -1
  97. package/dist/transformers/member.js +6 -3
  98. package/dist/transformers/message.d.ts +20 -10
  99. package/dist/transformers/message.d.ts.map +1 -1
  100. package/dist/transformers/message.js +52 -25
  101. package/dist/transformers/onboarding.d.ts +9 -4
  102. package/dist/transformers/onboarding.d.ts.map +1 -1
  103. package/dist/transformers/onboarding.js +17 -10
  104. package/dist/transformers/poll.d.ts +6 -3
  105. package/dist/transformers/poll.d.ts.map +1 -1
  106. package/dist/transformers/poll.js +14 -7
  107. package/dist/transformers/presence.d.ts +3 -2
  108. package/dist/transformers/presence.d.ts.map +1 -1
  109. package/dist/transformers/presence.js +10 -6
  110. package/dist/transformers/reverse/activity.d.ts +4 -3
  111. package/dist/transformers/reverse/activity.d.ts.map +1 -1
  112. package/dist/transformers/reverse/activity.js +20 -24
  113. package/dist/transformers/reverse/applicationCommand.js +2 -2
  114. package/dist/transformers/reverse/component.d.ts.map +1 -1
  115. package/dist/transformers/reverse/component.js +152 -11
  116. package/dist/transformers/reverse/embed.d.ts.map +1 -1
  117. package/dist/transformers/reverse/embed.js +19 -4
  118. package/dist/transformers/reverse/member.d.ts.map +1 -1
  119. package/dist/transformers/reverse/member.js +4 -2
  120. package/dist/transformers/reverse/presence.d.ts.map +1 -1
  121. package/dist/transformers/reverse/presence.js +3 -2
  122. package/dist/transformers/reverse/user.d.ts +5 -0
  123. package/dist/transformers/reverse/user.d.ts.map +1 -0
  124. package/dist/transformers/reverse/user.js +17 -0
  125. package/dist/transformers/role.d.ts +7 -4
  126. package/dist/transformers/role.d.ts.map +1 -1
  127. package/dist/transformers/role.js +11 -7
  128. package/dist/transformers/scheduledEvent.d.ts +6 -3
  129. package/dist/transformers/scheduledEvent.d.ts.map +1 -1
  130. package/dist/transformers/scheduledEvent.js +10 -5
  131. package/dist/transformers/sku.d.ts +3 -2
  132. package/dist/transformers/sku.d.ts.map +1 -1
  133. package/dist/transformers/sku.js +6 -3
  134. package/dist/transformers/soundboardSound.d.ts +3 -2
  135. package/dist/transformers/soundboardSound.d.ts.map +1 -1
  136. package/dist/transformers/soundboardSound.js +6 -3
  137. package/dist/transformers/stageInstance.d.ts +3 -2
  138. package/dist/transformers/stageInstance.d.ts.map +1 -1
  139. package/dist/transformers/stageInstance.js +6 -3
  140. package/dist/transformers/stageInviteInstance.d.ts +3 -3
  141. package/dist/transformers/stageInviteInstance.d.ts.map +1 -1
  142. package/dist/transformers/stageInviteInstance.js +10 -8
  143. package/dist/transformers/sticker.d.ts +4 -3
  144. package/dist/transformers/sticker.d.ts.map +1 -1
  145. package/dist/transformers/sticker.js +6 -3
  146. package/dist/transformers/subscription.d.ts +3 -2
  147. package/dist/transformers/subscription.d.ts.map +1 -1
  148. package/dist/transformers/subscription.js +6 -3
  149. package/dist/transformers/team.d.ts +1 -2
  150. package/dist/transformers/team.d.ts.map +1 -1
  151. package/dist/transformers/team.js +1 -1
  152. package/dist/transformers/template.d.ts +1 -2
  153. package/dist/transformers/template.d.ts.map +1 -1
  154. package/dist/transformers/template.js +1 -1
  155. package/dist/transformers/threadMember.d.ts +2 -3
  156. package/dist/transformers/threadMember.d.ts.map +1 -1
  157. package/dist/transformers/threadMember.js +1 -1
  158. package/dist/transformers/toggles/channel.d.ts +2 -2
  159. package/dist/transformers/toggles/channel.d.ts.map +1 -1
  160. package/dist/transformers/toggles/channel.js +2 -2
  161. package/dist/transformers/toggles/emoji.d.ts +1 -1
  162. package/dist/transformers/toggles/emoji.d.ts.map +1 -1
  163. package/dist/transformers/toggles/emoji.js +1 -1
  164. package/dist/transformers/toggles/guild.d.ts +3 -3
  165. package/dist/transformers/toggles/guild.d.ts.map +1 -1
  166. package/dist/transformers/toggles/guild.js +3 -3
  167. package/dist/transformers/toggles/role.d.ts +1 -1
  168. package/dist/transformers/toggles/role.d.ts.map +1 -1
  169. package/dist/transformers/toggles/role.js +1 -1
  170. package/dist/transformers/toggles/user.d.ts +1 -1
  171. package/dist/transformers/toggles/user.d.ts.map +1 -1
  172. package/dist/transformers/toggles/user.js +1 -1
  173. package/dist/transformers/toggles/voice.d.ts +1 -1
  174. package/dist/transformers/toggles/voice.d.ts.map +1 -1
  175. package/dist/transformers/toggles/voice.js +1 -1
  176. package/dist/transformers/types.d.ts +229 -52
  177. package/dist/transformers/types.d.ts.map +1 -1
  178. package/dist/transformers/types.js +2 -2
  179. package/dist/transformers/user.d.ts +13 -5
  180. package/dist/transformers/user.d.ts.map +1 -1
  181. package/dist/transformers/user.js +18 -9
  182. package/dist/transformers/voiceRegion.d.ts +1 -2
  183. package/dist/transformers/voiceRegion.d.ts.map +1 -1
  184. package/dist/transformers/voiceRegion.js +1 -1
  185. package/dist/transformers/voiceState.d.ts +3 -3
  186. package/dist/transformers/voiceState.d.ts.map +1 -1
  187. package/dist/transformers/voiceState.js +6 -4
  188. package/dist/transformers/webhook.d.ts +3 -1
  189. package/dist/transformers/webhook.d.ts.map +1 -1
  190. package/dist/transformers/webhook.js +10 -7
  191. package/dist/transformers/welcomeScreen.d.ts +1 -2
  192. package/dist/transformers/welcomeScreen.d.ts.map +1 -1
  193. package/dist/transformers/welcomeScreen.js +1 -1
  194. package/dist/transformers/widget.d.ts +1 -2
  195. package/dist/transformers/widget.d.ts.map +1 -1
  196. package/dist/transformers/widget.js +7 -5
  197. package/dist/transformers/widgetSettings.d.ts +1 -2
  198. package/dist/transformers/widgetSettings.d.ts.map +1 -1
  199. package/dist/transformers/widgetSettings.js +1 -1
  200. package/dist/transformers.d.ts +179 -81
  201. package/dist/transformers.d.ts.map +1 -1
  202. package/dist/transformers.js +37 -5
  203. package/package.json +17 -17
@@ -31,4 +31,4 @@ export function transformIntegration(bot, payload) {
31
31
  return bot.transformers.customizers.integration(bot, payload, integration);
32
32
  }
33
33
 
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZWdyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkSW50ZWdyYXRpb25DcmVhdGVVcGRhdGUgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcyc7XG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi9ib3QuanMnO1xuaW1wb3J0IHR5cGUgeyBJbnRlZ3JhdGlvbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZWdyYXRpb24oYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRJbnRlZ3JhdGlvbkNyZWF0ZVVwZGF0ZSk6IEludGVncmF0aW9uIHtcbiAgY29uc3QgaW50ZWdyYXRpb24gPSB7XG4gICAgZ3VpbGRJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZCksXG4gICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpLFxuICAgIG5hbWU6IHBheWxvYWQubmFtZSxcbiAgICB0eXBlOiBwYXlsb2FkLnR5cGUsXG4gICAgZW5hYmxlZDogcGF5bG9hZC5lbmFibGVkLFxuICAgIHN5bmNpbmc6IHBheWxvYWQuc3luY2luZyxcbiAgICByb2xlSWQ6IHBheWxvYWQucm9sZV9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucm9sZV9pZCkgOiB1bmRlZmluZWQsXG4gICAgZW5hYmxlRW1vdGljb25zOiBwYXlsb2FkLmVuYWJsZV9lbW90aWNvbnMsXG4gICAgZXhwaXJlQmVoYXZpb3I6IHBheWxvYWQuZXhwaXJlX2JlaGF2aW9yLFxuICAgIGV4cGlyZUdyYWNlUGVyaW9kOiBwYXlsb2FkLmV4cGlyZV9ncmFjZV9wZXJpb2QsXG4gICAgdXNlcjogcGF5bG9hZC51c2VyID8gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKSA6IHVuZGVmaW5lZCxcbiAgICBhY2NvdW50OiB7XG4gICAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hY2NvdW50LmlkKSxcbiAgICAgIG5hbWU6IHBheWxvYWQuYWNjb3VudC5uYW1lLFxuICAgIH0sXG4gICAgc3luY2VkQXQ6IHBheWxvYWQuc3luY2VkX2F0ID8gRGF0ZS5wYXJzZShwYXlsb2FkLnN5bmNlZF9hdCkgOiB1bmRlZmluZWQsXG4gICAgc3Vic2NyaWJlckNvdW50OiBwYXlsb2FkLnN1YnNjcmliZXJfY291bnQsXG4gICAgcmV2b2tlZDogcGF5bG9hZC5yZXZva2VkLFxuICAgIGFwcGxpY2F0aW9uOiBwYXlsb2FkLmFwcGxpY2F0aW9uXG4gICAgICA/IHtcbiAgICAgICAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hcHBsaWNhdGlvbi5pZCksXG4gICAgICAgICAgbmFtZTogcGF5bG9hZC5hcHBsaWNhdGlvbi5uYW1lLFxuICAgICAgICAgIGljb246IHBheWxvYWQuYXBwbGljYXRpb24uaWNvbiA/IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5hcHBsaWNhdGlvbi5pY29uKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogcGF5bG9hZC5hcHBsaWNhdGlvbi5kZXNjcmlwdGlvbixcbiAgICAgICAgICBib3Q6IHBheWxvYWQuYXBwbGljYXRpb24uYm90ID8gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5hcHBsaWNhdGlvbi5ib3QpIDogdW5kZWZpbmVkLFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZCxcbiAgICBzY29wZXM6IHBheWxvYWQuc2NvcGVzLFxuICB9IGFzIEludGVncmF0aW9uO1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVncmF0aW9uKGJvdCwgcGF5bG9hZCwgaW50ZWdyYXRpb24pO1xufVxuIl0sIm5hbWVzIjpbImljb25IYXNoVG9CaWdJbnQiLCJ0cmFuc2Zvcm1JbnRlZ3JhdGlvbiIsImJvdCIsInBheWxvYWQiLCJpbnRlZ3JhdGlvbiIsImd1aWxkSWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJndWlsZF9pZCIsImlkIiwibmFtZSIsInR5cGUiLCJlbmFibGVkIiwic3luY2luZyIsInJvbGVJZCIsInJvbGVfaWQiLCJ1bmRlZmluZWQiLCJlbmFibGVFbW90aWNvbnMiLCJlbmFibGVfZW1vdGljb25zIiwiZXhwaXJlQmVoYXZpb3IiLCJleHBpcmVfYmVoYXZpb3IiLCJleHBpcmVHcmFjZVBlcmlvZCIsImV4cGlyZV9ncmFjZV9wZXJpb2QiLCJ1c2VyIiwiYWNjb3VudCIsInN5bmNlZEF0Iiwic3luY2VkX2F0IiwiRGF0ZSIsInBhcnNlIiwic3Vic2NyaWJlckNvdW50Iiwic3Vic2NyaWJlcl9jb3VudCIsInJldm9rZWQiLCJhcHBsaWNhdGlvbiIsImljb24iLCJkZXNjcmlwdGlvbiIsInNjb3BlcyIsImN1c3RvbWl6ZXJzIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxnQkFBZ0IsUUFBUSxvQkFBb0I7QUFJckQsT0FBTyxTQUFTQyxxQkFBcUJDLEdBQVEsRUFBRUMsT0FBdUM7SUFDcEYsTUFBTUMsY0FBYztRQUNsQkMsU0FBU0gsSUFBSUksWUFBWSxDQUFDQyxTQUFTLENBQUNKLFFBQVFLLFFBQVE7UUFDcERDLElBQUlQLElBQUlJLFlBQVksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRTSxFQUFFO1FBQ3pDQyxNQUFNUCxRQUFRTyxJQUFJO1FBQ2xCQyxNQUFNUixRQUFRUSxJQUFJO1FBQ2xCQyxTQUFTVCxRQUFRUyxPQUFPO1FBQ3hCQyxTQUFTVixRQUFRVSxPQUFPO1FBQ3hCQyxRQUFRWCxRQUFRWSxPQUFPLEdBQUdiLElBQUlJLFlBQVksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRWSxPQUFPLElBQUlDO1FBQ3hFQyxpQkFBaUJkLFFBQVFlLGdCQUFnQjtRQUN6Q0MsZ0JBQWdCaEIsUUFBUWlCLGVBQWU7UUFDdkNDLG1CQUFtQmxCLFFBQVFtQixtQkFBbUI7UUFDOUNDLE1BQU1wQixRQUFRb0IsSUFBSSxHQUFHckIsSUFBSUksWUFBWSxDQUFDaUIsSUFBSSxDQUFDckIsS0FBS0MsUUFBUW9CLElBQUksSUFBSVA7UUFDaEVRLFNBQVM7WUFDUGYsSUFBSVAsSUFBSUksWUFBWSxDQUFDQyxTQUFTLENBQUNKLFFBQVFxQixPQUFPLENBQUNmLEVBQUU7WUFDakRDLE1BQU1QLFFBQVFxQixPQUFPLENBQUNkLElBQUk7UUFDNUI7UUFDQWUsVUFBVXRCLFFBQVF1QixTQUFTLEdBQUdDLEtBQUtDLEtBQUssQ0FBQ3pCLFFBQVF1QixTQUFTLElBQUlWO1FBQzlEYSxpQkFBaUIxQixRQUFRMkIsZ0JBQWdCO1FBQ3pDQyxTQUFTNUIsUUFBUTRCLE9BQU87UUFDeEJDLGFBQWE3QixRQUFRNkIsV0FBVyxHQUM1QjtZQUNFdkIsSUFBSVAsSUFBSUksWUFBWSxDQUFDQyxTQUFTLENBQUNKLFFBQVE2QixXQUFXLENBQUN2QixFQUFFO1lBQ3JEQyxNQUFNUCxRQUFRNkIsV0FBVyxDQUFDdEIsSUFBSTtZQUM5QnVCLE1BQU05QixRQUFRNkIsV0FBVyxDQUFDQyxJQUFJLEdBQUdqQyxpQkFBaUJHLFFBQVE2QixXQUFXLENBQUNDLElBQUksSUFBSWpCO1lBQzlFa0IsYUFBYS9CLFFBQVE2QixXQUFXLENBQUNFLFdBQVc7WUFDNUNoQyxLQUFLQyxRQUFRNkIsV0FBVyxDQUFDOUIsR0FBRyxHQUFHQSxJQUFJSSxZQUFZLENBQUNpQixJQUFJLENBQUNyQixLQUFLQyxRQUFRNkIsV0FBVyxDQUFDOUIsR0FBRyxJQUFJYztRQUN2RixJQUNBQTtRQUNKbUIsUUFBUWhDLFFBQVFnQyxNQUFNO0lBQ3hCO0lBRUEsT0FBT2pDLElBQUlJLFlBQVksQ0FBQzhCLFdBQVcsQ0FBQ2hDLFdBQVcsQ0FBQ0YsS0FBS0MsU0FBU0M7QUFDaEUifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZWdyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkSW50ZWdyYXRpb25DcmVhdGVVcGRhdGUgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcyc7XG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi9ib3QuanMnO1xuaW1wb3J0IHR5cGUgeyBJbnRlZ3JhdGlvbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZWdyYXRpb24oYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRJbnRlZ3JhdGlvbkNyZWF0ZVVwZGF0ZSkge1xuICBjb25zdCBpbnRlZ3JhdGlvbiA9IHtcbiAgICBndWlsZElkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkX2lkKSxcbiAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZCksXG4gICAgbmFtZTogcGF5bG9hZC5uYW1lLFxuICAgIHR5cGU6IHBheWxvYWQudHlwZSxcbiAgICBlbmFibGVkOiBwYXlsb2FkLmVuYWJsZWQsXG4gICAgc3luY2luZzogcGF5bG9hZC5zeW5jaW5nLFxuICAgIHJvbGVJZDogcGF5bG9hZC5yb2xlX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5yb2xlX2lkKSA6IHVuZGVmaW5lZCxcbiAgICBlbmFibGVFbW90aWNvbnM6IHBheWxvYWQuZW5hYmxlX2Vtb3RpY29ucyxcbiAgICBleHBpcmVCZWhhdmlvcjogcGF5bG9hZC5leHBpcmVfYmVoYXZpb3IsXG4gICAgZXhwaXJlR3JhY2VQZXJpb2Q6IHBheWxvYWQuZXhwaXJlX2dyYWNlX3BlcmlvZCxcbiAgICB1c2VyOiBwYXlsb2FkLnVzZXIgPyBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpIDogdW5kZWZpbmVkLFxuICAgIGFjY291bnQ6IHtcbiAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFjY291bnQuaWQpLFxuICAgICAgbmFtZTogcGF5bG9hZC5hY2NvdW50Lm5hbWUsXG4gICAgfSxcbiAgICBzeW5jZWRBdDogcGF5bG9hZC5zeW5jZWRfYXQgPyBEYXRlLnBhcnNlKHBheWxvYWQuc3luY2VkX2F0KSA6IHVuZGVmaW5lZCxcbiAgICBzdWJzY3JpYmVyQ291bnQ6IHBheWxvYWQuc3Vic2NyaWJlcl9jb3VudCxcbiAgICByZXZva2VkOiBwYXlsb2FkLnJldm9rZWQsXG4gICAgYXBwbGljYXRpb246IHBheWxvYWQuYXBwbGljYXRpb25cbiAgICAgID8ge1xuICAgICAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcGxpY2F0aW9uLmlkKSxcbiAgICAgICAgICBuYW1lOiBwYXlsb2FkLmFwcGxpY2F0aW9uLm5hbWUsXG4gICAgICAgICAgaWNvbjogcGF5bG9hZC5hcHBsaWNhdGlvbi5pY29uID8gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmFwcGxpY2F0aW9uLmljb24pIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBwYXlsb2FkLmFwcGxpY2F0aW9uLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIGJvdDogcGF5bG9hZC5hcHBsaWNhdGlvbi5ib3QgPyBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmFwcGxpY2F0aW9uLmJvdCkgOiB1bmRlZmluZWQsXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkLFxuICAgIHNjb3BlczogcGF5bG9hZC5zY29wZXMsXG4gIH0gYXMgSW50ZWdyYXRpb247XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZWdyYXRpb24oYm90LCBwYXlsb2FkLCBpbnRlZ3JhdGlvbik7XG59XG4iXSwibmFtZXMiOlsiaWNvbkhhc2hUb0JpZ0ludCIsInRyYW5zZm9ybUludGVncmF0aW9uIiwiYm90IiwicGF5bG9hZCIsImludGVncmF0aW9uIiwiZ3VpbGRJZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsImd1aWxkX2lkIiwiaWQiLCJuYW1lIiwidHlwZSIsImVuYWJsZWQiLCJzeW5jaW5nIiwicm9sZUlkIiwicm9sZV9pZCIsInVuZGVmaW5lZCIsImVuYWJsZUVtb3RpY29ucyIsImVuYWJsZV9lbW90aWNvbnMiLCJleHBpcmVCZWhhdmlvciIsImV4cGlyZV9iZWhhdmlvciIsImV4cGlyZUdyYWNlUGVyaW9kIiwiZXhwaXJlX2dyYWNlX3BlcmlvZCIsInVzZXIiLCJhY2NvdW50Iiwic3luY2VkQXQiLCJzeW5jZWRfYXQiLCJEYXRlIiwicGFyc2UiLCJzdWJzY3JpYmVyQ291bnQiLCJzdWJzY3JpYmVyX2NvdW50IiwicmV2b2tlZCIsImFwcGxpY2F0aW9uIiwiaWNvbiIsImRlc2NyaXB0aW9uIiwic2NvcGVzIiwiY3VzdG9taXplcnMiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGdCQUFnQixRQUFRLG9CQUFvQjtBQUlyRCxPQUFPLFNBQVNDLHFCQUFxQkMsR0FBUSxFQUFFQyxPQUF1QztJQUNwRixNQUFNQyxjQUFjO1FBQ2xCQyxTQUFTSCxJQUFJSSxZQUFZLENBQUNDLFNBQVMsQ0FBQ0osUUFBUUssUUFBUTtRQUNwREMsSUFBSVAsSUFBSUksWUFBWSxDQUFDQyxTQUFTLENBQUNKLFFBQVFNLEVBQUU7UUFDekNDLE1BQU1QLFFBQVFPLElBQUk7UUFDbEJDLE1BQU1SLFFBQVFRLElBQUk7UUFDbEJDLFNBQVNULFFBQVFTLE9BQU87UUFDeEJDLFNBQVNWLFFBQVFVLE9BQU87UUFDeEJDLFFBQVFYLFFBQVFZLE9BQU8sR0FBR2IsSUFBSUksWUFBWSxDQUFDQyxTQUFTLENBQUNKLFFBQVFZLE9BQU8sSUFBSUM7UUFDeEVDLGlCQUFpQmQsUUFBUWUsZ0JBQWdCO1FBQ3pDQyxnQkFBZ0JoQixRQUFRaUIsZUFBZTtRQUN2Q0MsbUJBQW1CbEIsUUFBUW1CLG1CQUFtQjtRQUM5Q0MsTUFBTXBCLFFBQVFvQixJQUFJLEdBQUdyQixJQUFJSSxZQUFZLENBQUNpQixJQUFJLENBQUNyQixLQUFLQyxRQUFRb0IsSUFBSSxJQUFJUDtRQUNoRVEsU0FBUztZQUNQZixJQUFJUCxJQUFJSSxZQUFZLENBQUNDLFNBQVMsQ0FBQ0osUUFBUXFCLE9BQU8sQ0FBQ2YsRUFBRTtZQUNqREMsTUFBTVAsUUFBUXFCLE9BQU8sQ0FBQ2QsSUFBSTtRQUM1QjtRQUNBZSxVQUFVdEIsUUFBUXVCLFNBQVMsR0FBR0MsS0FBS0MsS0FBSyxDQUFDekIsUUFBUXVCLFNBQVMsSUFBSVY7UUFDOURhLGlCQUFpQjFCLFFBQVEyQixnQkFBZ0I7UUFDekNDLFNBQVM1QixRQUFRNEIsT0FBTztRQUN4QkMsYUFBYTdCLFFBQVE2QixXQUFXLEdBQzVCO1lBQ0V2QixJQUFJUCxJQUFJSSxZQUFZLENBQUNDLFNBQVMsQ0FBQ0osUUFBUTZCLFdBQVcsQ0FBQ3ZCLEVBQUU7WUFDckRDLE1BQU1QLFFBQVE2QixXQUFXLENBQUN0QixJQUFJO1lBQzlCdUIsTUFBTTlCLFFBQVE2QixXQUFXLENBQUNDLElBQUksR0FBR2pDLGlCQUFpQkcsUUFBUTZCLFdBQVcsQ0FBQ0MsSUFBSSxJQUFJakI7WUFDOUVrQixhQUFhL0IsUUFBUTZCLFdBQVcsQ0FBQ0UsV0FBVztZQUM1Q2hDLEtBQUtDLFFBQVE2QixXQUFXLENBQUM5QixHQUFHLEdBQUdBLElBQUlJLFlBQVksQ0FBQ2lCLElBQUksQ0FBQ3JCLEtBQUtDLFFBQVE2QixXQUFXLENBQUM5QixHQUFHLElBQUljO1FBQ3ZGLElBQ0FBO1FBQ0ptQixRQUFRaEMsUUFBUWdDLE1BQU07SUFDeEI7SUFFQSxPQUFPakMsSUFBSUksWUFBWSxDQUFDOEIsV0FBVyxDQUFDaEMsV0FBVyxDQUFDRixLQUFLQyxTQUFTQztBQUNoRSJ9
@@ -1,21 +1,27 @@
1
1
  import { type BigString, type DiscordInteraction, type DiscordInteractionCallback, type DiscordInteractionCallbackResponse, type DiscordInteractionDataOption, type DiscordInteractionDataResolved, type DiscordInteractionResource } from '@discordeno/types';
2
2
  import type { Bot } from '../bot.js';
3
- import type { CompleteDesiredProperties, DesiredPropertiesBehavior, SetupDesiredProps, TransformersDesiredProperties, TransformProperty } from '../desiredProperties.js';
4
- import type { Interaction, InteractionCallback, InteractionCallbackResponse, InteractionDataOption, InteractionDataResolved, InteractionResource } from './types.js';
3
+ import type { CompleteDesiredProperties, DesiredPropertiesBehavior, SetupDesiredProps } from '../desiredProperties.js';
4
+ import type { Interaction } from './types.js';
5
5
  export declare const baseInteraction: SetupDesiredProps<Interaction, CompleteDesiredProperties<{}, true>, DesiredPropertiesBehavior.RemoveKey>;
6
- export declare function transformInteraction(bot: Bot, payload: DiscordInteraction, extra?: {
6
+ export declare function transformInteraction(bot: Bot, payload: Partial<DiscordInteraction>, extra?: {
7
7
  shardId?: number;
8
- }): Interaction;
9
- export declare function transformInteractionDataOption(bot: Bot, option: DiscordInteractionDataOption): InteractionDataOption;
10
- export declare function transformInteractionDataResolved(bot: Bot, payload: DiscordInteractionDataResolved, extra?: {
8
+ partial?: boolean;
9
+ }): any;
10
+ export declare function transformInteractionDataOption(bot: Bot, option: DiscordInteractionDataOption): any;
11
+ export declare function transformInteractionDataResolved(bot: Bot, payload: Partial<DiscordInteractionDataResolved>, extra?: {
11
12
  shardId?: number;
12
13
  guildId?: BigString;
13
- }): TransformProperty<InteractionDataResolved, TransformersDesiredProperties, DesiredPropertiesBehavior.RemoveKey>;
14
- export declare function transformInteractionCallbackResponse(bot: Bot, payload: DiscordInteractionCallbackResponse, extra?: {
14
+ partial?: boolean;
15
+ }): any;
16
+ export declare function transformInteractionCallbackResponse(bot: Bot, payload: Partial<DiscordInteractionCallbackResponse>, extra?: {
15
17
  shardId?: number;
16
- }): InteractionCallbackResponse;
17
- export declare function transformInteractionCallback(bot: Bot, payload: DiscordInteractionCallback): InteractionCallback;
18
- export declare function transformInteractionResource(bot: Bot, payload: DiscordInteractionResource, extra?: {
18
+ partial?: boolean;
19
+ }): any;
20
+ export declare function transformInteractionCallback(bot: Bot, payload: Partial<DiscordInteractionCallback>, extra?: {
21
+ partial?: boolean;
22
+ }): any;
23
+ export declare function transformInteractionResource(bot: Bot, payload: Partial<DiscordInteractionResource>, extra?: {
19
24
  shardId?: number;
20
- }): InteractionResource;
25
+ partial?: boolean;
26
+ }): any;
21
27
  //# sourceMappingURL=interaction.d.ts.map
@@ -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,EACV,yBAAyB,EACzB,yBAAyB,EACzB,iBAAiB,EACjB,6BAA6B,EAC7B,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,2BAA2B,EAC3B,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAIpB,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,WAAW,EAAE,yBAAyB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,yBAAyB,CAAC,SAAS,CAwGpI,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAqErH;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,4BAA4B,GAAG,qBAAqB,CAUpH;AAED,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,8BAA8B,EACvC,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAAE,GAChD,iBAAiB,CAAC,uBAAuB,EAAE,6BAA6B,EAAE,yBAAyB,CAAC,SAAS,CAAC,CAiFhH;AAED,wBAAgB,oCAAoC,CAClD,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,kCAAkC,EAC3C,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,2BAA2B,CAS7B;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,0BAA0B,GAAG,mBAAmB,CAY/G;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,0BAA0B,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,mBAAmB,CAS7I"}
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,OAU5F;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"}
@@ -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 = {
@@ -24,7 +25,7 @@ export const baseInteraction = {
24
25
  response.flags |= MessageFlags.Ephemeral;
25
26
  }
26
27
  // Since this has already been given a response, any further responses must be followups.
27
- if (this.acknowledged) return await this.bot.helpers.sendFollowupMessage(this.token, response);
28
+ if (this.acknowledged) return await this.sendFollowupMessage(response);
28
29
  const result = await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
29
30
  type,
30
31
  data: response
@@ -34,6 +35,13 @@ export const baseInteraction = {
34
35
  this.acknowledged = true;
35
36
  return result;
36
37
  },
38
+ async sendFollowupMessage (response) {
39
+ // If user provides a string, change it to a response object
40
+ if (typeof response === 'string') response = {
41
+ content: response
42
+ };
43
+ return await this.bot.helpers.sendFollowupMessage(this.token, response);
44
+ },
37
45
  async edit (response, messageId, options) {
38
46
  if (this.type === InteractionTypes.ApplicationCommandAutocomplete) throw new Error('Cannot edit an autocomplete interaction.');
39
47
  // If user provides a string, change it to a response object
@@ -82,9 +90,9 @@ export const baseInteraction = {
82
90
  }
83
91
  };
84
92
  export function transformInteraction(bot, payload, extra) {
85
- const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
86
- const interaction = Object.create(baseInteraction);
87
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;
88
96
  interaction.bot = bot;
89
97
  interaction.acknowledged = false;
90
98
  if (props.id && payload.id) interaction.id = bot.transformers.snowflake(payload.id);
@@ -94,9 +102,9 @@ export function transformInteraction(bot, payload, extra) {
94
102
  if (props.version && payload.version) interaction.version = payload.version;
95
103
  if (props.locale && payload.locale) interaction.locale = payload.locale;
96
104
  if (props.guildLocale && payload.guild_locale) interaction.guildLocale = payload.guild_locale;
97
- if (props.guild && payload.guild) // @ts-expect-error payload.guild is a Partial<DiscordGuild>
98
- interaction.guild = bot.transformers.guild(bot, payload.guild, {
99
- shardId: extra?.shardId
105
+ if (props.guild && payload.guild) interaction.guild = bot.transformers.guild(bot, payload.guild, {
106
+ shardId: extra?.shardId,
107
+ partial: true
100
108
  });
101
109
  if (props.guildId && guildId) interaction.guildId = guildId;
102
110
  if (props.user) {
@@ -107,9 +115,9 @@ export function transformInteraction(bot, payload, extra) {
107
115
  if (props.message && payload.message) interaction.message = bot.transformers.message(bot, payload.message, {
108
116
  shardId: extra?.shardId
109
117
  });
110
- if (props.channel && payload.channel) // @ts-expect-error payload.channel is a Partial<>
111
- interaction.channel = bot.transformers.channel(bot, payload.channel, {
112
- guildId
118
+ if (props.channel && payload.channel) interaction.channel = bot.transformers.channel(bot, payload.channel, {
119
+ guildId,
120
+ partial: true
113
121
  });
114
122
  if (props.channelId && payload.channel_id) interaction.channelId = bot.transformers.snowflake(payload.channel_id);
115
123
  if (props.member && guildId && payload.member) interaction.member = bot.transformers.member(bot, payload.member, {
@@ -141,8 +149,10 @@ export function transformInteraction(bot, payload, extra) {
141
149
  targetId: payload.data.target_id ? bot.transformers.snowflake(payload.data.target_id) : undefined
142
150
  };
143
151
  }
144
- // Typescript has an hard time with interaction.bot, so we need to tell him for sure this interaction is the of the correct type
145
- return bot.transformers.customizers.interaction(bot, payload, interaction, extra);
152
+ return callCustomizer('interaction', bot, payload, interaction, {
153
+ shardId: extra?.shardId,
154
+ partial: extra?.partial ?? false
155
+ });
146
156
  }
147
157
  export function transformInteractionDataOption(bot, option) {
148
158
  const opt = {
@@ -158,9 +168,9 @@ export function transformInteractionDataResolved(bot, payload, extra) {
158
168
  const transformed = {};
159
169
  if (payload.messages) {
160
170
  transformed.messages = new Collection(Object.entries(payload.messages).map(([key, value])=>{
161
- // @ts-expect-error TODO: Deal with partials
162
171
  const message = bot.transformers.message(bot, value, {
163
- shardId: extra?.shardId
172
+ shardId: extra?.shardId,
173
+ partial: true
164
174
  });
165
175
  const id = bot.transformers.snowflake(key);
166
176
  return [
@@ -181,10 +191,10 @@ export function transformInteractionDataResolved(bot, payload, extra) {
181
191
  }
182
192
  if (extra?.guildId && payload.members) {
183
193
  transformed.members = new Collection(Object.entries(payload.members).map(([key, value])=>{
184
- // @ts-expect-error TODO: Deal with partials, value is missing 2 values but the transformer can handle it, despite what the types says
185
194
  const member = bot.transformers.member(bot, value, {
186
195
  guildId: extra.guildId,
187
- userId: bot.transformers.snowflake(key)
196
+ userId: bot.transformers.snowflake(key),
197
+ partial: true
188
198
  });
189
199
  const id = bot.transformers.snowflake(key);
190
200
  return [
@@ -207,7 +217,9 @@ export function transformInteractionDataResolved(bot, payload, extra) {
207
217
  }
208
218
  if (payload.channels) {
209
219
  transformed.channels = new Collection(Object.entries(payload.channels).map(([key, value])=>{
210
- const channel = bot.transformers.channel(bot, value);
220
+ const channel = bot.transformers.channel(bot, value, {
221
+ partial: true
222
+ });
211
223
  const id = bot.transformers.snowflake(key);
212
224
  return [
213
225
  id,
@@ -225,9 +237,10 @@ export function transformInteractionDataResolved(bot, payload, extra) {
225
237
  ];
226
238
  }));
227
239
  }
228
- return bot.transformers.customizers.interactionDataResolved(bot, payload, transformed, {
240
+ return callCustomizer('interactionDataResolved', bot, payload, transformed, {
229
241
  shardId: extra?.shardId,
230
- guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined
242
+ guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined,
243
+ partial: extra?.partial ?? false
231
244
  });
232
245
  }
233
246
  export function transformInteractionCallbackResponse(bot, payload, extra) {
@@ -237,9 +250,12 @@ export function transformInteractionCallbackResponse(bot, payload, extra) {
237
250
  if (props.resource && payload.resource) response.resource = bot.transformers.interactionResource(bot, payload.resource, {
238
251
  shardId: extra?.shardId
239
252
  });
240
- return bot.transformers.customizers.interactionCallbackResponse(bot, payload, response, extra);
253
+ return callCustomizer('interactionCallbackResponse', bot, payload, response, {
254
+ shardId: extra?.shardId,
255
+ partial: extra?.partial ?? false
256
+ });
241
257
  }
242
- export function transformInteractionCallback(bot, payload) {
258
+ export function transformInteractionCallback(bot, payload, extra) {
243
259
  const props = bot.transformers.desiredProperties.interactionCallback;
244
260
  const callback = {};
245
261
  if (props.id && payload.id) callback.id = bot.transformers.snowflake(payload.id);
@@ -248,7 +264,9 @@ export function transformInteractionCallback(bot, payload) {
248
264
  if (props.responseMessageId && payload.response_message_id) callback.responseMessageId = bot.transformers.snowflake(payload.response_message_id);
249
265
  if (props.responseMessageEphemeral && payload.response_message_ephemeral) callback.responseMessageEphemeral = payload.response_message_ephemeral;
250
266
  if (props.responseMessageLoading && payload.response_message_loading) callback.responseMessageLoading = payload.response_message_loading;
251
- return bot.transformers.customizers.interactionCallback(bot, payload, callback);
267
+ return callCustomizer('interactionCallback', bot, payload, callback, {
268
+ partial: extra?.partial ?? false
269
+ });
252
270
  }
253
271
  export function transformInteractionResource(bot, payload, extra) {
254
272
  const props = bot.transformers.desiredProperties.interactionResource;
@@ -258,7 +276,10 @@ export function transformInteractionResource(bot, payload, extra) {
258
276
  if (props.message && payload.message) resource.message = bot.transformers.message(bot, payload.message, {
259
277
  shardId: extra?.shardId
260
278
  });
261
- return bot.transformers.customizers.interactionResource(bot, payload, resource, extra);
279
+ return callCustomizer('interactionResource', bot, payload, resource, {
280
+ shardId: extra?.shardId,
281
+ partial: extra?.partial ?? false
282
+ });
262
283
  }
263
284
 
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBCaWdTdHJpbmcsXG4gIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2ssXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25EYXRhT3B0aW9uLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25SZXNvdXJjZSxcbiAgSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLFxuICBJbnRlcmFjdGlvblR5cGVzLFxuICBNZXNzYWdlRmxhZ3MsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICdAZGlzY29yZGVuby91dGlscyc7XG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcyc7XG5pbXBvcnQgdHlwZSB7IEludGVyYWN0aW9uUmVzb2x2ZWREYXRhQ2hhbm5lbCB9IGZyb20gJy4uL2NvbW1hbmRPcHRpb25zUGFyc2VyLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tcGxldGVEZXNpcmVkUHJvcGVydGllcyxcbiAgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcixcbiAgU2V0dXBEZXNpcmVkUHJvcHMsXG4gIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLFxuICBUcmFuc2Zvcm1Qcm9wZXJ0eSxcbn0gZnJvbSAnLi4vZGVzaXJlZFByb3BlcnRpZXMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBJbnRlcmFjdGlvbixcbiAgSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICBJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxuLy8gQXNzdW1lIHdlIGhhdmUgYWxsIGRlc2lyZWQgcHJvcGVydGllcyBmb3IgdGhpcyBvciBlbHNlIHR5cGVzY3JpcHQgd2lsbCBnZXQgdmVyeSBjb25mdXNlZCBmb3IgdGhlIHJldHVybiB0eXBlcyBvZiB0aGVzZSBmdW5jdGlvbnMuXG4vLyBUaGlzIGlzIHVzZWQgYXMgYSBwcm90b3R5cGUsIHNvIHRoZSBhY3R1YWwgdHlwZSB3aXRoIHRoZSB1c2VyIGRlc2lyZWQgcHJvcGVydGllcyB3aWxsIGJlIHNldCBsYXRlci5cbmV4cG9ydCBjb25zdCBiYXNlSW50ZXJhY3Rpb246IFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uLCBDb21wbGV0ZURlc2lyZWRQcm9wZXJ0aWVzPHt9LCB0cnVlPiwgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvci5SZW1vdmVLZXk+ID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uLCBDb21wbGV0ZURlc2lyZWRQcm9wZXJ0aWVzPHt9LCB0cnVlPiwgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvci5SZW1vdmVLZXk+KSxcblxuICBhc3luYyByZXNwb25kKHJlc3BvbnNlLCBvcHRpb25zKSB7XG4gICAgbGV0IHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlO1xuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9O1xuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHR5cGUsIHVzZSBpdFxuICAgIGlmIChvcHRpb25zPy50eXBlKSB0eXBlID0gb3B0aW9ucy50eXBlO1xuICAgIC8vIE90aGVyd2lzZSwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGVsc2Uge1xuICAgICAgaWYgKHJlc3BvbnNlLnRpdGxlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsO1xuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0O1xuICAgIH1cblxuICAgIC8vIE1vZGFscyBjYW5ub3QgYmUgY2hhaW5lZFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQgJiYgdHlwZSA9PT0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVzcG9uZCB0byBhIG1vZGFsIGludGVyYWN0aW9uIHdpdGggYW5vdGhlciBtb2RhbC4nKTtcblxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkge1xuICAgICAgcmVzcG9uc2UuZmxhZ3MgPz89IDA7XG4gICAgICByZXNwb25zZS5mbGFncyB8PSBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsO1xuICAgIH1cblxuICAgIC8vIFNpbmNlIHRoaXMgaGFzIGFscmVhZHkgYmVlbiBnaXZlbiBhIHJlc3BvbnNlLCBhbnkgZnVydGhlciByZXNwb25zZXMgbXVzdCBiZSBmb2xsb3d1cHMuXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIHJlc3BvbnNlKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHsgdHlwZSwgZGF0YTogcmVzcG9uc2UgfSxcbiAgICAgIHsgd2l0aFJlc3BvbnNlOiBvcHRpb25zPy53aXRoUmVzcG9uc2UgfSxcbiAgICApO1xuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9LFxuICBhc3luYyBlZGl0KHJlc3BvbnNlLCBtZXNzYWdlSWQsIG9wdGlvbnMpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZWRpdCBhbiBhdXRvY29tcGxldGUgaW50ZXJhY3Rpb24uJyk7XG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGEgc3RyaW5nLCBjaGFuZ2UgaXQgdG8gYSByZXNwb25zZSBvYmplY3RcbiAgICBpZiAodHlwZW9mIHJlc3BvbnNlID09PSAnc3RyaW5nJykgcmVzcG9uc2UgPSB7IGNvbnRlbnQ6IHJlc3BvbnNlIH07XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYWNrbm93bGVkZ2VkKSB7XG4gICAgICBpZiAodGhpcy50eXBlICE9PSBJbnRlcmFjdGlvblR5cGVzLk1lc3NhZ2VDb21wb25lbnQgJiYgdGhpcy50eXBlICE9PSBJbnRlcmFjdGlvblR5cGVzLk1vZGFsU3VibWl0KVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGlzIGludGVyYWN0aW9uIGhhcyBub3QgYmVlbiByZXNwb25kZWQgdG8geWV0IGFuZCB0aGlzIGlzbid0IGEgTWVzc2FnZUNvbXBvbmVudCBvciBNb2RhbFN1Ym1pdCBpbnRlcmFjdGlvbi5cIik7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICAgIHRoaXMuaWQsXG4gICAgICAgIHRoaXMudG9rZW4sXG4gICAgICAgIHsgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLlVwZGF0ZU1lc3NhZ2UsIGRhdGE6IHJlc3BvbnNlIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApO1xuICAgICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5lZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMudG9rZW4sIHJlc3BvbnNlKTtcbiAgfSxcbiAgYXN5bmMgZGVmZXJFZGl0KG9wdGlvbnMpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZWRpdCBhbiBhdXRvY29tcGxldGUgaW50ZXJhY3Rpb24uJyk7XG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKTtcblxuICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgZGVmZXIgdG8gdGhlbiBlZGl0IGFuIGludGVyYWN0aW9uIHRoYXQgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHsgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkVXBkYXRlTWVzc2FnZSB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9LFxuICBhc3luYyBkZWZlcihpc1ByaXZhdGUsIG9wdGlvbnMpIHtcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShcbiAgICAgIHRoaXMuaWQsXG4gICAgICB0aGlzLnRva2VuLFxuICAgICAge1xuICAgICAgICB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuRGVmZXJyZWRDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBmbGFnczogaXNQcml2YXRlID8gTWVzc2FnZUZsYWdzLkVwaGVtZXJhbCA6IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sXG4gIGFzeW5jIGRlbGV0ZShtZXNzYWdlSWQpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVsZXRlIGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbicpO1xuXG4gICAgaWYgKG1lc3NhZ2VJZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90Py5oZWxwZXJzLmRlbGV0ZUZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQpO1xuICAgIGVsc2UgcmV0dXJuIGF3YWl0IHRoaXMuYm90Py5oZWxwZXJzLmRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLnRva2VuKTtcbiAgfSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbihib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZEludGVyYWN0aW9uLCBleHRyYT86IHsgc2hhcmRJZD86IG51bWJlciB9KTogSW50ZXJhY3Rpb24ge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5ndWlsZF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGRfaWQpIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGludGVyYWN0aW9uOiBTZXR1cERlc2lyZWRQcm9wczxJbnRlcmFjdGlvbiwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+ID0gT2JqZWN0LmNyZWF0ZShiYXNlSW50ZXJhY3Rpb24pO1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb247XG5cbiAgaW50ZXJhY3Rpb24uYm90ID0gYm90O1xuICBpbnRlcmFjdGlvbi5hY2tub3dsZWRnZWQgPSBmYWxzZTtcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKTtcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5hcHBsaWNhdGlvbl9pZCkgaW50ZXJhY3Rpb24uYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpO1xuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGludGVyYWN0aW9uLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy50b2tlbiAmJiBwYXlsb2FkLnRva2VuKSBpbnRlcmFjdGlvbi50b2tlbiA9IHBheWxvYWQudG9rZW47XG4gIGlmIChwcm9wcy52ZXJzaW9uICYmIHBheWxvYWQudmVyc2lvbikgaW50ZXJhY3Rpb24udmVyc2lvbiA9IHBheWxvYWQudmVyc2lvbjtcbiAgaWYgKHByb3BzLmxvY2FsZSAmJiBwYXlsb2FkLmxvY2FsZSkgaW50ZXJhY3Rpb24ubG9jYWxlID0gcGF5bG9hZC5sb2NhbGU7XG4gIGlmIChwcm9wcy5ndWlsZExvY2FsZSAmJiBwYXlsb2FkLmd1aWxkX2xvY2FsZSkgaW50ZXJhY3Rpb24uZ3VpbGRMb2NhbGUgPSBwYXlsb2FkLmd1aWxkX2xvY2FsZTtcbiAgaWYgKHByb3BzLmd1aWxkICYmIHBheWxvYWQuZ3VpbGQpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBwYXlsb2FkLmd1aWxkIGlzIGEgUGFydGlhbDxEaXNjb3JkR3VpbGQ+XG4gICAgaW50ZXJhY3Rpb24uZ3VpbGQgPSBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgcGF5bG9hZC5ndWlsZCwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KTtcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZ3VpbGRJZCkgaW50ZXJhY3Rpb24uZ3VpbGRJZCA9IGd1aWxkSWQ7XG4gIGlmIChwcm9wcy51c2VyKSB7XG4gICAgaWYgKHBheWxvYWQubWVtYmVyPy51c2VyKSBpbnRlcmFjdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5tZW1iZXI/LnVzZXIpO1xuICAgIGVsc2UgaWYgKHBheWxvYWQudXNlcikgaW50ZXJhY3Rpb24udXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudXNlcik7XG4gIH1cbiAgaWYgKHByb3BzLmFwcFBlcm1pc3Npb25zICYmIHBheWxvYWQuYXBwX3Blcm1pc3Npb25zKSBpbnRlcmFjdGlvbi5hcHBQZXJtaXNzaW9ucyA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwX3Blcm1pc3Npb25zKTtcbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlKSBpbnRlcmFjdGlvbi5tZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgcGF5bG9hZC5tZXNzYWdlLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkIH0pO1xuICBpZiAocHJvcHMuY2hhbm5lbCAmJiBwYXlsb2FkLmNoYW5uZWwpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBwYXlsb2FkLmNoYW5uZWwgaXMgYSBQYXJ0aWFsPD5cbiAgICBpbnRlcmFjdGlvbi5jaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgcGF5bG9hZC5jaGFubmVsLCB7IGd1aWxkSWQgfSk7XG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5jaGFubmVsX2lkKSBpbnRlcmFjdGlvbi5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWxfaWQpO1xuICBpZiAocHJvcHMubWVtYmVyICYmIGd1aWxkSWQgJiYgcGF5bG9hZC5tZW1iZXIpXG4gICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lbWJlciwge1xuICAgICAgZ3VpbGRJZCxcbiAgICAgIHVzZXJJZDogcGF5bG9hZC5tZW1iZXI/LnVzZXIuaWQgPz8gcGF5bG9hZC51c2VyPy5pZCxcbiAgICB9KTtcbiAgaWYgKHByb3BzLmVudGl0bGVtZW50cyAmJiBwYXlsb2FkLmVudGl0bGVtZW50cykgaW50ZXJhY3Rpb24uZW50aXRsZW1lbnRzID0gcGF5bG9hZC5lbnRpdGxlbWVudHMubWFwKChlKSA9PiBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgZSkpO1xuICBpZiAocHJvcHMuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyAmJiBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVycykge1xuICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMgPSB7fTtcblxuICAgIGlmIChwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuR3VpbGRJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddLFxuICAgICAgKTtcbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKTtcbiAgfVxuICBpZiAocHJvcHMuY29udGV4dCAmJiBwYXlsb2FkLmNvbnRleHQpIGludGVyYWN0aW9uLmNvbnRleHQgPSBwYXlsb2FkLmNvbnRleHQ7XG4gIGlmIChwcm9wcy5hdHRhY2htZW50U2l6ZUxpbWl0ICYmIHBheWxvYWQuYXR0YWNobWVudF9zaXplX2xpbWl0KSBpbnRlcmFjdGlvbi5hdHRhY2htZW50U2l6ZUxpbWl0ID0gcGF5bG9hZC5hdHRhY2htZW50X3NpemVfbGltaXQ7XG4gIGlmIChwcm9wcy5kYXRhICYmIHBheWxvYWQuZGF0YSkge1xuICAgIGludGVyYWN0aW9uLmRhdGEgPSB7XG4gICAgICB0eXBlOiBwYXlsb2FkLmRhdGEudHlwZSxcbiAgICAgIGNvbXBvbmVudFR5cGU6IHBheWxvYWQuZGF0YS5jb21wb25lbnRfdHlwZSxcbiAgICAgIGN1c3RvbUlkOiBwYXlsb2FkLmRhdGEuY3VzdG9tX2lkLFxuICAgICAgY29tcG9uZW50czogcGF5bG9hZC5kYXRhLmNvbXBvbmVudHM/Lm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpLFxuICAgICAgdmFsdWVzOiBwYXlsb2FkLmRhdGEudmFsdWVzLFxuICAgICAgaWQ6IHBheWxvYWQuZGF0YS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZGF0YS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICBuYW1lOiBwYXlsb2FkLmRhdGEubmFtZSxcbiAgICAgIHJlc29sdmVkOiBwYXlsb2FkLmRhdGEucmVzb2x2ZWRcbiAgICAgICAgPyBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdCwgcGF5bG9hZC5kYXRhLnJlc29sdmVkLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkLCBndWlsZElkIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogcGF5bG9hZC5kYXRhLm9wdGlvbnM/Lm1hcCgob3B0KSA9PiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHQpKSxcbiAgICAgIHRhcmdldElkOiBwYXlsb2FkLmRhdGEudGFyZ2V0X2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5kYXRhLnRhcmdldF9pZCkgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIC8vIFR5cGVzY3JpcHQgaGFzIGFuIGhhcmQgdGltZSB3aXRoIGludGVyYWN0aW9uLmJvdCwgc28gd2UgbmVlZCB0byB0ZWxsIGhpbSBmb3Igc3VyZSB0aGlzIGludGVyYWN0aW9uIGlzIHRoZSBvZiB0aGUgY29ycmVjdCB0eXBlXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uKGJvdCwgcGF5bG9hZCwgaW50ZXJhY3Rpb24gYXMgdW5rbm93biBhcyB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbiwgZXh0cmEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhT3B0aW9uKGJvdDogQm90LCBvcHRpb246IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24pOiBJbnRlcmFjdGlvbkRhdGFPcHRpb24ge1xuICBjb25zdCBvcHQgPSB7XG4gICAgbmFtZTogb3B0aW9uLm5hbWUsXG4gICAgdHlwZTogb3B0aW9uLnR5cGUsXG4gICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICBvcHRpb25zOiBvcHRpb24ub3B0aW9ucyxcbiAgICBmb2N1c2VkOiBvcHRpb24uZm9jdXNlZCxcbiAgfSBhcyBJbnRlcmFjdGlvbkRhdGFPcHRpb247XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyhib3QsIG9wdGlvbiwgb3B0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkKFxuICBib3Q6IEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICBleHRyYT86IHsgc2hhcmRJZD86IG51bWJlcjsgZ3VpbGRJZD86IEJpZ1N0cmluZyB9LFxuKTogVHJhbnNmb3JtUHJvcGVydHk8SW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLlJlbW92ZUtleT4ge1xuICBjb25zdCB0cmFuc2Zvcm1lZDogVHJhbnNmb3JtUHJvcGVydHk8SW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLlJlbW92ZUtleT4gPSB7fTtcblxuICBpZiAocGF5bG9hZC5tZXNzYWdlcykge1xuICAgIHRyYW5zZm9ybWVkLm1lc3NhZ2VzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLm1lc3NhZ2VzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE86IERlYWwgd2l0aCBwYXJ0aWFsc1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgdmFsdWUsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQgfSk7XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KTtcblxuICAgICAgICByZXR1cm4gW2lkLCBtZXNzYWdlXTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBpZiAocGF5bG9hZC51c2Vycykge1xuICAgIHRyYW5zZm9ybWVkLnVzZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnVzZXJzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCB1c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgdmFsdWUpO1xuICAgICAgICBjb25zdCBpZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGtleSk7XG5cbiAgICAgICAgcmV0dXJuIFtpZCwgdXNlcl07XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgaWYgKGV4dHJhPy5ndWlsZElkICYmIHBheWxvYWQubWVtYmVycykge1xuICAgIHRyYW5zZm9ybWVkLm1lbWJlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQubWVtYmVycykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBEZWFsIHdpdGggcGFydGlhbHMsIHZhbHVlIGlzIG1pc3NpbmcgMiB2YWx1ZXMgYnV0IHRoZSB0cmFuc2Zvcm1lciBjYW4gaGFuZGxlIGl0LCBkZXNwaXRlIHdoYXQgdGhlIHR5cGVzIHNheXNcbiAgICAgICAgY29uc3QgbWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCB2YWx1ZSwge1xuICAgICAgICAgIGd1aWxkSWQ6IGV4dHJhLmd1aWxkSWQsXG4gICAgICAgICAgdXNlcklkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpO1xuXG4gICAgICAgIHJldHVybiBbaWQsIG1lbWJlcl07XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgaWYgKGV4dHJhPy5ndWlsZElkICYmIHBheWxvYWQucm9sZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5yb2xlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yb2xlcykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3Qgcm9sZSA9IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHZhbHVlLCB7IGd1aWxkSWQ6IGV4dHJhLmd1aWxkSWQgfSk7XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KTtcblxuICAgICAgICByZXR1cm4gW2lkLCByb2xlXTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBpZiAocGF5bG9hZC5jaGFubmVscykge1xuICAgIHRyYW5zZm9ybWVkLmNoYW5uZWxzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLmNoYW5uZWxzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBjaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgdmFsdWUpIGFzIEludGVyYWN0aW9uUmVzb2x2ZWREYXRhQ2hhbm5lbDxcbiAgICAgICAgICBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyxcbiAgICAgICAgICBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLlJlbW92ZUtleVxuICAgICAgICA+O1xuICAgICAgICBjb25zdCBpZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGtleSk7XG5cbiAgICAgICAgcmV0dXJuIFtpZCwgY2hhbm5lbF07XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgaWYgKHBheWxvYWQuYXR0YWNobWVudHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5hdHRhY2htZW50cyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5hdHRhY2htZW50cykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpO1xuICAgICAgICBjb25zdCBhdHRhY2htZW50ID0gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgdmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBbaWQsIGF0dGFjaG1lbnRdO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdCwgcGF5bG9hZCwgdHJhbnNmb3JtZWQsIHtcbiAgICBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCxcbiAgICBndWlsZElkOiBleHRyYT8uZ3VpbGRJZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGV4dHJhLmd1aWxkSWQpIDogdW5kZWZpbmVkLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZShcbiAgYm90OiBCb3QsXG4gIHBheWxvYWQ6IERpc2NvcmRJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsXG4gIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyIH0sXG4pOiBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2Uge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlO1xuICBjb25zdCByZXNwb25zZSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbiAmJiBwYXlsb2FkLmludGVyYWN0aW9uKSByZXNwb25zZS5pbnRlcmFjdGlvbiA9IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25DYWxsYmFjayhib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24pO1xuICBpZiAocHJvcHMucmVzb3VyY2UgJiYgcGF5bG9hZC5yZXNvdXJjZSlcbiAgICByZXNwb25zZS5yZXNvdXJjZSA9IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25SZXNvdXJjZShib3QsIHBheWxvYWQucmVzb3VyY2UsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQgfSk7XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKGJvdCwgcGF5bG9hZCwgcmVzcG9uc2UsIGV4dHJhKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2soYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRJbnRlcmFjdGlvbkNhbGxiYWNrKTogSW50ZXJhY3Rpb25DYWxsYmFjayB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvbkNhbGxiYWNrO1xuICBjb25zdCBjYWxsYmFjayA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uQ2FsbGJhY2ssIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgY2FsbGJhY2suaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKTtcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBjYWxsYmFjay50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuYWN0aXZpdHlJbnN0YW5jZUlkICYmIHBheWxvYWQuYWN0aXZpdHlfaW5zdGFuY2VfaWQpIGNhbGxiYWNrLmFjdGl2aXR5SW5zdGFuY2VJZCA9IHBheWxvYWQuYWN0aXZpdHlfaW5zdGFuY2VfaWQ7XG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfaWQpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2lkKTtcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VFcGhlbWVyYWwgPSBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsO1xuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlTG9hZGluZyAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfbG9hZGluZykgY2FsbGJhY2sucmVzcG9uc2VNZXNzYWdlTG9hZGluZyA9IHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9sb2FkaW5nO1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLCBjYWxsYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvblJlc291cmNlKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkSW50ZXJhY3Rpb25SZXNvdXJjZSwgZXh0cmE/OiB7IHNoYXJkSWQ/OiBudW1iZXIgfSk6IEludGVyYWN0aW9uUmVzb3VyY2Uge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25SZXNvdXJjZTtcbiAgY29uc3QgcmVzb3VyY2UgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxJbnRlcmFjdGlvblJlc291cmNlLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSByZXNvdXJjZS50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuYWN0aXZpdHlJbnN0YW5jZSAmJiBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlKSByZXNvdXJjZS5hY3Rpdml0eUluc3RhbmNlID0gcGF5bG9hZC5hY3Rpdml0eV9pbnN0YW5jZTtcbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlKSByZXNvdXJjZS5tZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgcGF5bG9hZC5tZXNzYWdlLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkIH0pO1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uUmVzb3VyY2UoYm90LCBwYXlsb2FkLCByZXNvdXJjZSwgZXh0cmEpO1xufVxuIl0sIm5hbWVzIjpbIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsIkludGVyYWN0aW9uUmVzcG9uc2VUeXBlcyIsIkludGVyYWN0aW9uVHlwZXMiLCJNZXNzYWdlRmxhZ3MiLCJDb2xsZWN0aW9uIiwiYmFzZUludGVyYWN0aW9uIiwidW5kZWZpbmVkIiwicmVzcG9uZCIsInJlc3BvbnNlIiwib3B0aW9ucyIsInR5cGUiLCJDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UiLCJjb250ZW50IiwidGl0bGUiLCJNb2RhbCIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdCIsIk1vZGFsU3VibWl0IiwiRXJyb3IiLCJpc1ByaXZhdGUiLCJmbGFncyIsIkVwaGVtZXJhbCIsImFja25vd2xlZGdlZCIsImJvdCIsImhlbHBlcnMiLCJzZW5kRm9sbG93dXBNZXNzYWdlIiwidG9rZW4iLCJyZXN1bHQiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImlkIiwiZGF0YSIsIndpdGhSZXNwb25zZSIsImVkaXQiLCJtZXNzYWdlSWQiLCJlZGl0Rm9sbG93dXBNZXNzYWdlIiwiTWVzc2FnZUNvbXBvbmVudCIsIlVwZGF0ZU1lc3NhZ2UiLCJlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwiZGVmZXJFZGl0IiwiRGVmZXJyZWRVcGRhdGVNZXNzYWdlIiwiZGVmZXIiLCJEZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsImRlbGV0ZSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsInRyYW5zZm9ybUludGVyYWN0aW9uIiwicGF5bG9hZCIsImV4dHJhIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwiaW50ZXJhY3Rpb24iLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwidmVyc2lvbiIsImxvY2FsZSIsImd1aWxkTG9jYWxlIiwiZ3VpbGRfbG9jYWxlIiwiZ3VpbGQiLCJzaGFyZElkIiwidXNlciIsIm1lbWJlciIsImFwcFBlcm1pc3Npb25zIiwiYXBwX3Blcm1pc3Npb25zIiwibWVzc2FnZSIsImNoYW5uZWwiLCJjaGFubmVsSWQiLCJjaGFubmVsX2lkIiwidXNlcklkIiwiZW50aXRsZW1lbnRzIiwibWFwIiwiZSIsImVudGl0bGVtZW50IiwiYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyIsImF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVycyIsIkd1aWxkSW5zdGFsbCIsIlVzZXJJbnN0YWxsIiwiY29udGV4dCIsImF0dGFjaG1lbnRTaXplTGltaXQiLCJhdHRhY2htZW50X3NpemVfbGltaXQiLCJjb21wb25lbnRUeXBlIiwiY29tcG9uZW50X3R5cGUiLCJjdXN0b21JZCIsImN1c3RvbV9pZCIsImNvbXBvbmVudHMiLCJjb21wb25lbnQiLCJ2YWx1ZXMiLCJuYW1lIiwicmVzb2x2ZWQiLCJpbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCIsIm9wdCIsImludGVyYWN0aW9uRGF0YU9wdGlvbnMiLCJ0YXJnZXRJZCIsInRhcmdldF9pZCIsImN1c3RvbWl6ZXJzIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhT3B0aW9uIiwib3B0aW9uIiwidmFsdWUiLCJmb2N1c2VkIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQiLCJ0cmFuc2Zvcm1lZCIsIm1lc3NhZ2VzIiwiZW50cmllcyIsImtleSIsInVzZXJzIiwibWVtYmVycyIsInJvbGVzIiwicm9sZSIsImNoYW5uZWxzIiwiYXR0YWNobWVudHMiLCJhdHRhY2htZW50IiwidHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlIiwiaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlIiwiaW50ZXJhY3Rpb25DYWxsYmFjayIsInJlc291cmNlIiwiaW50ZXJhY3Rpb25SZXNvdXJjZSIsInRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2siLCJjYWxsYmFjayIsImFjdGl2aXR5SW5zdGFuY2VJZCIsImFjdGl2aXR5X2luc3RhbmNlX2lkIiwicmVzcG9uc2VNZXNzYWdlSWQiLCJyZXNwb25zZV9tZXNzYWdlX2lkIiwicmVzcG9uc2VNZXNzYWdlRXBoZW1lcmFsIiwicmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWwiLCJyZXNwb25zZU1lc3NhZ2VMb2FkaW5nIiwicmVzcG9uc2VfbWVzc2FnZV9sb2FkaW5nIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25SZXNvdXJjZSIsImFjdGl2aXR5SW5zdGFuY2UiLCJhY3Rpdml0eV9pbnN0YW5jZSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FFRUEsaUNBQWlDLEVBT2pDQyx3QkFBd0IsRUFDeEJDLGdCQUFnQixFQUNoQkMsWUFBWSxRQUNQLG9CQUFvQjtBQUMzQixTQUFTQyxVQUFVLFFBQVEsb0JBQW9CO0FBbUIvQyxvSUFBb0k7QUFDcEksc0dBQXNHO0FBQ3RHLE9BQU8sTUFBTUMsa0JBQTRIO0lBQ3ZJLDJFQUEyRTtJQUMzRSxHQUFJQyxTQUFTO0lBRWIsTUFBTUMsU0FBUUMsUUFBUSxFQUFFQyxPQUFPO1FBQzdCLElBQUlDLE9BQU9ULHlCQUF5QlUsd0JBQXdCO1FBRTVELDREQUE0RDtRQUM1RCxJQUFJLE9BQU9ILGFBQWEsVUFBVUEsV0FBVztZQUFFSSxTQUFTSjtRQUFTO1FBRWpFLGtDQUFrQztRQUNsQyxJQUFJQyxTQUFTQyxNQUFNQSxPQUFPRCxRQUFRQyxJQUFJ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
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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
@@ -1,7 +1,7 @@
1
- import type { DiscordInviteCreate, DiscordInviteMetadata } from '@discordeno/types';
1
+ import type { DiscordInviteMetadata } from '@discordeno/types';
2
2
  import type { Bot } from '../bot.js';
3
- import type { Invite } from './types.js';
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
- }): Invite;
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,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEpF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,mBAAmB,GAAG,qBAAqB,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAoCpI"}
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,37 +1,40 @@
1
- import { isInviteWithMetadata } from '@discordeno/utils';
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 && 'type' in payload) invite.type = payload.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) // @ts-expect-error TODO: Partials
15
- invite.targetApplication = bot.transformers.application(bot, payload.target_application, {
16
- shardId: extra?.shardId
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 (isInviteWithMetadata(payload)) {
21
- if (props.channelId && payload.channel?.id) invite.channelId = bot.transformers.snowflake(payload.channel.id);
22
- if (props.guildId && payload.guild?.id) invite.guildId = bot.transformers.snowflake(payload.guild.id);
23
- if (props.approximateMemberCount && payload.approximate_member_count) invite.approximateMemberCount = payload.approximate_member_count;
24
- if (props.approximatePresenceCount && payload.approximate_presence_count !== undefined) invite.approximatePresenceCount = payload.approximate_presence_count;
25
- if (props.guildScheduledEvent && payload.guild_scheduled_event) invite.guildScheduledEvent = bot.transformers.scheduledEvent(bot, payload.guild_scheduled_event);
26
- if (props.expiresAt && payload.expires_at) {
27
- invite.expiresAt = Date.parse(payload.expires_at);
28
- }
29
- if (props.flags && payload.flags) invite.flags = new ToggleBitfield(payload.flags);
30
- } else {
31
- if (props.channelId && payload.channel_id) invite.channelId = bot.transformers.snowflake(payload.channel_id);
32
- 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
+ }));
33
33
  }
34
- return bot.transformers.customizers.invite(bot, payload, invite, extra);
34
+ return callCustomizer('invite', bot, payload, invite, {
35
+ shardId: extra?.shardId,
36
+ partial: extra?.partial ?? false
37
+ });
35
38
  }
36
39
 
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW52aXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZEludml0ZUNyZWF0ZSwgRGlzY29yZEludml0ZU1ldGFkYXRhIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHsgaXNJbnZpdGVXaXRoTWV0YWRhdGEgfSBmcm9tICdAZGlzY29yZGVuby91dGlscyc7XG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcyc7XG5pbXBvcnQgdHlwZSB7IERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IsIFNldHVwRGVzaXJlZFByb3BzLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyB9IGZyb20gJy4uL2Rlc2lyZWRQcm9wZXJ0aWVzLmpzJztcbmltcG9ydCB7IFRvZ2dsZUJpdGZpZWxkIH0gZnJvbSAnLi90b2dnbGVzL1RvZ2dsZUJpdGZpZWxkLmpzJztcbmltcG9ydCB0eXBlIHsgSW52aXRlIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnZpdGUoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRJbnZpdGVDcmVhdGUgfCBEaXNjb3JkSW52aXRlTWV0YWRhdGEsIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyIH0pOiBJbnZpdGUge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW52aXRlO1xuICBjb25zdCBpbnZpdGUgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxJbnZpdGUsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiAndHlwZScgaW4gcGF5bG9hZCkgaW52aXRlLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5jb2RlICYmIHBheWxvYWQuY29kZSkgaW52aXRlLmNvZGUgPSBwYXlsb2FkLmNvZGU7XG4gIGlmIChwcm9wcy5jcmVhdGVkQXQgJiYgcGF5bG9hZC5jcmVhdGVkX2F0KSBpbnZpdGUuY3JlYXRlZEF0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNyZWF0ZWRfYXQpO1xuICBpZiAocHJvcHMuaW52aXRlciAmJiBwYXlsb2FkLmludml0ZXIpIGludml0ZS5pbnZpdGVyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5pbnZpdGVyKTtcbiAgaWYgKHByb3BzLm1heEFnZSkgaW52aXRlLm1heEFnZSA9IHBheWxvYWQubWF4X2FnZTtcbiAgaWYgKHByb3BzLm1heFVzZXMpIGludml0ZS5tYXhVc2VzID0gcGF5bG9hZC5tYXhfdXNlcztcbiAgaWYgKHByb3BzLnRhcmdldFR5cGUgJiYgcGF5bG9hZC50YXJnZXRfdHlwZSkgaW52aXRlLnRhcmdldFR5cGUgPSBwYXlsb2FkLnRhcmdldF90eXBlO1xuICBpZiAocHJvcHMudGFyZ2V0VXNlciAmJiBwYXlsb2FkLnRhcmdldF91c2VyKSBpbnZpdGUudGFyZ2V0VXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudGFyZ2V0X3VzZXIpO1xuICBpZiAocHJvcHMudGFyZ2V0QXBwbGljYXRpb24gJiYgcGF5bG9hZC50YXJnZXRfYXBwbGljYXRpb24pXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBQYXJ0aWFsc1xuICAgIGludml0ZS50YXJnZXRBcHBsaWNhdGlvbiA9IGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb24oYm90LCBwYXlsb2FkLnRhcmdldF9hcHBsaWNhdGlvbiwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KTtcbiAgaWYgKHByb3BzLnRlbXBvcmFyeSAmJiBwYXlsb2FkLnRlbXBvcmFyeSkgaW52aXRlLnRlbXBvcmFyeSA9IHBheWxvYWQudGVtcG9yYXJ5O1xuICBpZiAocHJvcHMudXNlcyAmJiBwYXlsb2FkLnVzZXMpIGludml0ZS51c2VzID0gcGF5bG9hZC51c2VzO1xuXG4gIGlmIChpc0ludml0ZVdpdGhNZXRhZGF0YShwYXlsb2FkKSkge1xuICAgIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5jaGFubmVsPy5pZCkgaW52aXRlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbC5pZCk7XG4gICAgaWYgKHByb3BzLmd1aWxkSWQgJiYgcGF5bG9hZC5ndWlsZD8uaWQpIGludml0ZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5pZCk7XG4gICAgaWYgKHByb3BzLmFwcHJveGltYXRlTWVtYmVyQ291bnQgJiYgcGF5bG9hZC5hcHByb3hpbWF0ZV9tZW1iZXJfY291bnQpIGludml0ZS5hcHByb3hpbWF0ZU1lbWJlckNvdW50ID0gcGF5bG9hZC5hcHByb3hpbWF0ZV9tZW1iZXJfY291bnQ7XG4gICAgaWYgKHByb3BzLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCAmJiBwYXlsb2FkLmFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50ICE9PSB1bmRlZmluZWQpXG4gICAgICBpbnZpdGUuYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50ID0gcGF5bG9hZC5hcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudDtcbiAgICBpZiAocHJvcHMuZ3VpbGRTY2hlZHVsZWRFdmVudCAmJiBwYXlsb2FkLmd1aWxkX3NjaGVkdWxlZF9ldmVudClcbiAgICAgIGludml0ZS5ndWlsZFNjaGVkdWxlZEV2ZW50ID0gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHBheWxvYWQuZ3VpbGRfc2NoZWR1bGVkX2V2ZW50KTtcbiAgICBpZiAocHJvcHMuZXhwaXJlc0F0ICYmIHBheWxvYWQuZXhwaXJlc19hdCkge1xuICAgICAgaW52aXRlLmV4cGlyZXNBdCA9IERhdGUucGFyc2UocGF5bG9hZC5leHBpcmVzX2F0KTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmZsYWdzICYmIHBheWxvYWQuZmxhZ3MpIGludml0ZS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmZsYWdzKTtcbiAgfSBlbHNlIHtcbiAgICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuY2hhbm5lbF9pZCkgaW52aXRlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZCk7XG4gICAgaWYgKHByb3BzLmd1aWxkSWQgJiYgcGF5bG9hZC5ndWlsZF9pZCkgaW52aXRlLmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkX2lkKTtcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludml0ZShib3QsIHBheWxvYWQsIGludml0ZSwgZXh0cmEpO1xufVxuIl0sIm5hbWVzIjpbImlzSW52aXRlV2l0aE1ldGFkYXRhIiwiVG9nZ2xlQml0ZmllbGQiLCJ0cmFuc2Zvcm1JbnZpdGUiLCJib3QiLCJwYXlsb2FkIiwiZXh0cmEiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiaW52aXRlIiwidHlwZSIsImNvZGUiLCJjcmVhdGVkQXQiLCJjcmVhdGVkX2F0IiwiRGF0ZSIsInBhcnNlIiwiaW52aXRlciIsInVzZXIiLCJtYXhBZ2UiLCJtYXhfYWdlIiwibWF4VXNlcyIsIm1heF91c2VzIiwidGFyZ2V0VHlwZSIsInRhcmdldF90eXBlIiwidGFyZ2V0VXNlciIsInRhcmdldF91c2VyIiwidGFyZ2V0QXBwbGljYXRpb24iLCJ0YXJnZXRfYXBwbGljYXRpb24iLCJhcHBsaWNhdGlvbiIsInNoYXJkSWQiLCJ0ZW1wb3JhcnkiLCJ1c2VzIiwiY2hhbm5lbElkIiwiY2hhbm5lbCIsImlkIiwic25vd2ZsYWtlIiwiZ3VpbGRJZCIsImd1aWxkIiwiYXBwcm94aW1hdGVNZW1iZXJDb3VudCIsImFwcHJveGltYXRlX21lbWJlcl9jb3VudCIsImFwcHJveGltYXRlUHJlc2VuY2VDb3VudCIsImFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50IiwidW5kZWZpbmVkIiwiZ3VpbGRTY2hlZHVsZWRFdmVudCIsImd1aWxkX3NjaGVkdWxlZF9ldmVudCIsInNjaGVkdWxlZEV2ZW50IiwiZXhwaXJlc0F0IiwiZXhwaXJlc19hdCIsImZsYWdzIiwiY2hhbm5lbF9pZCIsImd1aWxkX2lkIiwiY3VzdG9taXplcnMiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLG9CQUFvQixRQUFRLG9CQUFvQjtBQUd6RCxTQUFTQyxjQUFjLFFBQVEsOEJBQThCO0FBRzdELE9BQU8sU0FBU0MsZ0JBQWdCQyxHQUFRLEVBQUVDLE9BQW9ELEVBQUVDLEtBQTRCO0lBQzFILE1BQU1DLFFBQVFILElBQUlJLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLE1BQU07SUFDdkQsTUFBTUEsU0FBUyxDQUFDO0lBRWhCLElBQUlILE1BQU1JLElBQUksSUFBSSxVQUFVTixTQUFTSyxPQUFPQyxJQUFJLEdBQUdOLFFBQVFNLElBQUk7SUFDL0QsSUFBSUosTUFBTUssSUFBSSxJQUFJUCxRQUFRTyxJQUFJLEVBQUVGLE9BQU9FLElBQUksR0FBR1AsUUFBUU8sSUFBSTtJQUMxRCxJQUFJTCxNQUFNTSxTQUFTLElBQUlSLFFBQVFTLFVBQVUsRUFBRUosT0FBT0csU0FBUyxHQUFHRSxLQUFLQyxLQUFLLENBQUNYLFFBQVFTLFVBQVU7SUFDM0YsSUFBSVAsTUFBTVUsT0FBTyxJQUFJWixRQUFRWSxPQUFPLEVBQUVQLE9BQU9PLE9BQU8sR0FBR2IsSUFBSUksWUFBWSxDQUFDVSxJQUFJLENBQUNkLEtBQUtDLFFBQVFZLE9BQU87SUFDakcsSUFBSVYsTUFBTVksTUFBTSxFQUFFVCxPQUFPUyxNQUFNLEdBQUdkLFFBQVFlLE9BQU87SUFDakQsSUFBSWIsTUFBTWMsT0FBTyxFQUFFWCxPQUFPVyxPQUFPLEdBQUdoQixRQUFRaUIsUUFBUTtJQUNwRCxJQUFJZixNQUFNZ0IsVUFBVSxJQUFJbEIsUUFBUW1C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
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW52aXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZEludml0ZU1ldGFkYXRhIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi9ib3QuanMnO1xuaW1wb3J0IHR5cGUgeyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBTZXR1cERlc2lyZWRQcm9wcywgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMgfSBmcm9tICcuLi9kZXNpcmVkUHJvcGVydGllcy5qcyc7XG5pbXBvcnQgeyBjYWxsQ3VzdG9taXplciB9IGZyb20gJy4uL3RyYW5zZm9ybWVycy5qcyc7XG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZCB9IGZyb20gJy4vdG9nZ2xlcy9Ub2dnbGVCaXRmaWVsZC5qcyc7XG5pbXBvcnQgdHlwZSB7IEludml0ZSB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW52aXRlKGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRJbnZpdGVNZXRhZGF0YT4sIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyOyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnZpdGU7XG4gIGNvbnN0IGludml0ZSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPEludml0ZSwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSAhPT0gdW5kZWZpbmVkKSBpbnZpdGUudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmNvZGUgJiYgcGF5bG9hZC5jb2RlKSBpbnZpdGUuY29kZSA9IHBheWxvYWQuY29kZTtcbiAgaWYgKHByb3BzLmNyZWF0ZWRBdCAmJiBwYXlsb2FkLmNyZWF0ZWRfYXQpIGludml0ZS5jcmVhdGVkQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQuY3JlYXRlZF9hdCk7XG4gIGlmIChwcm9wcy5pbnZpdGVyICYmIHBheWxvYWQuaW52aXRlcikgaW52aXRlLmludml0ZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmludml0ZXIpO1xuICBpZiAocHJvcHMubWF4QWdlICYmIHBheWxvYWQubWF4X2FnZSAhPT0gdW5kZWZpbmVkKSBpbnZpdGUubWF4QWdlID0gcGF5bG9hZC5tYXhfYWdlO1xuICBpZiAocHJvcHMubWF4VXNlcyAmJiBwYXlsb2FkLm1heF91c2VzICE9PSB1bmRlZmluZWQpIGludml0ZS5tYXhVc2VzID0gcGF5bG9hZC5tYXhfdXNlcztcbiAgaWYgKHByb3BzLnRhcmdldFR5cGUgJiYgcGF5bG9hZC50YXJnZXRfdHlwZSkgaW52aXRlLnRhcmdldFR5cGUgPSBwYXlsb2FkLnRhcmdldF90eXBlO1xuICBpZiAocHJvcHMudGFyZ2V0VXNlciAmJiBwYXlsb2FkLnRhcmdldF91c2VyKSBpbnZpdGUudGFyZ2V0VXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudGFyZ2V0X3VzZXIpO1xuICBpZiAocHJvcHMudGFyZ2V0QXBwbGljYXRpb24gJiYgcGF5bG9hZC50YXJnZXRfYXBwbGljYXRpb24pXG4gICAgaW52aXRlLnRhcmdldEFwcGxpY2F0aW9uID0gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbihib3QsIHBheWxvYWQudGFyZ2V0X2FwcGxpY2F0aW9uLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkLCBwYXJ0aWFsOiB0cnVlIH0pO1xuICBpZiAocHJvcHMudGVtcG9yYXJ5ICYmIHBheWxvYWQudGVtcG9yYXJ5KSBpbnZpdGUudGVtcG9yYXJ5ID0gcGF5bG9hZC50ZW1wb3Jhcnk7XG4gIGlmIChwcm9wcy51c2VzICYmIHBheWxvYWQudXNlcyAhPT0gdW5kZWZpbmVkKSBpbnZpdGUudXNlcyA9IHBheWxvYWQudXNlcztcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmNoYW5uZWw/LmlkKSBpbnZpdGUuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsLmlkKTtcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgcGF5bG9hZC5ndWlsZD8uaWQpIGludml0ZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5pZCk7XG4gIGlmIChwcm9wcy5hcHByb3hpbWF0ZU1lbWJlckNvdW50ICYmIHBheWxvYWQuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50KSBpbnZpdGUuYXBwcm94aW1hdGVNZW1iZXJDb3VudCA9IHBheWxvYWQuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50O1xuICBpZiAocHJvcHMuYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50ICYmIHBheWxvYWQuYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnQgIT09IHVuZGVmaW5lZClcbiAgICBpbnZpdGUuYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50ID0gcGF5bG9hZC5hcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudDtcbiAgaWYgKHByb3BzLmd1aWxkU2NoZWR1bGVkRXZlbnQgJiYgcGF5bG9hZC5ndWlsZF9zY2hlZHVsZWRfZXZlbnQpXG4gICAgaW52aXRlLmd1aWxkU2NoZWR1bGVkRXZlbnQgPSBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgcGF5bG9hZC5ndWlsZF9zY2hlZHVsZWRfZXZlbnQpO1xuICBpZiAocHJvcHMuZXhwaXJlc0F0ICYmIHBheWxvYWQuZXhwaXJlc19hdCkgaW52aXRlLmV4cGlyZXNBdCA9IERhdGUucGFyc2UocGF5bG9hZC5leHBpcmVzX2F0KTtcbiAgaWYgKHByb3BzLmZsYWdzICYmIHBheWxvYWQuZmxhZ3MpIGludml0ZS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmZsYWdzKTtcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIHtcbiAgICAvLyBHb2luZyBmcm9tIGEgUGFydGlhbDxUPiBUbyBQaWNrPFQsIEs+IHJlcXVpcmVzIGFuIGFzLCBhcyB0eXBlc2NyaXB0IGNhbid0IGd1YXJhbnRlZSB0aGF0IHRoZSBwcm9wZXJ0aWVzIGV4aXN0IG9uIHRoZSBwYXJ0aWFsXG4gICAgaW52aXRlLnJvbGVzID0gcGF5bG9hZC5yb2xlcy5tYXAoKHJvbGUpID0+IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHJvbGUsIHsgcGFydGlhbDogdHJ1ZSwgZ3VpbGRJZDogcGF5bG9hZC5ndWlsZD8uaWQgfSkpIGFzIEludml0ZVsncm9sZXMnXTtcbiAgfVxuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignaW52aXRlJywgYm90LCBwYXlsb2FkLCBpbnZpdGUsIHtcbiAgICBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCxcbiAgICBwYXJ0aWFsOiBleHRyYT8ucGFydGlhbCA/PyBmYWxzZSxcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiY2FsbEN1c3RvbWl6ZXIiLCJUb2dnbGVCaXRmaWVsZCIsInRyYW5zZm9ybUludml0ZSIsImJvdCIsInBheWxvYWQiLCJleHRyYSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpbnZpdGUiLCJ0eXBlIiwidW5kZWZpbmVkIiwiY29kZSIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJEYXRlIiwicGFyc2UiLCJpbnZpdGVyIiwidXNlciIsIm1heEFnZSIsIm1heF9hZ2UiLCJtYXhVc2VzIiwibWF4X3VzZXMiLCJ0YXJnZXRUeXBlIiwidGFyZ2V0X3R5cGUiLCJ0YXJnZXRVc2VyIiwidGFyZ2V0X3VzZXIiLCJ0YXJnZXRBcHBsaWNhdGlvbiIsInRhcmdldF9hcHBsaWNhdGlvbiIsImFwcGxpY2F0aW9uIiwic2hhcmRJZCIsInBhcnRpYWwiLCJ0ZW1wb3JhcnkiLCJ1c2VzIiwiY2hhbm5lbElkIiwiY2hhbm5lbCIsImlkIiwic25vd2ZsYWtlIiwiZ3VpbGRJZCIsImd1aWxkIiwiYXBwcm94aW1hdGVNZW1iZXJDb3VudCIsImFwcHJveGltYXRlX21lbWJlcl9jb3VudCIsImFwcHJveGltYXRlUHJlc2VuY2VDb3VudCIsImFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50IiwiZ3VpbGRTY2hlZHVsZWRFdmVudCIsImd1aWxkX3NjaGVkdWxlZF9ldmVudCIsInNjaGVkdWxlZEV2ZW50IiwiZXhwaXJlc0F0IiwiZXhwaXJlc19hdCIsImZsYWdzIiwicm9sZXMiLCJtYXAiLCJyb2xlIl0sIm1hcHBpbmdzIjoiQUFHQSxTQUFTQSxjQUFjLFFBQVEscUJBQXFCO0FBQ3BELFNBQVNDLGNBQWMsUUFBUSw4QkFBOEI7QUFHN0QsT0FBTyxTQUFTQyxnQkFBZ0JDLEdBQVEsRUFBRUMsT0FBdUMsRUFBRUMsS0FBK0M7SUFDaEksTUFBTUMsUUFBUUgsSUFBSUksWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsTUFBTTtJQUN2RCxNQUFNQSxTQUFTLENBQUM7SUFFaEIsSUFBSUgsTUFBTUksSUFBSSxJQUFJTixRQUFRTSxJQUFJLEtBQUtDLFdBQVdGLE9BQU9DLElBQUksR0FBR04sUUFBUU0sSUFBSTtJQUN4RSxJQUFJSixNQUFNTSxJQUFJLElBQUlSLFFBQVFRLElBQUksRUFBRUgsT0FBT0csSUFBSSxHQUFHUixRQUFRUSxJQUFJO0lBQzFELElBQUlOLE1BQU1PLFNBQVMsSUFBSVQsUUFBUVUsVUFBVSxFQUFFTCxPQUFPSSxTQUFTLEdBQUdFLEtBQUtDLEtBQUssQ0FBQ1osUUFBUVUsVUFBVTtJQUMzRixJQUFJUixNQUFNVyxPQUFPLElBQUliLFFBQVFhLE9BQU8sRUFBRVIsT0FBT1EsT0FBTyxHQUFHZCxJQUFJSSxZQUFZLENBQUNXLElBQUksQ0FBQ2YsS0FBS0MsUUFBUWEsT0FBTztJQUNqRyxJQUFJWCxNQUFNYSxNQUFNLElBQUlmLFFBQVFnQixPQUFPLEtBQUtULFdB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
@@ -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
- import type { Lobby, LobbyMember } from './types.js';
4
- export declare function transformLobby(bot: Bot, payload: DiscordLobby): Lobby;
5
- export declare function transformLobbyMember(bot: Bot, payload: DiscordLobbyMember): LobbyMember;
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;AAC1E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAErD,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,CAWrE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB,GAAG,WAAW,CASvF"}
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"}