@jubbio/core 1.3.2 → 1.3.4

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 (130) hide show
  1. package/dist/Client.js +50 -10
  2. package/dist/rest/REST.d.ts +1 -0
  3. package/dist/rest/REST.js +1 -1
  4. package/dist/structures/Channel.d.ts +1 -1
  5. package/dist/structures/Channel.js +11 -4
  6. package/dist/structures/Guild.d.ts +1 -1
  7. package/dist/structures/Guild.js +7 -3
  8. package/dist/structures/Message.d.ts +2 -0
  9. package/dist/structures/Message.js +13 -33
  10. package/package.json +4 -14
  11. package/dist/cjs/Client.d.ts +0 -157
  12. package/dist/cjs/Client.js +0 -640
  13. package/dist/cjs/builders/ActionRowBuilder.d.ts +0 -53
  14. package/dist/cjs/builders/ActionRowBuilder.js +0 -68
  15. package/dist/cjs/builders/ButtonBuilder.d.ts +0 -77
  16. package/dist/cjs/builders/ButtonBuilder.js +0 -96
  17. package/dist/cjs/builders/EmbedBuilder.d.ts +0 -157
  18. package/dist/cjs/builders/EmbedBuilder.js +0 -208
  19. package/dist/cjs/builders/ModalBuilder.d.ts +0 -122
  20. package/dist/cjs/builders/ModalBuilder.js +0 -162
  21. package/dist/cjs/builders/SelectMenuBuilder.d.ts +0 -123
  22. package/dist/cjs/builders/SelectMenuBuilder.js +0 -165
  23. package/dist/cjs/builders/SlashCommandBuilder.d.ts +0 -197
  24. package/dist/cjs/builders/SlashCommandBuilder.js +0 -324
  25. package/dist/cjs/builders/index.d.ts +0 -9
  26. package/dist/cjs/builders/index.js +0 -26
  27. package/dist/cjs/enums.d.ts +0 -191
  28. package/dist/cjs/enums.js +0 -211
  29. package/dist/cjs/index.d.ts +0 -25
  30. package/dist/cjs/index.js +0 -130
  31. package/dist/cjs/managers/BaseManager.d.ts +0 -69
  32. package/dist/cjs/managers/BaseManager.js +0 -106
  33. package/dist/cjs/managers/ChannelManager.d.ts +0 -95
  34. package/dist/cjs/managers/ChannelManager.js +0 -205
  35. package/dist/cjs/managers/GuildMemberManager.d.ts +0 -74
  36. package/dist/cjs/managers/GuildMemberManager.js +0 -157
  37. package/dist/cjs/managers/RoleManager.d.ts +0 -84
  38. package/dist/cjs/managers/RoleManager.js +0 -207
  39. package/dist/cjs/managers/index.d.ts +0 -7
  40. package/dist/cjs/managers/index.js +0 -24
  41. package/dist/cjs/rest/REST.d.ts +0 -527
  42. package/dist/cjs/rest/REST.js +0 -904
  43. package/dist/cjs/rest/index.d.ts +0 -1
  44. package/dist/cjs/rest/index.js +0 -18
  45. package/dist/cjs/sharding/ShardingManager.d.ts +0 -179
  46. package/dist/cjs/sharding/ShardingManager.js +0 -375
  47. package/dist/cjs/sharding/index.d.ts +0 -4
  48. package/dist/cjs/sharding/index.js +0 -21
  49. package/dist/cjs/structures/Channel.d.ts +0 -122
  50. package/dist/cjs/structures/Channel.js +0 -240
  51. package/dist/cjs/structures/Collection.d.ts +0 -53
  52. package/dist/cjs/structures/Collection.js +0 -115
  53. package/dist/cjs/structures/Guild.d.ts +0 -59
  54. package/dist/cjs/structures/Guild.js +0 -94
  55. package/dist/cjs/structures/GuildMember.d.ts +0 -174
  56. package/dist/cjs/structures/GuildMember.js +0 -311
  57. package/dist/cjs/structures/Interaction.d.ts +0 -245
  58. package/dist/cjs/structures/Interaction.js +0 -450
  59. package/dist/cjs/structures/Message.d.ts +0 -98
  60. package/dist/cjs/structures/Message.js +0 -195
  61. package/dist/cjs/structures/User.d.ts +0 -37
  62. package/dist/cjs/structures/User.js +0 -65
  63. package/dist/cjs/structures/index.d.ts +0 -7
  64. package/dist/cjs/structures/index.js +0 -25
  65. package/dist/cjs/structures.d.ts +0 -1
  66. package/dist/cjs/structures.js +0 -19
  67. package/dist/cjs/types.d.ts +0 -255
  68. package/dist/cjs/types.js +0 -3
  69. package/dist/cjs/utils/BitField.d.ts +0 -66
  70. package/dist/cjs/utils/BitField.js +0 -138
  71. package/dist/cjs/utils/Collection.d.ts +0 -116
  72. package/dist/cjs/utils/Collection.js +0 -265
  73. package/dist/cjs/utils/Collector.d.ts +0 -152
  74. package/dist/cjs/utils/Collector.js +0 -314
  75. package/dist/cjs/utils/DataResolver.d.ts +0 -61
  76. package/dist/cjs/utils/DataResolver.js +0 -146
  77. package/dist/cjs/utils/Formatters.d.ts +0 -145
  78. package/dist/cjs/utils/Formatters.js +0 -213
  79. package/dist/cjs/utils/IntentsBitField.d.ts +0 -85
  80. package/dist/cjs/utils/IntentsBitField.js +0 -99
  81. package/dist/cjs/utils/Partials.d.ts +0 -104
  82. package/dist/cjs/utils/Partials.js +0 -148
  83. package/dist/cjs/utils/PermissionsBitField.d.ts +0 -118
  84. package/dist/cjs/utils/PermissionsBitField.js +0 -145
  85. package/dist/cjs/utils/SnowflakeUtil.d.ts +0 -63
  86. package/dist/cjs/utils/SnowflakeUtil.js +0 -93
  87. package/dist/cjs/utils/Sweepers.d.ts +0 -119
  88. package/dist/cjs/utils/Sweepers.js +0 -249
  89. package/dist/cjs/utils/index.d.ts +0 -13
  90. package/dist/cjs/utils/index.js +0 -30
  91. package/dist/esm/Client.js +0 -634
  92. package/dist/esm/builders/ActionRowBuilder.js +0 -64
  93. package/dist/esm/builders/ButtonBuilder.js +0 -92
  94. package/dist/esm/builders/EmbedBuilder.js +0 -204
  95. package/dist/esm/builders/ModalBuilder.js +0 -157
  96. package/dist/esm/builders/SelectMenuBuilder.js +0 -161
  97. package/dist/esm/builders/SlashCommandBuilder.js +0 -311
  98. package/dist/esm/builders/index.js +0 -10
  99. package/dist/esm/enums.js +0 -208
  100. package/dist/esm/index.js +0 -34
  101. package/dist/esm/managers/BaseManager.js +0 -100
  102. package/dist/esm/managers/ChannelManager.js +0 -200
  103. package/dist/esm/managers/GuildMemberManager.js +0 -153
  104. package/dist/esm/managers/RoleManager.js +0 -203
  105. package/dist/esm/managers/index.js +0 -8
  106. package/dist/esm/rest/REST.js +0 -900
  107. package/dist/esm/rest/index.js +0 -2
  108. package/dist/esm/sharding/ShardingManager.js +0 -366
  109. package/dist/esm/sharding/index.js +0 -5
  110. package/dist/esm/structures/Channel.js +0 -232
  111. package/dist/esm/structures/Collection.js +0 -111
  112. package/dist/esm/structures/Guild.js +0 -90
  113. package/dist/esm/structures/GuildMember.js +0 -306
  114. package/dist/esm/structures/Interaction.js +0 -438
  115. package/dist/esm/structures/Message.js +0 -191
  116. package/dist/esm/structures/User.js +0 -61
  117. package/dist/esm/structures/index.js +0 -9
  118. package/dist/esm/structures.js +0 -3
  119. package/dist/esm/types.js +0 -2
  120. package/dist/esm/utils/BitField.js +0 -134
  121. package/dist/esm/utils/Collection.js +0 -261
  122. package/dist/esm/utils/Collector.js +0 -305
  123. package/dist/esm/utils/DataResolver.js +0 -142
  124. package/dist/esm/utils/Formatters.js +0 -191
  125. package/dist/esm/utils/IntentsBitField.js +0 -93
  126. package/dist/esm/utils/Partials.js +0 -137
  127. package/dist/esm/utils/PermissionsBitField.js +0 -141
  128. package/dist/esm/utils/SnowflakeUtil.js +0 -89
  129. package/dist/esm/utils/Sweepers.js +0 -245
  130. package/dist/esm/utils/index.js +0 -14
@@ -1,99 +0,0 @@
1
- "use strict";
2
- /**
3
- * Intents BitField for calculating gateway intents
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.IntentsBitField = exports.PrivilegedIntents = exports.IntentsAll = exports.GatewayIntentBits = void 0;
7
- exports.calculateIntents = calculateIntents;
8
- exports.resolveIntents = resolveIntents;
9
- const BitField_1 = require("./BitField");
10
- /**
11
- * Gateway Intent Bits
12
- */
13
- exports.GatewayIntentBits = {
14
- Guilds: 1 << 0,
15
- GuildMembers: 1 << 1,
16
- GuildModeration: 1 << 2,
17
- GuildEmojisAndStickers: 1 << 3,
18
- GuildIntegrations: 1 << 4,
19
- GuildWebhooks: 1 << 5,
20
- GuildInvites: 1 << 6,
21
- GuildVoiceStates: 1 << 7,
22
- GuildPresences: 1 << 8,
23
- GuildMessages: 1 << 9,
24
- GuildMessageReactions: 1 << 10,
25
- GuildMessageTyping: 1 << 11,
26
- DirectMessages: 1 << 12,
27
- DirectMessageReactions: 1 << 13,
28
- DirectMessageTyping: 1 << 14,
29
- MessageContent: 1 << 15,
30
- GuildScheduledEvents: 1 << 16,
31
- AutoModerationConfiguration: 1 << 20,
32
- AutoModerationExecution: 1 << 21,
33
- };
34
- /**
35
- * All non-privileged intents
36
- */
37
- exports.IntentsAll = Object.values(exports.GatewayIntentBits).reduce((all, i) => all | i, 0);
38
- /**
39
- * Privileged intents that require approval
40
- */
41
- exports.PrivilegedIntents = exports.GatewayIntentBits.GuildMembers |
42
- exports.GatewayIntentBits.GuildPresences |
43
- exports.GatewayIntentBits.MessageContent;
44
- /**
45
- * Data structure for gateway intents
46
- */
47
- class IntentsBitField extends BitField_1.BitField {
48
- static Flags = exports.GatewayIntentBits;
49
- static DefaultBit = 0;
50
- constructor(bits = 0) {
51
- super(bits);
52
- }
53
- /**
54
- * Check if any privileged intents are enabled
55
- */
56
- hasPrivileged() {
57
- return this.any(exports.PrivilegedIntents);
58
- }
59
- /**
60
- * Get all privileged intents that are enabled
61
- */
62
- getPrivileged() {
63
- const privileged = [];
64
- if (this.has(exports.GatewayIntentBits.GuildMembers))
65
- privileged.push('GuildMembers');
66
- if (this.has(exports.GatewayIntentBits.GuildPresences))
67
- privileged.push('GuildPresences');
68
- if (this.has(exports.GatewayIntentBits.MessageContent))
69
- privileged.push('MessageContent');
70
- return privileged;
71
- }
72
- }
73
- exports.IntentsBitField = IntentsBitField;
74
- /**
75
- * Calculate intents from an array of intent names or values
76
- */
77
- function calculateIntents(intents) {
78
- return intents.reduce((acc, intent) => {
79
- if (typeof intent === 'number')
80
- return acc | intent;
81
- if (intent in exports.GatewayIntentBits)
82
- return acc | exports.GatewayIntentBits[intent];
83
- return acc;
84
- }, 0);
85
- }
86
- /**
87
- * Get all intent names from a bitfield value
88
- */
89
- function resolveIntents(bits) {
90
- const names = [];
91
- for (const [name, value] of Object.entries(exports.GatewayIntentBits)) {
92
- if ((bits & value) === value) {
93
- names.push(name);
94
- }
95
- }
96
- return names;
97
- }
98
- exports.default = IntentsBitField;
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50ZW50c0JpdEZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL0ludGVudHNCaXRGaWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQWdGSCw0Q0FNQztBQUtELHdDQVFDO0FBakdELHlDQUEwRDtBQU8xRDs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQUc7SUFDL0IsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ2QsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3BCLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQztJQUN2QixzQkFBc0IsRUFBRSxDQUFDLElBQUksQ0FBQztJQUM5QixpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQztJQUN6QixhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDckIsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3BCLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3hCLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQztJQUN0QixhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDckIscUJBQXFCLEVBQUUsQ0FBQyxJQUFJLEVBQUU7SUFDOUIsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUU7SUFDM0IsY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFO0lBQ3ZCLHNCQUFzQixFQUFFLENBQUMsSUFBSSxFQUFFO0lBQy9CLG1CQUFtQixFQUFFLENBQUMsSUFBSSxFQUFFO0lBQzVCLGNBQWMsRUFBRSxDQUFDLElBQUksRUFBRTtJQUN2QixvQkFBb0IsRUFBRSxDQUFDLElBQUksRUFBRTtJQUM3QiwyQkFBMkIsRUFBRSxDQUFDLElBQUksRUFBRTtJQUNwQyx1QkFBdUIsRUFBRSxDQUFDLElBQUksRUFBRTtDQUN4QixDQUFDO0FBRVg7O0dBRUc7QUFDVSxRQUFBLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLHlCQUFpQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUUxRjs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQzVCLHlCQUFpQixDQUFDLFlBQVk7SUFDOUIseUJBQWlCLENBQUMsY0FBYztJQUNoQyx5QkFBaUIsQ0FBQyxjQUFjLENBQUM7QUFFbkM7O0dBRUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsbUJBQW1DO0lBQ3RFLE1BQU0sQ0FBQyxLQUFLLEdBQUcseUJBQWlCLENBQUM7SUFDakMsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFFdEIsWUFBWSxPQUFzRCxDQUFDO1FBQ2pFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsTUFBTSxVQUFVLEdBQXdCLEVBQUUsQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQWlCLENBQUMsWUFBWSxDQUFDO1lBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM5RSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQWlCLENBQUMsY0FBYyxDQUFDO1lBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xGLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyx5QkFBaUIsQ0FBQyxjQUFjLENBQUM7WUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEYsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzs7QUF4QkgsMENBeUJDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUF1QztJQUN0RSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDNUMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRO1lBQUUsT0FBTyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ3BELElBQUksTUFBTSxJQUFJLHlCQUFpQjtZQUFFLE9BQU8sR0FBRyxHQUFHLHlCQUFpQixDQUFDLE1BQXdDLENBQUMsQ0FBQztRQUMxRyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNSLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxJQUFZO0lBQ3pDLE1BQU0sS0FBSyxHQUF3QixFQUFFLENBQUM7SUFDdEMsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMseUJBQWlCLENBQUMsRUFBRSxDQUFDO1FBQzlELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUF5QixDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxrQkFBZSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVudHMgQml0RmllbGQgZm9yIGNhbGN1bGF0aW5nIGdhdGV3YXkgaW50ZW50c1xuICovXG5cbmltcG9ydCB7IEJpdEZpZWxkLCBCaXRGaWVsZFJlc29sdmFibGUgfSBmcm9tICcuL0JpdEZpZWxkJztcblxuLyoqXG4gKiBJbnRlbnQgZmxhZyBuYW1lc1xuICovXG5leHBvcnQgdHlwZSBJbnRlbnRGbGFnc1N0cmluZyA9IGtleW9mIHR5cGVvZiBJbnRlbnRzQml0RmllbGQuRmxhZ3M7XG5cbi8qKlxuICogR2F0ZXdheSBJbnRlbnQgQml0c1xuICovXG5leHBvcnQgY29uc3QgR2F0ZXdheUludGVudEJpdHMgPSB7XG4gIEd1aWxkczogMSA8PCAwLFxuICBHdWlsZE1lbWJlcnM6IDEgPDwgMSxcbiAgR3VpbGRNb2RlcmF0aW9uOiAxIDw8IDIsXG4gIEd1aWxkRW1vamlzQW5kU3RpY2tlcnM6IDEgPDwgMyxcbiAgR3VpbGRJbnRlZ3JhdGlvbnM6IDEgPDwgNCxcbiAgR3VpbGRXZWJob29rczogMSA8PCA1LFxuICBHdWlsZEludml0ZXM6IDEgPDwgNixcbiAgR3VpbGRWb2ljZVN0YXRlczogMSA8PCA3LFxuICBHdWlsZFByZXNlbmNlczogMSA8PCA4LFxuICBHdWlsZE1lc3NhZ2VzOiAxIDw8IDksXG4gIEd1aWxkTWVzc2FnZVJlYWN0aW9uczogMSA8PCAxMCxcbiAgR3VpbGRNZXNzYWdlVHlwaW5nOiAxIDw8IDExLFxuICBEaXJlY3RNZXNzYWdlczogMSA8PCAxMixcbiAgRGlyZWN0TWVzc2FnZVJlYWN0aW9uczogMSA8PCAxMyxcbiAgRGlyZWN0TWVzc2FnZVR5cGluZzogMSA8PCAxNCxcbiAgTWVzc2FnZUNvbnRlbnQ6IDEgPDwgMTUsXG4gIEd1aWxkU2NoZWR1bGVkRXZlbnRzOiAxIDw8IDE2LFxuICBBdXRvTW9kZXJhdGlvbkNvbmZpZ3VyYXRpb246IDEgPDwgMjAsXG4gIEF1dG9Nb2RlcmF0aW9uRXhlY3V0aW9uOiAxIDw8IDIxLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBBbGwgbm9uLXByaXZpbGVnZWQgaW50ZW50c1xuICovXG5leHBvcnQgY29uc3QgSW50ZW50c0FsbCA9IE9iamVjdC52YWx1ZXMoR2F0ZXdheUludGVudEJpdHMpLnJlZHVjZSgoYWxsLCBpKSA9PiBhbGwgfCBpLCAwKTtcblxuLyoqXG4gKiBQcml2aWxlZ2VkIGludGVudHMgdGhhdCByZXF1aXJlIGFwcHJvdmFsXG4gKi9cbmV4cG9ydCBjb25zdCBQcml2aWxlZ2VkSW50ZW50cyA9IFxuICBHYXRld2F5SW50ZW50Qml0cy5HdWlsZE1lbWJlcnMgfCBcbiAgR2F0ZXdheUludGVudEJpdHMuR3VpbGRQcmVzZW5jZXMgfCBcbiAgR2F0ZXdheUludGVudEJpdHMuTWVzc2FnZUNvbnRlbnQ7XG5cbi8qKlxuICogRGF0YSBzdHJ1Y3R1cmUgZm9yIGdhdGV3YXkgaW50ZW50c1xuICovXG5leHBvcnQgY2xhc3MgSW50ZW50c0JpdEZpZWxkIGV4dGVuZHMgQml0RmllbGQ8SW50ZW50RmxhZ3NTdHJpbmcsIG51bWJlcj4ge1xuICBzdGF0aWMgRmxhZ3MgPSBHYXRld2F5SW50ZW50Qml0cztcbiAgc3RhdGljIERlZmF1bHRCaXQgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKGJpdHM6IEJpdEZpZWxkUmVzb2x2YWJsZTxJbnRlbnRGbGFnc1N0cmluZywgbnVtYmVyPiA9IDApIHtcbiAgICBzdXBlcihiaXRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbnkgcHJpdmlsZWdlZCBpbnRlbnRzIGFyZSBlbmFibGVkXG4gICAqL1xuICBoYXNQcml2aWxlZ2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFueShQcml2aWxlZ2VkSW50ZW50cyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCBwcml2aWxlZ2VkIGludGVudHMgdGhhdCBhcmUgZW5hYmxlZFxuICAgKi9cbiAgZ2V0UHJpdmlsZWdlZCgpOiBJbnRlbnRGbGFnc1N0cmluZ1tdIHtcbiAgICBjb25zdCBwcml2aWxlZ2VkOiBJbnRlbnRGbGFnc1N0cmluZ1tdID0gW107XG4gICAgaWYgKHRoaXMuaGFzKEdhdGV3YXlJbnRlbnRCaXRzLkd1aWxkTWVtYmVycykpIHByaXZpbGVnZWQucHVzaCgnR3VpbGRNZW1iZXJzJyk7XG4gICAgaWYgKHRoaXMuaGFzKEdhdGV3YXlJbnRlbnRCaXRzLkd1aWxkUHJlc2VuY2VzKSkgcHJpdmlsZWdlZC5wdXNoKCdHdWlsZFByZXNlbmNlcycpO1xuICAgIGlmICh0aGlzLmhhcyhHYXRld2F5SW50ZW50Qml0cy5NZXNzYWdlQ29udGVudCkpIHByaXZpbGVnZWQucHVzaCgnTWVzc2FnZUNvbnRlbnQnKTtcbiAgICByZXR1cm4gcHJpdmlsZWdlZDtcbiAgfVxufVxuXG4vKipcbiAqIENhbGN1bGF0ZSBpbnRlbnRzIGZyb20gYW4gYXJyYXkgb2YgaW50ZW50IG5hbWVzIG9yIHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlSW50ZW50cyhpbnRlbnRzOiAoSW50ZW50RmxhZ3NTdHJpbmcgfCBudW1iZXIpW10pOiBudW1iZXIge1xuICByZXR1cm4gaW50ZW50cy5yZWR1Y2U8bnVtYmVyPigoYWNjLCBpbnRlbnQpID0+IHtcbiAgICBpZiAodHlwZW9mIGludGVudCA9PT0gJ251bWJlcicpIHJldHVybiBhY2MgfCBpbnRlbnQ7XG4gICAgaWYgKGludGVudCBpbiBHYXRld2F5SW50ZW50Qml0cykgcmV0dXJuIGFjYyB8IEdhdGV3YXlJbnRlbnRCaXRzW2ludGVudCBhcyBrZXlvZiB0eXBlb2YgR2F0ZXdheUludGVudEJpdHNdO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIDApO1xufVxuXG4vKipcbiAqIEdldCBhbGwgaW50ZW50IG5hbWVzIGZyb20gYSBiaXRmaWVsZCB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUludGVudHMoYml0czogbnVtYmVyKTogSW50ZW50RmxhZ3NTdHJpbmdbXSB7XG4gIGNvbnN0IG5hbWVzOiBJbnRlbnRGbGFnc1N0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhHYXRld2F5SW50ZW50Qml0cykpIHtcbiAgICBpZiAoKGJpdHMgJiB2YWx1ZSkgPT09IHZhbHVlKSB7XG4gICAgICBuYW1lcy5wdXNoKG5hbWUgYXMgSW50ZW50RmxhZ3NTdHJpbmcpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbmFtZXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEludGVudHNCaXRGaWVsZDtcbiJdfQ==
@@ -1,104 +0,0 @@
1
- /**
2
- * Partials - Handle uncached/partial data structures
3
- */
4
- /**
5
- * Partial types that can be enabled
6
- */
7
- export declare enum Partials {
8
- User = 0,
9
- Channel = 1,
10
- GuildMember = 2,
11
- Message = 3,
12
- Reaction = 4,
13
- GuildScheduledEvent = 5
14
- }
15
- /**
16
- * Check if a structure is partial (missing data)
17
- */
18
- export declare function isPartial(obj: any): boolean;
19
- /**
20
- * Create a partial user structure
21
- */
22
- export declare function createPartialUser(id: string): PartialUser;
23
- /**
24
- * Create a partial channel structure
25
- */
26
- export declare function createPartialChannel(id: string): PartialChannel;
27
- /**
28
- * Create a partial message structure
29
- */
30
- export declare function createPartialMessage(id: string, channelId: string): PartialMessage;
31
- /**
32
- * Create a partial guild member structure
33
- */
34
- export declare function createPartialGuildMember(userId: string, guildId: string): PartialGuildMember;
35
- /**
36
- * Create a partial reaction structure
37
- */
38
- export declare function createPartialReaction(messageId: string, emoji: string): PartialReaction;
39
- /**
40
- * Partial structure types
41
- */
42
- export interface PartialUser {
43
- id: string;
44
- partial: true;
45
- username: string | null;
46
- discriminator: string | null;
47
- avatar: string | null;
48
- bot: boolean | null;
49
- fetch(): Promise<any>;
50
- toString(): string;
51
- }
52
- export interface PartialChannel {
53
- id: string;
54
- partial: true;
55
- type: number | null;
56
- name: string | null;
57
- fetch(): Promise<any>;
58
- toString(): string;
59
- }
60
- export interface PartialMessage {
61
- id: string;
62
- channelId: string;
63
- partial: true;
64
- content: string | null;
65
- author: any | null;
66
- embeds: any[] | null;
67
- attachments: any[] | null;
68
- fetch(): Promise<any>;
69
- toString(): string;
70
- }
71
- export interface PartialGuildMember {
72
- id: string;
73
- guildId: string;
74
- partial: true;
75
- user: any | null;
76
- nick: string | null;
77
- roles: string[] | null;
78
- joinedAt: Date | null;
79
- fetch(): Promise<any>;
80
- toString(): string;
81
- }
82
- export interface PartialReaction {
83
- messageId: string;
84
- emoji: string;
85
- partial: true;
86
- count: number | null;
87
- me: boolean | null;
88
- fetch(): Promise<any>;
89
- toString(): string;
90
- }
91
- /**
92
- * Make a structure partial-aware with fetch capability
93
- */
94
- export declare function makePartialAware<T extends {
95
- id: string;
96
- }>(structure: T, client: any, fetchFn: (id: string) => Promise<T>): T & {
97
- partial: boolean;
98
- fetch: () => Promise<T>;
99
- };
100
- /**
101
- * Check if partials are enabled for a type
102
- */
103
- export declare function hasPartial(client: any, partial: Partials): boolean;
104
- export default Partials;
@@ -1,148 +0,0 @@
1
- "use strict";
2
- /**
3
- * Partials - Handle uncached/partial data structures
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Partials = void 0;
7
- exports.isPartial = isPartial;
8
- exports.createPartialUser = createPartialUser;
9
- exports.createPartialChannel = createPartialChannel;
10
- exports.createPartialMessage = createPartialMessage;
11
- exports.createPartialGuildMember = createPartialGuildMember;
12
- exports.createPartialReaction = createPartialReaction;
13
- exports.makePartialAware = makePartialAware;
14
- exports.hasPartial = hasPartial;
15
- /**
16
- * Partial types that can be enabled
17
- */
18
- var Partials;
19
- (function (Partials) {
20
- Partials[Partials["User"] = 0] = "User";
21
- Partials[Partials["Channel"] = 1] = "Channel";
22
- Partials[Partials["GuildMember"] = 2] = "GuildMember";
23
- Partials[Partials["Message"] = 3] = "Message";
24
- Partials[Partials["Reaction"] = 4] = "Reaction";
25
- Partials[Partials["GuildScheduledEvent"] = 5] = "GuildScheduledEvent";
26
- })(Partials || (exports.Partials = Partials = {}));
27
- /**
28
- * Check if a structure is partial (missing data)
29
- */
30
- function isPartial(obj) {
31
- return obj?.partial === true;
32
- }
33
- /**
34
- * Create a partial user structure
35
- */
36
- function createPartialUser(id) {
37
- return {
38
- id,
39
- partial: true,
40
- username: null,
41
- discriminator: null,
42
- avatar: null,
43
- bot: null,
44
- async fetch() {
45
- throw new Error('Cannot fetch partial user without client context');
46
- },
47
- toString() {
48
- return `<@${id}>`;
49
- },
50
- };
51
- }
52
- /**
53
- * Create a partial channel structure
54
- */
55
- function createPartialChannel(id) {
56
- return {
57
- id,
58
- partial: true,
59
- type: null,
60
- name: null,
61
- async fetch() {
62
- throw new Error('Cannot fetch partial channel without client context');
63
- },
64
- toString() {
65
- return `<#${id}>`;
66
- },
67
- };
68
- }
69
- /**
70
- * Create a partial message structure
71
- */
72
- function createPartialMessage(id, channelId) {
73
- return {
74
- id,
75
- channelId,
76
- partial: true,
77
- content: null,
78
- author: null,
79
- embeds: null,
80
- attachments: null,
81
- async fetch() {
82
- throw new Error('Cannot fetch partial message without client context');
83
- },
84
- toString() {
85
- return `Message(${id})`;
86
- },
87
- };
88
- }
89
- /**
90
- * Create a partial guild member structure
91
- */
92
- function createPartialGuildMember(userId, guildId) {
93
- return {
94
- id: userId,
95
- guildId,
96
- partial: true,
97
- user: null,
98
- nick: null,
99
- roles: null,
100
- joinedAt: null,
101
- async fetch() {
102
- throw new Error('Cannot fetch partial member without client context');
103
- },
104
- toString() {
105
- return `<@${userId}>`;
106
- },
107
- };
108
- }
109
- /**
110
- * Create a partial reaction structure
111
- */
112
- function createPartialReaction(messageId, emoji) {
113
- return {
114
- messageId,
115
- emoji,
116
- partial: true,
117
- count: null,
118
- me: null,
119
- async fetch() {
120
- throw new Error('Cannot fetch partial reaction without client context');
121
- },
122
- toString() {
123
- return emoji;
124
- },
125
- };
126
- }
127
- /**
128
- * Make a structure partial-aware with fetch capability
129
- */
130
- function makePartialAware(structure, client, fetchFn) {
131
- return {
132
- ...structure,
133
- partial: false,
134
- async fetch() {
135
- const fetched = await fetchFn(structure.id);
136
- Object.assign(this, fetched, { partial: false });
137
- return this;
138
- },
139
- };
140
- }
141
- /**
142
- * Check if partials are enabled for a type
143
- */
144
- function hasPartial(client, partial) {
145
- return client.options?.partials?.includes(partial) ?? false;
146
- }
147
- exports.default = Partials;
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFydGlhbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvUGFydGlhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFpQkgsOEJBRUM7QUFLRCw4Q0FpQkM7QUFLRCxvREFlQztBQUtELG9EQWtCQztBQUtELDREQWtCQztBQUtELHNEQWdCQztBQThERCw0Q0FjQztBQUtELGdDQUVDO0FBak5EOztHQUVHO0FBQ0gsSUFBWSxRQU9YO0FBUEQsV0FBWSxRQUFRO0lBQ2xCLHVDQUFRLENBQUE7SUFDUiw2Q0FBVyxDQUFBO0lBQ1gscURBQWUsQ0FBQTtJQUNmLDZDQUFXLENBQUE7SUFDWCwrQ0FBWSxDQUFBO0lBQ1oscUVBQXVCLENBQUE7QUFDekIsQ0FBQyxFQVBXLFFBQVEsd0JBQVIsUUFBUSxRQU9uQjtBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLEdBQVE7SUFDaEMsT0FBTyxHQUFHLEVBQUUsT0FBTyxLQUFLLElBQUksQ0FBQztBQUMvQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxFQUFVO0lBQzFDLE9BQU87UUFDTCxFQUFFO1FBQ0YsT0FBTyxFQUFFLElBQUk7UUFDYixRQUFRLEVBQUUsSUFBSTtRQUNkLGFBQWEsRUFBRSxJQUFJO1FBQ25CLE1BQU0sRUFBRSxJQUFJO1FBQ1osR0FBRyxFQUFFLElBQUk7UUFFVCxLQUFLLENBQUMsS0FBSztZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsUUFBUTtZQUNOLE9BQU8sS0FBSyxFQUFFLEdBQUcsQ0FBQztRQUNwQixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLEVBQVU7SUFDN0MsT0FBTztRQUNMLEVBQUU7UUFDRixPQUFPLEVBQUUsSUFBSTtRQUNiLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFFLElBQUk7UUFFVixLQUFLLENBQUMsS0FBSztZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsUUFBUTtZQUNOLE9BQU8sS0FBSyxFQUFFLEdBQUcsQ0FBQztRQUNwQixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLEVBQVUsRUFBRSxTQUFpQjtJQUNoRSxPQUFPO1FBQ0wsRUFBRTtRQUNGLFNBQVM7UUFDVCxPQUFPLEVBQUUsSUFBSTtRQUNiLE9BQU8sRUFBRSxJQUFJO1FBQ2IsTUFBTSxFQUFFLElBQUk7UUFDWixNQUFNLEVBQUUsSUFBSTtRQUNaLFdBQVcsRUFBRSxJQUFJO1FBRWpCLEtBQUssQ0FBQyxLQUFLO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFFRCxRQUFRO1lBQ04sT0FBTyxXQUFXLEVBQUUsR0FBRyxDQUFDO1FBQzFCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsTUFBYyxFQUFFLE9BQWU7SUFDdEUsT0FBTztRQUNMLEVBQUUsRUFBRSxNQUFNO1FBQ1YsT0FBTztRQUNQLE9BQU8sRUFBRSxJQUFJO1FBQ2IsSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUUsSUFBSTtRQUNWLEtBQUssRUFBRSxJQUFJO1FBQ1gsUUFBUSxFQUFFLElBQUk7UUFFZCxLQUFLLENBQUMsS0FBSztZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsUUFBUTtZQUNOLE9BQU8sS0FBSyxNQUFNLEdBQUcsQ0FBQztRQUN4QixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLFNBQWlCLEVBQUUsS0FBYTtJQUNwRSxPQUFPO1FBQ0wsU0FBUztRQUNULEtBQUs7UUFDTCxPQUFPLEVBQUUsSUFBSTtRQUNiLEtBQUssRUFBRSxJQUFJO1FBQ1gsRUFBRSxFQUFFLElBQUk7UUFFUixLQUFLLENBQUMsS0FBSztZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsUUFBUTtZQUNOLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBMkREOztHQUVHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLFNBQVksRUFDWixNQUFXLEVBQ1gsT0FBbUM7SUFFbkMsT0FBTztRQUNMLEdBQUcsU0FBUztRQUNaLE9BQU8sRUFBRSxLQUFLO1FBQ2QsS0FBSyxDQUFDLEtBQUs7WUFDVCxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDakQsT0FBTyxJQUFTLENBQUM7UUFDbkIsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixVQUFVLENBQUMsTUFBVyxFQUFFLE9BQWlCO0lBQ3ZELE9BQU8sTUFBTSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQztBQUM5RCxDQUFDO0FBRUQsa0JBQWUsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQYXJ0aWFscyAtIEhhbmRsZSB1bmNhY2hlZC9wYXJ0aWFsIGRhdGEgc3RydWN0dXJlc1xuICovXG5cbi8qKlxuICogUGFydGlhbCB0eXBlcyB0aGF0IGNhbiBiZSBlbmFibGVkXG4gKi9cbmV4cG9ydCBlbnVtIFBhcnRpYWxzIHtcbiAgVXNlciA9IDAsXG4gIENoYW5uZWwgPSAxLFxuICBHdWlsZE1lbWJlciA9IDIsXG4gIE1lc3NhZ2UgPSAzLFxuICBSZWFjdGlvbiA9IDQsXG4gIEd1aWxkU2NoZWR1bGVkRXZlbnQgPSA1LFxufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgc3RydWN0dXJlIGlzIHBhcnRpYWwgKG1pc3NpbmcgZGF0YSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUGFydGlhbChvYmo6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gb2JqPy5wYXJ0aWFsID09PSB0cnVlO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIHBhcnRpYWwgdXNlciBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhcnRpYWxVc2VyKGlkOiBzdHJpbmcpOiBQYXJ0aWFsVXNlciB7XG4gIHJldHVybiB7XG4gICAgaWQsXG4gICAgcGFydGlhbDogdHJ1ZSxcbiAgICB1c2VybmFtZTogbnVsbCxcbiAgICBkaXNjcmltaW5hdG9yOiBudWxsLFxuICAgIGF2YXRhcjogbnVsbCxcbiAgICBib3Q6IG51bGwsXG4gICAgXG4gICAgYXN5bmMgZmV0Y2goKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmZXRjaCBwYXJ0aWFsIHVzZXIgd2l0aG91dCBjbGllbnQgY29udGV4dCcpO1xuICAgIH0sXG4gICAgXG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICByZXR1cm4gYDxAJHtpZH0+YDtcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIHBhcnRpYWwgY2hhbm5lbCBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhcnRpYWxDaGFubmVsKGlkOiBzdHJpbmcpOiBQYXJ0aWFsQ2hhbm5lbCB7XG4gIHJldHVybiB7XG4gICAgaWQsXG4gICAgcGFydGlhbDogdHJ1ZSxcbiAgICB0eXBlOiBudWxsLFxuICAgIG5hbWU6IG51bGwsXG4gICAgXG4gICAgYXN5bmMgZmV0Y2goKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmZXRjaCBwYXJ0aWFsIGNoYW5uZWwgd2l0aG91dCBjbGllbnQgY29udGV4dCcpO1xuICAgIH0sXG4gICAgXG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICByZXR1cm4gYDwjJHtpZH0+YDtcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIHBhcnRpYWwgbWVzc2FnZSBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhcnRpYWxNZXNzYWdlKGlkOiBzdHJpbmcsIGNoYW5uZWxJZDogc3RyaW5nKTogUGFydGlhbE1lc3NhZ2Uge1xuICByZXR1cm4ge1xuICAgIGlkLFxuICAgIGNoYW5uZWxJZCxcbiAgICBwYXJ0aWFsOiB0cnVlLFxuICAgIGNvbnRlbnQ6IG51bGwsXG4gICAgYXV0aG9yOiBudWxsLFxuICAgIGVtYmVkczogbnVsbCxcbiAgICBhdHRhY2htZW50czogbnVsbCxcbiAgICBcbiAgICBhc3luYyBmZXRjaCgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGZldGNoIHBhcnRpYWwgbWVzc2FnZSB3aXRob3V0IGNsaWVudCBjb250ZXh0Jyk7XG4gICAgfSxcbiAgICBcbiAgICB0b1N0cmluZygpIHtcbiAgICAgIHJldHVybiBgTWVzc2FnZSgke2lkfSlgO1xuICAgIH0sXG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgcGFydGlhbCBndWlsZCBtZW1iZXIgc3RydWN0dXJlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYXJ0aWFsR3VpbGRNZW1iZXIodXNlcklkOiBzdHJpbmcsIGd1aWxkSWQ6IHN0cmluZyk6IFBhcnRpYWxHdWlsZE1lbWJlciB7XG4gIHJldHVybiB7XG4gICAgaWQ6IHVzZXJJZCxcbiAgICBndWlsZElkLFxuICAgIHBhcnRpYWw6IHRydWUsXG4gICAgdXNlcjogbnVsbCxcbiAgICBuaWNrOiBudWxsLFxuICAgIHJvbGVzOiBudWxsLFxuICAgIGpvaW5lZEF0OiBudWxsLFxuICAgIFxuICAgIGFzeW5jIGZldGNoKCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZmV0Y2ggcGFydGlhbCBtZW1iZXIgd2l0aG91dCBjbGllbnQgY29udGV4dCcpO1xuICAgIH0sXG4gICAgXG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICByZXR1cm4gYDxAJHt1c2VySWR9PmA7XG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBwYXJ0aWFsIHJlYWN0aW9uIHN0cnVjdHVyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGFydGlhbFJlYWN0aW9uKG1lc3NhZ2VJZDogc3RyaW5nLCBlbW9qaTogc3RyaW5nKTogUGFydGlhbFJlYWN0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICBtZXNzYWdlSWQsXG4gICAgZW1vamksXG4gICAgcGFydGlhbDogdHJ1ZSxcbiAgICBjb3VudDogbnVsbCxcbiAgICBtZTogbnVsbCxcbiAgICBcbiAgICBhc3luYyBmZXRjaCgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGZldGNoIHBhcnRpYWwgcmVhY3Rpb24gd2l0aG91dCBjbGllbnQgY29udGV4dCcpO1xuICAgIH0sXG4gICAgXG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICByZXR1cm4gZW1vamk7XG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBQYXJ0aWFsIHN0cnVjdHVyZSB0eXBlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxVc2VyIHtcbiAgaWQ6IHN0cmluZztcbiAgcGFydGlhbDogdHJ1ZTtcbiAgdXNlcm5hbWU6IHN0cmluZyB8IG51bGw7XG4gIGRpc2NyaW1pbmF0b3I6IHN0cmluZyB8IG51bGw7XG4gIGF2YXRhcjogc3RyaW5nIHwgbnVsbDtcbiAgYm90OiBib29sZWFuIHwgbnVsbDtcbiAgZmV0Y2goKTogUHJvbWlzZTxhbnk+O1xuICB0b1N0cmluZygpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGlhbENoYW5uZWwge1xuICBpZDogc3RyaW5nO1xuICBwYXJ0aWFsOiB0cnVlO1xuICB0eXBlOiBudW1iZXIgfCBudWxsO1xuICBuYW1lOiBzdHJpbmcgfCBudWxsO1xuICBmZXRjaCgpOiBQcm9taXNlPGFueT47XG4gIHRvU3RyaW5nKCk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJ0aWFsTWVzc2FnZSB7XG4gIGlkOiBzdHJpbmc7XG4gIGNoYW5uZWxJZDogc3RyaW5nO1xuICBwYXJ0aWFsOiB0cnVlO1xuICBjb250ZW50OiBzdHJpbmcgfCBudWxsO1xuICBhdXRob3I6IGFueSB8IG51bGw7XG4gIGVtYmVkczogYW55W10gfCBudWxsO1xuICBhdHRhY2htZW50czogYW55W10gfCBudWxsO1xuICBmZXRjaCgpOiBQcm9taXNlPGFueT47XG4gIHRvU3RyaW5nKCk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJ0aWFsR3VpbGRNZW1iZXIge1xuICBpZDogc3RyaW5nO1xuICBndWlsZElkOiBzdHJpbmc7XG4gIHBhcnRpYWw6IHRydWU7XG4gIHVzZXI6IGFueSB8IG51bGw7XG4gIG5pY2s6IHN0cmluZyB8IG51bGw7XG4gIHJvbGVzOiBzdHJpbmdbXSB8IG51bGw7XG4gIGpvaW5lZEF0OiBEYXRlIHwgbnVsbDtcbiAgZmV0Y2goKTogUHJvbWlzZTxhbnk+O1xuICB0b1N0cmluZygpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGlhbFJlYWN0aW9uIHtcbiAgbWVzc2FnZUlkOiBzdHJpbmc7XG4gIGVtb2ppOiBzdHJpbmc7XG4gIHBhcnRpYWw6IHRydWU7XG4gIGNvdW50OiBudW1iZXIgfCBudWxsO1xuICBtZTogYm9vbGVhbiB8IG51bGw7XG4gIGZldGNoKCk6IFByb21pc2U8YW55PjtcbiAgdG9TdHJpbmcoKTogc3RyaW5nO1xufVxuXG4vKipcbiAqIE1ha2UgYSBzdHJ1Y3R1cmUgcGFydGlhbC1hd2FyZSB3aXRoIGZldGNoIGNhcGFiaWxpdHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VQYXJ0aWFsQXdhcmU8VCBleHRlbmRzIHsgaWQ6IHN0cmluZyB9PihcbiAgc3RydWN0dXJlOiBULFxuICBjbGllbnQ6IGFueSxcbiAgZmV0Y2hGbjogKGlkOiBzdHJpbmcpID0+IFByb21pc2U8VD5cbik6IFQgJiB7IHBhcnRpYWw6IGJvb2xlYW47IGZldGNoOiAoKSA9PiBQcm9taXNlPFQ+IH0ge1xuICByZXR1cm4ge1xuICAgIC4uLnN0cnVjdHVyZSxcbiAgICBwYXJ0aWFsOiBmYWxzZSxcbiAgICBhc3luYyBmZXRjaCgpIHtcbiAgICAgIGNvbnN0IGZldGNoZWQgPSBhd2FpdCBmZXRjaEZuKHN0cnVjdHVyZS5pZCk7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGZldGNoZWQsIHsgcGFydGlhbDogZmFsc2UgfSk7XG4gICAgICByZXR1cm4gdGhpcyBhcyBUO1xuICAgIH0sXG4gIH07XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgcGFydGlhbHMgYXJlIGVuYWJsZWQgZm9yIGEgdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzUGFydGlhbChjbGllbnQ6IGFueSwgcGFydGlhbDogUGFydGlhbHMpOiBib29sZWFuIHtcbiAgcmV0dXJuIGNsaWVudC5vcHRpb25zPy5wYXJ0aWFscz8uaW5jbHVkZXMocGFydGlhbCkgPz8gZmFsc2U7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBhcnRpYWxzO1xuIl19
@@ -1,118 +0,0 @@
1
- import { PermissionFlagsBits } from '../enums';
2
- /**
3
- * Permission names type
4
- */
5
- export type PermissionString = keyof typeof PermissionFlagsBits;
6
- /**
7
- * Resolvable permission type
8
- */
9
- export type PermissionResolvable = bigint | bigint[] | PermissionString | PermissionString[] | PermissionsBitField;
10
- /**
11
- * Bit field for permissions
12
- * API compatible with Discord.js PermissionsBitField
13
- */
14
- export declare class PermissionsBitField {
15
- /** The raw bits */
16
- bitfield: bigint;
17
- /** All permission flags */
18
- static Flags: {
19
- readonly CreateInstantInvite: bigint;
20
- readonly KickMembers: bigint;
21
- readonly BanMembers: bigint;
22
- readonly Administrator: bigint;
23
- readonly ManageChannels: bigint;
24
- readonly ManageGuild: bigint;
25
- readonly AddReactions: bigint;
26
- readonly ViewAuditLog: bigint;
27
- readonly ViewGuildInsights: bigint;
28
- readonly Stream: bigint;
29
- readonly ViewChannel: bigint;
30
- readonly SendMessages: bigint;
31
- readonly SendTTSMessages: bigint;
32
- readonly ManageMessages: bigint;
33
- readonly EmbedLinks: bigint;
34
- readonly AttachFiles: bigint;
35
- readonly ReadMessageHistory: bigint;
36
- readonly UseExternalEmojis: bigint;
37
- readonly UseSlashCommands: bigint;
38
- readonly MentionEveryone: bigint;
39
- readonly Connect: bigint;
40
- readonly Speak: bigint;
41
- readonly MuteMembers: bigint;
42
- readonly DeafenMembers: bigint;
43
- readonly MoveMembers: bigint;
44
- readonly UseVAD: bigint;
45
- readonly ChangeCodec: bigint;
46
- readonly AudioQualityAdmin: bigint;
47
- readonly VideoCall: bigint;
48
- readonly ShareScreen: bigint;
49
- readonly ShareCamera: bigint;
50
- readonly ControlQuality: bigint;
51
- readonly RequestToSpeak: bigint;
52
- readonly ManageEvents: bigint;
53
- readonly AddMembers: bigint;
54
- readonly RemoveMembers: bigint;
55
- readonly ChangeGroupIcon: bigint;
56
- readonly ChangeDMSettings: bigint;
57
- readonly ManageGroup: bigint;
58
- readonly UseActivities: bigint;
59
- readonly ModerateMembers: bigint;
60
- readonly ManageRoles: bigint;
61
- readonly ManageEmojis: bigint;
62
- readonly PrioritySpeaker: bigint;
63
- };
64
- /** All permissions combined */
65
- static All: bigint;
66
- /** Default permissions */
67
- static Default: bigint;
68
- constructor(bits?: PermissionResolvable);
69
- /**
70
- * Check if this bitfield has a permission
71
- */
72
- has(permission: PermissionResolvable, checkAdmin?: boolean): boolean;
73
- /**
74
- * Check if this bitfield has any of the permissions
75
- */
76
- any(permissions: PermissionResolvable, checkAdmin?: boolean): boolean;
77
- /**
78
- * Check if this bitfield is missing any permissions
79
- */
80
- missing(permissions: PermissionResolvable, checkAdmin?: boolean): PermissionString[];
81
- /**
82
- * Add permissions to this bitfield
83
- */
84
- add(...permissions: PermissionResolvable[]): this;
85
- /**
86
- * Remove permissions from this bitfield
87
- */
88
- remove(...permissions: PermissionResolvable[]): this;
89
- /**
90
- * Serialize this bitfield to an array of permission names
91
- */
92
- toArray(): PermissionString[];
93
- /**
94
- * Serialize this bitfield to a JSON-compatible value
95
- */
96
- toJSON(): string;
97
- /**
98
- * Get the string representation
99
- */
100
- toString(): string;
101
- /**
102
- * Freeze this bitfield
103
- */
104
- freeze(): Readonly<this>;
105
- /**
106
- * Check equality with another bitfield
107
- */
108
- equals(other: PermissionResolvable): boolean;
109
- /**
110
- * Create a new bitfield with the same bits
111
- */
112
- clone(): PermissionsBitField;
113
- /**
114
- * Resolve a permission to a bigint
115
- */
116
- static resolve(permission: PermissionResolvable): bigint;
117
- }
118
- export default PermissionsBitField;
@@ -1,145 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PermissionsBitField = void 0;
4
- const enums_1 = require("../enums");
5
- /**
6
- * Bit field for permissions
7
- * API compatible with Discord.js PermissionsBitField
8
- */
9
- class PermissionsBitField {
10
- /** The raw bits */
11
- bitfield;
12
- /** All permission flags */
13
- static Flags = enums_1.PermissionFlagsBits;
14
- /** All permissions combined */
15
- static All = Object.values(enums_1.PermissionFlagsBits).reduce((acc, val) => acc | val, 0n);
16
- /** Default permissions */
17
- static Default = BigInt(0);
18
- constructor(bits = 0n) {
19
- this.bitfield = PermissionsBitField.resolve(bits);
20
- }
21
- /**
22
- * Check if this bitfield has a permission
23
- */
24
- has(permission, checkAdmin = true) {
25
- // Admin has all permissions
26
- if (checkAdmin && this.bitfield & enums_1.PermissionFlagsBits.Administrator) {
27
- return true;
28
- }
29
- const bit = PermissionsBitField.resolve(permission);
30
- return (this.bitfield & bit) === bit;
31
- }
32
- /**
33
- * Check if this bitfield has any of the permissions
34
- */
35
- any(permissions, checkAdmin = true) {
36
- // Admin has all permissions
37
- if (checkAdmin && this.bitfield & enums_1.PermissionFlagsBits.Administrator) {
38
- return true;
39
- }
40
- const bit = PermissionsBitField.resolve(permissions);
41
- return (this.bitfield & bit) !== 0n;
42
- }
43
- /**
44
- * Check if this bitfield is missing any permissions
45
- */
46
- missing(permissions, checkAdmin = true) {
47
- const missing = [];
48
- for (const [name, bit] of Object.entries(enums_1.PermissionFlagsBits)) {
49
- const resolved = PermissionsBitField.resolve(permissions);
50
- if ((resolved & bit) && !this.has(bit, checkAdmin)) {
51
- missing.push(name);
52
- }
53
- }
54
- return missing;
55
- }
56
- /**
57
- * Add permissions to this bitfield
58
- */
59
- add(...permissions) {
60
- for (const permission of permissions) {
61
- this.bitfield |= PermissionsBitField.resolve(permission);
62
- }
63
- return this;
64
- }
65
- /**
66
- * Remove permissions from this bitfield
67
- */
68
- remove(...permissions) {
69
- for (const permission of permissions) {
70
- this.bitfield &= ~PermissionsBitField.resolve(permission);
71
- }
72
- return this;
73
- }
74
- /**
75
- * Serialize this bitfield to an array of permission names
76
- */
77
- toArray() {
78
- const result = [];
79
- for (const [name, bit] of Object.entries(enums_1.PermissionFlagsBits)) {
80
- if (this.bitfield & bit) {
81
- result.push(name);
82
- }
83
- }
84
- return result;
85
- }
86
- /**
87
- * Serialize this bitfield to a JSON-compatible value
88
- */
89
- toJSON() {
90
- return this.bitfield.toString();
91
- }
92
- /**
93
- * Get the string representation
94
- */
95
- toString() {
96
- return this.bitfield.toString();
97
- }
98
- /**
99
- * Freeze this bitfield
100
- */
101
- freeze() {
102
- return Object.freeze(this);
103
- }
104
- /**
105
- * Check equality with another bitfield
106
- */
107
- equals(other) {
108
- return this.bitfield === PermissionsBitField.resolve(other);
109
- }
110
- /**
111
- * Create a new bitfield with the same bits
112
- */
113
- clone() {
114
- return new PermissionsBitField(this.bitfield);
115
- }
116
- /**
117
- * Resolve a permission to a bigint
118
- */
119
- static resolve(permission) {
120
- if (typeof permission === 'bigint') {
121
- return permission;
122
- }
123
- if (permission instanceof PermissionsBitField) {
124
- return permission.bitfield;
125
- }
126
- if (typeof permission === 'string') {
127
- const bit = enums_1.PermissionFlagsBits[permission];
128
- if (bit === undefined) {
129
- throw new Error(`Unknown permission: ${permission}`);
130
- }
131
- return bit;
132
- }
133
- if (Array.isArray(permission)) {
134
- let result = 0n;
135
- for (const p of permission) {
136
- result |= PermissionsBitField.resolve(p);
137
- }
138
- return result;
139
- }
140
- throw new Error(`Invalid permission: ${permission}`);
141
- }
142
- }
143
- exports.PermissionsBitField = PermissionsBitField;
144
- exports.default = PermissionsBitField;
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVybWlzc2lvbnNCaXRGaWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9QZXJtaXNzaW9uc0JpdEZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9DQUErQztBQWlCL0M7OztHQUdHO0FBQ0gsTUFBYSxtQkFBbUI7SUFDOUIsbUJBQW1CO0lBQ1osUUFBUSxDQUFTO0lBRXhCLDJCQUEyQjtJQUMzQixNQUFNLENBQUMsS0FBSyxHQUFHLDJCQUFtQixDQUFDO0lBRW5DLCtCQUErQjtJQUMvQixNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsMkJBQW1CLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXBGLDBCQUEwQjtJQUMxQixNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUzQixZQUFZLE9BQTZCLEVBQUU7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLFVBQWdDLEVBQUUsVUFBVSxHQUFHLElBQUk7UUFDckQsNEJBQTRCO1FBQzVCLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsMkJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDcEUsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUMs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VUFBZ0M7UUFDN0MsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNuQyxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDO1FBRUQsSUFBSSxVQUFVLFlBQVksbUJBQW1CLEVBQUUsQ0FBQztZQUM5QyxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDN0IsQ0FBQztRQUVELElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkMsTUFBTSxHQUFHLEdBQUcsMkJBQW1CLENBQUMsVUFBOEIsQ0FBQyxDQUFDO1lBQ2hFLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDaEIsS0FBSyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxJQUFJLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7QUE5Skgsa0RBK0pDO0FBRUQsa0JBQWUsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQZXJtaXNzaW9uRmxhZ3NCaXRzIH0gZnJvbSAnLi4vZW51bXMnO1xuXG4vKipcbiAqIFBlcm1pc3Npb24gbmFtZXMgdHlwZVxuICovXG5leHBvcnQgdHlwZSBQZXJtaXNzaW9uU3RyaW5nID0ga2V5b2YgdHlwZW9mIFBlcm1pc3Npb25GbGFnc0JpdHM7XG5cbi8qKlxuICogUmVzb2x2YWJsZSBwZXJtaXNzaW9uIHR5cGVcbiAqL1xuZXhwb3J0IHR5cGUgUGVybWlzc2lvblJlc29sdmFibGUgPSBcbiAgfCBiaWdpbnQgXG4gIHwgYmlnaW50W10gXG4gIHwgUGVybWlzc2lvblN0cmluZyBcbiAgfCBQZXJtaXNzaW9uU3RyaW5nW10gXG4gIHwgUGVybWlzc2lvbnNCaXRGaWVsZDtcblxuLyoqXG4gKiBCaXQgZmllbGQgZm9yIHBlcm1pc3Npb25zXG4gKiBBUEkgY29tcGF0aWJsZSB3aXRoIERpc2NvcmQuanMgUGVybWlzc2lvbnNCaXRGaWVsZFxuICovXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbnNCaXRGaWVsZCB7XG4gIC8qKiBUaGUgcmF3IGJpdHMgKi9cbiAgcHVibGljIGJpdGZpZWxkOiBiaWdpbnQ7XG5cbiAgLyoqIEFsbCBwZXJtaXNzaW9uIGZsYWdzICovXG4gIHN0YXRpYyBGbGFncyA9IFBlcm1pc3Npb25GbGFnc0JpdHM7XG5cbiAgLyoqIEFsbCBwZXJtaXNzaW9ucyBjb21iaW5lZCAqL1xuICBzdGF0aWMgQWxsID0gT2JqZWN0LnZhbHVlcyhQZXJtaXNzaW9uRmxhZ3NCaXRzKS5yZWR1Y2UoKGFjYywgdmFsKSA9PiBhY2MgfCB2YWwsIDBuKTtcblxuICAvKiogRGVmYXVsdCBwZXJtaXNzaW9ucyAqL1xuICBzdGF0aWMgRGVmYXVsdCA9IEJpZ0ludCgwKTtcblxuICBjb25zdHJ1Y3RvcihiaXRzOiBQZXJtaXNzaW9uUmVzb2x2YWJsZSA9IDBuKSB7XG4gICAgdGhpcy5iaXRmaWVsZCA9IFBlcm1pc3Npb25zQml0RmllbGQucmVzb2x2ZShiaXRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGlzIGJpdGZpZWxkIGhhcyBhIHBlcm1pc3Npb25cbiAgICovXG4gIGhhcyhwZXJtaXNzaW9uOiBQZXJtaXNzaW9uUmVzb2x2YWJsZSwgY2hlY2tBZG1pbiA9IHRydWUpOiBib29sZWFuIHtcbiAgICAvLyBBZG1pbiBoYXMgYWxsIHBlcm1pc3Npb25zXG4gICAgaWYgKGNoZWNrQWRtaW4gJiYgdGhpcy5iaXRmaWVsZCAmIFBlcm1pc3Npb25GbGFnc0JpdHMuQWRtaW5pc3RyYXRvcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgYml0ID0gUGVybWlzc2lvbnNCaXRGaWVsZC5yZXNvbHZlKHBlcm1pc3Npb24pO1xuICAgIHJldHVybiAodGhpcy5iaXRmaWVsZCAmIGJpdCkgPT09IGJpdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGlzIGJpdGZpZWxkIGhhcyBhbnkgb2YgdGhlIHBlcm1pc3Npb25zXG4gICAqL1xuICBhbnkocGVybWlzc2lvbnM6IFBlcm1pc3Npb25SZXNvbHZhYmxlLCBjaGVja0FkbWluID0gdHJ1ZSk6IGJvb2xlYW4ge1xuICAgIC8vIEFkbWluIGhhcyBhbGwgcGVybWlzc2lvbnNcbiAgICBpZiAoY2hlY2tBZG1pbiAmJiB0aGlzLmJpdGZpZWxkICYgUGVybWlzc2lvbkZsYWdzQml0cy5BZG1pbmlzdHJhdG9yKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBiaXQgPSBQZXJtaXNzaW9uc0JpdEZpZWxkLnJlc29sdmUocGVybWlzc2lvbnMpO1xuICAgIHJldHVybiAodGhpcy5iaXRmaWVsZCAmIGJpdCkgIT09IDBuO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoaXMgYml0ZmllbGQgaXMgbWlzc2luZyBhbnkgcGVybWlzc2lvbnNcbiAgICovXG4gIG1pc3NpbmcocGVybWlzc2lvbnM6IFBlcm1pc3Npb25SZXNvbHZhYmxlLCBjaGVja0FkbWluID0gdHJ1ZSk6IFBlcm1pc3Npb25TdHJpbmdbXSB7XG4gICAgY29uc3QgbWlzc2luZzogUGVybWlzc2lvblN0cmluZ1tdID0gW107XG4gICAgXG4gICAgZm9yIChjb25zdCBbbmFtZSwgYml0XSBvZiBPYmplY3QuZW50cmllcyhQZXJtaXNzaW9uRmxhZ3NCaXRzKSkge1xuICAgICAgY29uc3QgcmVzb2x2ZWQgPSBQZXJtaXNzaW9uc0JpdEZpZWxkLnJlc29sdmUocGVybWlzc2lvbnMpO1xuICAgICAgaWYgKChyZXNvbHZlZCAmIGJpdCkgJiYgIXRoaXMuaGFzKGJpdCwgY2hlY2tBZG1pbikpIHtcbiAgICAgICAgbWlzc2luZy5wdXNoKG5hbWUgYXMgUGVybWlzc2lvblN0cmluZyk7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBtaXNzaW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBwZXJtaXNzaW9ucyB0byB0aGlzIGJpdGZpZWxkXG4gICAqL1xuICBhZGQoLi4ucGVybWlzc2lvbnM6IFBlcm1pc3Npb25SZXNvbHZhYmxlW10pOiB0aGlzIHtcbiAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgcGVybWlzc2lvbnMpIHtcbiAgICAgIHRoaXMuYml0ZmllbGQgfD0gUGVybWlzc2lvbnNCaXRGaWVsZC5yZXNvbHZlKHBlcm1pc3Npb24pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgcGVybWlzc2lvbnMgZnJvbSB0aGlzIGJpdGZpZWxkXG4gICAqL1xuICByZW1vdmUoLi4ucGVybWlzc2lvbnM6IFBlcm1pc3Npb25SZXNvbHZhYmxlW10pOiB0aGlzIHtcbiAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgcGVybWlzc2lvbnMpIHtcbiAgICAgIHRoaXMuYml0ZmllbGQgJj0gflBlcm1pc3Npb25zQml0RmllbGQucmVzb2x2ZShwZXJtaXNzaW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoaXMgYml0ZmllbGQgdG8gYW4gYXJyYXkgb2YgcGVybWlzc2lvbiBuYW1lc1xuICAgKi9cbiAgdG9BcnJheSgpOiBQZXJtaXNzaW9uU3RyaW5nW10ge1xuICAgIGNvbnN0IHJlc3VsdDogUGVybWlzc2lvblN0cmluZ1tdID0gW107XG4gICAgXG4gICAgZm9yIChjb25zdCBbbmFtZSwgYml0XSBvZiBPYmplY3QuZW50cmllcyhQZXJtaXNzaW9uRmxhZ3NCaXRzKSkge1xuICAgICAgaWYgKHRoaXMuYml0ZmllbGQgJiBiaXQpIHtcbiAgICAgICAgcmVzdWx0LnB1c2gobmFtZSBhcyBQZXJtaXNzaW9uU3RyaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemUgdGhpcyBiaXRmaWVsZCB0byBhIEpTT04tY29tcGF0aWJsZSB2YWx1ZVxuICAgKi9cbiAgdG9KU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvblxuICAgKi9cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZC50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZyZWV6ZSB0aGlzIGJpdGZpZWxkXG4gICAqL1xuICBmcmVlemUoKTogUmVhZG9ubHk8dGhpcz4ge1xuICAgIHJldHVybiBPYmplY3QuZnJlZXplKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGVxdWFsaXR5IHdpdGggYW5vdGhlciBiaXRmaWVsZFxuICAgKi9cbiAgZXF1YWxzKG90aGVyOiBQZXJtaXNzaW9uUmVzb2x2YWJsZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJpdGZpZWxkID09PSBQZXJtaXNzaW9uc0JpdEZpZWxkLnJlc29sdmUob3RoZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBiaXRmaWVsZCB3aXRoIHRoZSBzYW1lIGJpdHNcbiAgICovXG4gIGNsb25lKCk6IFBlcm1pc3Npb25zQml0RmllbGQge1xuICAgIHJldHVybiBuZXcgUGVybWlzc2lvbnNCaXRGaWVsZCh0aGlzLmJpdGZpZWxkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIGEgcGVybWlzc2lvbiB0byBhIGJpZ2ludFxuICAgKi9cbiAgc3RhdGljIHJlc29sdmUocGVybWlzc2lvbjogUGVybWlzc2lvblJlc29sdmFibGUpOiBiaWdpbnQge1xuICAgIGlmICh0eXBlb2YgcGVybWlzc2lvbiA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgIHJldHVybiBwZXJtaXNzaW9uO1xuICAgIH1cblxuICAgIGlmIChwZXJtaXNzaW9uIGluc3RhbmNlb2YgUGVybWlzc2lvbnNCaXRGaWVsZCkge1xuICAgICAgcmV0dXJuIHBlcm1pc3Npb24uYml0ZmllbGQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBwZXJtaXNzaW9uID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgYml0ID0gUGVybWlzc2lvbkZsYWdzQml0c1twZXJtaXNzaW9uIGFzIFBlcm1pc3Npb25TdHJpbmddO1xuICAgICAgaWYgKGJpdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBwZXJtaXNzaW9uOiAke3Blcm1pc3Npb259YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYml0O1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHBlcm1pc3Npb24pKSB7XG4gICAgICBsZXQgcmVzdWx0ID0gMG47XG4gICAgICBmb3IgKGNvbnN0IHAgb2YgcGVybWlzc2lvbikge1xuICAgICAgICByZXN1bHQgfD0gUGVybWlzc2lvbnNCaXRGaWVsZC5yZXNvbHZlKHApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGVybWlzc2lvbjogJHtwZXJtaXNzaW9ufWApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBlcm1pc3Npb25zQml0RmllbGQ7XG4iXX0=