@discordeno/utils 19.0.0-next.523ffe3 → 19.0.0-next.53d2bb6
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/README.md +6 -10
- package/dist/cjs/Collection.cjs +123 -0
- package/dist/cjs/base64.cjs +276 -0
- package/dist/cjs/bucket.cjs +95 -0
- package/dist/cjs/builders/embeds.cjs +292 -0
- package/dist/cjs/builders.cjs +27 -0
- package/dist/cjs/casing.cjs +75 -0
- package/dist/cjs/colors.cjs +456 -0
- package/dist/cjs/hash.cjs +37 -0
- package/dist/cjs/images.cjs +61 -0
- package/dist/cjs/index.cjs +35 -0
- package/dist/cjs/logger.cjs +157 -0
- package/dist/cjs/oauth2.cjs +26 -0
- package/dist/cjs/permissions.cjs +35 -0
- package/dist/cjs/reactions.cjs +21 -0
- package/dist/cjs/token.cjs +39 -0
- package/dist/cjs/typeguards.cjs +45 -0
- package/dist/cjs/urlToBase64.cjs +19 -0
- package/dist/cjs/utils.cjs +30 -0
- package/dist/esm/Collection.js +113 -0
- package/dist/esm/base64.js +262 -0
- package/dist/esm/bucket.js +80 -0
- package/dist/esm/builders/embeds.js +295 -0
- package/dist/esm/builders.js +5 -0
- package/dist/esm/casing.js +51 -0
- package/dist/esm/colors.js +467 -0
- package/dist/esm/hash.js +19 -0
- package/dist/esm/images.js +66 -0
- package/dist/esm/index.js +18 -0
- package/dist/esm/logger.js +130 -0
- package/dist/esm/oauth2.js +16 -0
- package/dist/esm/permissions.js +17 -0
- package/dist/esm/reactions.js +11 -0
- package/dist/esm/token.js +21 -0
- package/dist/esm/typeguards.js +18 -0
- package/dist/esm/urlToBase64.js +9 -0
- package/dist/esm/utils.js +15 -0
- package/dist/{Collection.d.ts → types/Collection.d.ts} +2 -2
- package/dist/types/Collection.d.ts.map +1 -0
- package/dist/types/base64.d.ts.map +1 -0
- package/dist/types/bucket.d.ts +43 -0
- package/dist/types/bucket.d.ts.map +1 -0
- package/dist/types/builders/embeds.d.ts +146 -0
- package/dist/types/builders/embeds.d.ts.map +1 -0
- package/dist/types/builders.d.ts +4 -0
- package/dist/types/builders.d.ts.map +1 -0
- package/dist/types/casing.d.ts +6 -0
- package/dist/types/casing.d.ts.map +1 -0
- package/dist/types/colors.d.ts +275 -0
- package/dist/types/colors.d.ts.map +1 -0
- package/dist/types/hash.d.ts.map +1 -0
- package/dist/types/images.d.ts +68 -0
- package/dist/types/images.d.ts.map +1 -0
- package/dist/{index.d.ts → types/index.d.ts} +7 -1
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/logger.d.ts +36 -0
- package/dist/types/logger.d.ts.map +1 -0
- package/dist/types/oauth2.d.ts +58 -0
- package/dist/types/oauth2.d.ts.map +1 -0
- package/dist/types/permissions.d.ts.map +1 -0
- package/dist/types/reactions.d.ts +3 -0
- package/dist/types/reactions.d.ts.map +1 -0
- package/dist/{token.d.ts → types/token.d.ts} +1 -1
- package/dist/types/token.d.ts.map +1 -0
- package/dist/types/typeguards.d.ts +7 -0
- package/dist/types/typeguards.d.ts.map +1 -0
- package/dist/types/urlToBase64.d.ts.map +1 -0
- package/dist/types/utils.d.ts +5 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/package.json +24 -18
- package/dist/Collection.d.ts.map +0 -1
- package/dist/Collection.js +0 -2
- package/dist/base64.d.ts.map +0 -1
- package/dist/base64.js +0 -2
- package/dist/bucket.d.ts +0 -49
- package/dist/bucket.d.ts.map +0 -1
- package/dist/bucket.js +0 -2
- package/dist/casing.d.ts +0 -4
- package/dist/casing.d.ts.map +0 -1
- package/dist/casing.js +0 -2
- package/dist/hash.d.ts.map +0 -1
- package/dist/hash.js +0 -2
- package/dist/images.d.ts +0 -23
- package/dist/images.d.ts.map +0 -1
- package/dist/images.js +0 -2
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -2
- package/dist/permissions.d.ts.map +0 -1
- package/dist/permissions.js +0 -2
- package/dist/token.d.ts.map +0 -1
- package/dist/token.js +0 -2
- package/dist/urlToBase64.d.ts.map +0 -1
- package/dist/urlToBase64.js +0 -2
- package/dist/utils.d.ts +0 -6
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -2
- /package/dist/{base64.d.ts → types/base64.d.ts} +0 -0
- /package/dist/{hash.d.ts → types/hash.d.ts} +0 -0
- /package/dist/{permissions.d.ts → types/permissions.d.ts} +0 -0
- /package/dist/{urlToBase64.d.ts → types/urlToBase64.d.ts} +0 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-confusing-void-expression */ /* eslint-disable @typescript-eslint/explicit-function-return-type */ import { bgBrightMagenta, black, bold, cyan, gray, italic, red, yellow } from './colors.js';
|
|
2
|
+
export var LogLevels;
|
|
3
|
+
(function(LogLevels) {
|
|
4
|
+
LogLevels[LogLevels["Debug"] = 0] = "Debug";
|
|
5
|
+
LogLevels[LogLevels["Info"] = 1] = "Info";
|
|
6
|
+
LogLevels[LogLevels["Warn"] = 2] = "Warn";
|
|
7
|
+
LogLevels[LogLevels["Error"] = 3] = "Error";
|
|
8
|
+
LogLevels[LogLevels["Fatal"] = 4] = "Fatal";
|
|
9
|
+
})(LogLevels || (LogLevels = {}));
|
|
10
|
+
export var LogDepth;
|
|
11
|
+
(function(LogDepth) {
|
|
12
|
+
LogDepth[LogDepth["Minimal"] = 0] = "Minimal";
|
|
13
|
+
LogDepth[LogDepth["Full"] = 1] = "Full";
|
|
14
|
+
})(LogDepth || (LogDepth = {}));
|
|
15
|
+
const prefixes = new Map([
|
|
16
|
+
[
|
|
17
|
+
0,
|
|
18
|
+
'DEBUG'
|
|
19
|
+
],
|
|
20
|
+
[
|
|
21
|
+
1,
|
|
22
|
+
'INFO'
|
|
23
|
+
],
|
|
24
|
+
[
|
|
25
|
+
2,
|
|
26
|
+
'WARN'
|
|
27
|
+
],
|
|
28
|
+
[
|
|
29
|
+
3,
|
|
30
|
+
'ERROR'
|
|
31
|
+
],
|
|
32
|
+
[
|
|
33
|
+
4,
|
|
34
|
+
'FATAL'
|
|
35
|
+
]
|
|
36
|
+
]);
|
|
37
|
+
const noColor = (msg)=>msg;
|
|
38
|
+
const colorFunctions = new Map([
|
|
39
|
+
[
|
|
40
|
+
0,
|
|
41
|
+
gray
|
|
42
|
+
],
|
|
43
|
+
[
|
|
44
|
+
1,
|
|
45
|
+
cyan
|
|
46
|
+
],
|
|
47
|
+
[
|
|
48
|
+
2,
|
|
49
|
+
yellow
|
|
50
|
+
],
|
|
51
|
+
[
|
|
52
|
+
3,
|
|
53
|
+
(str)=>red(str)
|
|
54
|
+
],
|
|
55
|
+
[
|
|
56
|
+
4,
|
|
57
|
+
(str)=>red(bold(italic(str)))
|
|
58
|
+
]
|
|
59
|
+
]);
|
|
60
|
+
export function createLogger({ logLevel = 1, name } = {}) {
|
|
61
|
+
let depth = 0;
|
|
62
|
+
function log(level, ...args) {
|
|
63
|
+
if (level < logLevel) return;
|
|
64
|
+
let color = colorFunctions.get(level);
|
|
65
|
+
if (!color) color = noColor;
|
|
66
|
+
const date = new Date();
|
|
67
|
+
const log1 = [
|
|
68
|
+
bgBrightMagenta(black(`[${date.toLocaleDateString()} ${date.toLocaleTimeString()}]`)),
|
|
69
|
+
color(prefixes.get(level) ?? 'DEBUG'),
|
|
70
|
+
name ? `${name} >` : '>',
|
|
71
|
+
...args
|
|
72
|
+
];
|
|
73
|
+
switch(level){
|
|
74
|
+
case 0:
|
|
75
|
+
return console.debug(...log1);
|
|
76
|
+
case 1:
|
|
77
|
+
return console.info(...log1);
|
|
78
|
+
case 2:
|
|
79
|
+
return console.warn(...log1);
|
|
80
|
+
case 3:
|
|
81
|
+
return console.error(...log1);
|
|
82
|
+
case 4:
|
|
83
|
+
return console.error(...log1);
|
|
84
|
+
default:
|
|
85
|
+
return console.log(...log1);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function setLevel(level) {
|
|
89
|
+
logLevel = level;
|
|
90
|
+
}
|
|
91
|
+
function setDepth(level) {
|
|
92
|
+
depth = level;
|
|
93
|
+
}
|
|
94
|
+
function debug(...args) {
|
|
95
|
+
if (0 === depth) log(0, args[0]);
|
|
96
|
+
else log(0, ...args);
|
|
97
|
+
}
|
|
98
|
+
function info(...args) {
|
|
99
|
+
if (0 === depth) log(1, args[0]);
|
|
100
|
+
else log(1, ...args);
|
|
101
|
+
}
|
|
102
|
+
function warn(...args) {
|
|
103
|
+
if (0 === depth) log(2, args[0]);
|
|
104
|
+
else log(2, ...args);
|
|
105
|
+
}
|
|
106
|
+
function error(...args) {
|
|
107
|
+
if (0 === depth) log(3, args[0]);
|
|
108
|
+
else log(3, ...args);
|
|
109
|
+
}
|
|
110
|
+
function fatal(...args) {
|
|
111
|
+
if (0 === depth) log(4, args[0]);
|
|
112
|
+
else log(4, ...args);
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
log,
|
|
116
|
+
setDepth,
|
|
117
|
+
setLevel,
|
|
118
|
+
debug,
|
|
119
|
+
info,
|
|
120
|
+
warn,
|
|
121
|
+
error,
|
|
122
|
+
fatal
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
export const logger = createLogger({
|
|
126
|
+
name: 'Discordeno'
|
|
127
|
+
});
|
|
128
|
+
export default logger;
|
|
129
|
+
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWNvbmZ1c2luZy12b2lkLWV4cHJlc3Npb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1mdW5jdGlvbi1yZXR1cm4tdHlwZSAqL1xuaW1wb3J0IHsgYmdCcmlnaHRNYWdlbnRhLCBibGFjaywgYm9sZCwgY3lhbiwgZ3JheSwgaXRhbGljLCByZWQsIHllbGxvdyB9IGZyb20gJy4vY29sb3JzLmpzJ1xuXG5leHBvcnQgZW51bSBMb2dMZXZlbHMge1xuICBEZWJ1ZyxcbiAgSW5mbyxcbiAgV2FybixcbiAgRXJyb3IsXG4gIEZhdGFsLFxufVxuXG5leHBvcnQgZW51bSBMb2dEZXB0aCB7XG4gIE1pbmltYWwsXG4gIEZ1bGwsXG59XG5cbmNvbnN0IHByZWZpeGVzID0gbmV3IE1hcDxMb2dMZXZlbHMsIHN0cmluZz4oW1xuICBbTG9nTGV2ZWxzLkRlYnVnLCAnREVCVUcnXSxcbiAgW0xvZ0xldmVscy5JbmZvLCAnSU5GTyddLFxuICBbTG9nTGV2ZWxzLldhcm4sICdXQVJOJ10sXG4gIFtMb2dMZXZlbHMuRXJyb3IsICdFUlJPUiddLFxuICBbTG9nTGV2ZWxzLkZhdGFsLCAnRkFUQUwnXSxcbl0pXG5cbmNvbnN0IG5vQ29sb3I6IChzdHI6IHN0cmluZykgPT4gc3RyaW5nID0gKG1zZykgPT4gbXNnXG5jb25zdCBjb2xvckZ1bmN0aW9ucyA9IG5ldyBNYXA8TG9nTGV2ZWxzLCAoc3RyOiBzdHJpbmcpID0+IHN0cmluZz4oW1xuICBbTG9nTGV2ZWxzLkRlYnVnLCBncmF5XSxcbiAgW0xvZ0xldmVscy5JbmZvLCBjeWFuXSxcbiAgW0xvZ0xldmVscy5XYXJuLCB5ZWxsb3ddLFxuICBbTG9nTGV2ZWxzLkVycm9yLCAoc3RyOiBzdHJpbmcpID0+IHJlZChzdHIpXSxcbiAgW0xvZ0xldmVscy5GYXRhbCwgKHN0cjogc3RyaW5nKSA9PiByZWQoYm9sZChpdGFsaWMoc3RyKSkpXSxcbl0pXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2dnZXIoe1xuICBsb2dMZXZlbCA9IExvZ0xldmVscy5JbmZvLFxuICBuYW1lLFxufToge1xuICBsb2dMZXZlbD86IExvZ0xldmVsc1xuICBuYW1lPzogc3RyaW5nXG59ID0ge30pIHtcbiAgbGV0IGRlcHRoID0gTG9nRGVwdGguTWluaW1hbFxuXG4gIGZ1bmN0aW9uIGxvZyhsZXZlbDogTG9nTGV2ZWxzLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGlmIChsZXZlbCA8IGxvZ0xldmVsKSByZXR1cm5cblxuICAgIGxldCBjb2xvciA9IGNvbG9yRnVuY3Rpb25zLmdldChsZXZlbClcbiAgICBpZiAoIWNvbG9yKSBjb2xvciA9IG5vQ29sb3JcblxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpXG4gICAgY29uc3QgbG9nID0gW1xuICAgICAgYmdCcmlnaHRNYWdlbnRhKGJsYWNrKGBbJHtkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpfSAke2RhdGUudG9Mb2NhbGVUaW1lU3RyaW5nKCl9XWApKSxcbiAgICAgIGNvbG9yKHByZWZpeGVzLmdldChsZXZlbCkgPz8gJ0RFQlVHJyksXG4gICAgICBuYW1lID8gYCR7bmFtZX0gPmAgOiAnPicsXG4gICAgICAuLi5hcmdzLFxuICAgIF1cblxuICAgIHN3aXRjaCAobGV2ZWwpIHtcbiAgICAgIGNhc2UgTG9nTGV2ZWxzLkRlYnVnOlxuICAgICAgICByZXR1cm4gY29uc29sZS5kZWJ1ZyguLi5sb2cpXG4gICAgICBjYXNlIExvZ0xldmVscy5JbmZvOlxuICAgICAgICByZXR1cm4gY29uc29sZS5pbmZvKC4uLmxvZylcbiAgICAgIGNhc2UgTG9nTGV2ZWxzLldhcm46XG4gICAgICAgIHJldHVybiBjb25zb2xlLndhcm4oLi4ubG9nKVxuICAgICAgY2FzZSBMb2dMZXZlbHMuRXJyb3I6XG4gICAgICAgIHJldHVybiBjb25zb2xlLmVycm9yKC4uLmxvZylcbiAgICAgIGNhc2UgTG9nTGV2ZWxzLkZhdGFsOlxuICAgICAgICByZXR1cm4gY29uc29sZS5lcnJvciguLi5sb2cpXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gY29uc29sZS5sb2coLi4ubG9nKVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHNldExldmVsKGxldmVsOiBMb2dMZXZlbHMpIHtcbiAgICBsb2dMZXZlbCA9IGxldmVsXG4gIH1cblxuICBmdW5jdGlvbiBzZXREZXB0aChsZXZlbDogTG9nRGVwdGgpIHtcbiAgICBkZXB0aCA9IGxldmVsXG4gIH1cblxuICBmdW5jdGlvbiBkZWJ1ZyguLi5hcmdzOiBhbnlbXSkge1xuICAgIGlmIChMb2dEZXB0aC5NaW5pbWFsID09PSBkZXB0aCkgbG9nKExvZ0xldmVscy5EZWJ1ZywgYXJnc1swXSlcbiAgICBlbHNlIGxvZyhMb2dMZXZlbHMuRGVidWcsIC4uLmFyZ3MpXG4gIH1cblxuICBmdW5jdGlvbiBpbmZvKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgaWYgKExvZ0RlcHRoLk1pbmltYWwgPT09IGRlcHRoKSBsb2coTG9nTGV2ZWxzLkluZm8sIGFyZ3NbMF0pXG4gICAgZWxzZSBsb2coTG9nTGV2ZWxzLkluZm8sIC4uLmFyZ3MpXG4gIH1cblxuICBmdW5jdGlvbiB3YXJuKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgaWYgKExvZ0RlcHRoLk1pbmltYWwgPT09IGRlcHRoKSBsb2coTG9nTGV2ZWxzLldhcm4sIGFyZ3NbMF0pXG4gICAgZWxzZSBsb2coTG9nTGV2ZWxzLldhcm4sIC4uLmFyZ3MpXG4gIH1cblxuICBmdW5jdGlvbiBlcnJvciguLi5hcmdzOiBhbnlbXSkge1xuICAgIGlmIChMb2dEZXB0aC5NaW5pbWFsID09PSBkZXB0aCkgbG9nKExvZ0xldmVscy5FcnJvciwgYXJnc1swXSlcbiAgICBlbHNlIGxvZyhMb2dMZXZlbHMuRXJyb3IsIC4uLmFyZ3MpXG4gIH1cblxuICBmdW5jdGlvbiBmYXRhbCguLi5hcmdzOiBhbnlbXSkge1xuICAgIGlmIChMb2dEZXB0aC5NaW5pbWFsID09PSBkZXB0aCkgbG9nKExvZ0xldmVscy5GYXRhbCwgYXJnc1swXSlcbiAgICBlbHNlIGxvZyhMb2dMZXZlbHMuRmF0YWwsIC4uLmFyZ3MpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGxvZyxcbiAgICBzZXREZXB0aCxcbiAgICBzZXRMZXZlbCxcbiAgICBkZWJ1ZyxcbiAgICBpbmZvLFxuICAgIHdhcm4sXG4gICAgZXJyb3IsXG4gICAgZmF0YWwsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGxvZ2dlciA9IGNyZWF0ZUxvZ2dlcih7IG5hbWU6ICdEaXNjb3JkZW5vJyB9KVxuZXhwb3J0IGRlZmF1bHQgbG9nZ2VyXG4iXSwibmFtZXMiOlsiYmdCcmlnaHRNYWdlbnRhIiwiYmxhY2siLCJib2xkIiwiY3lhbiIsImdyYXkiLCJpdGFsaWMiLCJyZWQiLCJ5ZWxsb3ciLCJMb2dMZXZlbHMiLCJMb2dEZXB0aCIsInByZWZpeGVzIiwiTWFwIiwibm9Db2xvciIsIm1zZyIsImNvbG9yRnVuY3Rpb25zIiwic3RyIiwiY3JlYXRlTG9nZ2VyIiwibG9nTGV2ZWwiLCJuYW1lIiwiZGVwdGgiLCJsb2ciLCJsZXZlbCIsImFyZ3MiLCJjb2xvciIsImdldCIsImRhdGUiLCJEYXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwiY29uc29sZSIsImRlYnVnIiwiaW5mbyIsIndhcm4iLCJlcnJvciIsInNldExldmVsIiwic2V0RGVwdGgiLCJmYXRhbCIsImxvZ2dlciJdLCJtYXBwaW5ncyI6IkFBQUEsa0VBQWtFLEdBQ2xFLG1FQUFtRSxHQUNuRSxTQUFTQSxlQUFlLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsTUFBTSxFQUFFQyxHQUFHLEVBQUVDLE1BQU0sUUFBUSxjQUFhOztVQUUvRUM7Ozs7OztHQUFBQSxjQUFBQTs7VUFRQUM7OztHQUFBQSxhQUFBQTtB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
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { calculateBits } from './permissions.js';
|
|
2
|
+
export function createOAuth2Link(options) {
|
|
3
|
+
const joinedScopeString = options.scope.join(' ');
|
|
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
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
12
|
+
if (options.disableGuildSelect !== undefined) url += `&disable_guild_select=${options.disableGuildSelect}`;
|
|
13
|
+
return url;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vYXV0aDIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCaWdTdHJpbmcsIE9BdXRoMlNjb3BlLCBQZXJtaXNzaW9uU3RyaW5ncyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgY2FsY3VsYXRlQml0cyB9IGZyb20gJy4vcGVybWlzc2lvbnMuanMnXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVPQXV0aDJMaW5rKG9wdGlvbnM6IENyZWF0ZU9BdXRoMkxpbmtPcHRpb25zKTogc3RyaW5nIHtcbiAgY29uc3Qgam9pbmVkU2NvcGVTdHJpbmcgPSBvcHRpb25zLnNjb3BlLmpvaW4oJyAnKVxuXG4gIGxldCB1cmwgPSBgaHR0cHM6Ly9kaXNjb3JkLmNvbS9vYXV0aDIvYXV0aG9yaXplP2NsaWVudF9pZD0ke29wdGlvbnMuY2xpZW50SWR9JnNjb3BlPSR7am9pbmVkU2NvcGVTdHJpbmd9YFxuXG4gIGlmIChvcHRpb25zLnJlc3BvbnNlVHlwZSkgdXJsICs9IGAmcmVzcG9uc2VfdHlwZT0ke29wdGlvbnMucmVzcG9uc2VUeXBlfWBcbiAgaWYgKG9wdGlvbnMuc3RhdGUpIHVybCArPSBgJnN0YXRlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KG9wdGlvbnMuc3RhdGUpfWBcbiAgaWYgKG9wdGlvbnMucmVkaXJlY3RVcmkpIHVybCArPSBgJnJlZGlyZWN0X3VyaT0ke2VuY29kZVVSSUNvbXBvbmVudChvcHRpb25zLnJlZGlyZWN0VXJpKX1gXG4gIGlmIChvcHRpb25zLnByb21wdCkgdXJsICs9IGAmcHJvbXB0PSR7b3B0aW9ucy5wcm9tcHR9YFxuICBpZiAob3B0aW9ucy5wZXJtaXNzaW9ucykgdXJsICs9IGAmcGVybWlzc2lvbnM9JHtBcnJheS5pc0FycmF5KG9wdGlvbnMucGVybWlzc2lvbnMpID8gY2FsY3VsYXRlQml0cyhvcHRpb25zLnBlcm1pc3Npb25zKSA6IG9wdGlvbnMucGVybWlzc2lvbnN9YFxuICBpZiAob3B0aW9ucy5ndWlsZElkKSB1cmwgKz0gYCZndWlsZF9pZD0ke29wdGlvbnMuZ3VpbGRJZH1gXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcmVzdHJpY3QtdGVtcGxhdGUtZXhwcmVzc2lvbnNcbiAgaWYgKG9wdGlvbnMuZGlzYWJsZUd1aWxkU2VsZWN0ICE9PSB1bmRlZmluZWQpIHVybCArPSBgJmRpc2FibGVfZ3VpbGRfc2VsZWN0PSR7b3B0aW9ucy5kaXNhYmxlR3VpbGRTZWxlY3R9YFxuXG4gIHJldHVybiB1cmxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVPQXV0aDJMaW5rT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiByZXNwb25zZVxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IGlmIHVzaW5nIGVpdGhlciBPQXV0aDIgYXV0aG9yaXphdGlvbiwgaW1wbGljaXQgb3Igbm90LCBvciBbYWR2YW5jZWQgYm90IGF1dGhvcml6YXRpb25dKGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3RvcGljcy9vYXV0aDIjYWR2YW5jZWQtYm90LWF1dGhvcml6YXRpb24pXG4gICAqL1xuICByZXNwb25zZVR5cGU/OiAnY29kZScgfCAndG9rZW4nXG4gIC8qKiBUaGUgaWQgb2YgdGhlIGFwcGxpY2F0aW9uICovXG4gIGNsaWVudElkOiBCaWdTdHJpbmdcbiAgLyoqIFRoZSBzY29wZXMgZm9yIHRoZSBhcHBsaWNhdGlvbiAqL1xuICBzY29wZTogT0F1dGgyU2NvcGVbXVxuICAvKipcbiAgICogVGhlIG9wdGlvbmFsIHN0YXRlIGZvciBzZWN1cml0eVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3RvcGljcy9vYXV0aDIjc3RhdGUtYW5kLXNlY3VyaXR5XG4gICAqL1xuICBzdGF0ZT86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIHJlZGlyZWN0IHVyaSBmb3IgYWZ0ZXIgdGhlIGF1dGhlbnRpY2F0aW9uXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFNob3VsZCBiZSBkZWZpbmVkIG9ubHkgaWYgdXNpbmcgZWl0aGVyIE9BdXRoMiBhdXRob3JpemF0aW9uLCBpbXBsaWNpdCBvciBub3QsIG9yIFthZHZhbmNlZCBib3QgYXV0aG9yaXphdGlvbl0oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNhZHZhbmNlZC1ib3QtYXV0aG9yaXphdGlvbilcbiAgICovXG4gIHJlZGlyZWN0VXJpPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBwcm9tcHQgdG8gZ2l2ZSB0byB0aGUgdXNlclxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBJZiBzZXQgdG8gYG5vbmVgLCBpdCB3aWxsIHNraXAgdGhlIGF1dGhvcml6YXRpb24gc2NyZWVuIGFuZCByZWRpcmVjdCB0aGVtIGJhY2sgdG8geW91ciByZWRpcmVjdCBVUkkgd2l0aG91dCByZXF1ZXN0aW5nIHRoZWlyIGF1dGhvcml6YXRpb24uXG4gICAqIEZvciBwYXNzdGhyb3VnaCBzY29wZXMsIGxpa2UgYm90IGFuZCB3ZWJob29rLmluY29taW5nLCBhdXRob3JpemF0aW9uIGlzIGFsd2F5cyByZXF1aXJlZC5cbiAgICovXG4gIHByb21wdD86ICdjb25zZW50JyB8ICdub25lJ1xuICAvKipcbiAgICogVGhlIHBlcm1pc3Npb25zIG9mIHRoZSBpbnZpdGVkIGJvdFxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IGluIGEgW2JvdCBhdXRob3JpemF0aW9uIGZsb3ddKGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3RvcGljcy9vYXV0aDIjYm90LWF1dGhvcml6YXRpb24tZmxvdykgb3Igd2l0aCBbYWR2YW5jZWQgYm90IGF1dGhvcml6YXRpb25dKGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3RvcGljcy9vYXV0aDIjYWR2YW5jZWQtYm90LWF1dGhvcml6YXRpb24pXG4gICAqL1xuICBwZXJtaXNzaW9ucz86IEJpZ1N0cmluZyB8IFBlcm1pc3Npb25TdHJpbmdzW11cbiAgLyoqXG4gICAqIFByZS1maWxscyB0aGUgZHJvcGRvd24gcGlja2VyIHdpdGggYSBndWlsZCBmb3IgdGhlIHVzZXJcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpbiBhIFtib3QgYXV0aG9yaXphdGlvbiBmbG93XShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2JvdC1hdXRob3JpemF0aW9uLWZsb3cpIG9yIHdpdGggW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKSBvciB3aXRoIHRoZSBgd2ViaG9vay5pbmNvbWluZ2Agc2NvcGVcbiAgICovXG4gIGd1aWxkSWQ/OiBCaWdTdHJpbmdcbiAgLyoqXG4gICAqIERpc2FsbG93cyB0aGUgdXNlciBmcm9tIGNoYW5naW5nIHRoZSBndWlsZCBkcm9wZG93biBpZiBzZXQgdG8gdHJ1ZVxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IGluIGEgW2JvdCBhdXRob3JpemF0aW9uIGZsb3ddKGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3RvcGljcy9vYXV0aDIjYm90LWF1dGhvcml6YXRpb24tZmxvdyksIHdpdGggW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKSBvciB3aXRoIHRoZSBgd2ViaG9vay5pbmNvbWluZ2Agc2NvcGVcbiAgICovXG4gIGRpc2FibGVHdWlsZFNlbGVjdD86IGJvb2xlYW5cbn1cbiJdLCJuYW1lcyI6WyJjYWxjdWxhdGVCaXRzIiwiY3JlYXRlT0F1dGgyTGluayIsIm9wdGlvbnMiLCJqb2luZWRTY29wZVN0cmluZyIsInNjb3BlIiwiam9pbiIsInVybCIsImNsaWVudElkIiwicmVzcG9uc2VUeXBlIiwic3RhdGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZWRpcmVjdFVyaSIsInByb21wdCIsInBlcm1pc3Npb25zIiwiQXJyYXkiLCJpc0FycmF5IiwiZ3VpbGRJZCIsImRpc2FibGVHdWlsZFNlbGVjdCIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsYUFBYSxRQUFRLG1CQUFrQjtBQUVoRCxPQUFPLFNBQVNDLGlCQUFpQkMsT0FBZ0M7SUFDL0QsTUFBTUMsb0JBQW9CRCxRQUFRRSxLQUFLLENBQUNDLElBQUksQ0FBQztJQUU3QyxJQUFJQyxNQUFNLENBQUMsK0NBQStDLEVBQUVKLFFBQVFLLFFBQVEsQ0FBQyxPQUFPLEVBQUVKLGtCQUFrQixDQUFDO0lBRXpHLElBQUlELFFBQVFNLFlBQVksRUFBRUYsT0FBTyxDQUFDLGVBQWUsRUFBRUosUUFBUU0sWUFBWSxDQUFDLENBQUM7SUFDekUsSUFBSU4sUUFBUU8sS0FBSyxFQUFFSCxPQUFPLENBQUMsT0FBTyxFQUFFSSxtQkFBbUJSLFFBQVFPLEtBQUssRUFBRSxDQUFDO0lBQ3ZFLElBQUlQLFFBQVFTLFdBQVcsRUFBRUwsT0FBTyxDQUFDLGNBQWMsRUFBRUksbUJBQW1CUixRQUFRUyxXQUFXLEVBQUUsQ0FBQztJQUMxRixJQUFJVCxRQUFRVSxNQUFNLEVBQUVOLE9BQU8sQ0FBQyxRQUFRLEVBQUVKLFFBQVFVLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELElBQUlWLFFBQVFXLFdBQVcsRUFBRVAsT0FBTyxDQUFDLGFBQWEsRUFBRVEsTUFBTUMsT0FBTyxDQUFDYixRQUFRVyxXQUFXLElBQUliLGNBQWNFLFFBQVFXLFdBQVcsSUFBSVgsUUFBUVcsV0FBVyxDQUFDLENBQUM7SUFDL0ksSUFBSVgsUUFBUWMsT0FBTyxFQUFFVixPQUFPLENBQUMsVUFBVSxFQUFFSixRQUFRYyxPQUFPLENBQUMsQ0FBQztJQUMxRCw0RUFBNEU7SUFDNUUsSUFBSWQsUUFBUWUsa0JBQWtCLEtBQUtDLFdBQVdaLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRUosUUFBUWUsa0JBQWtCLENBQUMsQ0FBQztJQUUxRyxPQUFPWDtBQUNUIn0=
|
|
@@ -0,0 +1,17 @@
|
|
|
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 & BigInt(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 |= BigInt(BitwisePermissionFlags[perm]);
|
|
13
|
+
return bits;
|
|
14
|
+
}, 0n).toString();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wZXJtaXNzaW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBlcm1pc3Npb25TdHJpbmdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBCaXR3aXNlUGVybWlzc2lvbkZsYWdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5cbi8qKiBUaGlzIGZ1bmN0aW9uIGNvbnZlcnRzIGEgYml0d2lzZSBzdHJpbmcgdG8gcGVybWlzc2lvbiBzdHJpbmdzICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlUGVybWlzc2lvbnMocGVybWlzc2lvbkJpdHM6IGJpZ2ludCk6IFBlcm1pc3Npb25TdHJpbmdzW10ge1xuICByZXR1cm4gT2JqZWN0LmtleXMoQml0d2lzZVBlcm1pc3Npb25GbGFncykuZmlsdGVyKChwZXJtaXNzaW9uKSA9PiB7XG4gICAgLy8gU2luY2UgT2JqZWN0LmtleXMoKSBub3Qgb25seSByZXR1cm5zIHRoZSBwZXJtaXNzaW9uIG5hbWVzIGJ1dCBhbHNvIHRoZSBiaXQgdmFsdWVzIHdlIG5lZWQgdG8gcmV0dXJuIGZhbHNlIGlmIGl0IGlzIGEgTnVtYmVyXG4gICAgaWYgKE51bWJlcihwZXJtaXNzaW9uKSkgcmV0dXJuIGZhbHNlXG4gICAgLy8gQ2hlY2sgaWYgcGVybWlzc2lvbkJpdHMgaGFzIHRoaXMgcGVybWlzc2lvblxuICAgIHJldHVybiBwZXJtaXNzaW9uQml0cyAmIEJpZ0ludChCaXR3aXNlUGVybWlzc2lvbkZsYWdzW3Blcm1pc3Npb24gYXMgUGVybWlzc2lvblN0cmluZ3NdKVxuICB9KSBhcyBQZXJtaXNzaW9uU3RyaW5nc1tdXG59XG5cbi8qKiBUaGlzIGZ1bmN0aW9uIGNvbnZlcnRzIGFuIGFycmF5IG9mIHBlcm1pc3Npb25zIGludG8gdGhlIGJpdHdpc2Ugc3RyaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUJpdHMocGVybWlzc2lvbnM6IFBlcm1pc3Npb25TdHJpbmdzW10pOiBzdHJpbmcge1xuICByZXR1cm4gcGVybWlzc2lvbnNcbiAgICAucmVkdWNlKChiaXRzLCBwZXJtKSA9PiB7XG4gICAgICBiaXRzIHw9IEJpZ0ludChCaXR3aXNlUGVybWlzc2lvbkZsYWdzW3Blcm1dKVxuICAgICAgcmV0dXJuIGJpdHNcbiAgICB9LCAwbilcbiAgICAudG9TdHJpbmcoKVxufVxuIl0sIm5hbWVzIjpbIkJpdHdpc2VQZXJtaXNzaW9uRmxhZ3MiLCJjYWxjdWxhdGVQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25CaXRzIiwiT2JqZWN0Iiwia2V5cyIsImZpbHRlciIsInBlcm1pc3Npb24iLCJOdW1iZXIiLCJCaWdJbnQiLCJjYWxjdWxhdGVCaXRzIiwicGVybWlzc2lvbnMiLCJyZWR1Y2UiLCJiaXRzIiwicGVybSIsInRvU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxzQkFBc0IsUUFBUSxvQkFBbUI7QUFFMUQsa0VBQWtFLEdBQ2xFLE9BQU8sU0FBU0MscUJBQXFCQyxjQUFzQjtJQUN6RCxPQUFPQyxPQUFPQyxJQUFJLENBQUNKLHdCQUF3QkssTUFBTSxDQUFDLENBQUNDO1FBQ2pELDhIQUE4SDtRQUM5SCxJQUFJQyxPQUFPRCxhQUFhLE9BQU87UUFDL0IsOENBQThDO1FBQzlDLE9BQU9KLGlCQUFpQk0sT0FBT1Isc0JBQXNCLENBQUNNLFdBQWdDO0lBQ3hGO0FBQ0Y7QUFFQSw0RUFBNEUsR0FDNUUsT0FBTyxTQUFTRyxjQUFjQyxXQUFnQztJQUM1RCxPQUFPQSxZQUNKQyxNQUFNLENBQUMsQ0FBQ0MsTUFBTUM7UUFDYkQsUUFBUUosT0FBT1Isc0JBQXNCLENBQUNhLEtBQUs7UUFDM0MsT0FBT0Q7SUFDVCxHQUFHLEVBQUUsRUFDSkUsUUFBUTtBQUNiIn0=
|
|
@@ -0,0 +1,11 @@
|
|
|
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=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Buffer } from 'node:buffer';
|
|
2
|
+
const validTokenPrefixes = [
|
|
3
|
+
'Bot',
|
|
4
|
+
'Bearer'
|
|
5
|
+
];
|
|
6
|
+
/** Removes the Bot/Bearer before the token. */ export function removeTokenPrefix(token, type = 'REST') {
|
|
7
|
+
// If no token is provided, throw an error
|
|
8
|
+
if (token === undefined) {
|
|
9
|
+
throw new Error(`The ${type} was not given a token. Please provide a token and try again.`);
|
|
10
|
+
}
|
|
11
|
+
const splittedToken = token.split(' ');
|
|
12
|
+
// If the token does not have a prefix just return token
|
|
13
|
+
if (splittedToken.length < 2 || !validTokenPrefixes.includes(splittedToken[0])) return token;
|
|
14
|
+
// Remove the prefix and return only the token.
|
|
15
|
+
return splittedToken.splice(1).join(' ');
|
|
16
|
+
}
|
|
17
|
+
/** 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) {
|
|
18
|
+
return BigInt(Buffer.from(token.split('.')[0], 'base64').toString());
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdub2RlOmJ1ZmZlcidcblxuY29uc3QgdmFsaWRUb2tlblByZWZpeGVzID0gWydCb3QnLCAnQmVhcmVyJ11cblxuLyoqIFJlbW92ZXMgdGhlIEJvdC9CZWFyZXIgYmVmb3JlIHRoZSB0b2tlbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVUb2tlblByZWZpeCh0b2tlbj86IHN0cmluZywgdHlwZTogJ0dBVEVXQVknIHwgJ1JFU1QnID0gJ1JFU1QnKTogc3RyaW5nIHtcbiAgLy8gSWYgbm8gdG9rZW4gaXMgcHJvdmlkZWQsIHRocm93IGFuIGVycm9yXG4gIGlmICh0b2tlbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgJHt0eXBlfSB3YXMgbm90IGdpdmVuIGEgdG9rZW4uIFBsZWFzZSBwcm92aWRlIGEgdG9rZW4gYW5kIHRyeSBhZ2Fpbi5gKVxuICB9XG5cbiAgY29uc3Qgc3BsaXR0ZWRUb2tlbiA9IHRva2VuLnNwbGl0KCcgJylcblxuICAvLyBJZiB0aGUgdG9rZW4gZG9lcyBub3QgaGF2ZSBhIHByZWZpeCBqdXN0IHJldHVybiB0b2tlblxuICBpZiAoc3BsaXR0ZWRUb2tlbi5sZW5ndGggPCAyIHx8ICF2YWxpZFRva2VuUHJlZml4ZXMuaW5jbHVkZXMoc3BsaXR0ZWRUb2tlblswXSkpIHJldHVybiB0b2tlblxuICAvLyBSZW1vdmUgdGhlIHByZWZpeCBhbmQgcmV0dXJuIG9ubHkgdGhlIHRva2VuLlxuICByZXR1cm4gc3BsaXR0ZWRUb2tlbi5zcGxpY2UoMSkuam9pbignICcpXG59XG5cbi8qKiBHZXQgdGhlIGJvdCBpZCBmcm9tIHRoZSBib3QgdG9rZW4uIFdBUk5JTkc6IERpc2NvcmQgc3RhZmYgaGFzIG1lbnRpb25lZCB0aGlzIG1heSBub3QgYmUgc3RhYmxlIGZvcmV2ZXIuIFVzZSBhdCB5b3VyIG93biByaXNrLiBIb3dldmVyLCBub3RlIGZvciBvdmVyIDUgeWVhcnMgdGhpcyBoYXMgbmV2ZXIgYnJva2VuLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJvdElkRnJvbVRva2VuKHRva2VuOiBzdHJpbmcpOiBiaWdpbnQge1xuICByZXR1cm4gQmlnSW50KEJ1ZmZlci5mcm9tKHRva2VuLnNwbGl0KCcuJylbMF0sICdiYXNlNjQnKS50b1N0cmluZygpKVxufVxuIl0sIm5hbWVzIjpbIkJ1ZmZlciIsInZhbGlkVG9rZW5QcmVmaXhlcyIsInJlbW92ZVRva2VuUHJlZml4IiwidG9rZW4iLCJ0eXBlIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJzcGxpdHRlZFRva2VuIiwic3BsaXQiLCJsZW5ndGgiLCJpbmNsdWRlcyIsInNwbGljZSIsImpvaW4iLCJnZXRCb3RJZEZyb21Ub2tlbiIsIkJpZ0ludCIsImZyb20iLCJ0b1N0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsTUFBTSxRQUFRLGNBQWE7QUFFcEMsTUFBTUMscUJBQXFCO0lBQUM7SUFBTztDQUFTO0FBRTVDLDZDQUE2QyxHQUM3QyxPQUFPLFNBQVNDLGtCQUFrQkMsS0FBYyxFQUFFQyxPQUEyQixNQUFNO0lBQ2pGLDBDQUEwQztJQUMxQyxJQUFJRCxVQUFVRSxXQUFXO1FBQ3ZCLE1BQU0sSUFBSUMsTUFBTSxDQUFDLElBQUksRUFBRUYsS0FBSyw2REFBNkQsQ0FBQztJQUM1RjtJQUVBLE1BQU1HLGdCQUFnQkosTUFBTUssS0FBSyxDQUFDO0lBRWxDLHdEQUF3RDtJQUN4RCxJQUFJRCxjQUFjRSxNQUFNLEdBQUcsS0FBSyxDQUFDUixtQkFBbUJTLFFBQVEsQ0FBQ0gsYUFBYSxDQUFDLEVBQUUsR0FBRyxPQUFPSjtJQUN2RiwrQ0FBK0M7SUFDL0MsT0FBT0ksY0FBY0ksTUFBTSxDQUFDLEdBQUdDLElBQUksQ0FBQztBQUN0QztBQUVBLHdMQUF3TCxHQUN4TCxPQUFPLFNBQVNDLGtCQUFrQlYsS0FBYTtJQUM3QyxPQUFPVyxPQUFPZCxPQUFPZSxJQUFJLENBQUNaLE1BQU1LLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFVBQVVRLFFBQVE7QUFDbkUifQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { hasProperty } from './utils.js';
|
|
2
|
+
export function isGetMessagesAfter(options) {
|
|
3
|
+
return hasProperty(options, 'after');
|
|
4
|
+
}
|
|
5
|
+
export function isGetMessagesBefore(options) {
|
|
6
|
+
return hasProperty(options, 'before');
|
|
7
|
+
}
|
|
8
|
+
export function isGetMessagesAround(options) {
|
|
9
|
+
return hasProperty(options, 'around');
|
|
10
|
+
}
|
|
11
|
+
export function isGetMessagesLimit(options) {
|
|
12
|
+
return hasProperty(options, 'limit');
|
|
13
|
+
}
|
|
14
|
+
export function isInviteWithMetadata(options) {
|
|
15
|
+
return !hasProperty(options, 'channel_id');
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlZ3VhcmRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRGlzY29yZEludml0ZUNyZWF0ZSxcbiAgRGlzY29yZEludml0ZU1ldGFkYXRhLFxuICBHZXRNZXNzYWdlc0FmdGVyLFxuICBHZXRNZXNzYWdlc0Fyb3VuZCxcbiAgR2V0TWVzc2FnZXNCZWZvcmUsXG4gIEdldE1lc3NhZ2VzTGltaXQsXG4gIEdldE1lc3NhZ2VzT3B0aW9ucyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBoYXNQcm9wZXJ0eSB9IGZyb20gJy4vdXRpbHMuanMnXG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dldE1lc3NhZ2VzQWZ0ZXIob3B0aW9uczogR2V0TWVzc2FnZXNPcHRpb25zKTogb3B0aW9ucyBpcyBHZXRNZXNzYWdlc0FmdGVyIHtcbiAgcmV0dXJuIGhhc1Byb3BlcnR5KG9wdGlvbnMsICdhZnRlcicpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dldE1lc3NhZ2VzQmVmb3JlKG9wdGlvbnM6IEdldE1lc3NhZ2VzT3B0aW9ucyk6IG9wdGlvbnMgaXMgR2V0TWVzc2FnZXNCZWZvcmUge1xuICByZXR1cm4gaGFzUHJvcGVydHkob3B0aW9ucywgJ2JlZm9yZScpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dldE1lc3NhZ2VzQXJvdW5kKG9wdGlvbnM6IEdldE1lc3NhZ2VzT3B0aW9ucyk6IG9wdGlvbnMgaXMgR2V0TWVzc2FnZXNBcm91bmQge1xuICByZXR1cm4gaGFzUHJvcGVydHkob3B0aW9ucywgJ2Fyb3VuZCcpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dldE1lc3NhZ2VzTGltaXQob3B0aW9uczogR2V0TWVzc2FnZXNPcHRpb25zKTogb3B0aW9ucyBpcyBHZXRNZXNzYWdlc0xpbWl0IHtcbiAgcmV0dXJuIGhhc1Byb3BlcnR5KG9wdGlvbnMsICdsaW1pdCcpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ludml0ZVdpdGhNZXRhZGF0YShvcHRpb25zOiBEaXNjb3JkSW52aXRlQ3JlYXRlIHwgRGlzY29yZEludml0ZU1ldGFkYXRhKTogb3B0aW9ucyBpcyBEaXNjb3JkSW52aXRlTWV0YWRhdGEge1xuICByZXR1cm4gIWhhc1Byb3BlcnR5KG9wdGlvbnMsICdjaGFubmVsX2lkJylcbn1cbiJdLCJuYW1lcyI6WyJoYXNQcm9wZXJ0eSIsImlzR2V0TWVzc2FnZXNBZnRlciIsIm9wdGlvbnMiLCJpc0dldE1lc3NhZ2VzQmVmb3JlIiwiaXNHZXRNZXNzYWdlc0Fyb3VuZCIsImlzR2V0TWVzc2FnZXNMaW1pdCIsImlzSW52aXRlV2l0aE1ldGFkYXRhIl0sIm1hcHBpbmdzIjoiQUFTQSxTQUFTQSxXQUFXLFFBQVEsYUFBWTtBQUV4QyxPQUFPLFNBQVNDLG1CQUFtQkMsT0FBMkI7SUFDNUQsT0FBT0YsWUFBWUUsU0FBUztBQUM5QjtBQUVBLE9BQU8sU0FBU0Msb0JBQW9CRCxPQUEyQjtJQUM3RCxPQUFPRixZQUFZRSxTQUFTO0FBQzlCO0FBRUEsT0FBTyxTQUFTRSxvQkFBb0JGLE9BQTJCO0lBQzdELE9BQU9GLFlBQVlFLFNBQVM7QUFDOUI7QUFFQSxPQUFPLFNBQVNHLG1CQUFtQkgsT0FBMkI7SUFDNUQsT0FBT0YsWUFBWUUsU0FBUztBQUM5QjtBQUVBLE9BQU8sU0FBU0kscUJBQXFCSixPQUFvRDtJQUN2RixPQUFPLENBQUNGLFlBQVlFLFNBQVM7QUFDL0IifQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cmxUb0Jhc2U2NC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbmNvZGUgfSBmcm9tICcuL2Jhc2U2NC5qcydcblxuLyoqIENvbnZlcnRzIGEgdXJsIHRvIGJhc2UgNjQuIFVzZWZ1bCBmb3IgZXhhbXBsZSwgdXBsb2FkaW5nL2NyZWF0aW5nIHNlcnZlciBlbW9qaXMuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXJsVG9CYXNlNjQodXJsOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBidWZmZXIgPSBhd2FpdCBmZXRjaCh1cmwpLnRoZW4oYXN5bmMgKHJlcykgPT4gYXdhaXQgcmVzLmFycmF5QnVmZmVyKCkpXG4gIGNvbnN0IGltYWdlU3RyID0gZW5jb2RlKGJ1ZmZlcilcbiAgY29uc3QgdHlwZSA9IHVybC5zdWJzdHJpbmcodXJsLmxhc3RJbmRleE9mKCcuJykgKyAxKVxuICByZXR1cm4gYGRhdGE6aW1hZ2UvJHt0eXBlfTtiYXNlNjQsJHtpbWFnZVN0cn1gXG59XG4iXSwibmFtZXMiOlsiZW5jb2RlIiwidXJsVG9CYXNlNjQiLCJ1cmwiLCJidWZmZXIiLCJmZXRjaCIsInRoZW4iLCJyZXMiLCJhcnJheUJ1ZmZlciIsImltYWdlU3RyIiwidHlwZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxNQUFNLFFBQVEsY0FBYTtBQUVwQyxxRkFBcUYsR0FDckYsT0FBTyxlQUFlQyxZQUFZQyxHQUFXO0lBQzNDLE1BQU1DLFNBQVMsTUFBTUMsTUFBTUYsS0FBS0csSUFBSSxDQUFDLE9BQU9DLE1BQVEsTUFBTUEsSUFBSUMsV0FBVztJQUN6RSxNQUFNQyxXQUFXUixPQUFPRztJQUN4QixNQUFNTSxPQUFPUCxJQUFJUSxTQUFTLENBQUNSLElBQUlTLFdBQVcsQ0FBQyxPQUFPO0lBQ2xELE9BQU8sQ0FBQyxXQUFXLEVBQUVGLEtBQUssUUFBUSxFQUFFRCxTQUFTLENBQUM7QUFDaEQifQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Pause the execution for a given amount of milliseconds. */ export async function delay(ms) {
|
|
2
|
+
// eslint-disable-next-line @typescript-eslint/return-await
|
|
3
|
+
return new Promise((resolve)=>setTimeout(()=>{
|
|
4
|
+
resolve();
|
|
5
|
+
}, ms));
|
|
6
|
+
}
|
|
7
|
+
// Typescript is not so good as we developers so we need this little utility function to help it out
|
|
8
|
+
// Taken from https://fettblog.eu/typescript-hasownproperty/
|
|
9
|
+
/** TS save way to check if a property exists in an object */ // eslint-disable-next-line @typescript-eslint/ban-types
|
|
10
|
+
export function hasProperty(obj, prop) {
|
|
11
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
12
|
+
return obj.hasOwnProperty(prop);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUGF1c2UgdGhlIGV4ZWN1dGlvbiBmb3IgYSBnaXZlbiBhbW91bnQgb2YgbWlsbGlzZWNvbmRzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGF5KG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9yZXR1cm4tYXdhaXRcbiAgcmV0dXJuIG5ldyBQcm9taXNlKFxuICAgIChyZXNvbHZlKTogTm9kZUpTLlRpbWVvdXQgPT5cbiAgICAgIHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuICAgICAgICByZXNvbHZlKClcbiAgICAgIH0sIG1zKSxcbiAgKVxufVxuXG4vLyBUeXBlc2NyaXB0IGlzIG5vdCBzbyBnb29kIGFzIHdlIGRldmVsb3BlcnMgc28gd2UgbmVlZCB0aGlzIGxpdHRsZSB1dGlsaXR5IGZ1bmN0aW9uIHRvIGhlbHAgaXQgb3V0XG4vLyBUYWtlbiBmcm9tIGh0dHBzOi8vZmV0dGJsb2cuZXUvdHlwZXNjcmlwdC1oYXNvd25wcm9wZXJ0eS9cbi8qKiBUUyBzYXZlIHdheSB0byBjaGVjayBpZiBhIHByb3BlcnR5IGV4aXN0cyBpbiBhbiBvYmplY3QgKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG5leHBvcnQgZnVuY3Rpb24gaGFzUHJvcGVydHk8VCBleHRlbmRzIHt9LCBZIGV4dGVuZHMgUHJvcGVydHlLZXkgPSBzdHJpbmc+KG9iajogVCwgcHJvcDogWSk6IG9iaiBpcyBUICYgUmVjb3JkPFksIHVua25vd24+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xuICByZXR1cm4gb2JqLmhhc093blByb3BlcnR5KHByb3ApXG59XG4iXSwibmFtZXMiOlsiZGVsYXkiLCJtcyIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsImhhc1Byb3BlcnR5Iiwib2JqIiwicHJvcCIsImhhc093blByb3BlcnR5Il0sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQsR0FDNUQsT0FBTyxlQUFlQSxNQUFNQyxFQUFVO0lBQ3BDLDJEQUEyRDtJQUMzRCxPQUFPLElBQUlDLFFBQ1QsQ0FBQ0MsVUFDQ0MsV0FBVztZQUNURDtRQUNGLEdBQUdGO0FBRVQ7QUFFQSxvR0FBb0c7QUFDcEcsNERBQTREO0FBQzVELDJEQUEyRCxHQUMzRCx3REFBd0Q7QUFDeEQsT0FBTyxTQUFTSSxZQUEwREMsR0FBTSxFQUFFQyxJQUFPO0lBQ3ZGLGlEQUFpRDtJQUNqRCxPQUFPRCxJQUFJRSxjQUFjLENBQUNEO0FBQzVCIn0=
|
|
@@ -9,10 +9,10 @@ export declare class Collection<K, V> extends Map<K, V> {
|
|
|
9
9
|
maxSize: number | undefined;
|
|
10
10
|
/** Handler to remove items from the collection every so often. */
|
|
11
11
|
sweeper: (CollectionSweeper<K, V> & {
|
|
12
|
-
intervalId?: NodeJS.
|
|
12
|
+
intervalId?: NodeJS.Timeout;
|
|
13
13
|
}) | undefined;
|
|
14
14
|
constructor(entries?: (ReadonlyArray<readonly [K, V]> | null) | Map<K, V>, options?: CollectionOptions<K, V>);
|
|
15
|
-
startSweeper(options: CollectionSweeper<K, V>): NodeJS.
|
|
15
|
+
startSweeper(options: CollectionSweeper<K, V>): NodeJS.Timeout;
|
|
16
16
|
stopSweeper(): void;
|
|
17
17
|
changeSweeperInterval(newInterval: number): void;
|
|
18
18
|
changeSweeperFilter(newFilter: (value: V, key: K, bot: PlaceHolderBot) => boolean): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../src/Collection.ts"],"names":[],"mappings":";AACA,MAAM,WAAW,cAAc;CAAG;AAElC,qBAAa,UAAU,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7C;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,kEAAkE;IAClE,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;KAAE,CAAC,GAAG,SAAS,CAAA;gBAEpE,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAU5G,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO;IAgB9D,WAAW,IAAI,IAAI;IAInB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAMhD,mBAAmB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,GAAG,IAAI;IAMxF,6EAA6E;IAC7E,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAS3B,oEAAoE;IACpE,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAIhC,0CAA0C;IAC1C,KAAK,IAAI,CAAC,EAAE;IAIZ,kEAAkE;IAClE,KAAK,IAAI,CAAC,GAAG,SAAS;IAItB,iEAAiE;IACjE,IAAI,IAAI,CAAC,GAAG,SAAS;IAIrB,iEAAiE;IACjE,MAAM,IAAI,CAAC,GAAG,SAAS;IAKvB,kDAAkD;IAClD,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS;IAQzE,yEAAyE;IACzE,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;IASjE,kGAAkG;IAClG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IAS9C,uEAAuE;IACvE,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO;IAStD,uEAAuE;IACvE,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO;IASvD,wFAAwF;IACxF,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC;CAUlF;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC;IACrC,uEAAuE;IACvE,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC;IACrC,0EAA0E;IAC1E,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAA;IACrD,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAA;IAChB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,cAAc,CAAA;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export declare class LeakyBucket implements LeakyBucketOptions {
|
|
3
|
+
max: number;
|
|
4
|
+
refillInterval: number;
|
|
5
|
+
refillAmount: number;
|
|
6
|
+
/** The amount of requests that have been used up already. */
|
|
7
|
+
used: number;
|
|
8
|
+
/** The queue of requests to acquire an available request. Mapped by <shardId, resolve()> */
|
|
9
|
+
queue: Array<(value: void | PromiseLike<void>) => void>;
|
|
10
|
+
/** Whether or not the queue is already processing. */
|
|
11
|
+
processing: boolean;
|
|
12
|
+
/** The timeout id for the timer to reduce the used amount by the refill amount. */
|
|
13
|
+
timeoutId?: NodeJS.Timeout;
|
|
14
|
+
/** The timestamp in milliseconds when the next refill is scheduled. */
|
|
15
|
+
refillsAt?: number;
|
|
16
|
+
constructor(options?: LeakyBucketOptions);
|
|
17
|
+
/** The amount of requests that still remain. */
|
|
18
|
+
get remaining(): number;
|
|
19
|
+
/** Refills the bucket as needed. */
|
|
20
|
+
refillBucket(): void;
|
|
21
|
+
/** Begin processing the queue. */
|
|
22
|
+
processQueue(): Promise<void>;
|
|
23
|
+
/** Pauses the execution until the request is available to be made. */
|
|
24
|
+
acquire(highPriority?: boolean): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
export interface LeakyBucketOptions {
|
|
27
|
+
/**
|
|
28
|
+
* Max requests allowed at once.
|
|
29
|
+
* @default 1
|
|
30
|
+
*/
|
|
31
|
+
max?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Interval in milliseconds between refills.
|
|
34
|
+
* @default 5000
|
|
35
|
+
*/
|
|
36
|
+
refillInterval?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Amount of requests to refill at each interval.
|
|
39
|
+
* @default 1
|
|
40
|
+
*/
|
|
41
|
+
refillAmount?: number;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=bucket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket.d.ts","sourceRoot":"","sources":["../../src/bucket.ts"],"names":[],"mappings":";AAGA,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;gBAEN,OAAO,CAAC,EAAE,kBAAkB;IAMxC,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;CACtB"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import type { DiscordEmbed, DiscordEmbedAuthor, DiscordEmbedField, DiscordEmbedFooter, DiscordEmbedImage, DiscordEmbedThumbnail, DiscordEmbedVideo } from '@discordeno/types';
|
|
2
|
+
/**
|
|
3
|
+
* A builder to help create Discord embeds.
|
|
4
|
+
*
|
|
5
|
+
* @export
|
|
6
|
+
* @class EmbedsBuilder
|
|
7
|
+
* @typedef {EmbedsBuilder}
|
|
8
|
+
* @extends {Array<DiscordEmbed>}
|
|
9
|
+
* @example
|
|
10
|
+
* const embeds = new EmbedBuilder()
|
|
11
|
+
* .setTitle('My Embed')
|
|
12
|
+
* .setDescription('This is my new embed')
|
|
13
|
+
* .newEmbed()
|
|
14
|
+
* .setTitle('My Second Embed')
|
|
15
|
+
*/
|
|
16
|
+
export declare class EmbedsBuilder extends Array<DiscordEmbed> {
|
|
17
|
+
#private;
|
|
18
|
+
/**
|
|
19
|
+
* Adds a new field to the embed fields array.
|
|
20
|
+
*
|
|
21
|
+
* @param {string} name - Field name
|
|
22
|
+
* @param {string} value - Field value
|
|
23
|
+
* @param {?boolean} [inline=false] - Field should be inline or not.
|
|
24
|
+
* @returns {EmbedsBuilder}
|
|
25
|
+
*/
|
|
26
|
+
addField(name: string, value: string, inline?: boolean): EmbedsBuilder;
|
|
27
|
+
/**
|
|
28
|
+
* Creates a blank embed.
|
|
29
|
+
*
|
|
30
|
+
* @returns {EmbedsBuilder}
|
|
31
|
+
*/
|
|
32
|
+
newEmbed(): EmbedsBuilder;
|
|
33
|
+
/**
|
|
34
|
+
* Set the current embed author.
|
|
35
|
+
*
|
|
36
|
+
* @param {string} name - Name of the author
|
|
37
|
+
* @param {?Omit<DiscordEmbedAuthor, 'name'>} [options] - Extra author options
|
|
38
|
+
* @returns {EmbedsBuilder}
|
|
39
|
+
*/
|
|
40
|
+
setAuthor(name: string, options?: Omit<DiscordEmbedAuthor, 'name'>): EmbedsBuilder;
|
|
41
|
+
/**
|
|
42
|
+
* Set the color on the side of the current embed.
|
|
43
|
+
*
|
|
44
|
+
* @param {(number | string)} color - The color, in base16 or hex color code
|
|
45
|
+
* @returns {EmbedsBuilder}
|
|
46
|
+
*/
|
|
47
|
+
setColor(color: number | string): EmbedsBuilder;
|
|
48
|
+
/**
|
|
49
|
+
* Set the current embed to a different index.
|
|
50
|
+
*
|
|
51
|
+
* 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.
|
|
52
|
+
*
|
|
53
|
+
* @param {?number} [index] - The index of the embed in the EmbedsBuilder array
|
|
54
|
+
* @returns {EmbedsBuilder}
|
|
55
|
+
*/
|
|
56
|
+
setCurrentEmbed(index?: number): EmbedsBuilder;
|
|
57
|
+
/**
|
|
58
|
+
* Set the description of the current embed.
|
|
59
|
+
*
|
|
60
|
+
* @param {string} description - Description
|
|
61
|
+
* @returns {EmbedsBuilder}
|
|
62
|
+
*/
|
|
63
|
+
setDescription(description: string): EmbedsBuilder;
|
|
64
|
+
/**
|
|
65
|
+
* Overwrite all fields on the current embed.
|
|
66
|
+
*
|
|
67
|
+
* @param {DiscordEmbedField[]} fields
|
|
68
|
+
* @returns {EmbedsBuilder}
|
|
69
|
+
*/
|
|
70
|
+
setFields(fields: DiscordEmbedField[]): EmbedsBuilder;
|
|
71
|
+
/**
|
|
72
|
+
* Set the footer in the current embed.
|
|
73
|
+
*
|
|
74
|
+
* @param {string} text - The text to display in the footer
|
|
75
|
+
* @param {?Omit<DiscordEmbedFooter, 'text'>} [options]
|
|
76
|
+
* @returns {EmbedsBuilder}
|
|
77
|
+
*/
|
|
78
|
+
setFooter(text: string, options?: Omit<DiscordEmbedFooter, 'text'>): EmbedsBuilder;
|
|
79
|
+
/**
|
|
80
|
+
* Set the image in the current embed.
|
|
81
|
+
*
|
|
82
|
+
* @param {string} url - URL of the image
|
|
83
|
+
* @param {?Omit<DiscordEmbedImage, 'url'>} [options]
|
|
84
|
+
* @returns {EmbedsBuilder}
|
|
85
|
+
*/
|
|
86
|
+
setImage(url: string, options?: Omit<DiscordEmbedImage, 'url'>): EmbedsBuilder;
|
|
87
|
+
/**
|
|
88
|
+
* Set the provider of the current embed.
|
|
89
|
+
*
|
|
90
|
+
* @param {string} name
|
|
91
|
+
* @param {?string} [url]
|
|
92
|
+
* @returns {EmbedsBuilder}
|
|
93
|
+
*/
|
|
94
|
+
setProvider(name: string, url?: string): EmbedsBuilder;
|
|
95
|
+
/**
|
|
96
|
+
* Set the color of the current embed to a random value.
|
|
97
|
+
*
|
|
98
|
+
* @returns {EmbedsBuilder}
|
|
99
|
+
*/
|
|
100
|
+
setRandomColor(): EmbedsBuilder;
|
|
101
|
+
/**
|
|
102
|
+
* Set the title of the current embed.
|
|
103
|
+
*
|
|
104
|
+
* @param {string} title
|
|
105
|
+
* @param {?string} [url]
|
|
106
|
+
* @returns {EmbedsBuilder}
|
|
107
|
+
*/
|
|
108
|
+
setTitle(title: string, url?: string): EmbedsBuilder;
|
|
109
|
+
/**
|
|
110
|
+
* Set the timestamp of the current embed.
|
|
111
|
+
*
|
|
112
|
+
* @param {?(string | number | Date)} [timestamp]
|
|
113
|
+
* @returns {EmbedsBuilder}
|
|
114
|
+
*/
|
|
115
|
+
setTimestamp(timestamp?: string | number | Date): EmbedsBuilder;
|
|
116
|
+
/**
|
|
117
|
+
* Set the thumbnail of the current embed.
|
|
118
|
+
*
|
|
119
|
+
* @param {string} url - URL of the image
|
|
120
|
+
* @param {?Omit<DiscordEmbedThumbnail, 'url'>} [options]
|
|
121
|
+
* @returns {EmbedsBuilder}
|
|
122
|
+
*/
|
|
123
|
+
setThumbnail(url: string, options?: Omit<DiscordEmbedThumbnail, 'url'>): EmbedsBuilder;
|
|
124
|
+
/**
|
|
125
|
+
* Set the URL of the current embed title.
|
|
126
|
+
*
|
|
127
|
+
* @param {string} url
|
|
128
|
+
* @returns {EmbedsBuilder}
|
|
129
|
+
*/
|
|
130
|
+
setUrl(url: string): EmbedsBuilder;
|
|
131
|
+
/**
|
|
132
|
+
* Set the video of the current embed.
|
|
133
|
+
*
|
|
134
|
+
* @param {string} url
|
|
135
|
+
* @param {?Omit<DiscordEmbedVideo, 'url'>} [options]
|
|
136
|
+
* @returns {EmbedsBuilder}
|
|
137
|
+
*/
|
|
138
|
+
setVideo(url: string, options?: Omit<DiscordEmbedVideo, 'url'>): EmbedsBuilder;
|
|
139
|
+
/**
|
|
140
|
+
* Validate all embeds available against current known Discord limits to help prevent bad requests.
|
|
141
|
+
*
|
|
142
|
+
* @returns {EmbedsBuilder}
|
|
143
|
+
*/
|
|
144
|
+
validate(): EmbedsBuilder;
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=embeds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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;;;;;;;;;;;;;GAaG;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,aAAa;IActE;;;;OAIG;IACH,QAAQ,IAAI,aAAa;IAWzB;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,aAAa;IAUlF;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa;IAW/C;;;;;;;OAOG;IACH,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa;IAgB9C;;;;;OAKG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa;IAMlD;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,aAAa;IAMrD;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,aAAa;IAUlF;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAAG,aAAa;IAU9E;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,aAAa;IAStD;;;;OAIG;IACH,cAAc,IAAI,aAAa;IAI/B;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,aAAa;IAUpD;;;;;OAKG;IACH,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,aAAa;IAM/D;;;;;;OAMG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,GAAG,aAAa;IAUtF;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAMlC;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAAG,aAAa;IAU9E;;;;OAIG;IACH,QAAQ,IAAI,aAAa;CA4F1B"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Camelize, Snakelize } from '@discordeno/types';
|
|
2
|
+
export declare function camelize<T>(object: T): Camelize<T>;
|
|
3
|
+
export declare function snakelize<T>(object: T): Snakelize<T>;
|
|
4
|
+
export declare function snakeToCamelCase(str: string): string;
|
|
5
|
+
export declare function camelToSnakeCase(str: string): string;
|
|
6
|
+
//# sourceMappingURL=casing.d.ts.map
|
|
@@ -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"}
|