@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.
- package/dist/Collection.d.ts.map +1 -0
- package/dist/Collection.js +112 -0
- package/dist/{types/base64.d.ts → base64.d.ts} +1 -1
- package/dist/base64.d.ts.map +1 -0
- package/dist/base64.js +262 -0
- package/dist/bucket.d.ts.map +1 -0
- package/dist/bucket.js +81 -0
- package/dist/builders/embeds.d.ts.map +1 -0
- package/dist/builders/embeds.js +305 -0
- package/dist/builders.d.ts.map +1 -0
- package/dist/builders.js +5 -0
- package/dist/casing.d.ts.map +1 -0
- package/dist/casing.js +55 -0
- package/dist/colors.d.ts.map +1 -0
- package/dist/colors.js +467 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +3 -0
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +19 -0
- package/dist/images.d.ts.map +1 -0
- package/dist/images.js +204 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +115 -0
- package/dist/oauth2.d.ts.map +1 -0
- package/dist/oauth2.js +16 -0
- package/dist/permissions.d.ts.map +1 -0
- package/dist/permissions.js +17 -0
- package/dist/reactions.d.ts.map +1 -0
- package/dist/reactions.js +11 -0
- package/dist/snowflakes.d.ts.map +1 -0
- package/dist/snowflakes.js +11 -0
- package/dist/token.d.ts.map +1 -0
- package/dist/token.js +20 -0
- package/dist/{types/typeguards.d.ts → typeguards.d.ts} +1 -2
- package/dist/typeguards.d.ts.map +1 -0
- package/dist/typeguards.js +18 -0
- package/dist/urlToBase64.d.ts.map +1 -0
- package/dist/urlToBase64.js +9 -0
- package/dist/urls.d.ts.map +1 -0
- package/dist/urls.js +11 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +21 -0
- package/package.json +11 -18
- package/dist/cjs/Collection.cjs +0 -122
- package/dist/cjs/base64.cjs +0 -276
- package/dist/cjs/bucket.cjs +0 -96
- package/dist/cjs/builders/embeds.cjs +0 -306
- package/dist/cjs/builders.cjs +0 -27
- package/dist/cjs/casing.cjs +0 -79
- package/dist/cjs/colors.cjs +0 -456
- package/dist/cjs/constants.cjs +0 -13
- package/dist/cjs/hash.cjs +0 -37
- package/dist/cjs/images.cjs +0 -149
- package/dist/cjs/index.cjs +0 -38
- package/dist/cjs/logger.cjs +0 -139
- package/dist/cjs/oauth2.cjs +0 -26
- package/dist/cjs/permissions.cjs +0 -35
- package/dist/cjs/reactions.cjs +0 -21
- package/dist/cjs/snowflakes.cjs +0 -32
- package/dist/cjs/token.cjs +0 -38
- package/dist/cjs/typeguards.cjs +0 -52
- package/dist/cjs/urlToBase64.cjs +0 -19
- package/dist/cjs/urls.cjs +0 -32
- package/dist/cjs/utils.cjs +0 -40
- package/dist/esm/Collection.js +0 -112
- package/dist/esm/base64.js +0 -262
- package/dist/esm/bucket.js +0 -81
- package/dist/esm/builders/embeds.js +0 -305
- package/dist/esm/builders.js +0 -5
- package/dist/esm/casing.js +0 -55
- package/dist/esm/colors.js +0 -467
- package/dist/esm/constants.js +0 -3
- package/dist/esm/hash.js +0 -19
- package/dist/esm/images.js +0 -204
- package/dist/esm/index.js +0 -21
- package/dist/esm/logger.js +0 -115
- package/dist/esm/oauth2.js +0 -16
- package/dist/esm/permissions.js +0 -17
- package/dist/esm/reactions.js +0 -11
- package/dist/esm/snowflakes.js +0 -11
- package/dist/esm/token.js +0 -20
- package/dist/esm/typeguards.js +0 -22
- package/dist/esm/urlToBase64.js +0 -9
- package/dist/esm/urls.js +0 -11
- package/dist/esm/utils.js +0 -21
- package/dist/types/Collection.d.ts.map +0 -1
- package/dist/types/base64.d.ts.map +0 -1
- package/dist/types/bucket.d.ts.map +0 -1
- package/dist/types/builders/embeds.d.ts.map +0 -1
- package/dist/types/builders.d.ts.map +0 -1
- package/dist/types/casing.d.ts.map +0 -1
- package/dist/types/colors.d.ts.map +0 -1
- package/dist/types/constants.d.ts +0 -2
- package/dist/types/constants.d.ts.map +0 -1
- package/dist/types/hash.d.ts.map +0 -1
- package/dist/types/images.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/logger.d.ts.map +0 -1
- package/dist/types/oauth2.d.ts.map +0 -1
- package/dist/types/permissions.d.ts.map +0 -1
- package/dist/types/reactions.d.ts.map +0 -1
- package/dist/types/snowflakes.d.ts.map +0 -1
- package/dist/types/token.d.ts.map +0 -1
- package/dist/types/typeguards.d.ts.map +0 -1
- package/dist/types/urlToBase64.d.ts.map +0 -1
- package/dist/types/urls.d.ts.map +0 -1
- package/dist/types/utils.d.ts.map +0 -1
- /package/dist/{types/Collection.d.ts → Collection.d.ts} +0 -0
- /package/dist/{types/bucket.d.ts → bucket.d.ts} +0 -0
- /package/dist/{types/builders → builders}/embeds.d.ts +0 -0
- /package/dist/{types/builders.d.ts → builders.d.ts} +0 -0
- /package/dist/{types/casing.d.ts → casing.d.ts} +0 -0
- /package/dist/{types/colors.d.ts → colors.d.ts} +0 -0
- /package/dist/{types/hash.d.ts → hash.d.ts} +0 -0
- /package/dist/{types/images.d.ts → images.d.ts} +0 -0
- /package/dist/{types/index.d.ts → index.d.ts} +0 -0
- /package/dist/{types/logger.d.ts → logger.d.ts} +0 -0
- /package/dist/{types/oauth2.d.ts → oauth2.d.ts} +0 -0
- /package/dist/{types/permissions.d.ts → permissions.d.ts} +0 -0
- /package/dist/{types/reactions.d.ts → reactions.d.ts} +0 -0
- /package/dist/{types/snowflakes.d.ts → snowflakes.d.ts} +0 -0
- /package/dist/{types/token.d.ts → token.d.ts} +0 -0
- /package/dist/{types/urlToBase64.d.ts → urlToBase64.d.ts} +0 -0
- /package/dist/{types/urls.d.ts → urls.d.ts} +0 -0
- /package/dist/{types/utils.d.ts → utils.d.ts} +0 -0
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A builder to help create Discord embeds.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* const embeds = new EmbedsBuilder()
|
|
6
|
+
* .setTitle('My Embed')
|
|
7
|
+
* .setDescription('This is my new embed')
|
|
8
|
+
* .newEmbed()
|
|
9
|
+
* .setTitle('My Second Embed')
|
|
10
|
+
*/ export class EmbedsBuilder extends Array {
|
|
11
|
+
#currentEmbedIndex;
|
|
12
|
+
/**
|
|
13
|
+
* Adds a new field to the current embed.
|
|
14
|
+
*
|
|
15
|
+
* @param {string} name - Field name
|
|
16
|
+
* @param {string} value - Field value
|
|
17
|
+
* @param {?boolean} [inline=false] - Field should be inline or not.
|
|
18
|
+
* @returns {EmbedsBuilder}
|
|
19
|
+
*/ addField(name, value, inline) {
|
|
20
|
+
if (this.#currentEmbed.fields === undefined) {
|
|
21
|
+
this.#currentEmbed.fields = [];
|
|
22
|
+
}
|
|
23
|
+
this.#currentEmbed.fields.push({
|
|
24
|
+
name,
|
|
25
|
+
value,
|
|
26
|
+
inline
|
|
27
|
+
});
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Adds multiple new fields to the current embed.
|
|
32
|
+
*
|
|
33
|
+
* @param {DiscordEmbedField[]} fields - The fields to add
|
|
34
|
+
* @returns {EmbedsBuilder}
|
|
35
|
+
*/ addFields(fields) {
|
|
36
|
+
if (this.#currentEmbed.fields === undefined) {
|
|
37
|
+
this.#currentEmbed.fields = [];
|
|
38
|
+
}
|
|
39
|
+
this.#currentEmbed.fields.push(...fields);
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Creates a blank embed.
|
|
44
|
+
*
|
|
45
|
+
* @returns {EmbedsBuilder}
|
|
46
|
+
*/ newEmbed() {
|
|
47
|
+
if (this.length >= 10) {
|
|
48
|
+
throw new Error('Maximum embed count exceeded. You can not have more than 10 embeds.');
|
|
49
|
+
}
|
|
50
|
+
this.push({});
|
|
51
|
+
this.setCurrentEmbed();
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Set the current embed author.
|
|
56
|
+
*
|
|
57
|
+
* @param {string} name - Name of the author
|
|
58
|
+
* @param {?Omit<DiscordEmbedAuthor, 'name'>} [options] - Extra author options
|
|
59
|
+
* @returns {EmbedsBuilder}
|
|
60
|
+
*/ setAuthor(name, options) {
|
|
61
|
+
this.#currentEmbed.author = {
|
|
62
|
+
...this.#currentEmbed.author,
|
|
63
|
+
...options,
|
|
64
|
+
name
|
|
65
|
+
};
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Set the color on the side of the current embed.
|
|
70
|
+
*
|
|
71
|
+
* @param {(number | string)} color - The color, in base16 or hex color code
|
|
72
|
+
* @returns {EmbedsBuilder}
|
|
73
|
+
*/ setColor(color) {
|
|
74
|
+
if (typeof color === 'string') {
|
|
75
|
+
if (color.toLowerCase() === 'random') {
|
|
76
|
+
return this.setRandomColor();
|
|
77
|
+
}
|
|
78
|
+
const convertedValue = parseInt(color.replace('#', ''), 16);
|
|
79
|
+
color = Number.isNaN(convertedValue) ? 0 : convertedValue;
|
|
80
|
+
}
|
|
81
|
+
this.#currentEmbed.color = color;
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Set the current embed to a different index.
|
|
86
|
+
*
|
|
87
|
+
* WARNING: Only use this method if you know what you're doing. Make sure to set it back to the latest when you're done.
|
|
88
|
+
*
|
|
89
|
+
* @param {?number} [index] - The index of the embed in the EmbedsBuilder array
|
|
90
|
+
* @returns {EmbedsBuilder}
|
|
91
|
+
*/ setCurrentEmbed(index) {
|
|
92
|
+
if (index === undefined) {
|
|
93
|
+
this.#currentEmbedIndex = this.length - 1;
|
|
94
|
+
return this;
|
|
95
|
+
}
|
|
96
|
+
if (index >= this.length || index < 0) {
|
|
97
|
+
throw new Error('Can not set the current embed to a index out of bounds.');
|
|
98
|
+
}
|
|
99
|
+
this.#currentEmbedIndex = index;
|
|
100
|
+
return this;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Set the description of the current embed.
|
|
104
|
+
*
|
|
105
|
+
* @param {string} description - Description
|
|
106
|
+
* @returns {EmbedsBuilder}
|
|
107
|
+
*/ setDescription(description) {
|
|
108
|
+
this.#currentEmbed.description = description;
|
|
109
|
+
return this;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Overwrite all fields on the current embed.
|
|
113
|
+
*
|
|
114
|
+
* @param {DiscordEmbedField[]} fields
|
|
115
|
+
* @returns {EmbedsBuilder}
|
|
116
|
+
*/ setFields(fields) {
|
|
117
|
+
this.#currentEmbed.fields = fields;
|
|
118
|
+
return this;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Set the footer in the current embed.
|
|
122
|
+
*
|
|
123
|
+
* @param {string} text - The text to display in the footer
|
|
124
|
+
* @param {?Omit<DiscordEmbedFooter, 'text'>} [options]
|
|
125
|
+
* @returns {EmbedsBuilder}
|
|
126
|
+
*/ setFooter(text, options) {
|
|
127
|
+
this.#currentEmbed.footer = {
|
|
128
|
+
...this.#currentEmbed.footer,
|
|
129
|
+
...options,
|
|
130
|
+
text
|
|
131
|
+
};
|
|
132
|
+
return this;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Set the image in the current embed.
|
|
136
|
+
*
|
|
137
|
+
* @param {string} url - URL of the image
|
|
138
|
+
* @param {?Omit<DiscordEmbedImage, 'url'>} [options]
|
|
139
|
+
* @returns {EmbedsBuilder}
|
|
140
|
+
*/ setImage(url, options) {
|
|
141
|
+
this.#currentEmbed.image = {
|
|
142
|
+
...this.#currentEmbed.image,
|
|
143
|
+
...options,
|
|
144
|
+
url
|
|
145
|
+
};
|
|
146
|
+
return this;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Set the provider of the current embed.
|
|
150
|
+
*
|
|
151
|
+
* @param {string} name
|
|
152
|
+
* @param {?string} [url]
|
|
153
|
+
* @returns {EmbedsBuilder}
|
|
154
|
+
*/ setProvider(name, url) {
|
|
155
|
+
this.#currentEmbed.provider = {
|
|
156
|
+
name,
|
|
157
|
+
url
|
|
158
|
+
};
|
|
159
|
+
return this;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Set the color of the current embed to a random value.
|
|
163
|
+
*
|
|
164
|
+
* @returns {EmbedsBuilder}
|
|
165
|
+
*/ setRandomColor() {
|
|
166
|
+
return this.setColor(Math.floor(Math.random() * (0xffffff + 1)));
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Set the title of the current embed.
|
|
170
|
+
*
|
|
171
|
+
* @param {string} title
|
|
172
|
+
* @param {?string} [url]
|
|
173
|
+
* @returns {EmbedsBuilder}
|
|
174
|
+
*/ setTitle(title, url) {
|
|
175
|
+
this.#currentEmbed.title = title;
|
|
176
|
+
if (url) {
|
|
177
|
+
this.setUrl(url);
|
|
178
|
+
}
|
|
179
|
+
return this;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Set the timestamp of the current embed.
|
|
183
|
+
*
|
|
184
|
+
* @param {?(string | number | Date)} [timestamp]
|
|
185
|
+
* @returns {EmbedsBuilder}
|
|
186
|
+
*/ setTimestamp(timestamp) {
|
|
187
|
+
this.#currentEmbed.timestamp = new Date(timestamp ?? Date.now()).toISOString();
|
|
188
|
+
return this;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Set the thumbnail of the current embed.
|
|
192
|
+
*
|
|
193
|
+
* @param {string} url - URL of the image
|
|
194
|
+
* @param {?Omit<DiscordEmbedThumbnail, 'url'>} [options]
|
|
195
|
+
* @returns {EmbedsBuilder}
|
|
196
|
+
*/ setThumbnail(url, options) {
|
|
197
|
+
this.#currentEmbed.thumbnail = {
|
|
198
|
+
...this.#currentEmbed.thumbnail,
|
|
199
|
+
...options,
|
|
200
|
+
url
|
|
201
|
+
};
|
|
202
|
+
return this;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Set the URL of the current embed title.
|
|
206
|
+
*
|
|
207
|
+
* @param {string} url
|
|
208
|
+
* @returns {EmbedsBuilder}
|
|
209
|
+
*/ setUrl(url) {
|
|
210
|
+
this.#currentEmbed.url = url;
|
|
211
|
+
return this;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Set the video of the current embed.
|
|
215
|
+
*
|
|
216
|
+
* @param {string} url
|
|
217
|
+
* @param {?Omit<DiscordEmbedVideo, 'url'>} [options]
|
|
218
|
+
* @returns {EmbedsBuilder}
|
|
219
|
+
*/ setVideo(url, options) {
|
|
220
|
+
this.#currentEmbed.video = {
|
|
221
|
+
...this.#currentEmbed.video,
|
|
222
|
+
...options,
|
|
223
|
+
url
|
|
224
|
+
};
|
|
225
|
+
return this;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Validate all embeds available against current known Discord limits to help prevent bad requests.
|
|
229
|
+
*
|
|
230
|
+
* @returns {EmbedsBuilder}
|
|
231
|
+
*/ validate() {
|
|
232
|
+
let totalCharacters = 0;
|
|
233
|
+
if (this.length > 10) {
|
|
234
|
+
throw new Error('You can not have more than 10 embeds on a single message.');
|
|
235
|
+
}
|
|
236
|
+
this.forEach(({ author, description, fields, footer, title }, index)=>{
|
|
237
|
+
if (title) {
|
|
238
|
+
const trimmedTitle = title.trim();
|
|
239
|
+
if (trimmedTitle.length > 256) {
|
|
240
|
+
throw new Error(`Title of embed ${index} can not be longer than 256 characters.`);
|
|
241
|
+
}
|
|
242
|
+
totalCharacters += trimmedTitle.length;
|
|
243
|
+
}
|
|
244
|
+
if (description) {
|
|
245
|
+
const trimmedDescription = description.trim();
|
|
246
|
+
if (trimmedDescription.length > 4096) {
|
|
247
|
+
throw new Error(`Description of embed ${index} can not be longer than 4096 characters.`);
|
|
248
|
+
}
|
|
249
|
+
totalCharacters += trimmedDescription.length;
|
|
250
|
+
}
|
|
251
|
+
if (fields) {
|
|
252
|
+
if (fields.length > 25) {
|
|
253
|
+
throw new Error(`embed ${index} can not have more than 25 fields.`);
|
|
254
|
+
}
|
|
255
|
+
fields.forEach(({ name, value }, fieldIndex)=>{
|
|
256
|
+
const trimmedName = name.trim();
|
|
257
|
+
const trimmedValue = value.trim();
|
|
258
|
+
if (trimmedName.length > 256) {
|
|
259
|
+
throw new Error(`Name of field ${fieldIndex} on embed ${index} can not be longer than 256 characters.`);
|
|
260
|
+
}
|
|
261
|
+
if (trimmedValue.length > 4096) {
|
|
262
|
+
throw new Error(`Value of field ${fieldIndex} on embed ${index} can not be longer than 1024 characters.`);
|
|
263
|
+
}
|
|
264
|
+
totalCharacters += trimmedName.length;
|
|
265
|
+
totalCharacters += trimmedValue.length;
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
if (footer) {
|
|
269
|
+
const trimmedFooterText = footer.text.trim();
|
|
270
|
+
if (trimmedFooterText.length > 2048) {
|
|
271
|
+
throw new Error(`Footer text of embed ${index} can not be longer than 2048 characters.`);
|
|
272
|
+
}
|
|
273
|
+
totalCharacters += trimmedFooterText.length;
|
|
274
|
+
}
|
|
275
|
+
if (author) {
|
|
276
|
+
const trimmedAuthorName = author.name.trim();
|
|
277
|
+
if (trimmedAuthorName.length > 256) {
|
|
278
|
+
throw new Error(`Author name of embed ${index} can not be longer than 256 characters.`);
|
|
279
|
+
}
|
|
280
|
+
totalCharacters += trimmedAuthorName.length;
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
if (totalCharacters > 6000) {
|
|
284
|
+
throw new Error('Total character length of all embeds can not exceed 6000 characters.');
|
|
285
|
+
}
|
|
286
|
+
return this;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Returns the current embed.
|
|
290
|
+
*
|
|
291
|
+
* @readonly
|
|
292
|
+
* @type {DiscordEmbed}
|
|
293
|
+
*/ get #currentEmbed() {
|
|
294
|
+
if (this.length === 0) {
|
|
295
|
+
this.newEmbed();
|
|
296
|
+
this.setCurrentEmbed();
|
|
297
|
+
}
|
|
298
|
+
return this[this.#currentEmbedIndex];
|
|
299
|
+
}
|
|
300
|
+
constructor(...args){
|
|
301
|
+
super(...args), this.#currentEmbedIndex = 0;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZGVycy9lbWJlZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBEaXNjb3JkRW1iZWQsXG4gIERpc2NvcmRFbWJlZEF1dGhvcixcbiAgRGlzY29yZEVtYmVkRmllbGQsXG4gIERpc2NvcmRFbWJlZEZvb3RlcixcbiAgRGlzY29yZEVtYmVkSW1hZ2UsXG4gIERpc2NvcmRFbWJlZFRodW1ibmFpbCxcbiAgRGlzY29yZEVtYmVkVmlkZW8sXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuXG4vKipcbiAqIEEgYnVpbGRlciB0byBoZWxwIGNyZWF0ZSBEaXNjb3JkIGVtYmVkcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgZW1iZWRzID0gbmV3IEVtYmVkc0J1aWxkZXIoKVxuICogIC5zZXRUaXRsZSgnTXkgRW1iZWQnKVxuICogIC5zZXREZXNjcmlwdGlvbignVGhpcyBpcyBteSBuZXcgZW1iZWQnKVxuICogIC5uZXdFbWJlZCgpXG4gKiAgLnNldFRpdGxlKCdNeSBTZWNvbmQgRW1iZWQnKVxuICovXG5leHBvcnQgY2xhc3MgRW1iZWRzQnVpbGRlciBleHRlbmRzIEFycmF5PERpc2NvcmRFbWJlZD4ge1xuICAjY3VycmVudEVtYmVkSW5kZXg6IG51bWJlciA9IDBcblxuICAvKipcbiAgICogQWRkcyBhIG5ldyBmaWVsZCB0byB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBGaWVsZCBuYW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIEZpZWxkIHZhbHVlXG4gICAqIEBwYXJhbSB7P2Jvb2xlYW59IFtpbmxpbmU9ZmFsc2VdIC0gRmllbGQgc2hvdWxkIGJlIGlubGluZSBvciBub3QuXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgYWRkRmllbGQobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBpbmxpbmU/OiBib29sZWFuKTogdGhpcyB7XG4gICAgaWYgKHRoaXMuI2N1cnJlbnRFbWJlZC5maWVsZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy4jY3VycmVudEVtYmVkLmZpZWxkcyA9IFtdXG4gICAgfVxuXG4gICAgdGhpcy4jY3VycmVudEVtYmVkLmZpZWxkcy5wdXNoKHtcbiAgICAgIG5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIGlubGluZSxcbiAgICB9KVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIG11bHRpcGxlIG5ldyBmaWVsZHMgdG8gdGhlIGN1cnJlbnQgZW1iZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7RGlzY29yZEVtYmVkRmllbGRbXX0gZmllbGRzIC0gVGhlIGZpZWxkcyB0byBhZGRcbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBhZGRGaWVsZHMoZmllbGRzOiBEaXNjb3JkRW1iZWRGaWVsZFtdKTogdGhpcyB7XG4gICAgaWYgKHRoaXMuI2N1cnJlbnRFbWJlZC5maWVsZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy4jY3VycmVudEVtYmVkLmZpZWxkcyA9IFtdXG4gICAgfVxuXG4gICAgdGhpcy4jY3VycmVudEVtYmVkLmZpZWxkcy5wdXNoKC4uLmZpZWxkcylcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGJsYW5rIGVtYmVkLlxuICAgKlxuICAgKiBAcmV0dXJucyB7RW1iZWRzQnVpbGRlcn1cbiAgICovXG4gIG5ld0VtYmVkKCk6IHRoaXMge1xuICAgIGlmICh0aGlzLmxlbmd0aCA+PSAxMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYXhpbXVtIGVtYmVkIGNvdW50IGV4Y2VlZGVkLiBZb3UgY2FuIG5vdCBoYXZlIG1vcmUgdGhhbiAxMCBlbWJlZHMuJylcbiAgICB9XG5cbiAgICB0aGlzLnB1c2goe30pXG4gICAgdGhpcy5zZXRDdXJyZW50RW1iZWQoKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGN1cnJlbnQgZW1iZWQgYXV0aG9yLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIE5hbWUgb2YgdGhlIGF1dGhvclxuICAgKiBAcGFyYW0gez9PbWl0PERpc2NvcmRFbWJlZEF1dGhvciwgJ25hbWUnPn0gW29wdGlvbnNdIC0gRXh0cmEgYXV0aG9yIG9wdGlvbnNcbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXRBdXRob3IobmFtZTogc3RyaW5nLCBvcHRpb25zPzogT21pdDxEaXNjb3JkRW1iZWRBdXRob3IsICduYW1lJz4pOiB0aGlzIHtcbiAgICB0aGlzLiNjdXJyZW50RW1iZWQuYXV0aG9yID0ge1xuICAgICAgLi4udGhpcy4jY3VycmVudEVtYmVkLmF1dGhvcixcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBuYW1lLFxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjb2xvciBvbiB0aGUgc2lkZSBvZiB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHsobnVtYmVyIHwgc3RyaW5nKX0gY29sb3IgLSBUaGUgY29sb3IsIGluIGJhc2UxNiBvciBoZXggY29sb3IgY29kZVxuICAgKiBAcmV0dXJucyB7RW1iZWRzQnVpbGRlcn1cbiAgICovXG4gIHNldENvbG9yKGNvbG9yOiBudW1iZXIgfCBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAodHlwZW9mIGNvbG9yID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKGNvbG9yLnRvTG93ZXJDYXNlKCkgPT09ICdyYW5kb20nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldFJhbmRvbUNvbG9yKClcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29udmVydGVkVmFsdWUgPSBwYXJzZUludChjb2xvci5yZXBsYWNlKCcjJywgJycpLCAxNilcbiAgICAgIGNvbG9yID0gTnVtYmVyLmlzTmFOKGNvbnZlcnRlZFZhbHVlKSA/IDAgOiBjb252ZXJ0ZWRWYWx1ZVxuICAgIH1cblxuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC5jb2xvciA9IGNvbG9yXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgY3VycmVudCBlbWJlZCB0byBhIGRpZmZlcmVudCBpbmRleC5cbiAgICpcbiAgICogV0FSTklORzogT25seSB1c2UgdGhpcyBtZXRob2QgaWYgeW91IGtub3cgd2hhdCB5b3UncmUgZG9pbmcuIE1ha2Ugc3VyZSB0byBzZXQgaXQgYmFjayB0byB0aGUgbGF0ZXN0IHdoZW4geW91J3JlIGRvbmUuXG4gICAqXG4gICAqIEBwYXJhbSB7P251bWJlcn0gW2luZGV4XSAtIFRoZSBpbmRleCBvZiB0aGUgZW1iZWQgaW4gdGhlIEVtYmVkc0J1aWxkZXIgYXJyYXlcbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXRDdXJyZW50RW1iZWQoaW5kZXg/OiBudW1iZXIpOiB0aGlzIHtcbiAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy4jY3VycmVudEVtYmVkSW5kZXggPSB0aGlzLmxlbmd0aCAtIDFcblxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBpZiAoaW5kZXggPj0gdGhpcy5sZW5ndGggfHwgaW5kZXggPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhbiBub3Qgc2V0IHRoZSBjdXJyZW50IGVtYmVkIHRvIGEgaW5kZXggb3V0IG9mIGJvdW5kcy4nKVxuICAgIH1cblxuICAgIHRoaXMuI2N1cnJlbnRFbWJlZEluZGV4ID0gaW5kZXhcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRlc2NyaXB0aW9uIC0gRGVzY3JpcHRpb25cbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy4jY3VycmVudEVtYmVkLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb25cblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogT3ZlcndyaXRlIGFsbCBmaWVsZHMgb24gdGhlIGN1cnJlbnQgZW1iZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7RGlzY29yZEVtYmVkRmllbGRbXX0gZmllbGRzXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgc2V0RmllbGRzKGZpZWxkczogRGlzY29yZEVtYmVkRmllbGRbXSk6IHRoaXMge1xuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC5maWVsZHMgPSBmaWVsZHNcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBmb290ZXIgaW4gdGhlIGN1cnJlbnQgZW1iZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gVGhlIHRleHQgdG8gZGlzcGxheSBpbiB0aGUgZm9vdGVyXG4gICAqIEBwYXJhbSB7P09taXQ8RGlzY29yZEVtYmVkRm9vdGVyLCAndGV4dCc+fSBbb3B0aW9uc11cbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXRGb290ZXIodGV4dDogc3RyaW5nLCBvcHRpb25zPzogT21pdDxEaXNjb3JkRW1iZWRGb290ZXIsICd0ZXh0Jz4pOiB0aGlzIHtcbiAgICB0aGlzLiNjdXJyZW50RW1iZWQuZm9vdGVyID0ge1xuICAgICAgLi4udGhpcy4jY3VycmVudEVtYmVkLmZvb3RlcixcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB0ZXh0LFxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBpbWFnZSBpbiB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFVSTCBvZiB0aGUgaW1hZ2VcbiAgICogQHBhcmFtIHs/T21pdDxEaXNjb3JkRW1iZWRJbWFnZSwgJ3VybCc+fSBbb3B0aW9uc11cbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXRJbWFnZSh1cmw6IHN0cmluZywgb3B0aW9ucz86IE9taXQ8RGlzY29yZEVtYmVkSW1hZ2UsICd1cmwnPik6IHRoaXMge1xuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC5pbWFnZSA9IHtcbiAgICAgIC4uLnRoaXMuI2N1cnJlbnRFbWJlZC5pbWFnZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB1cmwsXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHByb3ZpZGVyIG9mIHRoZSBjdXJyZW50IGVtYmVkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgKiBAcGFyYW0gez9zdHJpbmd9IFt1cmxdXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgc2V0UHJvdmlkZXIobmFtZTogc3RyaW5nLCB1cmw/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLiNjdXJyZW50RW1iZWQucHJvdmlkZXIgPSB7XG4gICAgICBuYW1lLFxuICAgICAgdXJsLFxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjb2xvciBvZiB0aGUgY3VycmVudCBlbWJlZCB0byBhIHJhbmRvbSB2YWx1ZS5cbiAgICpcbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXRSYW5kb21Db2xvcigpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5zZXRDb2xvcihNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAoMHhmZmZmZmYgKyAxKSkpXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0aXRsZSBvZiB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlXG4gICAqIEBwYXJhbSB7P3N0cmluZ30gW3VybF1cbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXRUaXRsZSh0aXRsZTogc3RyaW5nLCB1cmw/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLiNjdXJyZW50RW1iZWQudGl0bGUgPSB0aXRsZVxuXG4gICAgaWYgKHVybCkge1xuICAgICAgdGhpcy5zZXRVcmwodXJsKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0aW1lc3RhbXAgb2YgdGhlIGN1cnJlbnQgZW1iZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7PyhzdHJpbmcgfCBudW1iZXIgfCBEYXRlKX0gW3RpbWVzdGFtcF1cbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXRUaW1lc3RhbXAodGltZXN0YW1wPzogc3RyaW5nIHwgbnVtYmVyIHwgRGF0ZSk6IHRoaXMge1xuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC50aW1lc3RhbXAgPSBuZXcgRGF0ZSh0aW1lc3RhbXAgPz8gRGF0ZS5ub3coKSkudG9JU09TdHJpbmcoKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRodW1ibmFpbCBvZiB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFVSTCBvZiB0aGUgaW1hZ2VcbiAgICogQHBhcmFtIHs/T21pdDxEaXNjb3JkRW1iZWRUaHVtYm5haWwsICd1cmwnPn0gW29wdGlvbnNdXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgc2V0VGh1bWJuYWlsKHVybDogc3RyaW5nLCBvcHRpb25zPzogT21pdDxEaXNjb3JkRW1iZWRUaHVtYm5haWwsICd1cmwnPik6IHRoaXMge1xuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC50aHVtYm5haWwgPSB7XG4gICAgICAuLi50aGlzLiNjdXJyZW50RW1iZWQudGh1bWJuYWlsLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHVybCxcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgVVJMIG9mIHRoZSBjdXJyZW50IGVtYmVkIHRpdGxlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgc2V0VXJsKHVybDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy4jY3VycmVudEVtYmVkLnVybCA9IHVybFxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHZpZGVvIG9mIHRoZSBjdXJyZW50IGVtYmVkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsXG4gICAqIEBwYXJhbSB7P09taXQ8RGlzY29yZEVtYmVkVmlkZW8sICd1cmwnPn0gW29wdGlvbnNdXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgc2V0VmlkZW8odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBPbWl0PERpc2NvcmRFbWJlZFZpZGVvLCAndXJsJz4pOiB0aGlzIHtcbiAgICB0aGlzLiNjdXJyZW50RW1iZWQudmlkZW8gPSB7XG4gICAgICAuLi50aGlzLiNjdXJyZW50RW1iZWQudmlkZW8sXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgdXJsLFxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgYWxsIGVtYmVkcyBhdmFpbGFibGUgYWdhaW5zdCBjdXJyZW50IGtub3duIERpc2NvcmQgbGltaXRzIHRvIGhlbHAgcHJldmVudCBiYWQgcmVxdWVzdHMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgdmFsaWRhdGUoKTogdGhpcyB7XG4gICAgbGV0IHRvdGFsQ2hhcmFjdGVycyA9IDBcblxuICAgIGlmICh0aGlzLmxlbmd0aCA+IDEwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW4gbm90IGhhdmUgbW9yZSB0aGFuIDEwIGVtYmVkcyBvbiBhIHNpbmdsZSBtZXNzYWdlLicpXG4gICAgfVxuXG4gICAgdGhpcy5mb3JFYWNoKCh7IGF1dGhvciwgZGVzY3JpcHRpb24sIGZpZWxkcywgZm9vdGVyLCB0aXRsZSB9LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHRpdGxlKSB7XG4gICAgICAgIGNvbnN0IHRyaW1tZWRUaXRsZSA9IHRpdGxlLnRyaW0oKVxuXG4gICAgICAgIGlmICh0cmltbWVkVGl0bGUubGVuZ3RoID4gMjU2KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaXRsZSBvZiBlbWJlZCAke2luZGV4fSBjYW4gbm90IGJlIGxvbmdlciB0aGFuIDI1NiBjaGFyYWN0ZXJzLmApXG4gICAgICAgIH1cblxuICAgICAgICB0b3RhbENoYXJhY3RlcnMgKz0gdHJpbW1lZFRpdGxlLmxlbmd0aFxuICAgICAgfVxuXG4gICAgICBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgICAgY29uc3QgdHJpbW1lZERlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24udHJpbSgpXG5cbiAgICAgICAgaWYgKHRyaW1tZWREZXNjcmlwdGlvbi5sZW5ndGggPiA0MDk2KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEZXNjcmlwdGlvbiBvZiBlbWJlZCAke2luZGV4fSBjYW4gbm90IGJlIGxvbmdlciB0aGFuIDQwOTYgY2hhcmFjdGVycy5gKVxuICAgICAgICB9XG5cbiAgICAgICAgdG90YWxDaGFyYWN0ZXJzICs9IHRyaW1tZWREZXNjcmlwdGlvbi5sZW5ndGhcbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkcykge1xuICAgICAgICBpZiAoZmllbGRzLmxlbmd0aCA+IDI1KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBlbWJlZCAke2luZGV4fSBjYW4gbm90IGhhdmUgbW9yZSB0aGFuIDI1IGZpZWxkcy5gKVxuICAgICAgICB9XG5cbiAgICAgICAgZmllbGRzLmZvckVhY2goKHsgbmFtZSwgdmFsdWUgfSwgZmllbGRJbmRleCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRyaW1tZWROYW1lID0gbmFtZS50cmltKClcbiAgICAgICAgICBjb25zdCB0cmltbWVkVmFsdWUgPSB2YWx1ZS50cmltKClcblxuICAgICAgICAgIGlmICh0cmltbWVkTmFtZS5sZW5ndGggPiAyNTYpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTmFtZSBvZiBmaWVsZCAke2ZpZWxkSW5kZXh9IG9uIGVtYmVkICR7aW5kZXh9IGNhbiBub3QgYmUgbG9uZ2VyIHRoYW4gMjU2IGNoYXJhY3RlcnMuYClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHJpbW1lZFZhbHVlLmxlbmd0aCA+IDQwOTYpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVmFsdWUgb2YgZmllbGQgJHtmaWVsZEluZGV4fSBvbiBlbWJlZCAke2luZGV4fSBjYW4gbm90IGJlIGxvbmdlciB0aGFuIDEwMjQgY2hhcmFjdGVycy5gKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRvdGFsQ2hhcmFjdGVycyArPSB0cmltbWVkTmFtZS5sZW5ndGhcbiAgICAgICAgICB0b3RhbENoYXJhY3RlcnMgKz0gdHJpbW1lZFZhbHVlLmxlbmd0aFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpZiAoZm9vdGVyKSB7XG4gICAgICAgIGNvbnN0IHRyaW1tZWRGb290ZXJUZXh0ID0gZm9vdGVyLnRleHQudHJpbSgpXG5cbiAgICAgICAgaWYgKHRyaW1tZWRGb290ZXJUZXh0Lmxlbmd0aCA+IDIwNDgpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvb3RlciB0ZXh0IG9mIGVtYmVkICR7aW5kZXh9IGNhbiBub3QgYmUgbG9uZ2VyIHRoYW4gMjA0OCBjaGFyYWN0ZXJzLmApXG4gICAgICAgIH1cblxuICAgICAgICB0b3RhbENoYXJhY3RlcnMgKz0gdHJpbW1lZEZvb3RlclRleHQubGVuZ3RoXG4gICAgICB9XG5cbiAgICAgIGlmIChhdXRob3IpIHtcbiAgICAgICAgY29uc3QgdHJpbW1lZEF1dGhvck5hbWUgPSBhdXRob3IubmFtZS50cmltKClcblxuICAgICAgICBpZiAodHJpbW1lZEF1dGhvck5hbWUubGVuZ3RoID4gMjU2KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBdXRob3IgbmFtZSBvZiBlbWJlZCAke2luZGV4fSBjYW4gbm90IGJlIGxvbmdlciB0aGFuIDI1NiBjaGFyYWN0ZXJzLmApXG4gICAgICAgIH1cblxuICAgICAgICB0b3RhbENoYXJhY3RlcnMgKz0gdHJpbW1lZEF1dGhvck5hbWUubGVuZ3RoXG4gICAgICB9XG4gICAgfSlcblxuICAgIGlmICh0b3RhbENoYXJhY3RlcnMgPiA2MDAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RvdGFsIGNoYXJhY3RlciBsZW5ndGggb2YgYWxsIGVtYmVkcyBjYW4gbm90IGV4Y2VlZCA2MDAwIGNoYXJhY3RlcnMuJylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgZW1iZWQuXG4gICAqXG4gICAqIEByZWFkb25seVxuICAgKiBAdHlwZSB7RGlzY29yZEVtYmVkfVxuICAgKi9cbiAgZ2V0ICNjdXJyZW50RW1iZWQoKTogRGlzY29yZEVtYmVkIHtcbiAgICBpZiAodGhpcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMubmV3RW1iZWQoKVxuICAgICAgdGhpcy5zZXRDdXJyZW50RW1iZWQoKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzW3RoaXMuI2N1cnJlbnRFbWJlZEluZGV4XVxuICB9XG59XG4iXSwibmFtZXMiOlsiRW1iZWRzQnVpbGRlciIsIkFycmF5IiwiYWRkRmllbGQiLCJuYW1lIiwidmFsdWUiLCJpbmxpbmUiLCJmaWVsZHMiLCJ1bmRlZmluZWQiLCJwdXNoIiwiYWRkRmllbGRzIiwibmV3RW1iZWQiLCJsZW5ndGgiLCJFcnJvciIsInNldEN1cnJlbnRFbWJlZCIsInNldEF1dGhvciIsIm9wdGlvbnMiLCJhdXRob3IiLCJzZXRDb2xvciIsImNvbG9yIiwidG9Mb3dlckNhc2UiLCJzZXRSYW5kb21Db2xvciIsImNvbnZlcnRlZFZhbHVlIiwicGFyc2VJbnQiLCJyZXBsYWNlIiwiTnVtYmVyIiwiaXNOYU4iLCJpbmRleCIsInNldERlc2NyaXB0aW9uIiwiZGVzY3JpcHRpb24iLCJzZXRGaWVsZHMiLCJzZXRGb290ZXIiLCJ0ZXh0IiwiZm9vdGVyIiwic2V0SW1hZ2UiLCJ1cmwiLCJpbWFnZSIsInNldFByb3ZpZGVyIiwicHJvdmlkZXIiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJzZXRUaXRsZSIsInRpdGxlIiwic2V0VXJsIiwic2V0VGltZXN0YW1wIiwidGltZXN0YW1wIiwiRGF0ZSIsIm5vdyIsInRvSVNPU3RyaW5nIiwic2V0VGh1bWJuYWlsIiwidGh1bWJuYWlsIiwic2V0VmlkZW8iLCJ2aWRlbyIsInZhbGlkYXRlIiwidG90YWxDaGFyYWN0ZXJzIiwiZm9yRWFjaCIsInRyaW1tZWRUaXRsZSIsInRyaW0iLCJ0cmltbWVkRGVzY3JpcHRpb24iLCJmaWVsZEluZGV4IiwidHJpbW1lZE5hbWUiLCJ0cmltbWVkVmFsdWUiLCJ0cmltbWVkRm9vdGVyVGV4dCIsInRyaW1tZWRBdXRob3JOYW1lIl0sIm1hcHBpbmdzIjoiQUFVQTs7Ozs7Ozs7O0NBU0MsR0FDRCxPQUFPLE1BQU1BLHNCQUFzQkM7SUFDakMsQ0FBQSxpQkFBa0IsQ0FBWTtJQUU5Qjs7Ozs7OztHQU9DLEdBQ0RDLFNBQVNDLElBQVksRUFBRUMsS0FBYSxFQUFFQyxNQUFnQixFQUFRO1FBQzVELElBQUksSUFBSSxDQUFDLENBQUEsWUFBYSxDQUFDQyxNQUFNLEtBQUtDLFdBQVc7WUFDM0MsSUFBSSxDQUFDLENBQUEs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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,cAAc,sBAAsB,CAAA;AAEpC,eAAO,MAAM,YAAY,QAAO,aAAoC,CAAA"}
|
package/dist/builders.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { EmbedsBuilder } from './builders/embeds.js';
|
|
2
|
+
export * from './builders/embeds.js';
|
|
3
|
+
export const createEmbeds = ()=>new EmbedsBuilder();
|
|
4
|
+
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9idWlsZGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbWJlZHNCdWlsZGVyIH0gZnJvbSAnLi9idWlsZGVycy9lbWJlZHMuanMnXG5cbmV4cG9ydCAqIGZyb20gJy4vYnVpbGRlcnMvZW1iZWRzLmpzJ1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRW1iZWRzID0gKCk6IEVtYmVkc0J1aWxkZXIgPT4gbmV3IEVtYmVkc0J1aWxkZXIoKVxuIl0sIm5hbWVzIjpbIkVtYmVkc0J1aWxkZXIiLCJjcmVhdGVFbWJlZHMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsUUFBUSx1QkFBc0I7QUFFcEQsY0FBYyx1QkFBc0I7QUFFcEMsT0FBTyxNQUFNQyxlQUFlLElBQXFCLElBQUlELGdCQUFlIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"casing.d.ts","sourceRoot":"","sources":["../src/casing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE5D,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAclD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAcpD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAepD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAapD"}
|
package/dist/casing.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export function camelize(object) {
|
|
2
|
+
if (Array.isArray(object)) {
|
|
3
|
+
return object.map((element)=>camelize(element));
|
|
4
|
+
}
|
|
5
|
+
if (typeof object === 'object' && object !== null) {
|
|
6
|
+
const obj = {};
|
|
7
|
+
Object.keys(object).forEach((key)=>{
|
|
8
|
+
// @ts-expect-error js hack
|
|
9
|
+
;
|
|
10
|
+
obj[snakeToCamelCase(key)] = camelize(object[key]);
|
|
11
|
+
});
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
14
|
+
return object;
|
|
15
|
+
}
|
|
16
|
+
export function snakelize(object) {
|
|
17
|
+
if (Array.isArray(object)) {
|
|
18
|
+
return object.map((element)=>snakelize(element));
|
|
19
|
+
}
|
|
20
|
+
if (typeof object === 'object' && object !== null) {
|
|
21
|
+
const obj = {};
|
|
22
|
+
Object.keys(object).forEach((key)=>{
|
|
23
|
+
// @ts-expect-error js hack
|
|
24
|
+
;
|
|
25
|
+
obj[camelToSnakeCase(key)] = snakelize(object[key]);
|
|
26
|
+
});
|
|
27
|
+
return obj;
|
|
28
|
+
}
|
|
29
|
+
return object;
|
|
30
|
+
}
|
|
31
|
+
export function snakeToCamelCase(str) {
|
|
32
|
+
if (!str.includes('_')) return str;
|
|
33
|
+
let result = '';
|
|
34
|
+
for(let i = 0, len = str.length; i < len; ++i){
|
|
35
|
+
if (str[i] === '_') {
|
|
36
|
+
result += str[++i].toUpperCase();
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
result += str[i];
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
export function camelToSnakeCase(str) {
|
|
44
|
+
let result = '';
|
|
45
|
+
for(let i = 0, len = str.length; i < len; ++i){
|
|
46
|
+
if (str[i] >= 'A' && str[i] <= 'Z') {
|
|
47
|
+
result += `_${str[i].toLowerCase()}`;
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
result += str[i];
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYXNpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDYW1lbGl6ZSwgU25ha2VsaXplIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBjYW1lbGl6ZTxUPihvYmplY3Q6IFQpOiBDYW1lbGl6ZTxUPiB7XG4gIGlmIChBcnJheS5pc0FycmF5KG9iamVjdCkpIHtcbiAgICByZXR1cm4gb2JqZWN0Lm1hcCgoZWxlbWVudCkgPT4gY2FtZWxpemUoZWxlbWVudCkpIGFzIENhbWVsaXplPFQ+XG4gIH1cblxuICBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsKSB7XG4gICAgY29uc3Qgb2JqID0ge30gYXMgQ2FtZWxpemU8VD5cbiAgICA7KE9iamVjdC5rZXlzKG9iamVjdCkgYXMgQXJyYXk8a2V5b2YgVD4pLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBqcyBoYWNrXG4gICAgICA7KG9ialtzbmFrZVRvQ2FtZWxDYXNlKGtleSldIGFzIENhbWVsaXplPChUICYgb2JqZWN0KVtrZXlvZiBUXT4pID0gY2FtZWxpemUob2JqZWN0W2tleV0pXG4gICAgfSlcbiAgICByZXR1cm4gb2JqXG4gIH1cbiAgcmV0dXJuIG9iamVjdCBhcyBDYW1lbGl6ZTxUPlxufVxuXG5leHBvcnQgZnVuY3Rpb24gc25ha2VsaXplPFQ+KG9iamVjdDogVCk6IFNuYWtlbGl6ZTxUPiB7XG4gIGlmIChBcnJheS5pc0FycmF5KG9iamVjdCkpIHtcbiAgICByZXR1cm4gb2JqZWN0Lm1hcCgoZWxlbWVudCkgPT4gc25ha2VsaXplKGVsZW1lbnQpKSBhcyBTbmFrZWxpemU8VD5cbiAgfVxuXG4gIGlmICh0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwpIHtcbiAgICBjb25zdCBvYmogPSB7fSBhcyBTbmFrZWxpemU8VD5cbiAgICA7KE9iamVjdC5rZXlzKG9iamVjdCkgYXMgQXJyYXk8a2V5b2YgVD4pLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBqcyBoYWNrXG4gICAgICA7KG9ialtjYW1lbFRvU25ha2VDYXNlKGtleSldIGFzIFNuYWtlbGl6ZTwoVCAmIG9iamVjdClba2V5b2YgVF0+KSA9IHNuYWtlbGl6ZShvYmplY3Rba2V5XSlcbiAgICB9KVxuICAgIHJldHVybiBvYmpcbiAgfVxuICByZXR1cm4gb2JqZWN0IGFzIFNuYWtlbGl6ZTxUPlxufVxuXG5leHBvcnQgZnVuY3Rpb24gc25ha2VUb0NhbWVsQ2FzZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghc3RyLmluY2x1ZGVzKCdfJykpIHJldHVybiBzdHJcblxuICBsZXQgcmVzdWx0ID0gJydcbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHN0ci5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgIGlmIChzdHJbaV0gPT09ICdfJykge1xuICAgICAgcmVzdWx0ICs9IHN0clsrK2ldLnRvVXBwZXJDYXNlKClcblxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICByZXN1bHQgKz0gc3RyW2ldXG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYW1lbFRvU25ha2VDYXNlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHJlc3VsdCA9ICcnXG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBzdHIubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICBpZiAoc3RyW2ldID49ICdBJyAmJiBzdHJbaV0gPD0gJ1onKSB7XG4gICAgICByZXN1bHQgKz0gYF8ke3N0cltpXS50b0xvd2VyQ2FzZSgpfWBcblxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICByZXN1bHQgKz0gc3RyW2ldXG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG4iXSwibmFtZXMiOlsiY2FtZWxpemUiLCJvYmplY3QiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJlbGVtZW50Iiwib2JqIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJzbmFrZVRvQ2FtZWxDYXNlIiwic25ha2VsaXplIiwiY2FtZWxUb1NuYWtlQ2FzZSIsInN0ciIsImluY2x1ZGVzIiwicmVzdWx0IiwiaSIsImxlbiIsImxlbmd0aCIsInRvVXBwZXJDYXNlIiwidG9Mb3dlckNhc2UiXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sU0FBU0EsU0FBWUMsTUFBUztJQUNuQyxJQUFJQyxNQUFNQyxPQUFPLENBQUNGLFNBQVM7UUFDekIsT0FBT0EsT0FBT0csR0FBRyxDQUFDLENBQUNDLFVBQVlMLFNBQVNLO0lBQzFDO0lBRUEsSUFBSSxPQUFPSixXQUFXLFlBQVlBLFdBQVcsTUFBTTtRQUNqRCxNQUFNSyxNQUFNLENBQUM7UUFDWEMsT0FBT0MsSUFBSSxDQUFDUCxRQUEyQlEsT0FBTyxDQUFDLENBQUNDO1lBQ2hELDJCQUEyQjs7WUFDekJKLEdBQUcsQ0FBQ0ssaUJBQWlCRCxLQUFLLEdBQXVDVixTQUFTQyxNQUFNLENBQUNTLElBQUk7UUFDekY7UUFDQSxPQUFPSjtJQUNUO0lBQ0EsT0FBT0w7QUFDVDtBQUVBLE9BQU8sU0FBU1csVUFBYVgsTUFBUztJQUNwQyxJQUFJQyxNQUFNQyxPQUFPLENBQUNGLFNBQVM7UUFDekIsT0FBT0EsT0FBT0csR0FBRyxDQUFDLENBQUNDLFVBQVlPLFVBQVVQO0lBQzNDO0lBRUEsSUFBSSxPQUFPSixXQUFXLFlBQVlBLFdBQVcsTUFBTTtRQUNqRCxNQUFNSyxNQUFNLENBQUM7UUFDWEMsT0FBT0MsSUFBSSxDQUFDUCxRQUEyQlEsT0FBTyxDQUFDLENBQUNDO1lBQ2hELDJCQUEyQjs7WUFDekJKLEdBQUcsQ0FBQ08saUJBQWlCSCxLQUFLLEdBQXdDRSxVQUFVWCxNQUFNLENBQUNTLElBQUk7UUFDM0Y7UUFDQSxPQUFPSjtJQUNUO0lBQ0EsT0FBT0w7QUFDVDtBQUVBLE9BQU8sU0FBU1UsaUJBQWlCRyxHQUFXO0lBQzFDLElBQUksQ0FBQ0EsSUFBSUMsUUFBUSxDQUFDLE1BQU0sT0FBT0Q7SUFFL0IsSUFBSUUsU0FBUztJQUNiLElBQUssSUFBSUMsSUFBSSxHQUFHQyxNQUFNSixJQUFJSyxNQUFNLEVBQUVGLElBQUlDLEtBQUssRUFBRUQsRUFBRztRQUM5QyxJQUFJSCxHQUFHLENBQUNHLEVBQUUsS0FBSyxLQUFLO1lBQ2xCRCxVQUFVRixHQUFHLENBQUMsRUFBRUcsRUFBRSxDQUFDRyxXQUFXO1lBRTlCO1FBQ0Y7UUFFQUosVUFBVUYsR0FBRyxDQUFDRyxFQUFFO0lBQ2xCO0lBRUEsT0FBT0Q7QUFDVDtBQUVBLE9BQU8sU0FBU0gsaUJBQWlCQyxHQUFXO0lBQzFDLElBQUlFLFNBQVM7SUFDYixJQUFLLElBQUlDLElBQUksR0FBR0MsTUFBTUosSUFBSUssTUFBTSxFQUFFRixJQUFJQyxLQUFLLEVBQUVELEVBQUc7UUFDOUMsSUFBSUgsR0FBRyxDQUFDRyxFQUFFLElBQUksT0FBT0gsR0FBRyxDQUFDRyxFQUFFLElBQUksS0FBSztZQUNsQ0QsVUFBVSxDQUFDLENBQUMsRUFBRUYsR0FBRyxDQUFDRyxFQUFFLENBQUNJLFdBQVcsSUFBSTtZQUVwQztRQUNGO1FBRUFMLFVBQVVGLEdBQUcsQ0FBQ0csRUFBRTtJQUNsQjtJQUVBLE9BQU9EO0FBQ1QifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"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"}
|