@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,63 +0,0 @@
1
- /**
2
- * Snowflake utilities
3
- * API compatible with Discord.js SnowflakeUtil
4
- */
5
- /**
6
- * A container for useful snowflake-related methods
7
- */
8
- export declare class SnowflakeUtil {
9
- /**
10
- * Jubbio's epoch value
11
- */
12
- static readonly EPOCH = 1420070400000n;
13
- /**
14
- * Generates a snowflake ID
15
- * @param timestamp Timestamp or date to generate from
16
- */
17
- static generate(timestamp?: number | Date): string;
18
- /**
19
- * Deconstructs a snowflake ID
20
- * @param snowflake Snowflake to deconstruct
21
- */
22
- static deconstruct(snowflake: string): DeconstructedSnowflake;
23
- /**
24
- * Retrieves the timestamp from a snowflake
25
- * @param snowflake Snowflake to get the timestamp from
26
- */
27
- static timestampFrom(snowflake: string): number;
28
- /**
29
- * Retrieves the date from a snowflake
30
- * @param snowflake Snowflake to get the date from
31
- */
32
- static dateFrom(snowflake: string): Date;
33
- /**
34
- * Compares two snowflakes
35
- * @param a First snowflake
36
- * @param b Second snowflake
37
- * @returns -1 if a < b, 0 if a === b, 1 if a > b
38
- */
39
- static compare(a: string, b: string): -1 | 0 | 1;
40
- /**
41
- * Checks if a value is a valid snowflake
42
- * @param value Value to check
43
- */
44
- static isValid(value: unknown): value is string;
45
- }
46
- /**
47
- * Deconstructed snowflake data
48
- */
49
- export interface DeconstructedSnowflake {
50
- /** Timestamp the snowflake was created */
51
- timestamp: number;
52
- /** Date the snowflake was created */
53
- date: Date;
54
- /** Worker ID in the snowflake */
55
- workerId: number;
56
- /** Process ID in the snowflake */
57
- processId: number;
58
- /** Increment in the snowflake */
59
- increment: number;
60
- /** Binary representation of the snowflake */
61
- binary: string;
62
- }
63
- export default SnowflakeUtil;
@@ -1,93 +0,0 @@
1
- "use strict";
2
- /**
3
- * Snowflake utilities
4
- * API compatible with Discord.js SnowflakeUtil
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.SnowflakeUtil = void 0;
8
- // Jubbio epoch (same as Discord: 2015-01-01T00:00:00.000Z)
9
- const EPOCH = 1420070400000n;
10
- /**
11
- * A container for useful snowflake-related methods
12
- */
13
- class SnowflakeUtil {
14
- /**
15
- * Jubbio's epoch value
16
- */
17
- static EPOCH = EPOCH;
18
- /**
19
- * Generates a snowflake ID
20
- * @param timestamp Timestamp or date to generate from
21
- */
22
- static generate(timestamp = Date.now()) {
23
- const time = timestamp instanceof Date ? timestamp.getTime() : timestamp;
24
- return ((BigInt(time) - EPOCH) << 22n).toString();
25
- }
26
- /**
27
- * Deconstructs a snowflake ID
28
- * @param snowflake Snowflake to deconstruct
29
- */
30
- static deconstruct(snowflake) {
31
- const bigIntSnowflake = BigInt(snowflake);
32
- return {
33
- timestamp: Number((bigIntSnowflake >> 22n) + EPOCH),
34
- get date() {
35
- return new Date(this.timestamp);
36
- },
37
- workerId: Number((bigIntSnowflake & 0x3e0000n) >> 17n),
38
- processId: Number((bigIntSnowflake & 0x1f000n) >> 12n),
39
- increment: Number(bigIntSnowflake & 0xfffn),
40
- binary: bigIntSnowflake.toString(2).padStart(64, '0'),
41
- };
42
- }
43
- /**
44
- * Retrieves the timestamp from a snowflake
45
- * @param snowflake Snowflake to get the timestamp from
46
- */
47
- static timestampFrom(snowflake) {
48
- return Number((BigInt(snowflake) >> 22n) + EPOCH);
49
- }
50
- /**
51
- * Retrieves the date from a snowflake
52
- * @param snowflake Snowflake to get the date from
53
- */
54
- static dateFrom(snowflake) {
55
- return new Date(SnowflakeUtil.timestampFrom(snowflake));
56
- }
57
- /**
58
- * Compares two snowflakes
59
- * @param a First snowflake
60
- * @param b Second snowflake
61
- * @returns -1 if a < b, 0 if a === b, 1 if a > b
62
- */
63
- static compare(a, b) {
64
- const bigA = BigInt(a);
65
- const bigB = BigInt(b);
66
- if (bigA < bigB)
67
- return -1;
68
- if (bigA > bigB)
69
- return 1;
70
- return 0;
71
- }
72
- /**
73
- * Checks if a value is a valid snowflake
74
- * @param value Value to check
75
- */
76
- static isValid(value) {
77
- if (typeof value !== 'string')
78
- return false;
79
- if (!/^\d{17,20}$/.test(value))
80
- return false;
81
- try {
82
- const timestamp = SnowflakeUtil.timestampFrom(value);
83
- return timestamp > Number(EPOCH) && timestamp < Date.now() + 1000 * 60 * 60 * 24 * 365; // Within reasonable range
84
- }
85
- catch {
86
- return false;
87
- }
88
- }
89
- }
90
- exports.SnowflakeUtil = SnowflakeUtil;
91
- // Export as default too for convenience
92
- exports.default = SnowflakeUtil;
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU25vd2ZsYWtlVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9Tbm93Zmxha2VVdGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUVILDJEQUEyRDtBQUMzRCxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUM7QUFFN0I7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDeEI7O09BRUc7SUFDSCxNQUFNLENBQVUsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUU5Qjs7O09BR0c7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQTJCLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDbkQsTUFBTSxJQUFJLEdBQUcsU0FBUyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDekUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQWlCO1FBQ2xDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxPQUFPO1lBQ0wsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLGVBQWUsSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDbkQsSUFBSSxJQUFJO2dCQUNOLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xDLENBQUM7WUFDRCxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQztZQUN0RCxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQztZQUN0RCxTQUFTLEVBQUUsTUFBTSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUM7WUFDM0MsTUFBTSxFQUFFLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUM7U0FDdEQsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQWlCO1FBQ3BDLE9BQU8sTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQWlCO1FBQy9CLE9BQU8sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBUyxFQUFFLENBQVM7UUFDakMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksR0FBRyxJQUFJO1lBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMzQixJQUFJLElBQUksR0FBRyxJQUFJO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFjO1FBQzNCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzdDLElBQUksQ0FBQztZQUNILE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckQsT0FBTyxTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLDBCQUEwQjtRQUNwSCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQzs7QUE1RUgsc0NBNkVDO0FBb0JELHdDQUF3QztBQUN4QyxrQkFBZSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNub3dmbGFrZSB1dGlsaXRpZXNcbiAqIEFQSSBjb21wYXRpYmxlIHdpdGggRGlzY29yZC5qcyBTbm93Zmxha2VVdGlsXG4gKi9cblxuLy8gSnViYmlvIGVwb2NoIChzYW1lIGFzIERpc2NvcmQ6IDIwMTUtMDEtMDFUMDA6MDA6MDAuMDAwWilcbmNvbnN0IEVQT0NIID0gMTQyMDA3MDQwMDAwMG47XG5cbi8qKlxuICogQSBjb250YWluZXIgZm9yIHVzZWZ1bCBzbm93Zmxha2UtcmVsYXRlZCBtZXRob2RzXG4gKi9cbmV4cG9ydCBjbGFzcyBTbm93Zmxha2VVdGlsIHtcbiAgLyoqXG4gICAqIEp1YmJpbydzIGVwb2NoIHZhbHVlXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgRVBPQ0ggPSBFUE9DSDtcblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgc25vd2ZsYWtlIElEXG4gICAqIEBwYXJhbSB0aW1lc3RhbXAgVGltZXN0YW1wIG9yIGRhdGUgdG8gZ2VuZXJhdGUgZnJvbVxuICAgKi9cbiAgc3RhdGljIGdlbmVyYXRlKHRpbWVzdGFtcDogbnVtYmVyIHwgRGF0ZSA9IERhdGUubm93KCkpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRpbWUgPSB0aW1lc3RhbXAgaW5zdGFuY2VvZiBEYXRlID8gdGltZXN0YW1wLmdldFRpbWUoKSA6IHRpbWVzdGFtcDtcbiAgICByZXR1cm4gKChCaWdJbnQodGltZSkgLSBFUE9DSCkgPDwgMjJuKS50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlY29uc3RydWN0cyBhIHNub3dmbGFrZSBJRFxuICAgKiBAcGFyYW0gc25vd2ZsYWtlIFNub3dmbGFrZSB0byBkZWNvbnN0cnVjdFxuICAgKi9cbiAgc3RhdGljIGRlY29uc3RydWN0KHNub3dmbGFrZTogc3RyaW5nKTogRGVjb25zdHJ1Y3RlZFNub3dmbGFrZSB7XG4gICAgY29uc3QgYmlnSW50U25vd2ZsYWtlID0gQmlnSW50KHNub3dmbGFrZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpbWVzdGFtcDogTnVtYmVyKChiaWdJbnRTbm93Zmxha2UgPj4gMjJuKSArIEVQT0NIKSxcbiAgICAgIGdldCBkYXRlKCkge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUodGhpcy50aW1lc3RhbXApO1xuICAgICAgfSxcbiAgICAgIHdvcmtlcklkOiBOdW1iZXIoKGJpZ0ludFNub3dmbGFrZSAmIDB4M0UwMDAwbikgPj4gMTduKSxcbiAgICAgIHByb2Nlc3NJZDogTnVtYmVyKChiaWdJbnRTbm93Zmxha2UgJiAweDFGMDAwbikgPj4gMTJuKSxcbiAgICAgIGluY3JlbWVudDogTnVtYmVyKGJpZ0ludFNub3dmbGFrZSAmIDB4RkZGbiksXG4gICAgICBiaW5hcnk6IGJpZ0ludFNub3dmbGFrZS50b1N0cmluZygyKS5wYWRTdGFydCg2NCwgJzAnKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgdGltZXN0YW1wIGZyb20gYSBzbm93Zmxha2VcbiAgICogQHBhcmFtIHNub3dmbGFrZSBTbm93Zmxha2UgdG8gZ2V0IHRoZSB0aW1lc3RhbXAgZnJvbVxuICAgKi9cbiAgc3RhdGljIHRpbWVzdGFtcEZyb20oc25vd2ZsYWtlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiBOdW1iZXIoKEJpZ0ludChzbm93Zmxha2UpID4+IDIybikgKyBFUE9DSCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBkYXRlIGZyb20gYSBzbm93Zmxha2VcbiAgICogQHBhcmFtIHNub3dmbGFrZSBTbm93Zmxha2UgdG8gZ2V0IHRoZSBkYXRlIGZyb21cbiAgICovXG4gIHN0YXRpYyBkYXRlRnJvbShzbm93Zmxha2U6IHN0cmluZyk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShTbm93Zmxha2VVdGlsLnRpbWVzdGFtcEZyb20oc25vd2ZsYWtlKSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIHNub3dmbGFrZXNcbiAgICogQHBhcmFtIGEgRmlyc3Qgc25vd2ZsYWtlXG4gICAqIEBwYXJhbSBiIFNlY29uZCBzbm93Zmxha2VcbiAgICogQHJldHVybnMgLTEgaWYgYSA8IGIsIDAgaWYgYSA9PT0gYiwgMSBpZiBhID4gYlxuICAgKi9cbiAgc3RhdGljIGNvbXBhcmUoYTogc3RyaW5nLCBiOiBzdHJpbmcpOiAtMSB8IDAgfCAxIHtcbiAgICBjb25zdCBiaWdBID0gQmlnSW50KGEpO1xuICAgIGNvbnN0IGJpZ0IgPSBCaWdJbnQoYik7XG4gICAgaWYgKGJpZ0EgPCBiaWdCKSByZXR1cm4gLTE7XG4gICAgaWYgKGJpZ0EgPiBiaWdCKSByZXR1cm4gMTtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSB2YWx1ZSBpcyBhIHZhbGlkIHNub3dmbGFrZVxuICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gY2hlY2tcbiAgICovXG4gIHN0YXRpYyBpc1ZhbGlkKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgc3RyaW5nIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykgcmV0dXJuIGZhbHNlO1xuICAgIGlmICghL15cXGR7MTcsMjB9JC8udGVzdCh2YWx1ZSkpIHJldHVybiBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdGltZXN0YW1wID0gU25vd2ZsYWtlVXRpbC50aW1lc3RhbXBGcm9tKHZhbHVlKTtcbiAgICAgIHJldHVybiB0aW1lc3RhbXAgPiBOdW1iZXIoRVBPQ0gpICYmIHRpbWVzdGFtcCA8IERhdGUubm93KCkgKyAxMDAwICogNjAgKiA2MCAqIDI0ICogMzY1OyAvLyBXaXRoaW4gcmVhc29uYWJsZSByYW5nZVxuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIERlY29uc3RydWN0ZWQgc25vd2ZsYWtlIGRhdGFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWNvbnN0cnVjdGVkU25vd2ZsYWtlIHtcbiAgLyoqIFRpbWVzdGFtcCB0aGUgc25vd2ZsYWtlIHdhcyBjcmVhdGVkICovXG4gIHRpbWVzdGFtcDogbnVtYmVyO1xuICAvKiogRGF0ZSB0aGUgc25vd2ZsYWtlIHdhcyBjcmVhdGVkICovXG4gIGRhdGU6IERhdGU7XG4gIC8qKiBXb3JrZXIgSUQgaW4gdGhlIHNub3dmbGFrZSAqL1xuICB3b3JrZXJJZDogbnVtYmVyO1xuICAvKiogUHJvY2VzcyBJRCBpbiB0aGUgc25vd2ZsYWtlICovXG4gIHByb2Nlc3NJZDogbnVtYmVyO1xuICAvKiogSW5jcmVtZW50IGluIHRoZSBzbm93Zmxha2UgKi9cbiAgaW5jcmVtZW50OiBudW1iZXI7XG4gIC8qKiBCaW5hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIHNub3dmbGFrZSAqL1xuICBiaW5hcnk6IHN0cmluZztcbn1cblxuLy8gRXhwb3J0IGFzIGRlZmF1bHQgdG9vIGZvciBjb252ZW5pZW5jZVxuZXhwb3J0IGRlZmF1bHQgU25vd2ZsYWtlVXRpbDtcbiJdfQ==
@@ -1,119 +0,0 @@
1
- /**
2
- * Sweepers - Automatic cache cleanup utilities
3
- */
4
- import { Collection } from './Collection';
5
- /**
6
- * Sweeper options for a specific cache
7
- */
8
- export interface SweeperOptions {
9
- /** Interval in seconds between sweeps */
10
- interval: number;
11
- /** Filter function to determine what to sweep */
12
- filter: () => (value: any, key: string, collection: Collection<string, any>) => boolean;
13
- }
14
- /**
15
- * Global sweeper configuration
16
- */
17
- export interface SweeperDefinitions {
18
- /** Sweep application commands */
19
- applicationCommands?: SweeperOptions;
20
- /** Sweep bans */
21
- bans?: SweeperOptions;
22
- /** Sweep emojis */
23
- emojis?: SweeperOptions;
24
- /** Sweep invites */
25
- invites?: SweeperOptions;
26
- /** Sweep guild members */
27
- guildMembers?: SweeperOptions;
28
- /** Sweep messages */
29
- messages?: SweeperOptions;
30
- /** Sweep presences */
31
- presences?: SweeperOptions;
32
- /** Sweep reactions */
33
- reactions?: SweeperOptions;
34
- /** Sweep stage instances */
35
- stageInstances?: SweeperOptions;
36
- /** Sweep stickers */
37
- stickers?: SweeperOptions;
38
- /** Sweep users */
39
- users?: SweeperOptions;
40
- /** Sweep voice states */
41
- voiceStates?: SweeperOptions;
42
- }
43
- /**
44
- * Sweeper filters - predefined filter functions
45
- */
46
- export declare const Sweepers: {
47
- /**
48
- * Filter that sweeps items older than a certain lifetime
49
- */
50
- filterByLifetime<T extends {
51
- createdTimestamp?: number;
52
- createdAt?: Date;
53
- }>(options?: {
54
- lifetime?: number;
55
- getComparisonTimestamp?: (value: T) => number;
56
- excludeFromSweep?: (value: T) => boolean;
57
- }): () => (value: T) => boolean;
58
- /**
59
- * Filter that sweeps expired invites
60
- */
61
- expiredInviteSweepFilter(): () => (invite: any) => boolean;
62
- /**
63
- * Filter that sweeps outdated presences
64
- */
65
- outdatedPresenceSweepFilter(lifetime?: number): () => (presence: any) => boolean;
66
- /**
67
- * Filter that sweeps all items (use with caution)
68
- */
69
- sweepAll(): () => () => boolean;
70
- /**
71
- * Filter that sweeps nothing
72
- */
73
- sweepNone(): () => () => boolean;
74
- };
75
- /**
76
- * Sweeper manager class
77
- */
78
- export declare class SweeperManager {
79
- private client;
80
- private intervals;
81
- private options;
82
- constructor(client: any, options?: SweeperDefinitions);
83
- /**
84
- * Start all configured sweepers
85
- */
86
- start(): void;
87
- /**
88
- * Start a specific sweeper
89
- */
90
- private startSweeper;
91
- /**
92
- * Stop a specific sweeper
93
- */
94
- stopSweeper(name: keyof SweeperDefinitions): void;
95
- /**
96
- * Stop all sweepers
97
- */
98
- stop(): void;
99
- /**
100
- * Manually trigger a sweep
101
- */
102
- sweep(name: keyof SweeperDefinitions, filter?: () => (value: any, key: string, collection: Collection<string, any>) => boolean): number;
103
- /**
104
- * Get the cache for a sweeper type
105
- */
106
- private getCache;
107
- /**
108
- * Get sweeper statistics
109
- */
110
- getStats(): Record<string, {
111
- interval: number;
112
- running: boolean;
113
- }>;
114
- }
115
- /**
116
- * Default sweeper options for common use cases
117
- */
118
- export declare const DefaultSweeperOptions: SweeperDefinitions;
119
- export default SweeperManager;
@@ -1,249 +0,0 @@
1
- "use strict";
2
- /**
3
- * Sweepers - Automatic cache cleanup utilities
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DefaultSweeperOptions = exports.SweeperManager = exports.Sweepers = void 0;
7
- /**
8
- * Sweeper filters - predefined filter functions
9
- */
10
- exports.Sweepers = {
11
- /**
12
- * Filter that sweeps items older than a certain lifetime
13
- */
14
- filterByLifetime(options = {}) {
15
- const lifetime = options.lifetime ?? 14400; // 4 hours default
16
- const getTimestamp = options.getComparisonTimestamp ??
17
- ((v) => v.createdTimestamp ?? v.createdAt?.getTime() ?? 0);
18
- const exclude = options.excludeFromSweep ?? (() => false);
19
- return () => {
20
- const now = Date.now();
21
- const cutoff = now - (lifetime * 1000);
22
- return (value) => {
23
- if (exclude(value))
24
- return false;
25
- const timestamp = getTimestamp(value);
26
- return timestamp < cutoff;
27
- };
28
- };
29
- },
30
- /**
31
- * Filter that sweeps expired invites
32
- */
33
- expiredInviteSweepFilter() {
34
- return () => {
35
- const now = Date.now();
36
- return (invite) => {
37
- if (!invite.expiresAt && !invite.expiresTimestamp)
38
- return false;
39
- const expiresAt = invite.expiresAt?.getTime() ?? invite.expiresTimestamp ?? Infinity;
40
- return expiresAt < now;
41
- };
42
- };
43
- },
44
- /**
45
- * Filter that sweeps outdated presences
46
- */
47
- outdatedPresenceSweepFilter(lifetime = 21600) {
48
- return () => {
49
- const now = Date.now();
50
- const cutoff = now - (lifetime * 1000);
51
- return (presence) => {
52
- const lastUpdate = presence.lastModified ?? presence.updatedAt?.getTime() ?? 0;
53
- return lastUpdate < cutoff;
54
- };
55
- };
56
- },
57
- /**
58
- * Filter that sweeps all items (use with caution)
59
- */
60
- sweepAll() {
61
- return () => () => true;
62
- },
63
- /**
64
- * Filter that sweeps nothing
65
- */
66
- sweepNone() {
67
- return () => () => false;
68
- },
69
- };
70
- /**
71
- * Sweeper manager class
72
- */
73
- class SweeperManager {
74
- client;
75
- intervals = new Map();
76
- options;
77
- constructor(client, options = {}) {
78
- this.client = client;
79
- this.options = options;
80
- }
81
- /**
82
- * Start all configured sweepers
83
- */
84
- start() {
85
- for (const [key, config] of Object.entries(this.options)) {
86
- if (config && config.interval > 0) {
87
- this.startSweeper(key, config);
88
- }
89
- }
90
- }
91
- /**
92
- * Start a specific sweeper
93
- */
94
- startSweeper(name, config) {
95
- // Clear existing interval if any
96
- this.stopSweeper(name);
97
- const interval = setInterval(() => {
98
- this.sweep(name, config.filter);
99
- }, config.interval * 1000);
100
- this.intervals.set(name, interval);
101
- }
102
- /**
103
- * Stop a specific sweeper
104
- */
105
- stopSweeper(name) {
106
- const interval = this.intervals.get(name);
107
- if (interval) {
108
- clearInterval(interval);
109
- this.intervals.delete(name);
110
- }
111
- }
112
- /**
113
- * Stop all sweepers
114
- */
115
- stop() {
116
- for (const name of this.intervals.keys()) {
117
- this.stopSweeper(name);
118
- }
119
- }
120
- /**
121
- * Manually trigger a sweep
122
- */
123
- sweep(name, filter) {
124
- const cache = this.getCache(name);
125
- if (!cache)
126
- return 0;
127
- const filterFn = filter ?? this.options[name]?.filter;
128
- if (!filterFn)
129
- return 0;
130
- return cache.sweep(filterFn());
131
- }
132
- /**
133
- * Get the cache for a sweeper type
134
- */
135
- getCache(name) {
136
- switch (name) {
137
- case 'users':
138
- return this.client.users?.cache ?? null;
139
- case 'guildMembers':
140
- // Sweep across all guilds
141
- let memberCount = 0;
142
- this.client.guilds?.cache.forEach((guild) => {
143
- if (guild.members?.cache) {
144
- const filter = this.options.guildMembers?.filter;
145
- if (filter)
146
- memberCount += guild.members.cache.sweep(filter());
147
- }
148
- });
149
- return null; // Already handled
150
- case 'messages':
151
- // Sweep across all channels
152
- this.client.channels?.cache.forEach((channel) => {
153
- if (channel.messages?.cache) {
154
- const filter = this.options.messages?.filter;
155
- if (filter)
156
- channel.messages.cache.sweep(filter());
157
- }
158
- });
159
- return null;
160
- case 'presences':
161
- // Sweep across all guilds
162
- this.client.guilds?.cache.forEach((guild) => {
163
- if (guild.presences?.cache) {
164
- const filter = this.options.presences?.filter;
165
- if (filter)
166
- guild.presences.cache.sweep(filter());
167
- }
168
- });
169
- return null;
170
- case 'voiceStates':
171
- this.client.guilds?.cache.forEach((guild) => {
172
- if (guild.voiceStates?.cache) {
173
- const filter = this.options.voiceStates?.filter;
174
- if (filter)
175
- guild.voiceStates.cache.sweep(filter());
176
- }
177
- });
178
- return null;
179
- case 'reactions':
180
- // Sweep reactions from all messages
181
- this.client.channels?.cache.forEach((channel) => {
182
- channel.messages?.cache.forEach((message) => {
183
- if (message.reactions?.cache) {
184
- const filter = this.options.reactions?.filter;
185
- if (filter)
186
- message.reactions.cache.sweep(filter());
187
- }
188
- });
189
- });
190
- return null;
191
- case 'emojis':
192
- return this.client.emojis?.cache ?? null;
193
- case 'stickers':
194
- return this.client.stickers?.cache ?? null;
195
- case 'invites':
196
- // Sweep across all guilds
197
- this.client.guilds?.cache.forEach((guild) => {
198
- if (guild.invites?.cache) {
199
- const filter = this.options.invites?.filter;
200
- if (filter)
201
- guild.invites.cache.sweep(filter());
202
- }
203
- });
204
- return null;
205
- case 'bans':
206
- this.client.guilds?.cache.forEach((guild) => {
207
- if (guild.bans?.cache) {
208
- const filter = this.options.bans?.filter;
209
- if (filter)
210
- guild.bans.cache.sweep(filter());
211
- }
212
- });
213
- return null;
214
- default:
215
- return null;
216
- }
217
- }
218
- /**
219
- * Get sweeper statistics
220
- */
221
- getStats() {
222
- const stats = {};
223
- for (const [name, config] of Object.entries(this.options)) {
224
- if (config) {
225
- stats[name] = {
226
- interval: config.interval,
227
- running: this.intervals.has(name),
228
- };
229
- }
230
- }
231
- return stats;
232
- }
233
- }
234
- exports.SweeperManager = SweeperManager;
235
- /**
236
- * Default sweeper options for common use cases
237
- */
238
- exports.DefaultSweeperOptions = {
239
- messages: {
240
- interval: 3600, // 1 hour
241
- filter: exports.Sweepers.filterByLifetime({ lifetime: 1800 }), // 30 minutes
242
- },
243
- invites: {
244
- interval: 3600,
245
- filter: exports.Sweepers.expiredInviteSweepFilter(),
246
- },
247
- };
248
- exports.default = SweeperManager;
249
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3dlZXBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvU3dlZXBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUE0Q0g7O0dBRUc7QUFDVSxRQUFBLFFBQVEsR0FBRztJQUN0Qjs7T0FFRztJQUNILGdCQUFnQixDQUE0RCxVQUl4RSxFQUFFO1FBQ0osTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQyxrQkFBa0I7UUFDOUQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLHNCQUFzQjtZQUNqRCxDQUFDLENBQUMsQ0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoRSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxRCxPQUFPLEdBQUcsRUFBRTtZQUNWLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN2QixNQUFNLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFFdkMsT0FBTyxDQUFDLEtBQVEsRUFBRSxFQUFFO2dCQUNsQixJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0JBQUUsT0FBTyxLQUFLLENBQUM7Z0JBQ2pDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEMsT0FBTyxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQzVCLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILHdCQUF3QjtRQUN0QixPQUFPLEdBQUcsRUFBRTtZQUNWLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFH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LElBQUksQ0FBQyxHQUFHO29CQUNaLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtvQkFDekIsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztpQkFDbEMsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFyS0Qsd0NBcUtDO0FBRUQ7O0dBRUc7QUFDVSxRQUFBLHFCQUFxQixHQUF1QjtJQUN2RCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVM7UUFDekIsTUFBTSxFQUFFLGdCQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxhQUFhO0tBQ3JFO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsUUFBUSxFQUFFLElBQUk7UUFDZCxNQUFNLEVBQUUsZ0JBQVEsQ0FBQyx3QkFBd0IsRUFBRTtLQUM1QztDQUNGLENBQUM7QUFFRixrQkFBZSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN3ZWVwZXJzIC0gQXV0b21hdGljIGNhY2hlIGNsZWFudXAgdXRpbGl0aWVzXG4gKi9cblxuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4vQ29sbGVjdGlvbic7XG5cbi8qKlxuICogU3dlZXBlciBvcHRpb25zIGZvciBhIHNwZWNpZmljIGNhY2hlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3dlZXBlck9wdGlvbnMge1xuICAvKiogSW50ZXJ2YWwgaW4gc2Vjb25kcyBiZXR3ZWVuIHN3ZWVwcyAqL1xuICBpbnRlcnZhbDogbnVtYmVyO1xuICAvKiogRmlsdGVyIGZ1bmN0aW9uIHRvIGRldGVybWluZSB3aGF0IHRvIHN3ZWVwICovXG4gIGZpbHRlcjogKCkgPT4gKHZhbHVlOiBhbnksIGtleTogc3RyaW5nLCBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPHN0cmluZywgYW55PikgPT4gYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBHbG9iYWwgc3dlZXBlciBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3dlZXBlckRlZmluaXRpb25zIHtcbiAgLyoqIFN3ZWVwIGFwcGxpY2F0aW9uIGNvbW1hbmRzICovXG4gIGFwcGxpY2F0aW9uQ29tbWFuZHM/OiBTd2VlcGVyT3B0aW9ucztcbiAgLyoqIFN3ZWVwIGJhbnMgKi9cbiAgYmFucz86IFN3ZWVwZXJPcHRpb25zO1xuICAvKiogU3dlZXAgZW1vamlzICovXG4gIGVtb2ppcz86IFN3ZWVwZXJPcHRpb25zO1xuICAvKiogU3dlZXAgaW52aXRlcyAqL1xuICBpbnZpdGVzPzogU3dlZXBlck9wdGlvbnM7XG4gIC8qKiBTd2VlcCBndWlsZCBtZW1iZXJzICovXG4gIGd1aWxkTWVtYmVycz86IFN3ZWVwZXJPcHRpb25zO1xuICAvKiogU3dlZXAgbWVzc2FnZXMgKi9cbiAgbWVzc2FnZXM/OiBTd2VlcGVyT3B0aW9ucztcbiAgLyoqIFN3ZWVwIHByZXNlbmNlcyAqL1xuICBwcmVzZW5jZXM/OiBTd2VlcGVyT3B0aW9ucztcbiAgLyoqIFN3ZWVwIHJlYWN0aW9ucyAqL1xuICByZWFjdGlvbnM/OiBTd2VlcGVyT3B0aW9ucztcbiAgLyoqIFN3ZWVwIHN0YWdlIGluc3RhbmNlcyAqL1xuICBzdGFnZUluc3RhbmNlcz86IFN3ZWVwZXJPcHRpb25zO1xuICAvKiogU3dlZXAgc3RpY2tlcnMgKi9cbiAgc3RpY2tlcnM/OiBTd2VlcGVyT3B0aW9ucztcbiAgLyoqIFN3ZWVwIHVzZXJzICovXG4gIHVzZXJzPzogU3dlZXBlck9wdGlvbnM7XG4gIC8qKiBTd2VlcCB2b2ljZSBzdGF0ZXMgKi9cbiAgdm9pY2VTdGF0ZXM/OiBTd2VlcGVyT3B0aW9ucztcbn1cblxuLyoqXG4gKiBTd2VlcGVyIGZpbHRlcnMgLSBwcmVkZWZpbmVkIGZpbHRlciBmdW5jdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IFN3ZWVwZXJzID0ge1xuICAvKipcbiAgICogRmlsdGVyIHRoYXQgc3dlZXBzIGl0ZW1zIG9sZGVyIHRoYW4gYSBjZXJ0YWluIGxpZmV0aW1lXG4gICAqL1xuICBmaWx0ZXJCeUxpZmV0aW1lPFQgZXh0ZW5kcyB7IGNyZWF0ZWRUaW1lc3RhbXA/OiBudW1iZXI7IGNyZWF0ZWRBdD86IERhdGUgfT4ob3B0aW9uczoge1xuICAgIGxpZmV0aW1lPzogbnVtYmVyO1xuICAgIGdldENvbXBhcmlzb25UaW1lc3RhbXA/OiAodmFsdWU6IFQpID0+IG51bWJlcjtcbiAgICBleGNsdWRlRnJvbVN3ZWVwPzogKHZhbHVlOiBUKSA9PiBib29sZWFuO1xuICB9ID0ge30pIHtcbiAgICBjb25zdCBsaWZldGltZSA9IG9wdGlvbnMubGlmZXRpbWUgPz8gMTQ0MDA7IC8vIDQgaG91cnMgZGVmYXVsdFxuICAgIGNvbnN0IGdldFRpbWVzdGFtcCA9IG9wdGlvbnMuZ2V0Q29tcGFyaXNvblRpbWVzdGFtcCA/PyBcbiAgICAgICgodjogVCkgPT4gdi5jcmVhdGVkVGltZXN0YW1wID8/IHYuY3JlYXRlZEF0Py5nZXRUaW1lKCkgPz8gMCk7XG4gICAgY29uc3QgZXhjbHVkZSA9IG9wdGlvbnMuZXhjbHVkZUZyb21Td2VlcCA/PyAoKCkgPT4gZmFsc2UpO1xuICAgIFxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgY29uc3QgY3V0b2ZmID0gbm93IC0gKGxpZmV0aW1lICogMTAwMCk7XG4gICAgICBcbiAgICAgIHJldHVybiAodmFsdWU6IFQpID0+IHtcbiAgICAgICAgaWYgKGV4Y2x1ZGUodmFsdWUpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IGdldFRpbWVzdGFtcCh2YWx1ZSk7XG4gICAgICAgIHJldHVybiB0aW1lc3RhbXAgPCBjdXRvZmY7XG4gICAgICB9O1xuICAgIH07XG4gIH0sXG5cbiAgLyoqXG4gICAqIEZpbHRlciB0aGF0IHN3ZWVwcyBleHBpcmVkIGludml0ZXNcbiAgICovXG4gIGV4cGlyZWRJbnZpdGVTd2VlcEZpbHRlcigpIHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgIHJldHVybiAoaW52aXRlOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKCFpbnZpdGUuZXhwaXJlc0F0ICYmICFpbnZpdGUuZXhwaXJlc1RpbWVzdGFtcCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBleHBpcmVzQXQgPSBpbnZpdGUuZXhwaXJlc0F0Py5nZXRUaW1lKCkgPz8gaW52aXRlLmV4cGlyZXNUaW1lc3RhbXAgPz8gSW5maW5pdHk7XG4gICAgICAgIHJldHVybiBleHBpcmVzQXQgPCBub3c7XG4gICAgICB9O1xuICAgIH07XG4gIH0sXG5cbiAgLyoqXG4gICAqIEZpbHRlciB0aGF0IHN3ZWVwcyBvdXRkYXRlZCBwcmVzZW5jZXNcbiAgICovXG4gIG91dGRhdGVkUHJlc2VuY2VTd2VlcEZpbHRlcihsaWZldGltZSA9IDIxNjAwKSB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICBjb25zdCBjdXRvZmYgPSBub3cgLSAobGlmZXRpbWUgKiAxMDAwKTtcbiAgICAgIFxuICAgICAgcmV0dXJuIChwcmVzZW5jZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGxhc3RVcGRhdGUgPSBwcmVzZW5jZS5sYXN0TW9kaWZpZWQgPz8gcHJlc2VuY2UudXBkYXRlZEF0Py5nZXRUaW1lKCkgPz8gMDtcbiAgICAgICAgcmV0dXJuIGxhc3RVcGRhdGUgPCBjdXRvZmY7XG4gICAgICB9O1xuICAgIH07XG4gIH0sXG5cbiAgLyoqXG4gICAqIEZpbHRlciB0aGF0IHN3ZWVwcyBhbGwgaXRlbXMgKHVzZSB3aXRoIGNhdXRpb24pXG4gICAqL1xuICBzd2VlcEFsbCgpIHtcbiAgICByZXR1cm4gKCkgPT4gKCkgPT4gdHJ1ZTtcbiAgfSxcblxuICAvKipcbiAgICogRmlsdGVyIHRoYXQgc3dlZXBzIG5vdGhpbmdcbiAgICovXG4gIHN3ZWVwTm9uZSgpIHtcbiAgICByZXR1cm4gKCkgPT4gKCkgPT4gZmFsc2U7XG4gIH0sXG59O1xuXG4vKipcbiAqIFN3ZWVwZXIgbWFuYWdlciBjbGFzc1xuICovXG5leHBvcnQgY2xhc3MgU3dlZXBlck1hbmFnZXIge1xuICBwcml2YXRlIGNsaWVudDogYW55O1xuICBwcml2YXRlIGludGVydmFsczogTWFwPHN0cmluZywgTm9kZUpTLlRpbWVvdXQ+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIG9wdGlvbnM6IFN3ZWVwZXJEZWZpbml0aW9ucztcblxuICBjb25zdHJ1Y3RvcihjbGllbnQ6IGFueSwgb3B0aW9uczogU3dlZXBlckRlZmluaXRpb25zID0ge30pIHtcbiAgICB0aGlzLmNsaWVudCA9IGNsaWVudDtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IGFsbCBjb25maWd1cmVkIHN3ZWVwZXJzXG4gICAqL1xuICBzdGFydCgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIGNvbmZpZ10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5vcHRpb25zKSkge1xuICAgICAgaWYgKGNvbmZpZyAmJiBjb25maWcuaW50ZXJ2YWwgPiAwKSB7XG4gICAgICAgIHRoaXMuc3RhcnRTd2VlcGVyKGtleSBhcyBrZXlvZiBTd2VlcGVyRGVmaW5pdGlvbnMsIGNvbmZpZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IGEgc3BlY2lmaWMgc3dlZXBlclxuICAgKi9cbiAgcHJpdmF0ZSBzdGFydFN3ZWVwZXIobmFtZToga2V5b2YgU3dlZXBlckRlZmluaXRpb25zLCBjb25maWc6IFN3ZWVwZXJPcHRpb25zKTogdm9pZCB7XG4gICAgLy8gQ2xlYXIgZXhpc3RpbmcgaW50ZXJ2YWwgaWYgYW55XG4gICAgdGhpcy5zdG9wU3dlZXBlcihuYW1lKTtcbiAgICBcbiAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMuc3dlZXAobmFtZSwgY29uZmlnLmZpbHRlcik7XG4gICAgfSwgY29uZmlnLmludGVydmFsICogMTAwMCk7XG4gICAgXG4gICAgdGhpcy5pbnRlcnZhbHMuc2V0KG5hbWUsIGludGVydmFsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIGEgc3BlY2lmaWMgc3dlZXBlclxuICAgKi9cbiAgc3RvcFN3ZWVwZXIobmFtZToga2V5b2YgU3dlZXBlckRlZmluaXRpb25zKTogdm9pZCB7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSB0aGlzLmludGVydmFscy5nZXQobmFtZSk7XG4gICAgaWYgKGludGVydmFsKSB7XG4gICAgICBjbGVhckludGVydmFsKGludGVydmFsKTtcbiAgICAgIHRoaXMuaW50ZXJ2YWxzLmRlbGV0ZShuYW1lKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RvcCBhbGwgc3dlZXBlcnNcbiAgICovXG4gIHN0b3AoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBuYW1lIG9mIHRoaXMuaW50ZXJ2YWxzLmtleXMoKSkge1xuICAgICAgdGhpcy5zdG9wU3dlZXBlcihuYW1lIGFzIGtleW9mIFN3ZWVwZXJEZWZpbml0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1hbnVhbGx5IHRyaWdnZXIgYSBzd2VlcFxuICAgKi9cbiAgc3dlZXAobmFtZToga2V5b2YgU3dlZXBlckRlZmluaXRpb25zLCBmaWx0ZXI/OiAoKSA9PiAodmFsdWU6IGFueSwga2V5OiBzdHJpbmcsIGNvbGxlY3Rpb246IENvbGxlY3Rpb248c3RyaW5nLCBhbnk+KSA9PiBib29sZWFuKTogbnVtYmVyIHtcbiAgICBjb25zdCBjYWNoZSA9IHRoaXMuZ2V0Q2FjaGUobmFtZSk7XG4gICAgaWYgKCFjYWNoZSkgcmV0dXJuIDA7XG4gICAgXG4gICAgY29uc3QgZmlsdGVyRm4gPSBmaWx0ZXIgPz8gdGhpcy5vcHRpb25zW25hbWVdPy5maWx0ZXI7XG4gICAgaWYgKCFmaWx0ZXJGbikgcmV0dXJuIDA7XG4gICAgXG4gICAgcmV0dXJuIGNhY2hlLnN3ZWVwKGZpbHRlckZuKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY2FjaGUgZm9yIGEgc3dlZXBlciB0eXBlXG4gICAqL1xuICBwcml2YXRlIGdldENhY2hlKG5hbWU6IGtleW9mIFN3ZWVwZXJEZWZpbml0aW9ucyk6IENvbGxlY3Rpb248c3RyaW5nLCBhbnk+IHwgbnVsbCB7XG4gICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICBjYXNlICd1c2Vycyc6XG4gICAgICAgIHJldHVybiB0aGlzLmNsaWVudC51c2Vycz8uY2FjaGUgPz8gbnVsbDtcbiAgICAgIGNhc2UgJ2d1aWxkTWVtYmVycyc6XG4gICAgICAgIC8vIFN3ZWVwIGFjcm9zcyBhbGwgZ3VpbGRzXG4gICAgICAgIGxldCBtZW1iZXJDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuY2xpZW50Lmd1aWxkcz8uY2FjaGUuZm9yRWFjaCgoZ3VpbGQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChndWlsZC5tZW1iZXJzPy5jYWNoZSkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5vcHRpb25zLmd1aWxkTWVtYmVycz8uZmlsdGVyO1xuICAgICAgICAgICAgaWYgKGZpbHRlcikgbWVtYmVyQ291bnQgKz0gZ3VpbGQubWVtYmVycy5jYWNoZS5zd2VlcChmaWx0ZXIoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG51bGw7IC8vIEFscmVhZHkgaGFuZGxlZFxuICAgICAgY2FzZSAnbWVzc2FnZXMnOlxuICAgICAgICAvLyBTd2VlcCBhY3Jvc3MgYWxsIGNoYW5uZWxzXG4gICAgICAgIHRoaXMuY2xpZW50LmNoYW5uZWxzPy5jYWNoZS5mb3JFYWNoKChjaGFubmVsOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoY2hhbm5lbC5tZXNzYWdlcz8uY2FjaGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMub3B0aW9ucy5tZXNzYWdlcz8uZmlsdGVyO1xuICAgICAgICAgICAgaWYgKGZpbHRlcikgY2hhbm5lbC5tZXNzYWdlcy5jYWNoZS5zd2VlcChmaWx0ZXIoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBjYXNlICdwcmVzZW5jZXMnOlxuICAgICAgICAvLyBTd2VlcCBhY3Jvc3MgYWxsIGd1aWxkc1xuICAgICAgICB0aGlzLmNsaWVudC5ndWlsZHM/LmNhY2hlLmZvckVhY2goKGd1aWxkOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoZ3VpbGQucHJlc2VuY2VzPy5jYWNoZSkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5vcHRpb25zLnByZXNlbmNlcz8uZmlsdGVyO1xuICAgICAgICAgICAgaWYgKGZpbHRlcikgZ3VpbGQucHJlc2VuY2VzLmNhY2hlLnN3ZWVwKGZpbHRlcigpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIGNhc2UgJ3ZvaWNlU3RhdGVzJzpcbiAgICAgICAgdGhpcy5jbGllbnQuZ3VpbGRzPy5jYWNoZS5mb3JFYWNoKChndWlsZDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGd1aWxkLnZvaWNlU3RhdGVzPy5jYWNoZSkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5vcHRpb25zLnZvaWNlU3RhdGVzPy5maWx0ZXI7XG4gICAgICAgICAgICBpZiAoZmlsdGVyKSBndWlsZC52b2ljZVN0YXRlcy5jYWNoZS5zd2VlcChmaWx0ZXIoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBjYXNlICdyZWFjdGlvbnMnOlxuICAgICAgICAvLyBTd2VlcCByZWFjdGlvbnMgZnJvbSBhbGwgbWVzc2FnZXNcbiAgICAgICAgdGhpcy5jbGllbnQuY2hhbm5lbHM/LmNhY2hlLmZvckVhY2goKGNoYW5uZWw6IGFueSkgPT4ge1xuICAgICAgICAgIGNoYW5uZWwubWVzc2FnZXM/LmNhY2hlLmZvckVhY2goKG1lc3NhZ2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKG1lc3NhZ2UucmVhY3Rpb25zPy5jYWNoZSkge1xuICAgICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLm9wdGlvbnMucmVhY3Rpb25zPy5maWx0ZXI7XG4gICAgICAgICAgICAgIGlmIChmaWx0ZXIpIG1lc3NhZ2UucmVhY3Rpb25zLmNhY2hlLnN3ZWVwKGZpbHRlcigpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgY2FzZSAnZW1vamlzJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xpZW50LmVtb2ppcz8uY2FjaGUgPz8gbnVsbDtcbiAgICAgIGNhc2UgJ3N0aWNrZXJzJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xpZW50LnN0aWNrZXJzPy5jYWNoZSA/PyBudWxsO1xuICAgICAgY2FzZSAnaW52aXRlcyc6XG4gICAgICAgIC8vIFN3ZWVwIGFjcm9zcyBhbGwgZ3VpbGRzXG4gICAgICAgIHRoaXMuY2xpZW50Lmd1aWxkcz8uY2FjaGUuZm9yRWFjaCgoZ3VpbGQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChndWlsZC5pbnZpdGVzPy5jYWNoZSkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5vcHRpb25zLmludml0ZXM/LmZpbHRlcjtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIpIGd1aWxkLmludml0ZXMuY2FjaGUuc3dlZXAoZmlsdGVyKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgY2FzZSAnYmFucyc6XG4gICAgICAgIHRoaXMuY2xpZW50Lmd1aWxkcz8uY2FjaGUuZm9yRWFjaCgoZ3VpbGQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChndWlsZC5iYW5zPy5jYWNoZSkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5vcHRpb25zLmJhbnM/LmZpbHRlcjtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIpIGd1aWxkLmJhbnMuY2FjaGUuc3dlZXAoZmlsdGVyKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzd2VlcGVyIHN0YXRpc3RpY3NcbiAgICovXG4gIGdldFN0YXRzKCk6IFJlY29yZDxzdHJpbmcsIHsgaW50ZXJ2YWw6IG51bWJlcjsgcnVubmluZzogYm9vbGVhbiB9PiB7XG4gICAgY29uc3Qgc3RhdHM6IFJlY29yZDxzdHJpbmcsIHsgaW50ZXJ2YWw6IG51bWJlcjsgcnVubmluZzogYm9vbGVhbiB9PiA9IHt9O1xuICAgIFxuICAgIGZvciAoY29uc3QgW25hbWUsIGNvbmZpZ10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5vcHRpb25zKSkge1xuICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICBzdGF0c1tuYW1lXSA9IHtcbiAgICAgICAgICBpbnRlcnZhbDogY29uZmlnLmludGVydmFsLFxuICAgICAgICAgIHJ1bm5pbmc6IHRoaXMuaW50ZXJ2YWxzLmhhcyhuYW1lKSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHN0YXRzO1xuICB9XG59XG5cbi8qKlxuICogRGVmYXVsdCBzd2VlcGVyIG9wdGlvbnMgZm9yIGNvbW1vbiB1c2UgY2FzZXNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRTd2VlcGVyT3B0aW9uczogU3dlZXBlckRlZmluaXRpb25zID0ge1xuICBtZXNzYWdlczoge1xuICAgIGludGVydmFsOiAzNjAwLCAvLyAxIGhvdXJcbiAgICBmaWx0ZXI6IFN3ZWVwZXJzLmZpbHRlckJ5TGlmZXRpbWUoeyBsaWZldGltZTogMTgwMCB9KSwgLy8gMzAgbWludXRlc1xuICB9LFxuICBpbnZpdGVzOiB7XG4gICAgaW50ZXJ2YWw6IDM2MDAsXG4gICAgZmlsdGVyOiBTd2VlcGVycy5leHBpcmVkSW52aXRlU3dlZXBGaWx0ZXIoKSxcbiAgfSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFN3ZWVwZXJNYW5hZ2VyO1xuIl19
@@ -1,13 +0,0 @@
1
- /**
2
- * Utility exports
3
- */
4
- export * from './Collection';
5
- export * from './Formatters';
6
- export * from './SnowflakeUtil';
7
- export * from './BitField';
8
- export * from './PermissionsBitField';
9
- export * from './IntentsBitField';
10
- export * from './DataResolver';
11
- export * from './Collector';
12
- export * from './Partials';
13
- export * from './Sweepers';
@@ -1,30 +0,0 @@
1
- "use strict";
2
- /**
3
- * Utility exports
4
- */
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- __exportStar(require("./Collection"), exports);
21
- __exportStar(require("./Formatters"), exports);
22
- __exportStar(require("./SnowflakeUtil"), exports);
23
- __exportStar(require("./BitField"), exports);
24
- __exportStar(require("./PermissionsBitField"), exports);
25
- __exportStar(require("./IntentsBitField"), exports);
26
- __exportStar(require("./DataResolver"), exports);
27
- __exportStar(require("./Collector"), exports);
28
- __exportStar(require("./Partials"), exports);
29
- __exportStar(require("./Sweepers"), exports);
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsK0NBQTZCO0FBQzdCLCtDQUE2QjtBQUM3QixrREFBZ0M7QUFDaEMsNkNBQTJCO0FBQzNCLHdEQUFzQztBQUN0QyxvREFBa0M7QUFDbEMsaURBQStCO0FBQy9CLDhDQUE0QjtBQUM1Qiw2Q0FBMkI7QUFDM0IsNkNBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVdGlsaXR5IGV4cG9ydHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL0NvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9Gb3JtYXR0ZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vU25vd2ZsYWtlVXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL0JpdEZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vUGVybWlzc2lvbnNCaXRGaWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL0ludGVudHNCaXRGaWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL0RhdGFSZXNvbHZlcic7XG5leHBvcnQgKiBmcm9tICcuL0NvbGxlY3Rvcic7XG5leHBvcnQgKiBmcm9tICcuL1BhcnRpYWxzJztcbmV4cG9ydCAqIGZyb20gJy4vU3dlZXBlcnMnO1xuIl19