@discordeno/utils 21.0.1-next.fca0b40 → 22.0.1-next.f274ec6

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 (128) hide show
  1. package/dist/Collection.d.ts.map +1 -0
  2. package/dist/Collection.js +112 -0
  3. package/dist/{types/base64.d.ts → base64.d.ts} +1 -1
  4. package/dist/base64.d.ts.map +1 -0
  5. package/dist/base64.js +262 -0
  6. package/dist/bucket.d.ts.map +1 -0
  7. package/dist/bucket.js +81 -0
  8. package/dist/builders/embeds.d.ts.map +1 -0
  9. package/dist/builders/embeds.js +305 -0
  10. package/dist/builders.d.ts.map +1 -0
  11. package/dist/builders.js +5 -0
  12. package/dist/casing.d.ts.map +1 -0
  13. package/dist/casing.js +55 -0
  14. package/dist/colors.d.ts.map +1 -0
  15. package/dist/colors.js +467 -0
  16. package/dist/constants.d.ts +2 -0
  17. package/dist/constants.d.ts.map +1 -0
  18. package/dist/constants.js +3 -0
  19. package/dist/hash.d.ts.map +1 -0
  20. package/dist/hash.js +19 -0
  21. package/dist/images.d.ts.map +1 -0
  22. package/dist/images.js +204 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +21 -0
  25. package/dist/logger.d.ts.map +1 -0
  26. package/dist/logger.js +115 -0
  27. package/dist/oauth2.d.ts.map +1 -0
  28. package/dist/oauth2.js +16 -0
  29. package/dist/permissions.d.ts.map +1 -0
  30. package/dist/permissions.js +17 -0
  31. package/dist/reactions.d.ts.map +1 -0
  32. package/dist/reactions.js +11 -0
  33. package/dist/snowflakes.d.ts.map +1 -0
  34. package/dist/snowflakes.js +11 -0
  35. package/dist/token.d.ts.map +1 -0
  36. package/dist/token.js +20 -0
  37. package/dist/{types/typeguards.d.ts → typeguards.d.ts} +1 -2
  38. package/dist/typeguards.d.ts.map +1 -0
  39. package/dist/typeguards.js +18 -0
  40. package/dist/urlToBase64.d.ts.map +1 -0
  41. package/dist/urlToBase64.js +9 -0
  42. package/dist/urls.d.ts.map +1 -0
  43. package/dist/urls.js +11 -0
  44. package/dist/utils.d.ts.map +1 -0
  45. package/dist/utils.js +21 -0
  46. package/package.json +11 -18
  47. package/dist/cjs/Collection.cjs +0 -122
  48. package/dist/cjs/base64.cjs +0 -276
  49. package/dist/cjs/bucket.cjs +0 -96
  50. package/dist/cjs/builders/embeds.cjs +0 -306
  51. package/dist/cjs/builders.cjs +0 -27
  52. package/dist/cjs/casing.cjs +0 -79
  53. package/dist/cjs/colors.cjs +0 -456
  54. package/dist/cjs/constants.cjs +0 -13
  55. package/dist/cjs/hash.cjs +0 -37
  56. package/dist/cjs/images.cjs +0 -149
  57. package/dist/cjs/index.cjs +0 -38
  58. package/dist/cjs/logger.cjs +0 -139
  59. package/dist/cjs/oauth2.cjs +0 -26
  60. package/dist/cjs/permissions.cjs +0 -35
  61. package/dist/cjs/reactions.cjs +0 -21
  62. package/dist/cjs/snowflakes.cjs +0 -32
  63. package/dist/cjs/token.cjs +0 -38
  64. package/dist/cjs/typeguards.cjs +0 -52
  65. package/dist/cjs/urlToBase64.cjs +0 -19
  66. package/dist/cjs/urls.cjs +0 -32
  67. package/dist/cjs/utils.cjs +0 -40
  68. package/dist/esm/Collection.js +0 -112
  69. package/dist/esm/base64.js +0 -262
  70. package/dist/esm/bucket.js +0 -81
  71. package/dist/esm/builders/embeds.js +0 -305
  72. package/dist/esm/builders.js +0 -5
  73. package/dist/esm/casing.js +0 -55
  74. package/dist/esm/colors.js +0 -467
  75. package/dist/esm/constants.js +0 -3
  76. package/dist/esm/hash.js +0 -19
  77. package/dist/esm/images.js +0 -204
  78. package/dist/esm/index.js +0 -21
  79. package/dist/esm/logger.js +0 -115
  80. package/dist/esm/oauth2.js +0 -16
  81. package/dist/esm/permissions.js +0 -17
  82. package/dist/esm/reactions.js +0 -11
  83. package/dist/esm/snowflakes.js +0 -11
  84. package/dist/esm/token.js +0 -20
  85. package/dist/esm/typeguards.js +0 -22
  86. package/dist/esm/urlToBase64.js +0 -9
  87. package/dist/esm/urls.js +0 -11
  88. package/dist/esm/utils.js +0 -21
  89. package/dist/types/Collection.d.ts.map +0 -1
  90. package/dist/types/base64.d.ts.map +0 -1
  91. package/dist/types/bucket.d.ts.map +0 -1
  92. package/dist/types/builders/embeds.d.ts.map +0 -1
  93. package/dist/types/builders.d.ts.map +0 -1
  94. package/dist/types/casing.d.ts.map +0 -1
  95. package/dist/types/colors.d.ts.map +0 -1
  96. package/dist/types/constants.d.ts +0 -2
  97. package/dist/types/constants.d.ts.map +0 -1
  98. package/dist/types/hash.d.ts.map +0 -1
  99. package/dist/types/images.d.ts.map +0 -1
  100. package/dist/types/index.d.ts.map +0 -1
  101. package/dist/types/logger.d.ts.map +0 -1
  102. package/dist/types/oauth2.d.ts.map +0 -1
  103. package/dist/types/permissions.d.ts.map +0 -1
  104. package/dist/types/reactions.d.ts.map +0 -1
  105. package/dist/types/snowflakes.d.ts.map +0 -1
  106. package/dist/types/token.d.ts.map +0 -1
  107. package/dist/types/typeguards.d.ts.map +0 -1
  108. package/dist/types/urlToBase64.d.ts.map +0 -1
  109. package/dist/types/urls.d.ts.map +0 -1
  110. package/dist/types/utils.d.ts.map +0 -1
  111. /package/dist/{types/Collection.d.ts → Collection.d.ts} +0 -0
  112. /package/dist/{types/bucket.d.ts → bucket.d.ts} +0 -0
  113. /package/dist/{types/builders → builders}/embeds.d.ts +0 -0
  114. /package/dist/{types/builders.d.ts → builders.d.ts} +0 -0
  115. /package/dist/{types/casing.d.ts → casing.d.ts} +0 -0
  116. /package/dist/{types/colors.d.ts → colors.d.ts} +0 -0
  117. /package/dist/{types/hash.d.ts → hash.d.ts} +0 -0
  118. /package/dist/{types/images.d.ts → images.d.ts} +0 -0
  119. /package/dist/{types/index.d.ts → index.d.ts} +0 -0
  120. /package/dist/{types/logger.d.ts → logger.d.ts} +0 -0
  121. /package/dist/{types/oauth2.d.ts → oauth2.d.ts} +0 -0
  122. /package/dist/{types/permissions.d.ts → permissions.d.ts} +0 -0
  123. /package/dist/{types/reactions.d.ts → reactions.d.ts} +0 -0
  124. /package/dist/{types/snowflakes.d.ts → snowflakes.d.ts} +0 -0
  125. /package/dist/{types/token.d.ts → token.d.ts} +0 -0
  126. /package/dist/{types/urlToBase64.d.ts → urlToBase64.d.ts} +0 -0
  127. /package/dist/{types/urls.d.ts → urls.d.ts} +0 -0
  128. /package/dist/{types/utils.d.ts → utils.d.ts} +0 -0
@@ -1,204 +0,0 @@
1
- import { StickerFormatTypes } from '@discordeno/types';
2
- import { iconBigintToHash } from './hash.js';
3
- /** Help format an image url. */ export function formatImageUrl(url, size = 128, format) {
4
- return `${url}.${format ?? (url.includes('/a_') ? 'gif' : 'webp')}?size=${size}`;
5
- }
6
- /**
7
- * Get the url for an emoji.
8
- *
9
- * @param emojiId The id of the emoji
10
- * @param animated Whether or not the emoji is animated
11
- * @param format The format of the image, defaults to png
12
- * @returns string
13
- *
14
- * @remarks
15
- * The animated parameter is used to specify the animated query parameter valid for webp images or to force the gif if the format is not set to webp.
16
- */ export function emojiUrl(emojiId, animated = false, format = 'png') {
17
- return `https://cdn.discordapp.com/emojis/${emojiId}.${animated ? format === 'webp' ? 'webp' : 'gif' : format}${animated && format === 'webp' ? '?animated=true' : ''}`;
18
- }
19
- /**
20
- * Builds a URL to a user's avatar stored in the Discord CDN.
21
- *
22
- * @param userId - The ID of the user to get the avatar of.
23
- * @param discriminator - The user's discriminator. (4-digit tag after the hashtag.)
24
- * @param options - The parameters for the building of the URL.
25
- * @returns The link to the resource.
26
- */ export function avatarUrl(userId, discriminator, options) {
27
- return options?.avatar ? formatImageUrl(`https://cdn.discordapp.com/avatars/${userId}/${typeof options.avatar === 'string' ? options.avatar : iconBigintToHash(options.avatar)}`, options?.size ?? 128, options?.format) : `https://cdn.discordapp.com/embed/avatars/${discriminator === '0' ? (BigInt(userId) >> BigInt(22)) % BigInt(6) : Number(discriminator) % 5}.png`;
28
- }
29
- export function avatarDecorationUrl(avatarDecoration) {
30
- return `https://cdn.discordapp.com/avatar-decoration-presets/${typeof avatarDecoration === 'string' ? avatarDecoration : iconBigintToHash(avatarDecoration)}.png`;
31
- }
32
- /**
33
- * Builds a URL to a user's banner stored in the Discord CDN.
34
- *
35
- * @param userId - The ID of the user to get the banner of.
36
- * @param options - The parameters for the building of the URL.
37
- * @returns The link to the resource or `undefined` if no banner has not been set.
38
- */ export function bannerUrl(userId, options) {
39
- return options?.banner ? formatImageUrl(`https://cdn.discordapp.com/banners/${userId}/${typeof options.banner === 'string' ? options.banner : iconBigintToHash(options.banner)}`, options?.size ?? 128, options?.format) : undefined;
40
- }
41
- /**
42
- * Builds a URL to the guild banner stored in the Discord CDN.
43
- *
44
- * @param guildId - The ID of the guild to get the link to the banner for.
45
- * @param options - The parameters for the building of the URL.
46
- * @returns The link to the resource or `undefined` if no banner has been set.
47
- */ export function guildBannerUrl(guildId, options) {
48
- return options.banner ? formatImageUrl(`https://cdn.discordapp.com/banners/${guildId}/${typeof options.banner === 'string' ? options.banner : iconBigintToHash(options.banner)}`, options.size ?? 128, options.format) : undefined;
49
- }
50
- /**
51
- * Builds a URL to the guild icon stored in the Discord CDN.
52
- *
53
- * @param guildId - The ID of the guild to get the link to the banner for.
54
- * @param imageHash - The hash identifying the event cover image.
55
- * @param options - The parameters for the building of the URL.
56
- * @returns The link to the resource or `undefined` if no banner has been set.
57
- */ export function guildIconUrl(guildId, imageHash, options) {
58
- return imageHash ? formatImageUrl(`https://cdn.discordapp.com/icons/${guildId}/${typeof imageHash === 'string' ? imageHash : iconBigintToHash(imageHash)}`, options?.size ?? 128, options?.format) : undefined;
59
- }
60
- /**
61
- * Builds the URL to a guild splash stored in the Discord CDN.
62
- *
63
- * @param guildId - The ID of the guild to get the splash of.
64
- * @param imageHash - The hash identifying the splash image.
65
- * @param options - The parameters for the building of the URL.
66
- * @returns The link to the resource or `undefined` if the guild does not have a splash image set.
67
- */ export function guildSplashUrl(guildId, imageHash, options) {
68
- return imageHash ? formatImageUrl(`https://cdn.discordapp.com/splashes/${guildId}/${typeof imageHash === 'string' ? imageHash : iconBigintToHash(imageHash)}`, options?.size ?? 128, options?.format) : undefined;
69
- }
70
- /**
71
- * Builds the URL to a guild discovery splash stored in the Discord CDN.
72
- *
73
- * @param guildId - The ID of the guild to get the splash of.
74
- * @param imageHash - The hash identifying the discovery splash image.
75
- * @param options - The parameters for the building of the URL.
76
- * @returns The link to the resource or `undefined` if the guild does not have a splash image set.
77
- */ export function guildDiscoverySplashUrl(guildId, imageHash, options) {
78
- return imageHash ? formatImageUrl(`https://cdn.discordapp.com/discovery-splashes/${guildId}/${typeof imageHash === 'string' ? imageHash : iconBigintToHash(imageHash)}`, options?.size ?? 128, options?.format) : undefined;
79
- }
80
- /**
81
- * Builds the URL to a guild scheduled event cover stored in the Discord CDN.
82
- *
83
- * @param eventId - The ID of the scheduled event to get the cover of.
84
- * @param options - The parameters for the building of the URL.
85
- * @returns The link to the resource or `undefined`.
86
- */ export function guildScheduledEventCoverUrl(eventId, options) {
87
- return options.cover ? formatImageUrl(`https://cdn.discordapp.com/guild-events/${eventId}/${typeof options.cover === 'string' ? options.cover : iconBigintToHash(options.cover)}`, options.size ?? 128, options.format) : undefined;
88
- }
89
- /**
90
- * Builds a URL to the guild widget image stored in the Discord CDN.
91
- *
92
- * @param guildId - The ID of the guild to get the link to the widget image for.
93
- * @param options - The parameters for the building of the URL.
94
- * @returns The link to the resource.
95
- */ export function getWidgetImageUrl(guildId, options) {
96
- let url = `https://discordapp.com/api/guilds/${guildId}/widget.png`;
97
- if (options?.style) {
98
- url += `?style=${options.style}`;
99
- }
100
- return url;
101
- }
102
- /**
103
- * Builds a URL to a member's avatar stored in the Discord CDN.
104
- *
105
- * @param guildId - The ID of the guild where the member is
106
- * @param userId - The ID of the user to get the avatar of.
107
- * @param options - The parameters for the building of the URL.
108
- * @returns The link to the resource or `undefined` if no banner has been set.
109
- */ export function memberAvatarUrl(guildId, userId, options) {
110
- return options?.avatar ? formatImageUrl(`https://cdn.discordapp.com/guilds/${guildId}/users/${userId}/avatars/${typeof options.avatar === 'string' ? options.avatar : iconBigintToHash(options.avatar)}`, options?.size ?? 128, options?.format) : undefined;
111
- }
112
- /**
113
- * Builds a URL to a member's banner stored in the Discord CDN.
114
- *
115
- * @param guildId - The ID of the guild where the member is
116
- * @param userId - The ID of the user to get the banner of.
117
- * @param options - The parameters for the building of the URL.
118
- * @returns The link to the resource or `undefined` if no banner has been set.
119
- */ export function memberBannerUrl(guildId, userId, options) {
120
- return options?.banner ? formatImageUrl(`https://cdn.discordapp.com/guilds/${guildId}/users/${userId}/banners/${typeof options.banner === 'string' ? options.banner : iconBigintToHash(options.banner)}`, options?.size ?? 128, options?.format) : undefined;
121
- }
122
- /**
123
- * Builds the URL to an application icon stored in the Discord CDN.
124
- *
125
- * @param applicationId - The ID of the application to get the icon of.
126
- * @param iconHash - The hash identifying the application icon.
127
- * @param options - The parameters for the building of the URL.
128
- * @returns The link to the resource or `undefined`
129
- */ export function applicationIconUrl(applicationId, iconHash, options) {
130
- return iconHash ? formatImageUrl(`https://cdn.discordapp.com/app-icons/${applicationId}/${typeof iconHash === 'string' ? iconHash : iconBigintToHash(iconHash)}`, options?.size ?? 128, options?.format) : undefined;
131
- }
132
- /**
133
- * Builds the URL to an application cover stored in the Discord CDN.
134
- *
135
- * @param applicationId - The ID of the application to get the cover of.
136
- * @param coverHash - The hash identifying the application cover.
137
- * @param options - The parameters for the building of the URL.
138
- * @returns The link to the resource or `undefined`.
139
- */ export function applicationCoverUrl(applicationId, coverHash, options) {
140
- return coverHash ? formatImageUrl(`https://cdn.discordapp.com/app-icons/${applicationId}/${typeof coverHash === 'string' ? coverHash : iconBigintToHash(coverHash)}`, options?.size ?? 128, options?.format) : undefined;
141
- }
142
- /**
143
- * Builds the URL to an application asset stored in the Discord CDN.
144
- *
145
- * @param applicationId - The ID of the application to get the asset of.
146
- * @param assetId - The id identifying the application asset.
147
- * @param options - The parameters for the building of the URL.
148
- * @returns The link to the resource or `undefined`.
149
- */ export function applicationAssetUrl(applicationId, assetId, options) {
150
- return assetId ? formatImageUrl(`https://cdn.discordapp.com/app-icons/${applicationId}/${typeof assetId === 'string' ? assetId : iconBigintToHash(assetId)}`, options?.size ?? 128, options?.format) : undefined;
151
- }
152
- /**
153
- * Builds the URL to a sticker pack banner stored in the Discord CDN.
154
- *
155
- * @param bannerAssetId - The ID of the banner asset for the sticker pack.
156
- * @param options - The parameters for the building of the URL.
157
- * @returns The link to the resource or `undefined`.
158
- */ export function stickerPackBannerUrl(bannerAssetId, options) {
159
- return bannerAssetId ? formatImageUrl(`https://cdn.discordapp.com/app-assets/710982414301790216/store/${typeof bannerAssetId === 'string' ? bannerAssetId : iconBigintToHash(bannerAssetId)}`, options?.size ?? 128, options?.format) : undefined;
160
- }
161
- /**
162
- * Builds the URL to a sticker stored in the Discord CDN.
163
- *
164
- * @param stickerId - The ID of the sticker to get the icon of
165
- * @param options - The parameters for the building of the URL.
166
- * @returns The link to the resource or `undefined`.
167
- */ export function stickerUrl(stickerId, options) {
168
- if (!stickerId) return;
169
- const url = options?.type === StickerFormatTypes.Gif ? `https://media.discordapp.net/stickers/${stickerId}` : `https://cdn.discordapp.com/stickers/${stickerId}`;
170
- return formatImageUrl(url, options?.size ?? 128, options?.format);
171
- }
172
- /**
173
- * Builds the URL to a team icon stored in the Discord CDN.
174
- *
175
- * @param teamId - The ID of the team to get the icon of
176
- * @param iconHash - The hash of the team icon.
177
- * @param options - The parameters for the building of the URL.
178
- * @returns The link to the resource or `undefined`.
179
- */ export function teamIconUrl(teamId, iconHash, options) {
180
- return iconHash ? formatImageUrl(`https://cdn.discordapp.com/team-icons/${teamId}/store/${typeof iconHash === 'string' ? iconHash : iconBigintToHash(iconHash)}`, options?.size ?? 128, options?.format) : undefined;
181
- }
182
- /**
183
- * Builds the URL to a role icon stored in the Discord CDN.
184
- *
185
- * @param roleId - The ID of the role to get the icon of
186
- * @param iconHash - The hash of the role icon.
187
- * @param options - The parameters for the building of the URL.
188
- * @returns The link to the resource or `undefined`.
189
- */ export function roleIconUrl(roleId, iconHash, options) {
190
- return iconHash ? formatImageUrl(`https://cdn.discordapp.com/role-icons/${roleId}/${typeof iconHash === 'string' ? iconHash : iconBigintToHash(iconHash)}`, options?.size ?? 128, options?.format) : undefined;
191
- }
192
- /**
193
- * Builds the URL to a guild tag badge stored in the Discord CDN.
194
- *
195
- * @param guildId - The ID of the guild to get the tag badge of
196
- * @param badgeHash - The hash identifying the guild tag badge.
197
- * @param options - The parameters for the building of the URL.
198
- * @returns The link to the resource or `undefined` if no badge has been set.
199
- */ export function guildTagBadgeUrl(guildId, badgeHash, options) {
200
- if (badgeHash === undefined) return undefined;
201
- return formatImageUrl(`https://cdn.discordapp.com/guild-tag-badges/${guildId}/${badgeHash}`, options?.size ?? 128, options?.format);
202
- }
203
-
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbWFnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBCaWdTdHJpbmcsIHR5cGUgR2V0R3VpbGRXaWRnZXRJbWFnZVF1ZXJ5LCB0eXBlIEltYWdlRm9ybWF0LCB0eXBlIEltYWdlU2l6ZSwgU3RpY2tlckZvcm1hdFR5cGVzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uQmlnaW50VG9IYXNoIH0gZnJvbSAnLi9oYXNoLmpzJ1xuXG4vKiogSGVscCBmb3JtYXQgYW4gaW1hZ2UgdXJsLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEltYWdlVXJsKHVybDogc3RyaW5nLCBzaXplOiBJbWFnZVNpemUgPSAxMjgsIGZvcm1hdD86IEltYWdlRm9ybWF0KTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3VybH0uJHtmb3JtYXQgPz8gKHVybC5pbmNsdWRlcygnL2FfJykgPyAnZ2lmJyA6ICd3ZWJwJyl9P3NpemU9JHtzaXplfWBcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHVybCBmb3IgYW4gZW1vamkuXG4gKlxuICogQHBhcmFtIGVtb2ppSWQgVGhlIGlkIG9mIHRoZSBlbW9qaVxuICogQHBhcmFtIGFuaW1hdGVkIFdoZXRoZXIgb3Igbm90IHRoZSBlbW9qaSBpcyBhbmltYXRlZFxuICogQHBhcmFtIGZvcm1hdCBUaGUgZm9ybWF0IG9mIHRoZSBpbWFnZSwgZGVmYXVsdHMgdG8gcG5nXG4gKiBAcmV0dXJucyBzdHJpbmdcbiAqXG4gKiBAcmVtYXJrc1xuICogVGhlIGFuaW1hdGVkIHBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIGFuaW1hdGVkIHF1ZXJ5IHBhcmFtZXRlciB2YWxpZCBmb3Igd2VicCBpbWFnZXMgb3IgdG8gZm9yY2UgdGhlIGdpZiBpZiB0aGUgZm9ybWF0IGlzIG5vdCBzZXQgdG8gd2VicC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtb2ppVXJsKGVtb2ppSWQ6IEJpZ1N0cmluZywgYW5pbWF0ZWQgPSBmYWxzZSwgZm9ybWF0OiBJbWFnZUZvcm1hdCA9ICdwbmcnKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9lbW9qaXMvJHtlbW9qaUlkfS4ke2FuaW1hdGVkID8gKGZvcm1hdCA9PT0gJ3dlYnAnID8gJ3dlYnAnIDogJ2dpZicpIDogZm9ybWF0fSR7YW5pbWF0ZWQgJiYgZm9ybWF0ID09PSAnd2VicCcgPyAnP2FuaW1hdGVkPXRydWUnIDogJyd9YFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIHVzZXIncyBhdmF0YXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYXZhdGFyIG9mLlxuICogQHBhcmFtIGRpc2NyaW1pbmF0b3IgLSBUaGUgdXNlcidzIGRpc2NyaW1pbmF0b3IuICg0LWRpZ2l0IHRhZyBhZnRlciB0aGUgaGFzaHRhZy4pXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF2YXRhclVybChcbiAgdXNlcklkOiBCaWdTdHJpbmcsXG4gIGRpc2NyaW1pbmF0b3I6IHN0cmluZyxcbiAgb3B0aW9ucz86IHtcbiAgICBhdmF0YXI6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZFxuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmF2YXRhclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hdmF0YXJzLyR7dXNlcklkfS8ke3R5cGVvZiBvcHRpb25zLmF2YXRhciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmF2YXRhciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5hdmF0YXIpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZW1iZWQvYXZhdGFycy8ke2Rpc2NyaW1pbmF0b3IgPT09ICcwJyA/IChCaWdJbnQodXNlcklkKSA+PiBCaWdJbnQoMjIpKSAlIEJpZ0ludCg2KSA6IE51bWJlcihkaXNjcmltaW5hdG9yKSAlIDV9LnBuZ2Bcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF2YXRhckRlY29yYXRpb25VcmwoYXZhdGFyRGVjb3JhdGlvbjogQmlnU3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hdmF0YXItZGVjb3JhdGlvbi1wcmVzZXRzLyR7XG4gICAgdHlwZW9mIGF2YXRhckRlY29yYXRpb24gPT09ICdzdHJpbmcnID8gYXZhdGFyRGVjb3JhdGlvbiA6IGljb25CaWdpbnRUb0hhc2goYXZhdGFyRGVjb3JhdGlvbilcbiAgfS5wbmdgXG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIGEgdXNlcidzIGJhbm5lciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBiYW5uZXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIG5vdCBiZWVuIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJhbm5lclVybChcbiAgdXNlcklkOiBCaWdTdHJpbmcsXG4gIG9wdGlvbnM/OiB7XG4gICAgYmFubmVyPzogQmlnU3RyaW5nXG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb3B0aW9ucz8uYmFubmVyXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2Jhbm5lcnMvJHt1c2VySWR9LyR7dHlwZW9mIG9wdGlvbnMuYmFubmVyID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuYmFubmVyIDogaWNvbkJpZ2ludFRvSGFzaChvcHRpb25zLmJhbm5lcil9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byB0aGUgZ3VpbGQgYmFubmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgbGluayB0byB0aGUgYmFubmVyIGZvci5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIG5vIGJhbm5lciBoYXMgYmVlbiBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZEJhbm5lclVybChcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zOiB7XG4gICAgYmFubmVyPzogQmlnU3RyaW5nXG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb3B0aW9ucy5iYW5uZXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYmFubmVycy8ke2d1aWxkSWR9LyR7dHlwZW9mIG9wdGlvbnMuYmFubmVyID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuYmFubmVyIDogaWNvbkJpZ2ludFRvSGFzaChvcHRpb25zLmJhbm5lcil9YCxcbiAgICAgICAgb3B0aW9ucy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gdGhlIGd1aWxkIGljb24gc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZ3VpbGRJZCAtIFRoZSBJRCBvZiB0aGUgZ3VpbGQgdG8gZ2V0IHRoZSBsaW5rIHRvIHRoZSBiYW5uZXIgZm9yLlxuICogQHBhcmFtIGltYWdlSGFzaCAtIFRoZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBldmVudCBjb3ZlciBpbWFnZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIG5vIGJhbm5lciBoYXMgYmVlbiBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZEljb25VcmwoXG4gIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgaW1hZ2VIYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gaW1hZ2VIYXNoXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2ljb25zLyR7Z3VpbGRJZH0vJHt0eXBlb2YgaW1hZ2VIYXNoID09PSAnc3RyaW5nJyA/IGltYWdlSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaW1hZ2VIYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSBndWlsZCBzcGxhc2ggc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZ3VpbGRJZCAtIFRoZSBJRCBvZiB0aGUgZ3VpbGQgdG8gZ2V0IHRoZSBzcGxhc2ggb2YuXG4gKiBAcGFyYW0gaW1hZ2VIYXNoIC0gVGhlIGhhc2ggaWRlbnRpZnlpbmcgdGhlIHNwbGFzaCBpbWFnZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIHRoZSBndWlsZCBkb2VzIG5vdCBoYXZlIGEgc3BsYXNoIGltYWdlIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd1aWxkU3BsYXNoVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIGltYWdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGltYWdlSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9zcGxhc2hlcy8ke2d1aWxkSWR9LyR7dHlwZW9mIGltYWdlSGFzaCA9PT0gJ3N0cmluZycgPyBpbWFnZUhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGltYWdlSGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgZ3VpbGQgZGlzY292ZXJ5IHNwbGFzaCBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB0byBnZXQgdGhlIHNwbGFzaCBvZi5cbiAqIEBwYXJhbSBpbWFnZUhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgZGlzY292ZXJ5IHNwbGFzaCBpbWFnZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIHRoZSBndWlsZCBkb2VzIG5vdCBoYXZlIGEgc3BsYXNoIGltYWdlIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd1aWxkRGlzY292ZXJ5U3BsYXNoVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIGltYWdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGltYWdlSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9kaXNjb3Zlcnktc3BsYXNoZXMvJHtndWlsZElkfS8ke3R5cGVvZiBpbWFnZUhhc2ggPT09ICdzdHJpbmcnID8gaW1hZ2VIYXNoIDogaWNvbkJpZ2ludFRvSGFzaChpbWFnZUhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIGd1aWxkIHNjaGVkdWxlZCBldmVudCBjb3ZlciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBldmVudElkIC0gVGhlIElEIG9mIHRoZSBzY2hlZHVsZWQgZXZlbnQgdG8gZ2V0IHRoZSBjb3ZlciBvZi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VpbGRTY2hlZHVsZWRFdmVudENvdmVyVXJsKFxuICBldmVudElkOiBCaWdTdHJpbmcsXG4gIG9wdGlvbnM6IHtcbiAgICBjb3Zlcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnMuY292ZXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZ3VpbGQtZXZlbnRzLyR7ZXZlbnRJZH0vJHt0eXBlb2Ygb3B0aW9ucy5jb3ZlciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmNvdmVyIDogaWNvbkJpZ2ludFRvSGFzaChvcHRpb25zLmNvdmVyKX1gLFxuICAgICAgICBvcHRpb25zLnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zLmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byB0aGUgZ3VpbGQgd2lkZ2V0IGltYWdlIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgbGluayB0byB0aGUgd2lkZ2V0IGltYWdlIGZvci5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2lkZ2V0SW1hZ2VVcmwoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0R3VpbGRXaWRnZXRJbWFnZVF1ZXJ5KTogc3RyaW5nIHtcbiAgbGV0IHVybCA9IGBodHRwczovL2Rpc2NvcmRhcHAuY29tL2FwaS9ndWlsZHMvJHtndWlsZElkfS93aWRnZXQucG5nYFxuXG4gIGlmIChvcHRpb25zPy5zdHlsZSkge1xuICAgIHVybCArPSBgP3N0eWxlPSR7b3B0aW9ucy5zdHlsZX1gXG4gIH1cblxuICByZXR1cm4gdXJsXG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIGEgbWVtYmVyJ3MgYXZhdGFyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHdoZXJlIHRoZSBtZW1iZXIgaXNcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBhdmF0YXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVtYmVyQXZhdGFyVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIHVzZXJJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zPzoge1xuICAgIGF2YXRhcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmF2YXRhclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9ndWlsZHMvJHtndWlsZElkfS91c2Vycy8ke3VzZXJJZH0vYXZhdGFycy8ke1xuICAgICAgICAgIHR5cGVvZiBvcHRpb25zLmF2YXRhciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmF2YXRhciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5hdmF0YXIpXG4gICAgICAgIH1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIGEgbWVtYmVyJ3MgYmFubmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHdoZXJlIHRoZSBtZW1iZXIgaXNcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBiYW5uZXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVtYmVyQmFubmVyVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIHVzZXJJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zPzoge1xuICAgIGJhbm5lcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmJhbm5lclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9ndWlsZHMvJHtndWlsZElkfS91c2Vycy8ke3VzZXJJZH0vYmFubmVycy8ke1xuICAgICAgICAgIHR5cGVvZiBvcHRpb25zLmJhbm5lciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmJhbm5lciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5iYW5uZXIpXG4gICAgICAgIH1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYW4gYXBwbGljYXRpb24gaWNvbiBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBhcHBsaWNhdGlvbklkIC0gVGhlIElEIG9mIHRoZSBhcHBsaWNhdGlvbiB0byBnZXQgdGhlIGljb24gb2YuXG4gKiBAcGFyYW0gaWNvbkhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgYXBwbGljYXRpb24gaWNvbi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBsaWNhdGlvbkljb25VcmwoXG4gIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgaWNvbkhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpY29uSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hcHAtaWNvbnMvJHthcHBsaWNhdGlvbklkfS8ke3R5cGVvZiBpY29uSGFzaCA9PT0gJ3N0cmluZycgPyBpY29uSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaWNvbkhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhbiBhcHBsaWNhdGlvbiBjb3ZlciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBhcHBsaWNhdGlvbklkIC0gVGhlIElEIG9mIHRoZSBhcHBsaWNhdGlvbiB0byBnZXQgdGhlIGNvdmVyIG9mLlxuICogQHBhcmFtIGNvdmVySGFzaCAtIFRoZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBhcHBsaWNhdGlvbiBjb3Zlci5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbGljYXRpb25Db3ZlclVybChcbiAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICBjb3Zlckhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBjb3Zlckhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWljb25zLyR7YXBwbGljYXRpb25JZH0vJHt0eXBlb2YgY292ZXJIYXNoID09PSAnc3RyaW5nJyA/IGNvdmVySGFzaCA6IGljb25CaWdpbnRUb0hhc2goY292ZXJIYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYW4gYXBwbGljYXRpb24gYXNzZXQgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYXBwbGljYXRpb25JZCAtIFRoZSBJRCBvZiB0aGUgYXBwbGljYXRpb24gdG8gZ2V0IHRoZSBhc3NldCBvZi5cbiAqIEBwYXJhbSBhc3NldElkIC0gVGhlIGlkIGlkZW50aWZ5aW5nIHRoZSBhcHBsaWNhdGlvbiBhc3NldC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbGljYXRpb25Bc3NldFVybChcbiAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICBhc3NldElkOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gYXNzZXRJZFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hcHAtaWNvbnMvJHthcHBsaWNhdGlvbklkfS8ke3R5cGVvZiBhc3NldElkID09PSAnc3RyaW5nJyA/IGFzc2V0SWQgOiBpY29uQmlnaW50VG9IYXNoKGFzc2V0SWQpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIHN0aWNrZXIgcGFjayBiYW5uZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYmFubmVyQXNzZXRJZCAtIFRoZSBJRCBvZiB0aGUgYmFubmVyIGFzc2V0IGZvciB0aGUgc3RpY2tlciBwYWNrLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGlja2VyUGFja0Jhbm5lclVybChcbiAgYmFubmVyQXNzZXRJZDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGJhbm5lckFzc2V0SWRcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWFzc2V0cy83MTA5ODI0MTQzMDE3OTAyMTYvc3RvcmUvJHtcbiAgICAgICAgICB0eXBlb2YgYmFubmVyQXNzZXRJZCA9PT0gJ3N0cmluZycgPyBiYW5uZXJBc3NldElkIDogaWNvbkJpZ2ludFRvSGFzaChiYW5uZXJBc3NldElkKVxuICAgICAgICB9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgc3RpY2tlciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBzdGlja2VySWQgLSBUaGUgSUQgb2YgdGhlIHN0aWNrZXIgdG8gZ2V0IHRoZSBpY29uIG9mXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0aWNrZXJVcmwoXG4gIHN0aWNrZXJJZDogQmlnU3RyaW5nIHwgbnVtYmVyLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICAgIHR5cGU/OiBTdGlja2VyRm9ybWF0VHlwZXNcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghc3RpY2tlcklkKSByZXR1cm5cblxuICBjb25zdCB1cmwgPVxuICAgIG9wdGlvbnM/LnR5cGUgPT09IFN0aWNrZXJGb3JtYXRUeXBlcy5HaWZcbiAgICAgID8gYGh0dHBzOi8vbWVkaWEuZGlzY29yZGFwcC5uZXQvc3RpY2tlcnMvJHtzdGlja2VySWR9YFxuICAgICAgOiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vc3RpY2tlcnMvJHtzdGlja2VySWR9YFxuXG4gIHJldHVybiBmb3JtYXRJbWFnZVVybCh1cmwsIG9wdGlvbnM/LnNpemUgPz8gMTI4LCBvcHRpb25zPy5mb3JtYXQpXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSB0ZWFtIGljb24gc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gdGVhbUlkIC0gVGhlIElEIG9mIHRoZSB0ZWFtIHRvIGdldCB0aGUgaWNvbiBvZlxuICogQHBhcmFtIGljb25IYXNoIC0gVGhlIGhhc2ggb2YgdGhlIHRlYW0gaWNvbi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGVhbUljb25VcmwoXG4gIHRlYW1JZDogQmlnU3RyaW5nLFxuICBpY29uSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGljb25IYXNoXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL3RlYW0taWNvbnMvJHt0ZWFtSWR9L3N0b3JlLyR7dHlwZW9mIGljb25IYXNoID09PSAnc3RyaW5nJyA/IGljb25IYXNoIDogaWNvbkJpZ2ludFRvSGFzaChpY29uSGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgcm9sZSBpY29uIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIHJvbGVJZCAtIFRoZSBJRCBvZiB0aGUgcm9sZSB0byBnZXQgdGhlIGljb24gb2ZcbiAqIEBwYXJhbSBpY29uSGFzaCAtIFRoZSBoYXNoIG9mIHRoZSByb2xlIGljb24uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvbGVJY29uVXJsKFxuICByb2xlSWQ6IEJpZ1N0cmluZyxcbiAgaWNvbkhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpY29uSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9yb2xlLWljb25zLyR7cm9sZUlkfS8ke3R5cGVvZiBpY29uSGFzaCA9PT0gJ3N0cmluZycgPyBpY29uSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaWNvbkhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIGd1aWxkIHRhZyBiYWRnZSBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB0byBnZXQgdGhlIHRhZyBiYWRnZSBvZlxuICogQHBhcmFtIGJhZGdlSGFzaCAtIFRoZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBndWlsZCB0YWcgYmFkZ2UuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYWRnZSBoYXMgYmVlbiBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZFRhZ0JhZGdlVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIGJhZGdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGJhZGdlSGFzaCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgcmV0dXJuIGZvcm1hdEltYWdlVXJsKGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9ndWlsZC10YWctYmFkZ2VzLyR7Z3VpbGRJZH0vJHtiYWRnZUhhc2h9YCwgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsIG9wdGlvbnM/LmZvcm1hdClcbn1cbiJdLCJuYW1lcyI6WyJTdGlja2VyRm9ybWF0VHlwZXMiLCJpY29uQmlnaW50VG9IYXNoIiwiZm9ybWF0SW1hZ2VVcmwiLCJ1cmwiLCJzaXplIiwiZm9ybWF0IiwiaW5jbHVkZXMiLCJlbW9qaVVybCIsImVtb2ppSWQiLCJhbmltYXRlZCIsImF2YXRhclVybCIsInVzZXJJZCIsImRpc2NyaW1pbmF0b3IiLCJvcHRpb25zIiwiYXZhdGFyIiwiQmlnSW50IiwiTnVtYmVyIiwiYXZhdGFyRGVjb3JhdGlvblVybCIsImF2YXRhckRlY29yYXRpb24iLCJiYW5uZXJVcmwiLCJiYW5uZXIiLCJ1bmRlZmluZWQiLCJndWlsZEJhbm5lclVybCIsImd1aWxkSWQiLCJndWlsZEljb25VcmwiLCJpbWFnZUhhc2giLCJndWlsZFNwbGFzaFVybCIsImd1aWxkRGlzY292ZXJ5U3BsYXNoVXJsIiwiZ3VpbGRTY2hlZHVsZWRFdmVudENvdmVyVXJsIiwiZXZlbnRJZCIsImNvdmVyIiwiZ2V0V2lkZ2V0SW1hZ2VVcmwiLCJzdHlsZSIsIm1lbWJlckF2YXRhclVybCIsIm1lbWJlckJhbm5lclVybCIsImFwcGxpY2F0aW9uSWNvblVybCIsImFwcGxpY2F0aW9uSWQiLCJpY29uSGFzaCIsImFwcGxpY2F0aW9uQ292ZXJVcmwiLCJjb3Zlckhhc2giLCJhcHBsaWNhdGlvbkFzc2V0VXJsIiwiYXNzZXRJZCIsInN0aWNrZXJQYWNrQmFubmVyVXJsIiwiYmFubmVyQXNzZXRJZCIsInN0aWNrZXJVcmwiLCJzdGlja2VySWQiLCJ0eXBlIiwiR2lmIiwidGVhbUljb25VcmwiLCJ0ZWFtSWQiLCJyb2xlSWNvblVybCIsInJvbGVJZCIsImd1aWxkVGFnQmFkZ2VVcmwiLCJiYWRnZUhhc2giXSwibWFwcGluZ3MiOiJBQUFBLFNBQTBGQSxrQkFBa0IsUUFBUSxvQkFBbUI7QUFDdkksU0FBU0MsZ0JBQWdCLFFBQVEsWUFBVztBQUU1Qyw4QkFBOEIsR0FDOUIsT0FBTyxTQUFTQyxlQUFlQyxHQUFXLEVBQUVDLE9BQWtCLEdBQUcsRUFBRUMsTUFBb0I7SUFDckYsT0FBTyxHQUFHRixJQUFJLENBQUMsRUFBRUUsVUFBV0YsQ0FBQUEsSUFBSUcsUUFBUSxDQUFDLFNBQVMsUUFBUSxNQUFLLEVBQUcsTUFBTSxFQUFFRixNQUFNO0FBQ2xGO0FBRUE7Ozs7Ozs7Ozs7Q0FVQyxHQUNELE9BQU8sU0FBU0csU0FBU0MsT0FBa0IsRUFBRUMsV0FBVyxLQUFLLEVBQUVKLFNBQXNCLEtBQUs7SUFDeEYsT0FBTyxDQUFDLGtDQUFrQyxFQUFFRyxRQUFRLENBQUMsRUFBRUMsV0FBWUosV0FBVyxTQUFTLFNBQVMsUUFBU0EsU0FBU0ksWUFBWUosV0FBVyxTQUFTLG1CQUFtQixJQUFJO0FBQzNLO0FBRUE7Ozs7Ozs7Q0FPQyxHQUNELE9BQU8sU0FBU0ssVUFDZEMsTUFBaUIsRUFDakJDLGFBQXFCLEVBQ3JCQyxPQUlDO0lBRUQsT0FBT0EsU0FBU0MsU0FDWlosZUFDRSxDQUFDLG1DQUFtQyxFQUFFUyxPQUFPLENBQUMsRUFBRSxPQUFPRSxRQUFRQyxNQUFNLEtBQUssV0FBV0QsUUFBUUMsTUFBTSxHQUFHYixpQkFBaUJZLFFBQVFDLE1BQU0sR0FBRyxFQUN4SUQsU0FBU1QsUUFBUSxLQUNqQlMsU0FBU1IsVUFFWCxDQUFDLHlDQUF5QyxFQUFFTyxrQkFBa0IsTUFBTSxBQUFDRyxDQUFBQSxPQUFPSixXQUFXSSxPQUFPLEdBQUUsSUFBS0EsT0FBTyxLQUFLQyxPQUFPSixpQkFBaUIsRUFBRSxJQUFJLENBQUM7QUFDdEo7QUFFQSxPQUFPLFNBQVNLLG9CQUFvQkMsZ0JBQTJCO0lBQzdELE9BQU8sQ0FBQyxxREFB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
package/dist/esm/index.js DELETED
@@ -1,21 +0,0 @@
1
- export * from './base64.js';
2
- export * from './bucket.js';
3
- export * from './builders.js';
4
- export * from './Collection.js';
5
- export * from './casing.js';
6
- export * from './colors.js';
7
- export * from './constants.js';
8
- export * from './hash.js';
9
- export * from './images.js';
10
- export * from './logger.js';
11
- export * from './oauth2.js';
12
- export * from './permissions.js';
13
- export * from './reactions.js';
14
- export * from './snowflakes.js';
15
- export * from './token.js';
16
- export * from './typeguards.js';
17
- export * from './urls.js';
18
- export * from './urlToBase64.js';
19
- export * from './utils.js';
20
-
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhc2U2NC5qcydcbmV4cG9ydCAqIGZyb20gJy4vYnVja2V0LmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZGVycy5qcydcbmV4cG9ydCAqIGZyb20gJy4vQ29sbGVjdGlvbi5qcydcbmV4cG9ydCAqIGZyb20gJy4vY2FzaW5nLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9jb2xvcnMuanMnXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cy5qcydcbmV4cG9ydCAqIGZyb20gJy4vaGFzaC5qcydcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2VzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9sb2dnZXIuanMnXG5leHBvcnQgKiBmcm9tICcuL29hdXRoMi5qcydcbmV4cG9ydCAqIGZyb20gJy4vcGVybWlzc2lvbnMuanMnXG5leHBvcnQgKiBmcm9tICcuL3JlYWN0aW9ucy5qcydcbmV4cG9ydCAqIGZyb20gJy4vc25vd2ZsYWtlcy5qcydcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW4uanMnXG5leHBvcnQgKiBmcm9tICcuL3R5cGVndWFyZHMuanMnXG5leHBvcnQgKiBmcm9tICcuL3VybHMuanMnXG5leHBvcnQgKiBmcm9tICcuL3VybFRvQmFzZTY0LmpzJ1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy5qcydcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWE7QUFDM0IsY0FBYyxjQUFhO0FBQzNCLGNBQWMsZ0JBQWU7QUFDN0IsY0FBYyxrQkFBaUI7QUFDL0IsY0FBYyxjQUFhO0FBQzNCLGNBQWMsY0FBYTtBQUMzQixjQUFjLGlCQUFnQjtBQUM5QixjQUFjLFlBQVc7QUFDekIsY0FBYyxjQUFhO0FBQzNCLGNBQWMsY0FBYTtBQUMzQixjQUFjLGNBQWE7QUFDM0IsY0FBYyxtQkFBa0I7QUFDaEMsY0FBYyxpQkFBZ0I7QUFDOUIsY0FBYyxrQkFBaUI7QUFDL0IsY0FBYyxhQUFZO0FBQzFCLGNBQWMsa0JBQWlCO0FBQy9CLGNBQWMsWUFBVztBQUN6QixjQUFjLG1CQUFrQjtBQUNoQyxjQUFjLGFBQVkifQ==
@@ -1,115 +0,0 @@
1
- import { bgBrightMagenta, black, bold, cyan, gray, italic, red, yellow } from './colors.js';
2
- export var LogLevels = /*#__PURE__*/ function(LogLevels) {
3
- LogLevels[LogLevels["Debug"] = 0] = "Debug";
4
- LogLevels[LogLevels["Info"] = 1] = "Info";
5
- LogLevels[LogLevels["Warn"] = 2] = "Warn";
6
- LogLevels[LogLevels["Error"] = 3] = "Error";
7
- LogLevels[LogLevels["Fatal"] = 4] = "Fatal";
8
- return LogLevels;
9
- }({});
10
- const prefixes = new Map([
11
- [
12
- 0,
13
- 'DEBUG'
14
- ],
15
- [
16
- 1,
17
- 'INFO'
18
- ],
19
- [
20
- 2,
21
- 'WARN'
22
- ],
23
- [
24
- 3,
25
- 'ERROR'
26
- ],
27
- [
28
- 4,
29
- 'FATAL'
30
- ]
31
- ]);
32
- const noColor = (msg)=>msg;
33
- const colorFunctions = new Map([
34
- [
35
- 0,
36
- gray
37
- ],
38
- [
39
- 1,
40
- cyan
41
- ],
42
- [
43
- 2,
44
- yellow
45
- ],
46
- [
47
- 3,
48
- (str)=>red(str)
49
- ],
50
- [
51
- 4,
52
- (str)=>red(bold(italic(str)))
53
- ]
54
- ]);
55
- export function createLogger({ logLevel = 1, name } = {}) {
56
- function log(level, ...args) {
57
- if (level < logLevel) return;
58
- let color = colorFunctions.get(level);
59
- if (!color) color = noColor;
60
- const date = new Date();
61
- const log1 = [
62
- bgBrightMagenta(black(`[${date.toLocaleDateString()} ${date.toLocaleTimeString()}]`)),
63
- color(prefixes.get(level) ?? 'DEBUG'),
64
- name ? `${name} >` : '>',
65
- ...args
66
- ];
67
- switch(level){
68
- case 0:
69
- return console.debug(...log1);
70
- case 1:
71
- return console.info(...log1);
72
- case 2:
73
- return console.warn(...log1);
74
- case 3:
75
- return console.error(...log1);
76
- case 4:
77
- return console.error(...log1);
78
- default:
79
- return console.log(...log1);
80
- }
81
- }
82
- function setLevel(level) {
83
- logLevel = level;
84
- }
85
- function debug(...args) {
86
- log(0, ...args);
87
- }
88
- function info(...args) {
89
- log(1, ...args);
90
- }
91
- function warn(...args) {
92
- log(2, ...args);
93
- }
94
- function error(...args) {
95
- log(3, ...args);
96
- }
97
- function fatal(...args) {
98
- log(4, ...args);
99
- }
100
- return {
101
- log,
102
- setLevel,
103
- debug,
104
- info,
105
- warn,
106
- error,
107
- fatal
108
- };
109
- }
110
- export const logger = createLogger({
111
- name: 'Discordeno'
112
- });
113
- export default logger;
114
-
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmdCcmlnaHRNYWdlbnRhLCBibGFjaywgYm9sZCwgY3lhbiwgZ3JheSwgaXRhbGljLCByZWQsIHllbGxvdyB9IGZyb20gJy4vY29sb3JzLmpzJ1xuXG5leHBvcnQgZW51bSBMb2dMZXZlbHMge1xuICBEZWJ1ZyxcbiAgSW5mbyxcbiAgV2FybixcbiAgRXJyb3IsXG4gIEZhdGFsLFxufVxuXG5jb25zdCBwcmVmaXhlcyA9IG5ldyBNYXA8TG9nTGV2ZWxzLCBzdHJpbmc+KFtcbiAgW0xvZ0xldmVscy5EZWJ1ZywgJ0RFQlVHJ10sXG4gIFtMb2dMZXZlbHMuSW5mbywgJ0lORk8nXSxcbiAgW0xvZ0xldmVscy5XYXJuLCAnV0FSTiddLFxuICBbTG9nTGV2ZWxzLkVycm9yLCAnRVJST1InXSxcbiAgW0xvZ0xldmVscy5GYXRhbCwgJ0ZBVEFMJ10sXG5dKVxuXG5jb25zdCBub0NvbG9yOiAoc3RyOiBzdHJpbmcpID0+IHN0cmluZyA9IChtc2cpID0+IG1zZ1xuY29uc3QgY29sb3JGdW5jdGlvbnMgPSBuZXcgTWFwPExvZ0xldmVscywgKHN0cjogc3RyaW5nKSA9PiBzdHJpbmc+KFtcbiAgW0xvZ0xldmVscy5EZWJ1ZywgZ3JheV0sXG4gIFtMb2dMZXZlbHMuSW5mbywgY3lhbl0sXG4gIFtMb2dMZXZlbHMuV2FybiwgeWVsbG93XSxcbiAgW0xvZ0xldmVscy5FcnJvciwgKHN0cjogc3RyaW5nKSA9PiByZWQoc3RyKV0sXG4gIFtMb2dMZXZlbHMuRmF0YWwsIChzdHI6IHN0cmluZykgPT4gcmVkKGJvbGQoaXRhbGljKHN0cikpKV0sXG5dKVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTG9nZ2VyKHsgbG9nTGV2ZWwgPSBMb2dMZXZlbHMuSW5mbywgbmFtZSB9OiB7IGxvZ0xldmVsPzogTG9nTGV2ZWxzOyBuYW1lPzogc3RyaW5nIH0gPSB7fSkge1xuICBmdW5jdGlvbiBsb2cobGV2ZWw6IExvZ0xldmVscywgLi4uYXJnczogYW55W10pIHtcbiAgICBpZiAobGV2ZWwgPCBsb2dMZXZlbCkgcmV0dXJuXG5cbiAgICBsZXQgY29sb3IgPSBjb2xvckZ1bmN0aW9ucy5nZXQobGV2ZWwpXG4gICAgaWYgKCFjb2xvcikgY29sb3IgPSBub0NvbG9yXG5cbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKVxuICAgIGNvbnN0IGxvZyA9IFtcbiAgICAgIGJnQnJpZ2h0TWFnZW50YShibGFjayhgWyR7ZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKX0gJHtkYXRlLnRvTG9jYWxlVGltZVN0cmluZygpfV1gKSksXG4gICAgICBjb2xvcihwcmVmaXhlcy5nZXQobGV2ZWwpID8/ICdERUJVRycpLFxuICAgICAgbmFtZSA/IGAke25hbWV9ID5gIDogJz4nLFxuICAgICAgLi4uYXJncyxcbiAgICBdXG5cbiAgICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgICBjYXNlIExvZ0xldmVscy5EZWJ1ZzpcbiAgICAgICAgcmV0dXJuIGNvbnNvbGUuZGVidWcoLi4ubG9nKVxuICAgICAgY2FzZSBMb2dMZXZlbHMuSW5mbzpcbiAgICAgICAgcmV0dXJuIGNvbnNvbGUuaW5mbyguLi5sb2cpXG4gICAgICBjYXNlIExvZ0xldmVscy5XYXJuOlxuICAgICAgICByZXR1cm4gY29uc29sZS53YXJuKC4uLmxvZylcbiAgICAgIGNhc2UgTG9nTGV2ZWxzLkVycm9yOlxuICAgICAgICByZXR1cm4gY29uc29sZS5lcnJvciguLi5sb2cpXG4gICAgICBjYXNlIExvZ0xldmVscy5GYXRhbDpcbiAgICAgICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoLi4ubG9nKVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGNvbnNvbGUubG9nKC4uLmxvZylcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzZXRMZXZlbChsZXZlbDogTG9nTGV2ZWxzKSB7XG4gICAgbG9nTGV2ZWwgPSBsZXZlbFxuICB9XG5cbiAgZnVuY3Rpb24gZGVidWcoLi4uYXJnczogYW55W10pIHtcbiAgICBsb2coTG9nTGV2ZWxzLkRlYnVnLCAuLi5hcmdzKVxuICB9XG5cbiAgZnVuY3Rpb24gaW5mbyguLi5hcmdzOiBhbnlbXSkge1xuICAgIGxvZyhMb2dMZXZlbHMuSW5mbywgLi4uYXJncylcbiAgfVxuXG4gIGZ1bmN0aW9uIHdhcm4oLi4uYXJnczogYW55W10pIHtcbiAgICBsb2coTG9nTGV2ZWxzLldhcm4sIC4uLmFyZ3MpXG4gIH1cblxuICBmdW5jdGlvbiBlcnJvciguLi5hcmdzOiBhbnlbXSkge1xuICAgIGxvZyhMb2dMZXZlbHMuRXJyb3IsIC4uLmFyZ3MpXG4gIH1cblxuICBmdW5jdGlvbiBmYXRhbCguLi5hcmdzOiBhbnlbXSkge1xuICAgIGxvZyhMb2dMZXZlbHMuRmF0YWwsIC4uLmFyZ3MpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGxvZyxcbiAgICBzZXRMZXZlbCxcbiAgICBkZWJ1ZyxcbiAgICBpbmZvLFxuICAgIHdhcm4sXG4gICAgZXJyb3IsXG4gICAgZmF0YWwsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGxvZ2dlciA9IGNyZWF0ZUxvZ2dlcih7IG5hbWU6ICdEaXNjb3JkZW5vJyB9KVxuZXhwb3J0IGRlZmF1bHQgbG9nZ2VyXG4iXSwibmFtZXMiOlsiYmdCcmlnaHRNYWdlbnRhIiwiYmxhY2siLCJib2xkIiwiY3lhbiIsImdyYXkiLCJpdGFsaWMiLCJyZWQiLCJ5ZWxsb3ciLCJMb2dMZXZlbHMiLCJwcmVmaXhlcyIsIk1hcCIsIm5vQ29sb3IiLCJtc2ciLCJjb2xvckZ1bmN0aW9ucyIsInN0ciIsImNyZWF0ZUxvZ2dlciIsImxvZ0xldmVsIiwibmFtZSIsImxvZyIsImxldmVsIiwiYXJncyIsImNvbG9yIiwiZ2V0IiwiZGF0ZSIsIkRhdGUiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJjb25zb2xlIiwiZGVidWciLCJpbmZvIiwid2FybiIsImVycm9yIiwic2V0TGV2ZWwiLCJmYXRhbCIsImxvZ2dl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
@@ -1,16 +0,0 @@
1
- import { calculateBits } from './permissions.js';
2
- export function createOAuth2Link(options) {
3
- const joinedScopeString = options.scope.join('%20');
4
- let url = `https://discord.com/oauth2/authorize?client_id=${options.clientId}&scope=${joinedScopeString}`;
5
- if (options.responseType) url += `&response_type=${options.responseType}`;
6
- if (options.state) url += `&state=${encodeURIComponent(options.state)}`;
7
- if (options.redirectUri) url += `&redirect_uri=${encodeURIComponent(options.redirectUri)}`;
8
- if (options.prompt) url += `&prompt=${options.prompt}`;
9
- if (options.permissions) url += `&permissions=${Array.isArray(options.permissions) ? calculateBits(options.permissions) : options.permissions}`;
10
- if (options.guildId) url += `&guild_id=${options.guildId}`;
11
- if (options.disableGuildSelect !== undefined) url += `&disable_guild_select=${options.disableGuildSelect}`;
12
- if (options.integrationType) url += `&integration_type=${options.integrationType}`;
13
- return url;
14
- }
15
-
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vYXV0aDIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCaWdTdHJpbmcsIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSwgT0F1dGgyU2NvcGUsIFBlcm1pc3Npb25TdHJpbmdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBjYWxjdWxhdGVCaXRzIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU9BdXRoMkxpbmsob3B0aW9uczogQ3JlYXRlT0F1dGgyTGlua09wdGlvbnMpOiBzdHJpbmcge1xuICBjb25zdCBqb2luZWRTY29wZVN0cmluZyA9IG9wdGlvbnMuc2NvcGUuam9pbignJTIwJylcblxuICBsZXQgdXJsID0gYGh0dHBzOi8vZGlzY29yZC5jb20vb2F1dGgyL2F1dGhvcml6ZT9jbGllbnRfaWQ9JHtvcHRpb25zLmNsaWVudElkfSZzY29wZT0ke2pvaW5lZFNjb3BlU3RyaW5nfWBcblxuICBpZiAob3B0aW9ucy5yZXNwb25zZVR5cGUpIHVybCArPSBgJnJlc3BvbnNlX3R5cGU9JHtvcHRpb25zLnJlc3BvbnNlVHlwZX1gXG4gIGlmIChvcHRpb25zLnN0YXRlKSB1cmwgKz0gYCZzdGF0ZT0ke2VuY29kZVVSSUNvbXBvbmVudChvcHRpb25zLnN0YXRlKX1gXG4gIGlmIChvcHRpb25zLnJlZGlyZWN0VXJpKSB1cmwgKz0gYCZyZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQob3B0aW9ucy5yZWRpcmVjdFVyaSl9YFxuICBpZiAob3B0aW9ucy5wcm9tcHQpIHVybCArPSBgJnByb21wdD0ke29wdGlvbnMucHJvbXB0fWBcbiAgaWYgKG9wdGlvbnMucGVybWlzc2lvbnMpIHVybCArPSBgJnBlcm1pc3Npb25zPSR7QXJyYXkuaXNBcnJheShvcHRpb25zLnBlcm1pc3Npb25zKSA/IGNhbGN1bGF0ZUJpdHMob3B0aW9ucy5wZXJtaXNzaW9ucykgOiBvcHRpb25zLnBlcm1pc3Npb25zfWBcbiAgaWYgKG9wdGlvbnMuZ3VpbGRJZCkgdXJsICs9IGAmZ3VpbGRfaWQ9JHtvcHRpb25zLmd1aWxkSWR9YFxuICBpZiAob3B0aW9ucy5kaXNhYmxlR3VpbGRTZWxlY3QgIT09IHVuZGVmaW5lZCkgdXJsICs9IGAmZGlzYWJsZV9ndWlsZF9zZWxlY3Q9JHtvcHRpb25zLmRpc2FibGVHdWlsZFNlbGVjdH1gXG4gIGlmIChvcHRpb25zLmludGVncmF0aW9uVHlwZSkgdXJsICs9IGAmaW50ZWdyYXRpb25fdHlwZT0ke29wdGlvbnMuaW50ZWdyYXRpb25UeXBlfWBcblxuICByZXR1cm4gdXJsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlT0F1dGgyTGlua09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcmVzcG9uc2VcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpZiB1c2luZyBlaXRoZXIgT0F1dGgyIGF1dGhvcml6YXRpb24sIGltcGxpY2l0IG9yIG5vdCwgb3IgW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcmVzcG9uc2VUeXBlPzogJ2NvZGUnIHwgJ3Rva2VuJ1xuICAvKiogVGhlIGlkIG9mIHRoZSBhcHBsaWNhdGlvbiAqL1xuICBjbGllbnRJZDogQmlnU3RyaW5nXG4gIC8qKiBUaGUgc2NvcGVzIGZvciB0aGUgYXBwbGljYXRpb24gKi9cbiAgc2NvcGU6IE9BdXRoMlNjb3BlW11cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBzdGF0ZSBmb3Igc2VjdXJpdHlcbiAgICpcbiAgICogQHNlZSBodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI3N0YXRlLWFuZC1zZWN1cml0eVxuICAgKi9cbiAgc3RhdGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSByZWRpcmVjdCB1cmkgZm9yIGFmdGVyIHRoZSBhdXRoZW50aWNhdGlvblxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IGlmIHVzaW5nIGVpdGhlciBPQXV0aDIgYXV0aG9yaXphdGlvbiwgaW1wbGljaXQgb3Igbm90LCBvciBbYWR2YW5jZWQgYm90IGF1dGhvcml6YXRpb25dKGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3RvcGljcy9vYXV0aDIjYWR2YW5jZWQtYm90LWF1dGhvcml6YXRpb24pXG4gICAqL1xuICByZWRpcmVjdFVyaT86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcHJvbXB0IHRvIGdpdmUgdG8gdGhlIHVzZXJcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogSWYgc2V0IHRvIGBub25lYCwgaXQgd2lsbCBza2lwIHRoZSBhdXRob3JpemF0aW9uIHNjcmVlbiBhbmQgcmVkaXJlY3QgdGhlbSBiYWNrIHRvIHlvdXIgcmVkaXJlY3QgVVJJIHdpdGhvdXQgcmVxdWVzdGluZyB0aGVpciBhdXRob3JpemF0aW9uLlxuICAgKiBGb3IgcGFzc3Rocm91Z2ggc2NvcGVzLCBsaWtlIGJvdCBhbmQgd2ViaG9vay5pbmNvbWluZywgYXV0aG9yaXphdGlvbiBpcyBhbHdheXMgcmVxdWlyZWQuXG4gICAqL1xuICBwcm9tcHQ/OiAnY29uc2VudCcgfCAnbm9uZSdcbiAgLyoqXG4gICAqIFRoZSBwZXJtaXNzaW9ucyBvZiB0aGUgaW52aXRlZCBib3RcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpbiBhIFtib3QgYXV0aG9yaXphdGlvbiBmbG93XShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2JvdC1hdXRob3JpemF0aW9uLWZsb3cpIG9yIHdpdGggW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcGVybWlzc2lvbnM/OiBCaWdTdHJpbmcgfCBQZXJtaXNzaW9uU3RyaW5nc1tdXG4gIC8qKlxuICAgKiBQcmUtZmlsbHMgdGhlIGRyb3Bkb3duIHBpY2tlciB3aXRoIGEgZ3VpbGQgZm9yIHRoZSB1c2VyXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFNob3VsZCBiZSBkZWZpbmVkIG9ubHkgaW4gYSBbYm90IGF1dGhvcml6YXRpb24gZmxvd10oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNib3QtYXV0aG9yaXphdGlvbi1mbG93KSBvciB3aXRoIFthZHZhbmNlZCBib3QgYXV0aG9yaXphdGlvbl0oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNhZHZhbmNlZC1ib3QtYXV0aG9yaXphdGlvbikgb3Igd2l0aCB0aGUgYHdlYmhvb2suaW5jb21pbmdgIHNjb3BlXG4gICAqL1xuICBndWlsZElkPzogQmlnU3RyaW5nXG4gIC8qKlxuICAgKiBEaXNhbGxvd3MgdGhlIHVzZXIgZnJvbSBjaGFuZ2luZyB0aGUgZ3VpbGQgZHJvcGRvd24gaWYgc2V0IHRvIHRydWVcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpbiBhIFtib3QgYXV0aG9yaXphdGlvbiBmbG93XShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2JvdC1hdXRob3JpemF0aW9uLWZsb3cpLCB3aXRoIFthZHZhbmNlZCBib3QgYXV0aG9yaXphdGlvbl0oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNhZHZhbmNlZC1ib3QtYXV0aG9yaXphdGlvbikgb3Igd2l0aCB0aGUgYHdlYmhvb2suaW5jb21pbmdgIHNjb3BlXG4gICAqL1xuICBkaXNhYmxlR3VpbGRTZWxlY3Q/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGluc3RhbGxhdGlvbiBjb250ZXh0IGZvciB0aGUgYXV0aG9yaXphdGlvblxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IHdoZW4ge0BsaW5rIHNjb3BlfSBpbmNsdWRlcyB7QGxpbmsgT0F1dGgyU2NvcGUuQXBwbGljYXRpb25zQ29tbWFuZHN9LlxuICAgKlxuICAgKiBXaGVuIHNldCB0byBHdWlsZEluc3RhbGwgKDApIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGJlIGF1dGhvcml6ZWQgZm9yIGluc3RhbGxhdGlvbiB0byBhIHNlcnZlciwgYW5kIHdoZW4gc2V0IHRvIFVzZXJJbnN0YWxsICgxKSB0aGUgYXBwbGljYXRpb24gd2lsbCBiZSBhdXRob3JpemVkIGZvciBpbnN0YWxsYXRpb24gdG8gYSB1c2VyLlxuICAgKlxuICAgKiBUaGUgYXBwbGljYXRpb24gbXVzdCBiZSBjb25maWd1cmVkIGluIHRoZSBEZXZlbG9wZXIgUG9ydGFsIHRvIHN1cHBvcnQgdGhlIHByb3ZpZGVkIGBpbnRlZ3JhdGlvblR5cGVgLlxuICAgKi9cbiAgaW50ZWdyYXRpb25UeXBlPzogRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlXG59XG4iXSwibmFtZXMiOlsiY2FsY3VsYXRlQml0cyIsImNyZWF0ZU9BdXRoMkxpbmsiLCJvcHRpb25zIiwiam9pbmVkU2NvcGVTdHJpbmciLCJzY29wZSIsImpvaW4iLCJ1cmwiLCJjbGllbnRJZCIsInJlc3BvbnNlVHlwZSIsInN0YXRlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVkaXJlY3RVcmkiLCJwcm9tcHQiLCJwZXJtaXNzaW9ucyIsIkFycmF5IiwiaXNBcnJheSIsImd1aWxkSWQiLCJkaXNhYmxlR3VpbGRTZWxlY3QiLCJ1bmRlZmluZWQiLCJpbnRlZ3JhdGlvblR5cGUiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGFBQWEsUUFBUSxtQkFBa0I7QUFFaEQsT0FBTyxTQUFTQyxpQkFBaUJDLE9BQWdDO0lBQy9ELE1BQU1DLG9CQUFvQkQsUUFBUUUsS0FBSyxDQUFDQyxJQUFJLENBQUM7SUFFN0MsSUFBSUMsTUFBTSxDQUFDLCtDQUErQyxFQUFFSixRQUFRSyxRQUFRLENBQUMsT0FBTyxFQUFFSixtQkFBbUI7SUFFekcsSUFBSUQsUUFBUU0sWUFBWSxFQUFFRixPQUFPLENBQUMsZUFBZSxFQUFFSixRQUFRTSxZQUFZLEVBQUU7SUFDekUsSUFBSU4sUUFBUU8sS0FBSyxFQUFFSCxPQUFPLENBQUMsT0FBTyxFQUFFSSxtQkFBbUJSLFFBQVFPLEtBQUssR0FBRztJQUN2RSxJQUFJUCxRQUFRUyxXQUFXLEVBQUVMLE9BQU8sQ0FBQyxjQUFjLEVBQUVJLG1CQUFtQlIsUUFBUVMsV0FBVyxHQUFHO0lBQzFGLElBQUlULFFBQVFVLE1BQU0sRUFBRU4sT0FBTyxDQUFDLFFBQVEsRUFBRUosUUFBUVUsTUFBTSxFQUFFO0lBQ3RELElBQUlWLFFBQVFXLFdBQVcsRUFBRVAsT0FBTyxDQUFDLGFBQWEsRUFBRVEsTUFBTUMsT0FBTyxDQUFDYixRQUFRVyxXQUFXLElBQUliLGNBQWNFLFFBQVFXLFdBQVcsSUFBSVgsUUFBUVcsV0FBVyxFQUFFO0lBQy9JLElBQUlYLFFBQVFjLE9BQU8sRUFBRVYsT0FBTyxDQUFDLFVBQVUsRUFBRUosUUFBUWMsT0FBTyxFQUFFO0lBQzFELElBQUlkLFFBQVFlLGtCQUFrQixLQUFLQyxXQUFXWixPQUFPLENBQUMsc0JBQXNCLEVBQUVKLFFBQVFlLGtCQUFrQixFQUFFO0lBQzFHLElBQUlmLFFBQVFpQixlQUFlLEVBQUViLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRUosUUFBUWlCLGVBQWUsRUFBRTtJQUVsRixPQUFPYjtBQUNUIn0=
@@ -1,17 +0,0 @@
1
- import { BitwisePermissionFlags } from '@discordeno/types';
2
- /** This function converts a bitwise string to permission strings */ export function calculatePermissions(permissionBits) {
3
- return Object.keys(BitwisePermissionFlags).filter((permission)=>{
4
- // Since Object.keys() not only returns the permission names but also the bit values we need to return false if it is a Number
5
- if (Number(permission)) return false;
6
- // Check if permissionBits has this permission
7
- return permissionBits & BitwisePermissionFlags[permission];
8
- });
9
- }
10
- /** This function converts an array of permissions into the bitwise string. */ export function calculateBits(permissions) {
11
- return permissions.reduce((bits, perm)=>{
12
- bits |= BitwisePermissionFlags[perm];
13
- return bits;
14
- }, 0n).toString();
15
- }
16
-
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wZXJtaXNzaW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBlcm1pc3Npb25TdHJpbmdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBCaXR3aXNlUGVybWlzc2lvbkZsYWdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5cbi8qKiBUaGlzIGZ1bmN0aW9uIGNvbnZlcnRzIGEgYml0d2lzZSBzdHJpbmcgdG8gcGVybWlzc2lvbiBzdHJpbmdzICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlUGVybWlzc2lvbnMocGVybWlzc2lvbkJpdHM6IGJpZ2ludCk6IFBlcm1pc3Npb25TdHJpbmdzW10ge1xuICByZXR1cm4gT2JqZWN0LmtleXMoQml0d2lzZVBlcm1pc3Npb25GbGFncykuZmlsdGVyKChwZXJtaXNzaW9uKSA9PiB7XG4gICAgLy8gU2luY2UgT2JqZWN0LmtleXMoKSBub3Qgb25seSByZXR1cm5zIHRoZSBwZXJtaXNzaW9uIG5hbWVzIGJ1dCBhbHNvIHRoZSBiaXQgdmFsdWVzIHdlIG5lZWQgdG8gcmV0dXJuIGZhbHNlIGlmIGl0IGlzIGEgTnVtYmVyXG4gICAgaWYgKE51bWJlcihwZXJtaXNzaW9uKSkgcmV0dXJuIGZhbHNlXG4gICAgLy8gQ2hlY2sgaWYgcGVybWlzc2lvbkJpdHMgaGFzIHRoaXMgcGVybWlzc2lvblxuICAgIHJldHVybiBwZXJtaXNzaW9uQml0cyAmIEJpdHdpc2VQZXJtaXNzaW9uRmxhZ3NbcGVybWlzc2lvbiBhcyBQZXJtaXNzaW9uU3RyaW5nc11cbiAgfSkgYXMgUGVybWlzc2lvblN0cmluZ3NbXVxufVxuXG4vKiogVGhpcyBmdW5jdGlvbiBjb252ZXJ0cyBhbiBhcnJheSBvZiBwZXJtaXNzaW9ucyBpbnRvIHRoZSBiaXR3aXNlIHN0cmluZy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVCaXRzKHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uU3RyaW5nc1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBlcm1pc3Npb25zXG4gICAgLnJlZHVjZSgoYml0cywgcGVybSkgPT4ge1xuICAgICAgYml0cyB8PSBCaXR3aXNlUGVybWlzc2lvbkZsYWdzW3Blcm1dXG4gICAgICByZXR1cm4gYml0c1xuICAgIH0sIDBuKVxuICAgIC50b1N0cmluZygpXG59XG4iXSwibmFtZXMiOlsiQml0d2lzZVBlcm1pc3Npb25GbGFncyIsImNhbGN1bGF0ZVBlcm1pc3Npb25zIiwicGVybWlzc2lvbkJpdHMiLCJPYmplY3QiLCJrZXlzIiwiZmlsdGVyIiwicGVybWlzc2lvbiIsIk51bWJlciIsImNhbGN1bGF0ZUJpdHMiLCJwZXJtaXNzaW9ucyIsInJlZHVjZSIsImJpdHMiLCJwZXJtIiwidG9TdHJpbmciXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLHNCQUFzQixRQUFRLG9CQUFtQjtBQUUxRCxrRUFBa0UsR0FDbEUsT0FBTyxTQUFTQyxxQkFBcUJDLGNBQXNCO0lBQ3pELE9BQU9DLE9BQU9DLElBQUksQ0FBQ0osd0JBQXdCSyxNQUFNLENBQUMsQ0FBQ0M7UUFDakQsOEhBQThIO1FBQzlILElBQUlDLE9BQU9ELGFBQWEsT0FBTztRQUMvQiw4Q0FBOEM7UUFDOUMsT0FBT0osaUJBQWlCRixzQkFBc0IsQ0FBQ00sV0FBZ0M7SUFDakY7QUFDRjtBQUVBLDRFQUE0RSxHQUM1RSxPQUFPLFNBQVNFLGNBQWNDLFdBQWdDO0lBQzVELE9BQU9BLFlBQ0pDLE1BQU0sQ0FBQyxDQUFDQyxNQUFNQztRQUNiRCxRQUFRWCxzQkFBc0IsQ0FBQ1ksS0FBSztRQUNwQyxPQUFPRDtJQUNULEdBQUcsRUFBRSxFQUNKRSxRQUFRO0FBQ2IifQ==
@@ -1,11 +0,0 @@
1
- /** Converts an reaction emoji unicode string to the discord required form of name:id */ export function processReactionString(reaction) {
2
- if (reaction.startsWith('<:')) {
3
- return reaction.substring(2, reaction.length - 1);
4
- }
5
- if (reaction.startsWith('<a:')) {
6
- return reaction.substring(3, reaction.length - 1);
7
- }
8
- return reaction;
9
- }
10
-
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWFjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIENvbnZlcnRzIGFuIHJlYWN0aW9uIGVtb2ppIHVuaWNvZGUgc3RyaW5nIHRvIHRoZSBkaXNjb3JkIHJlcXVpcmVkIGZvcm0gb2YgbmFtZTppZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NSZWFjdGlvblN0cmluZyhyZWFjdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHJlYWN0aW9uLnN0YXJ0c1dpdGgoJzw6JykpIHtcbiAgICByZXR1cm4gcmVhY3Rpb24uc3Vic3RyaW5nKDIsIHJlYWN0aW9uLmxlbmd0aCAtIDEpXG4gIH1cblxuICBpZiAocmVhY3Rpb24uc3RhcnRzV2l0aCgnPGE6JykpIHtcbiAgICByZXR1cm4gcmVhY3Rpb24uc3Vic3RyaW5nKDMsIHJlYWN0aW9uLmxlbmd0aCAtIDEpXG4gIH1cblxuICByZXR1cm4gcmVhY3Rpb25cbn1cbiJdLCJuYW1lcyI6WyJwcm9jZXNzUmVhY3Rpb25TdHJpbmciLCJyZWFjdGlvbiIsInN0YXJ0c1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiXSwibWFwcGluZ3MiOiJBQUFBLHNGQUFzRixHQUN0RixPQUFPLFNBQVNBLHNCQUFzQkMsUUFBZ0I7SUFDcEQsSUFBSUEsU0FBU0MsVUFBVSxDQUFDLE9BQU87UUFDN0IsT0FBT0QsU0FBU0UsU0FBUyxDQUFDLEdBQUdGLFNBQVNHLE1BQU0sR0FBRztJQUNqRDtJQUVBLElBQUlILFNBQVNDLFVBQVUsQ0FBQyxRQUFRO1FBQzlCLE9BQU9ELFNBQVNFLFNBQVMsQ0FBQyxHQUFHRixTQUFTRyxNQUFNLEdBQUc7SUFDakQ7SUFFQSxPQUFPSDtBQUNUIn0=
@@ -1,11 +0,0 @@
1
- export function snowflakeToBigint(snowflake) {
2
- return BigInt(snowflake);
3
- }
4
- export function bigintToSnowflake(snowflake) {
5
- return snowflake.toString();
6
- }
7
- export function snowflakeToTimestamp(snowflake) {
8
- return Number(BigInt(snowflake) >> 22n) + 1420070400000;
9
- }
10
-
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zbm93Zmxha2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBzbm93Zmxha2VUb0JpZ2ludChzbm93Zmxha2U6IEJpZ1N0cmluZyk6IGJpZ2ludCB7XG4gIHJldHVybiBCaWdJbnQoc25vd2ZsYWtlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYmlnaW50VG9Tbm93Zmxha2Uoc25vd2ZsYWtlOiBCaWdTdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc25vd2ZsYWtlLnRvU3RyaW5nKClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNub3dmbGFrZVRvVGltZXN0YW1wKHNub3dmbGFrZTogQmlnU3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIE51bWJlcihCaWdJbnQoc25vd2ZsYWtlKSA+PiAyMm4pICsgMTQyMDA3MDQwMDAwMFxufVxuIl0sIm5hbWVzIjpbInNub3dmbGFrZVRvQmlnaW50Iiwic25vd2ZsYWtlIiwiQmlnSW50IiwiYmlnaW50VG9Tbm93Zmxha2UiLCJ0b1N0cmluZyIsInNub3dmbGFrZVRvVGltZXN0YW1wIiwiTnVtYmVyIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLFNBQVNBLGtCQUFrQkMsU0FBb0I7SUFDcEQsT0FBT0MsT0FBT0Q7QUFDaEI7QUFFQSxPQUFPLFNBQVNFLGtCQUFrQkYsU0FBb0I7SUFDcEQsT0FBT0EsVUFBVUcsUUFBUTtBQUMzQjtBQUVBLE9BQU8sU0FBU0MscUJBQXFCSixTQUFvQjtJQUN2RCxPQUFPSyxPQUFPSixPQUFPRCxjQUFjLEdBQUcsSUFBSTtBQUM1QyJ9
package/dist/esm/token.js DELETED
@@ -1,20 +0,0 @@
1
- const validTokenPrefixes = [
2
- 'Bot',
3
- 'Bearer'
4
- ];
5
- /** Removes the Bot/Bearer before the token. */ export function removeTokenPrefix(token, type = 'REST') {
6
- // If no token is provided, throw an error
7
- if (token === undefined) {
8
- throw new Error(`The ${type} was not given a token. Please provide a token and try again.`);
9
- }
10
- const splittedToken = token.split(' ');
11
- // If the token does not have a prefix just return token
12
- if (splittedToken.length < 2 || !validTokenPrefixes.includes(splittedToken[0])) return token;
13
- // Remove the prefix and return only the token.
14
- return splittedToken.splice(1).join(' ');
15
- }
16
- /** Get the bot id from the bot token. WARNING: Discord staff has mentioned this may not be stable forever. Use at your own risk. However, note for over 5 years this has never broken. */ export function getBotIdFromToken(token) {
17
- return BigInt(atob(token.split('.')[0]));
18
- }
19
-
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB2YWxpZFRva2VuUHJlZml4ZXMgPSBbJ0JvdCcsICdCZWFyZXInXVxuXG4vKiogUmVtb3ZlcyB0aGUgQm90L0JlYXJlciBiZWZvcmUgdGhlIHRva2VuLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVRva2VuUHJlZml4KHRva2VuPzogc3RyaW5nLCB0eXBlOiAnR0FURVdBWScgfCAnUkVTVCcgPSAnUkVTVCcpOiBzdHJpbmcge1xuICAvLyBJZiBubyB0b2tlbiBpcyBwcm92aWRlZCwgdGhyb3cgYW4gZXJyb3JcbiAgaWYgKHRva2VuID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSAke3R5cGV9IHdhcyBub3QgZ2l2ZW4gYSB0b2tlbi4gUGxlYXNlIHByb3ZpZGUgYSB0b2tlbiBhbmQgdHJ5IGFnYWluLmApXG4gIH1cblxuICBjb25zdCBzcGxpdHRlZFRva2VuID0gdG9rZW4uc3BsaXQoJyAnKVxuXG4gIC8vIElmIHRoZSB0b2tlbiBkb2VzIG5vdCBoYXZlIGEgcHJlZml4IGp1c3QgcmV0dXJuIHRva2VuXG4gIGlmIChzcGxpdHRlZFRva2VuLmxlbmd0aCA8IDIgfHwgIXZhbGlkVG9rZW5QcmVmaXhlcy5pbmNsdWRlcyhzcGxpdHRlZFRva2VuWzBdKSkgcmV0dXJuIHRva2VuXG4gIC8vIFJlbW92ZSB0aGUgcHJlZml4IGFuZCByZXR1cm4gb25seSB0aGUgdG9rZW4uXG4gIHJldHVybiBzcGxpdHRlZFRva2VuLnNwbGljZSgxKS5qb2luKCcgJylcbn1cblxuLyoqIEdldCB0aGUgYm90IGlkIGZyb20gdGhlIGJvdCB0b2tlbi4gV0FSTklORzogRGlzY29yZCBzdGFmZiBoYXMgbWVudGlvbmVkIHRoaXMgbWF5IG5vdCBiZSBzdGFibGUgZm9yZXZlci4gVXNlIGF0IHlvdXIgb3duIHJpc2suIEhvd2V2ZXIsIG5vdGUgZm9yIG92ZXIgNSB5ZWFycyB0aGlzIGhhcyBuZXZlciBicm9rZW4uICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm90SWRGcm9tVG9rZW4odG9rZW46IHN0cmluZyk6IGJpZ2ludCB7XG4gIHJldHVybiBCaWdJbnQoYXRvYih0b2tlbi5zcGxpdCgnLicpWzBdKSlcbn1cbiJdLCJuYW1lcyI6WyJ2YWxpZFRva2VuUHJlZml4ZXMiLCJyZW1vdmVUb2tlblByZWZpeCIsInRva2VuIiwidHlwZSIsInVuZGVmaW5lZCIsIkVycm9yIiwic3BsaXR0ZWRUb2tlbiIsInNwbGl0IiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJzcGxpY2UiLCJqb2luIiwiZ2V0Qm90SWRGcm9tVG9rZW4iLCJCaWdJbnQiLCJhdG9iIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxxQkFBcUI7SUFBQztJQUFPO0NBQVM7QUFFNUMsNkNBQTZDLEdBQzdDLE9BQU8sU0FBU0Msa0JBQWtCQyxLQUFjLEVBQUVDLE9BQTJCLE1BQU07SUFDakYsMENBQTBDO0lBQzFDLElBQUlELFVBQVVFLFdBQVc7UUFDdkIsTUFBTSxJQUFJQyxNQUFNLENBQUMsSUFBSSxFQUFFRixLQUFLLDZEQUE2RCxDQUFDO0lBQzVGO0lBRUEsTUFBTUcsZ0JBQWdCSixNQUFNSyxLQUFLLENBQUM7SUFFbEMsd0RBQXdEO0lBQ3hELElBQUlELGNBQWNFLE1BQU0sR0FBRyxLQUFLLENBQUNSLG1CQUFtQlMsUUFBUSxDQUFDSCxhQUFhLENBQUMsRUFBRSxHQUFHLE9BQU9KO0lBQ3ZGLCtDQUErQztJQUMvQyxPQUFPSSxjQUFjSSxNQUFNLENBQUMsR0FBR0MsSUFBSSxDQUFDO0FBQ3RDO0FBRUEsd0xBQXdMLEdBQ3hMLE9BQU8sU0FBU0Msa0JBQWtCVixLQUFhO0lBQzdDLE9BQU9XLE9BQU9DLEtBQUtaLE1BQU1LLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUN4QyJ9
@@ -1,22 +0,0 @@
1
- import { ApplicationCommandTypes } from '@discordeno/types';
2
- import { hasProperty } from './utils.js';
3
- export function isGetMessagesAfter(options) {
4
- return hasProperty(options, 'after');
5
- }
6
- export function isGetMessagesBefore(options) {
7
- return hasProperty(options, 'before');
8
- }
9
- export function isGetMessagesAround(options) {
10
- return hasProperty(options, 'around');
11
- }
12
- export function isGetMessagesLimit(options) {
13
- return hasProperty(options, 'limit');
14
- }
15
- export function isInviteWithMetadata(options) {
16
- return !hasProperty(options, 'channel_id');
17
- }
18
- export function isContextApplicationCommand(command) {
19
- return command.type === ApplicationCommandTypes.Message || command.type === ApplicationCommandTypes.User;
20
- }
21
-
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlZ3VhcmRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQ29tbWFuZFR5cGVzLFxuICB0eXBlIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVDb250ZXh0QXBwbGljYXRpb25Db21tYW5kLFxuICB0eXBlIERpc2NvcmRJbnZpdGVDcmVhdGUsXG4gIHR5cGUgRGlzY29yZEludml0ZU1ldGFkYXRhLFxuICB0eXBlIEdldE1lc3NhZ2VzQWZ0ZXIsXG4gIHR5cGUgR2V0TWVzc2FnZXNBcm91bmQsXG4gIHR5cGUgR2V0TWVzc2FnZXNCZWZvcmUsXG4gIHR5cGUgR2V0TWVzc2FnZXNMaW1pdCxcbiAgdHlwZSBHZXRNZXNzYWdlc09wdGlvbnMsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgaGFzUHJvcGVydHkgfSBmcm9tICcuL3V0aWxzLmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHZXRNZXNzYWdlc0FmdGVyKG9wdGlvbnM6IEdldE1lc3NhZ2VzT3B0aW9ucyk6IG9wdGlvbnMgaXMgR2V0TWVzc2FnZXNBZnRlciB7XG4gIHJldHVybiBoYXNQcm9wZXJ0eShvcHRpb25zLCAnYWZ0ZXInKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNHZXRNZXNzYWdlc0JlZm9yZShvcHRpb25zOiBHZXRNZXNzYWdlc09wdGlvbnMpOiBvcHRpb25zIGlzIEdldE1lc3NhZ2VzQmVmb3JlIHtcbiAgcmV0dXJuIGhhc1Byb3BlcnR5KG9wdGlvbnMsICdiZWZvcmUnKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNHZXRNZXNzYWdlc0Fyb3VuZChvcHRpb25zOiBHZXRNZXNzYWdlc09wdGlvbnMpOiBvcHRpb25zIGlzIEdldE1lc3NhZ2VzQXJvdW5kIHtcbiAgcmV0dXJuIGhhc1Byb3BlcnR5KG9wdGlvbnMsICdhcm91bmQnKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNHZXRNZXNzYWdlc0xpbWl0KG9wdGlvbnM6IEdldE1lc3NhZ2VzT3B0aW9ucyk6IG9wdGlvbnMgaXMgR2V0TWVzc2FnZXNMaW1pdCB7XG4gIHJldHVybiBoYXNQcm9wZXJ0eShvcHRpb25zLCAnbGltaXQnKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNJbnZpdGVXaXRoTWV0YWRhdGEob3B0aW9uczogRGlzY29yZEludml0ZUNyZWF0ZSB8IERpc2NvcmRJbnZpdGVNZXRhZGF0YSk6IG9wdGlvbnMgaXMgRGlzY29yZEludml0ZU1ldGFkYXRhIHtcbiAgcmV0dXJuICFoYXNQcm9wZXJ0eShvcHRpb25zLCAnY2hhbm5lbF9pZCcpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRleHRBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZDogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kKTogY29tbWFuZCBpcyBDcmVhdGVDb250ZXh0QXBwbGljYXRpb25Db21tYW5kIHtcbiAgcmV0dXJuIGNvbW1hbmQudHlwZSA9PT0gQXBwbGljYXRpb25Db21tYW5kVHlwZXMuTWVzc2FnZSB8fCBjb21tYW5kLnR5cGUgPT09IEFwcGxpY2F0aW9uQ29tbWFuZFR5cGVzLlVzZXJcbn1cbiJdLCJuYW1lcyI6WyJBcHBsaWNhdGlvbkNvbW1hbmRUeXBlcyIsImhhc1Byb3BlcnR5IiwiaXNHZXRNZXNzYWdlc0FmdGVyIiwib3B0aW9ucyIsImlzR2V0TWVzc2FnZXNCZWZvcmUiLCJpc0dldE1lc3NhZ2VzQXJvdW5kIiwiaXNHZXRNZXNzYWdlc0xpbWl0IiwiaXNJbnZpdGVXaXRoTWV0YWRhdGEiLCJpc0NvbnRleHRBcHBsaWNhdGlvbkNvbW1hbmQiLCJjb21tYW5kIiwidHlwZSIsIk1lc3NhZ2UiLCJVc2VyIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSx1QkFBdUIsUUFVbEIsb0JBQW1CO0FBQzFCLFNBQVNDLFdBQVcsUUFBUSxhQUFZO0FBRXhDLE9BQU8sU0FBU0MsbUJBQW1CQyxPQUEyQjtJQUM1RCxPQUFPRixZQUFZRSxTQUFTO0FBQzlCO0FBRUEsT0FBTyxTQUFTQyxvQkFBb0JELE9BQTJCO0lBQzdELE9BQU9GLFlBQVlFLFNBQVM7QUFDOUI7QUFFQSxPQUFPLFNBQVNFLG9CQUFvQkYsT0FBMkI7SUFDN0QsT0FBT0YsWUFBWUUsU0FBUztBQUM5QjtBQUVBLE9BQU8sU0FBU0csbUJBQW1CSCxPQUEyQjtJQUM1RCxPQUFPRixZQUFZRSxTQUFTO0FBQzlCO0FBRUEsT0FBTyxTQUFTSSxxQkFBcUJKLE9BQW9EO0lBQ3ZGLE9BQU8sQ0FBQ0YsWUFBWUUsU0FBUztBQUMvQjtBQUVBLE9BQU8sU0FBU0ssNEJBQTRCQyxPQUFpQztJQUMzRSxPQUFPQSxRQUFRQyxJQUFJLEtBQUtWLHdCQUF3QlcsT0FBTyxJQUFJRixRQUFRQyxJQUFJLEtBQUtWLHdCQUF3QlksSUFBSTtBQUMxRyJ9
@@ -1,9 +0,0 @@
1
- import { encode } from './base64.js';
2
- /** Converts a url to base 64. Useful for example, uploading/creating server emojis. */ export async function urlToBase64(url) {
3
- const buffer = await fetch(url).then(async (res)=>await res.arrayBuffer());
4
- const imageStr = encode(buffer);
5
- const type = url.substring(url.lastIndexOf('.') + 1);
6
- return `data:image/${type};base64,${imageStr}`;
7
- }
8
-
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cmxUb0Jhc2U2NC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbmNvZGUgfSBmcm9tICcuL2Jhc2U2NC5qcydcblxuLyoqIENvbnZlcnRzIGEgdXJsIHRvIGJhc2UgNjQuIFVzZWZ1bCBmb3IgZXhhbXBsZSwgdXBsb2FkaW5nL2NyZWF0aW5nIHNlcnZlciBlbW9qaXMuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXJsVG9CYXNlNjQodXJsOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBidWZmZXIgPSBhd2FpdCBmZXRjaCh1cmwpLnRoZW4oYXN5bmMgKHJlcykgPT4gYXdhaXQgcmVzLmFycmF5QnVmZmVyKCkpXG4gIGNvbnN0IGltYWdlU3RyID0gZW5jb2RlKGJ1ZmZlcilcbiAgY29uc3QgdHlwZSA9IHVybC5zdWJzdHJpbmcodXJsLmxhc3RJbmRleE9mKCcuJykgKyAxKVxuICByZXR1cm4gYGRhdGE6aW1hZ2UvJHt0eXBlfTtiYXNlNjQsJHtpbWFnZVN0cn1gXG59XG4iXSwibmFtZXMiOlsiZW5jb2RlIiwidXJsVG9CYXNlNjQiLCJ1cmwiLCJidWZmZXIiLCJmZXRjaCIsInRoZW4iLCJyZXMiLCJhcnJheUJ1ZmZlciIsImltYWdlU3RyIiwidHlwZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxNQUFNLFFBQVEsY0FBYTtBQUVwQyxxRkFBcUYsR0FDckYsT0FBTyxlQUFlQyxZQUFZQyxHQUFXO0lBQzNDLE1BQU1DLFNBQVMsTUFBTUMsTUFBTUYsS0FBS0csSUFBSSxDQUFDLE9BQU9DLE1BQVEsTUFBTUEsSUFBSUMsV0FBVztJQUN6RSxNQUFNQyxXQUFXUixPQUFPRztJQUN4QixNQUFNTSxPQUFPUCxJQUFJUSxTQUFTLENBQUNSLElBQUlTLFdBQVcsQ0FBQyxPQUFPO0lBQ2xELE9BQU8sQ0FBQyxXQUFXLEVBQUVGLEtBQUssUUFBUSxFQUFFRCxVQUFVO0FBQ2hEIn0=
package/dist/esm/urls.js DELETED
@@ -1,11 +0,0 @@
1
- export function skuLink(appId, skuId) {
2
- return `https://discord.com/application-directory/${appId}/store/${skuId}`;
3
- }
4
- export function storeLink(appId) {
5
- return `https://discord.com/application-directory/${appId}/store`;
6
- }
7
- export function soundLink(soundId) {
8
- return `https://cdn.discordapp.com/soundboard-sounds/${soundId}`;
9
- }
10
-
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cmxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBza3VMaW5rKGFwcElkOiBCaWdTdHJpbmcsIHNrdUlkOiBCaWdTdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYGh0dHBzOi8vZGlzY29yZC5jb20vYXBwbGljYXRpb24tZGlyZWN0b3J5LyR7YXBwSWR9L3N0b3JlLyR7c2t1SWR9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RvcmVMaW5rKGFwcElkOiBCaWdTdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYGh0dHBzOi8vZGlzY29yZC5jb20vYXBwbGljYXRpb24tZGlyZWN0b3J5LyR7YXBwSWR9L3N0b3JlYFxufVxuXG5leHBvcnQgZnVuY3Rpb24gc291bmRMaW5rKHNvdW5kSWQ6IEJpZ1N0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vc291bmRib2FyZC1zb3VuZHMvJHtzb3VuZElkfWBcbn1cbiJdLCJuYW1lcyI6WyJza3VMaW5rIiwiYXBwSWQiLCJza3VJZCIsInN0b3JlTGluayIsInNvdW5kTGluayIsInNvdW5kSWQiXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sU0FBU0EsUUFBUUMsS0FBZ0IsRUFBRUMsS0FBZ0I7SUFDeEQsT0FBTyxDQUFDLDBDQUEwQyxFQUFFRCxNQUFNLE9BQU8sRUFBRUMsT0FBTztBQUM1RTtBQUVBLE9BQU8sU0FBU0MsVUFBVUYsS0FBZ0I7SUFDeEMsT0FBTyxDQUFDLDBDQUEwQyxFQUFFQSxNQUFNLE1BQU0sQ0FBQztBQUNuRTtBQUVBLE9BQU8sU0FBU0csVUFBVUMsT0FBa0I7SUFDMUMsT0FBTyxDQUFDLDZDQUE2QyxFQUFFQSxTQUFTO0FBQ2xFIn0=
package/dist/esm/utils.js DELETED
@@ -1,21 +0,0 @@
1
- /** Pause the execution for a given amount of milliseconds. */ export async function delay(ms) {
2
- return new Promise((resolve)=>setTimeout(()=>{
3
- resolve();
4
- }, ms));
5
- }
6
- // Typescript is not so good as we developers so we need this little utility function to help it out
7
- // Taken from https://fettblog.eu/typescript-hasownproperty/
8
- /** TS save way to check if a property exists in an object */ export function hasProperty(obj, prop) {
9
- return obj.hasOwnProperty(prop);
10
- }
11
- /** Convert `JSON.stringify`-unserializable record values for debugging purposes. */ export function jsonSafeReplacer(_key, value) {
12
- switch(typeof value){
13
- case 'bigint':
14
- // Bigints are unserializable by `JSON.stringify`.
15
- return String(value);
16
- default:
17
- return value;
18
- }
19
- }
20
-
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUGF1c2UgdGhlIGV4ZWN1dGlvbiBmb3IgYSBnaXZlbiBhbW91bnQgb2YgbWlsbGlzZWNvbmRzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGF5KG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKFxuICAgIChyZXNvbHZlKTogTm9kZUpTLlRpbWVvdXQgPT5cbiAgICAgIHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuICAgICAgICByZXNvbHZlKClcbiAgICAgIH0sIG1zKSxcbiAgKVxufVxuXG4vLyBUeXBlc2NyaXB0IGlzIG5vdCBzbyBnb29kIGFzIHdlIGRldmVsb3BlcnMgc28gd2UgbmVlZCB0aGlzIGxpdHRsZSB1dGlsaXR5IGZ1bmN0aW9uIHRvIGhlbHAgaXQgb3V0XG4vLyBUYWtlbiBmcm9tIGh0dHBzOi8vZmV0dGJsb2cuZXUvdHlwZXNjcmlwdC1oYXNvd25wcm9wZXJ0eS9cbi8qKiBUUyBzYXZlIHdheSB0byBjaGVjayBpZiBhIHByb3BlcnR5IGV4aXN0cyBpbiBhbiBvYmplY3QgKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNQcm9wZXJ0eTxUIGV4dGVuZHMge30sIFkgZXh0ZW5kcyBQcm9wZXJ0eUtleSA9IHN0cmluZz4ob2JqOiBULCBwcm9wOiBZKTogb2JqIGlzIFQgJiBSZWNvcmQ8WSwgdW5rbm93bj4ge1xuICByZXR1cm4gb2JqLmhhc093blByb3BlcnR5KHByb3ApXG59XG5cbi8qKiBDb252ZXJ0IGBKU09OLnN0cmluZ2lmeWAtdW5zZXJpYWxpemFibGUgcmVjb3JkIHZhbHVlcyBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25TYWZlUmVwbGFjZXIoX2tleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IHVua25vd24ge1xuICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgIGNhc2UgJ2JpZ2ludCc6XG4gICAgICAvLyBCaWdpbnRzIGFyZSB1bnNlcmlhbGl6YWJsZSBieSBgSlNPTi5zdHJpbmdpZnlgLlxuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSlcbiAgICBkZWZhdWx0OiAvLyBBbnkgb3RoZXIgdW5oYW5kbGVkIHR5cGUgdGhhdCBpc24ndCBzdXBwb3NlZCB0byByZXF1aXJlIGNvbnZlcnNpb24uXG4gICAgICByZXR1cm4gdmFsdWVcbiAgfVxufVxuIl0sIm5hbWVzIjpbImRlbGF5IiwibXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJoYXNQcm9wZXJ0eSIsIm9iaiIsInByb3AiLCJoYXNPd25Qcm9wZXJ0eSIsImpzb25TYWZlUmVwbGFjZXIiLCJfa2V5IiwidmFsdWUiLCJTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBLDREQUE0RCxHQUM1RCxPQUFPLGVBQWVBLE1BQU1DLEVBQVU7SUFDcEMsT0FBTyxJQUFJQyxRQUNULENBQUNDLFVBQ0NDLFdBQVc7WUFDVEQ7UUFDRixHQUFHRjtBQUVUO0FBRUEsb0dBQW9HO0FBQ3BHLDREQUE0RDtBQUM1RCwyREFBMkQsR0FDM0QsT0FBTyxTQUFTSSxZQUEwREMsR0FBTSxFQUFFQyxJQUFPO0lBQ3ZGLE9BQU9ELElBQUlFLGNBQWMsQ0FBQ0Q7QUFDNUI7QUFFQSxrRkFBa0YsR0FDbEYsT0FBTyxTQUFTRSxpQkFBaUJDLElBQVksRUFBRUMsS0FBYztJQUMzRCxPQUFRLE9BQU9BO1FBQ2IsS0FBSztZQUNILGtEQUFrRDtZQUNsRCxPQUFPQyxPQUFPRDtRQUNoQjtZQUNFLE9BQU9BO0lBQ1g7QUFDRiJ9
@@ -1 +0,0 @@
1
- {"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../src/Collection.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../src/base64.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAyBzD;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAuB/C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bucket.d.ts","sourceRoot":"","sources":["../../src/bucket.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAGhC,qBAAa,WAAY,YAAW,kBAAkB;IACpD,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IAEpB,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAI;IAChB,4FAA4F;IAC5F,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAK;IAC5D,sDAAsD;IACtD,UAAU,EAAE,OAAO,CAAQ;IAC3B,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;IAC1B,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,MAAM,EAAE,IAAI,CAAC,OAAO,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,CAAA;gBAE9D,OAAO,CAAC,EAAE,kBAAkB;IAOxC,gDAAgD;IAChD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,oCAAoC;IACpC,YAAY,IAAI,IAAI;IAkBpB,kCAAkC;IAC5B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAmDnC,sEAAsE;IAChE,OAAO,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAWrD;AAED,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,CAAA;CAC5E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"embeds.d.ts","sourceRoot":"","sources":["../../../src/builders/embeds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,mBAAmB,CAAA;AAE1B;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,KAAK,CAAC,YAAY,CAAC;;IAGpD;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAc7D;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAU5C;;;;OAIG;IACH,QAAQ,IAAI,IAAI;IAWhB;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,IAAI;IAUzE;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAetC;;;;;;;OAOG;IACH,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBrC;;;;;OAKG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAMzC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAM5C;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,IAAI;IAUzE;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAAG,IAAI;IAUrE;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAS7C;;;;OAIG;IACH,cAAc,IAAI,IAAI;IAItB;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAU3C;;;;;OAKG;IACH,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI;IAMtD;;;;;;OAMG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,GAAG,IAAI;IAU7E;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMzB;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAAG,IAAI;IAUrE;;;;OAIG;IACH,QAAQ,IAAI,IAAI;CA4FjB"}