@discordeno/utils 21.0.1-next.fca0b40 → 22.0.1-next.011f0fe
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} +7 -1
- package/dist/base64.d.ts.map +1 -0
- package/dist/base64.js +339 -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/{types/images.d.ts → images.d.ts} +40 -64
- package/dist/images.d.ts.map +1 -0
- package/dist/images.js +226 -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/{types/oauth2.d.ts → oauth2.d.ts} +38 -0
- package/dist/oauth2.d.ts.map +1 -0
- package/dist/oauth2.js +48 -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 +16 -23
- 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/index.d.ts → index.d.ts} +0 -0
- /package/dist/{types/logger.d.ts → logger.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
package/dist/logger.js
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2dnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmdCcmlnaHRNYWdlbnRhLCBibGFjaywgYm9sZCwgY3lhbiwgZ3JheSwgaXRhbGljLCByZWQsIHllbGxvdyB9IGZyb20gJy4vY29sb3JzLmpzJ1xuXG5leHBvcnQgZW51bSBMb2dMZXZlbHMge1xuICBEZWJ1ZyxcbiAgSW5mbyxcbiAgV2FybixcbiAgRXJyb3IsXG4gIEZhdGFsLFxufVxuXG5jb25zdCBwcmVmaXhlcyA9IG5ldyBNYXA8TG9nTGV2ZWxzLCBzdHJpbmc+KFtcbiAgW0xvZ0xldmVscy5EZWJ1ZywgJ0RFQlVHJ10sXG4gIFtMb2dMZXZlbHMuSW5mbywgJ0lORk8nXSxcbiAgW0xvZ0xldmVscy5XYXJuLCAnV0FSTiddLFxuICBbTG9nTGV2ZWxzLkVycm9yLCAnRVJST1InXSxcbiAgW0xvZ0xldmVscy5GYXRhbCwgJ0ZBVEFMJ10sXG5dKVxuXG5jb25zdCBub0NvbG9yOiAoc3RyOiBzdHJpbmcpID0+IHN0cmluZyA9IChtc2cpID0+IG1zZ1xuY29uc3QgY29sb3JGdW5jdGlvbnMgPSBuZXcgTWFwPExvZ0xldmVscywgKHN0cjogc3RyaW5nKSA9PiBzdHJpbmc+KFtcbiAgW0xvZ0xldmVscy5EZWJ1ZywgZ3JheV0sXG4gIFtMb2dMZXZlbHMuSW5mbywgY3lhbl0sXG4gIFtMb2dMZXZlbHMuV2FybiwgeWVsbG93XSxcbiAgW0xvZ0xldmVscy5FcnJvciwgKHN0cjogc3RyaW5nKSA9PiByZWQoc3RyKV0sXG4gIFtMb2dMZXZlbHMuRmF0YWwsIChzdHI6IHN0cmluZykgPT4gcmVkKGJvbGQoaXRhbGljKHN0cikpKV0sXG5dKVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTG9nZ2VyKHsgbG9nTGV2ZWwgPSBMb2dMZXZlbHMuSW5mbywgbmFtZSB9OiB7IGxvZ0xldmVsPzogTG9nTGV2ZWxzOyBuYW1lPzogc3RyaW5nIH0gPSB7fSkge1xuICBmdW5jdGlvbiBsb2cobGV2ZWw6IExvZ0xldmVscywgLi4uYXJnczogYW55W10pIHtcbiAgICBpZiAobGV2ZWwgPCBsb2dMZXZlbCkgcmV0dXJuXG5cbiAgICBsZXQgY29sb3IgPSBjb2xvckZ1bmN0aW9ucy5nZXQobGV2ZWwpXG4gICAgaWYgKCFjb2xvcikgY29sb3IgPSBub0NvbG9yXG5cbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKVxuICAgIGNvbnN0IGxvZyA9IFtcbiAgICAgIGJnQnJpZ2h0TWFnZW50YShibGFjayhgWyR7ZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKX0gJHtkYXRlLnRvTG9jYWxlVGltZVN0cmluZygpfV1gKSksXG4gICAgICBjb2xvcihwcmVmaXhlcy5nZXQobGV2ZWwpID8/ICdERUJVRycpLFxuICAgICAgbmFtZSA/IGAke25hbWV9ID5gIDogJz4nLFxuICAgICAgLi4uYXJncyxcbiAgICBdXG5cbiAgICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgICBjYXNlIExvZ0xldmVscy5EZWJ1ZzpcbiAgICAgICAgcmV0dXJuIGNvbnNvbGUuZGVidWcoLi4ubG9nKVxuICAgICAgY2FzZSBMb2dMZXZlbHMuSW5mbzpcbiAgICAgICAgcmV0dXJuIGNvbnNvbGUuaW5mbyguLi5sb2cpXG4gICAgICBjYXNlIExvZ0xldmVscy5XYXJuOlxuICAgICAgICByZXR1cm4gY29uc29sZS53YXJuKC4uLmxvZylcbiAgICAgIGNhc2UgTG9nTGV2ZWxzLkVycm9yOlxuICAgICAgICByZXR1cm4gY29uc29sZS5lcnJvciguLi5sb2cpXG4gICAgICBjYXNlIExvZ0xldmVscy5GYXRhbDpcbiAgICAgICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoLi4ubG9nKVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGNvbnNvbGUubG9nKC4uLmxvZylcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzZXRMZXZlbChsZXZlbDogTG9nTGV2ZWxzKSB7XG4gICAgbG9nTGV2ZWwgPSBsZXZlbFxuICB9XG5cbiAgZnVuY3Rpb24gZGVidWcoLi4uYXJnczogYW55W10pIHtcbiAgICBsb2coTG9nTGV2ZWxzLkRlYnVnLCAuLi5hcmdzKVxuICB9XG5cbiAgZnVuY3Rpb24gaW5mbyguLi5hcmdzOiBhbnlbXSkge1xuICAgIGxvZyhMb2dMZXZlbHMuSW5mbywgLi4uYXJncylcbiAgfVxuXG4gIGZ1bmN0aW9uIHdhcm4oLi4uYXJnczogYW55W10pIHtcbiAgICBsb2coTG9nTGV2ZWxzLldhcm4sIC4uLmFyZ3MpXG4gIH1cblxuICBmdW5jdGlvbiBlcnJvciguLi5hcmdzOiBhbnlbXSkge1xuICAgIGxvZyhMb2dMZXZlbHMuRXJyb3IsIC4uLmFyZ3MpXG4gIH1cblxuICBmdW5jdGlvbiBmYXRhbCguLi5hcmdzOiBhbnlbXSkge1xuICAgIGxvZyhMb2dMZXZlbHMuRmF0YWwsIC4uLmFyZ3MpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGxvZyxcbiAgICBzZXRMZXZlbCxcbiAgICBkZWJ1ZyxcbiAgICBpbmZvLFxuICAgIHdhcm4sXG4gICAgZXJyb3IsXG4gICAgZmF0YWwsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGxvZ2dlciA9IGNyZWF0ZUxvZ2dlcih7IG5hbWU6ICdEaXNjb3JkZW5vJyB9KVxuZXhwb3J0IGRlZmF1bHQgbG9nZ2VyXG4iXSwibmFtZXMiOlsiYmdCcmlnaHRNYWdlbnRhIiwiYmxhY2siLCJib2xkIiwiY3lhbiIsImdyYXkiLCJpdGFsaWMiLCJyZWQiLCJ5ZWxsb3ciLCJMb2dMZXZlbHMiLCJwcmVmaXhlcyIsIk1hcCIsIm5vQ29sb3IiLCJtc2ciLCJjb2xvckZ1bmN0aW9ucyIsInN0ciIsImNyZWF0ZUxvZ2dlciIsImxvZ0xldmVsIiwibmFtZSIsImxvZyIsImxldmVsIiwiYXJncyIsImNvbG9yIiwiZ2V0IiwiZGF0ZSIsIkRhdGUiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJjb25zb2xlIiwiZGVidWciLCJpbmZvIiwid2FybiIsImVycm9yIiwic2V0TGV2ZWwiLCJmYXRhbCIsImxvZ2dlciJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZUFBZSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLE1BQU0sRUFBRUMsR0FBRyxFQUFFQyxNQUFNLFFBQVEsY0FBYTtBQUUzRixPQUFPLElBQUEsQUFBS0MsbUNBQUFBOzs7Ozs7V0FBQUE7TUFNWDtBQUVELE1BQU1DLFdBQVcsSUFBSUMsSUFBdUI7SUFDMUM7O1FBQWtCO0tBQVE7SUFDMUI7O1FBQWlCO0tBQU87SUFDeEI7O1FBQWlCO0tBQU87SUFDeEI7O1FBQWtCO0tBQVE7SUFDMUI7O1FBQWtCO0tBQVE7Q0FDM0I7QUFFRCxNQUFNQyxVQUFtQyxDQUFDQyxNQUFRQTtBQUNsRCxNQUFNQyxpQkFBaUIsSUFBSUgsSUFBd0M7SUFDakU7O1FBQWtCTjtLQUFLO0lBQ3ZCOztRQUFpQkQ7S0FBSztJQUN0Qjs7UUFBaUJJO0tBQU87SUFDeEI7O1FBQWtCLENBQUNPLE1BQWdCUixJQUFJUTtLQUFLO0lBQzVDOztRQUFrQixDQUFDQSxNQUFnQlIsSUFBSUosS0FBS0csT0FBT1M7S0FBTztDQUMzRDtBQUVELE9BQU8sU0FBU0MsYUFBYSxFQUFFQyxZQUF5QixFQUFFQyxJQUFJLEVBQTJDLEdBQUcsQ0FBQyxDQUFDO0lBQzVHLFNBQVNDLElBQUlDLEtBQWdCLEVBQUUsR0FBR0MsSUFBVztRQUMzQyxJQUFJRCxRQUFRSCxVQUFVO1FBRXRCLElBQUlLLFFBQVFSLGVBQWVTLEdBQUcsQ0FBQ0g7UUFDL0IsSUFBSSxDQUFDRSxPQUFPQSxRQUFRVjtRQUVwQixNQUFNWSxPQUFPLElBQUlDO1FBQ2pCLE1BQU1OLE9BQU07WUFDVmxCLGdCQUFnQkMsTUFBTSxDQUFDLENBQUMsRUFBRXNCLEtBQUtFLGtCQUFrQixHQUFHLENBQUMsRUFBRUYsS0FBS0csa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1lBQ25GTCxNQUFNWixTQUFTYSxHQUFHLENBQUNILFVBQVU7WUFDN0JGLE9BQU8sR0FBR0EsS0FBSyxFQUFFLENBQUMsR0FBRztlQUNsQkc7U0FDSjtRQUVELE9BQVFEO1lBQ047Z0JBQ0UsT0FBT1EsUUFBUUMsS0FBSyxJQUFJVjtZQUMxQjtnQkFDRSxPQUFPUyxRQUFRRSxJQUFJLElBQUlYO1lBQ3pCO2dCQUNFLE9BQU9TLFFBQVFHLElBQUksSUFBSVo7WUFDekI7Z0JBQ0UsT0FBT1MsUUFBUUksS0FBSyxJQUFJYjtZQUMxQjtnQkFDRSxPQUFPUyxRQUFRSSxLQUFLLElBQUliO1lBQzFCO2dCQUNFLE9BQU9TLFFBQVFULEdBQUcsSUFBSUE7UUFDMUI7SUFDRjtJQUVBLFNBQVNjLFNBQVNiLEtBQWdCO1FBQ2hDSCxXQUFXRztJQUNiO0lBRUEsU0FBU1MsTUFBTSxHQUFHUixJQUFXO1FBQzNCRixVQUF3QkU7SUFDMUI7SUFFQSxTQUFTUyxLQUFLLEdBQUdULElBQVc7UUFDMUJGLFVBQXVCRTtJQUN6QjtJQUVBLFNBQVNVLEtBQUssR0FBR1YsSUFBVztRQUMxQkYsVUFBdUJFO0lBQ3pCO0lBRUEsU0FBU1csTUFBTSxHQUFHWCxJQUFXO1FBQzNCRixVQUF3QkU7SUFDMUI7SUFFQSxTQUFTYSxNQUFNLEdBQUdiLElBQVc7UUFDM0JGLFVBQXdCRTtJQUMxQjtJQUVBLE9BQU87UUFDTEY7UUFDQWM7UUFDQUo7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUU7SUFDRjtBQUNGO0FBRUEsT0FBTyxNQUFNQyxTQUFTbkIsYUFBYTtJQUFFRSxNQUFNO0FBQWEsR0FBRTtBQUMxRCxlQUFlaUIsT0FBTSJ9
|
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
import type { BigString, DiscordApplicationIntegrationType, OAuth2Scope, PermissionStrings } from '@discordeno/types';
|
|
2
2
|
export declare function createOAuth2Link(options: CreateOAuth2LinkOptions): string;
|
|
3
|
+
/**
|
|
4
|
+
* Generates a code verifier for use in the PKCE extension to OAuth2.
|
|
5
|
+
*
|
|
6
|
+
* @param octetLength - The length of the code verifier in octets (default is 32).
|
|
7
|
+
* @return The base64url encoded code verifier
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* The entropy of the code verifier should be between 256 and 768 bits (32 to 96 octets), as the resulting base64url encoded string has to be between 43 and 128 characters long.
|
|
11
|
+
*
|
|
12
|
+
* @see https://datatracker.ietf.org/doc/html/rfc7636#section-7.1 for the octet length
|
|
13
|
+
* @see https://datatracker.ietf.org/doc/html/rfc7636#section-4.1 for why 32 octets is the default
|
|
14
|
+
*/
|
|
15
|
+
export declare function generateCodeVerifier(octetLength?: number): string;
|
|
16
|
+
/**
|
|
17
|
+
* Creates a code challenge from the code verifier using the specified method.
|
|
18
|
+
*
|
|
19
|
+
* @param verifier - The code verifier to use.
|
|
20
|
+
* @returns The code challenge.
|
|
21
|
+
*
|
|
22
|
+
* @remarks
|
|
23
|
+
* This performs a SHA-256 hash on the verifier and encodes it using base64url encoding. Discord only supports 'S256' as the code challenge method.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createCodeChallenge(verifier: string): Promise<string>;
|
|
3
26
|
export interface CreateOAuth2LinkOptions {
|
|
4
27
|
/**
|
|
5
28
|
* The type of response
|
|
@@ -65,5 +88,20 @@ export interface CreateOAuth2LinkOptions {
|
|
|
65
88
|
* The application must be configured in the Developer Portal to support the provided `integrationType`.
|
|
66
89
|
*/
|
|
67
90
|
integrationType?: DiscordApplicationIntegrationType;
|
|
91
|
+
/**
|
|
92
|
+
* The code challenge used to verify the authorization request
|
|
93
|
+
*
|
|
94
|
+
* @see https://datatracker.ietf.org/doc/html/rfc7636#section-4.1
|
|
95
|
+
*/
|
|
96
|
+
codeChallenge?: string;
|
|
97
|
+
/**
|
|
98
|
+
* The challenge method used to generate the code challenge
|
|
99
|
+
*
|
|
100
|
+
* @remarks
|
|
101
|
+
* While the RFC allows for the 'plain' value to be set, discord does not allow it
|
|
102
|
+
*
|
|
103
|
+
* @see https://datatracker.ietf.org/doc/html/rfc7636#section-4.2
|
|
104
|
+
*/
|
|
105
|
+
codeChallengeMethod?: 'S256';
|
|
68
106
|
}
|
|
69
107
|
//# sourceMappingURL=oauth2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth2.d.ts","sourceRoot":"","sources":["../src/oauth2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,iCAAiC,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAIrH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAmBzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,GAAE,MAAW,UAI5D;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,mBAGzD;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/B,gCAAgC;IAChC,QAAQ,EAAE,SAAS,CAAA;IACnB,qCAAqC;IACrC,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IAC3B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,iBAAiB,EAAE,CAAA;IAC7C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,iCAAiC,CAAA;IACnD;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B"}
|
package/dist/oauth2.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { encodeBase64Url } from './base64.js';
|
|
2
|
+
import { calculateBits } from './permissions.js';
|
|
3
|
+
export function createOAuth2Link(options) {
|
|
4
|
+
const joinedScopeString = options.scope.join('%20');
|
|
5
|
+
let url = `https://discord.com/oauth2/authorize?client_id=${options.clientId}&scope=${joinedScopeString}`;
|
|
6
|
+
if (options.responseType) url += `&response_type=${options.responseType}`;
|
|
7
|
+
if (options.state) url += `&state=${encodeURIComponent(options.state)}`;
|
|
8
|
+
if (options.redirectUri) url += `&redirect_uri=${encodeURIComponent(options.redirectUri)}`;
|
|
9
|
+
if (options.prompt) url += `&prompt=${options.prompt}`;
|
|
10
|
+
if (options.permissions) url += `&permissions=${Array.isArray(options.permissions) ? calculateBits(options.permissions) : options.permissions}`;
|
|
11
|
+
if (options.guildId) url += `&guild_id=${options.guildId}`;
|
|
12
|
+
if (options.disableGuildSelect !== undefined) url += `&disable_guild_select=${options.disableGuildSelect}`;
|
|
13
|
+
if (options.integrationType) url += `&integration_type=${options.integrationType}`;
|
|
14
|
+
// Options defined by RFC 7636 (https://datatracker.ietf.org/doc/html/rfc7636)
|
|
15
|
+
if (options.codeChallenge) url += `&code_challenge=${options.codeChallenge}`;
|
|
16
|
+
if (options.codeChallengeMethod) url += `&code_challenge_method=${options.codeChallengeMethod}`;
|
|
17
|
+
return url;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Generates a code verifier for use in the PKCE extension to OAuth2.
|
|
21
|
+
*
|
|
22
|
+
* @param octetLength - The length of the code verifier in octets (default is 32).
|
|
23
|
+
* @return The base64url encoded code verifier
|
|
24
|
+
*
|
|
25
|
+
* @remarks
|
|
26
|
+
* The entropy of the code verifier should be between 256 and 768 bits (32 to 96 octets), as the resulting base64url encoded string has to be between 43 and 128 characters long.
|
|
27
|
+
*
|
|
28
|
+
* @see https://datatracker.ietf.org/doc/html/rfc7636#section-7.1 for the octet length
|
|
29
|
+
* @see https://datatracker.ietf.org/doc/html/rfc7636#section-4.1 for why 32 octets is the default
|
|
30
|
+
*/ export function generateCodeVerifier(octetLength = 32) {
|
|
31
|
+
const randomBytes = new Uint8Array(octetLength);
|
|
32
|
+
crypto.getRandomValues(randomBytes);
|
|
33
|
+
return encodeBase64Url(randomBytes);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Creates a code challenge from the code verifier using the specified method.
|
|
37
|
+
*
|
|
38
|
+
* @param verifier - The code verifier to use.
|
|
39
|
+
* @returns The code challenge.
|
|
40
|
+
*
|
|
41
|
+
* @remarks
|
|
42
|
+
* This performs a SHA-256 hash on the verifier and encodes it using base64url encoding. Discord only supports 'S256' as the code challenge method.
|
|
43
|
+
*/ export async function createCodeChallenge(verifier) {
|
|
44
|
+
const hashed = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(verifier));
|
|
45
|
+
return encodeBase64Url(hashed);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9vYXV0aDIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCaWdTdHJpbmcsIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSwgT0F1dGgyU2NvcGUsIFBlcm1pc3Npb25TdHJpbmdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBlbmNvZGVCYXNlNjRVcmwgfSBmcm9tICcuL2Jhc2U2NC5qcydcbmltcG9ydCB7IGNhbGN1bGF0ZUJpdHMgfSBmcm9tICcuL3Blcm1pc3Npb25zLmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT0F1dGgyTGluayhvcHRpb25zOiBDcmVhdGVPQXV0aDJMaW5rT3B0aW9ucyk6IHN0cmluZyB7XG4gIGNvbnN0IGpvaW5lZFNjb3BlU3RyaW5nID0gb3B0aW9ucy5zY29wZS5qb2luKCclMjAnKVxuXG4gIGxldCB1cmwgPSBgaHR0cHM6Ly9kaXNjb3JkLmNvbS9vYXV0aDIvYXV0aG9yaXplP2NsaWVudF9pZD0ke29wdGlvbnMuY2xpZW50SWR9JnNjb3BlPSR7am9pbmVkU2NvcGVTdHJpbmd9YFxuXG4gIGlmIChvcHRpb25zLnJlc3BvbnNlVHlwZSkgdXJsICs9IGAmcmVzcG9uc2VfdHlwZT0ke29wdGlvbnMucmVzcG9uc2VUeXBlfWBcbiAgaWYgKG9wdGlvbnMuc3RhdGUpIHVybCArPSBgJnN0YXRlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KG9wdGlvbnMuc3RhdGUpfWBcbiAgaWYgKG9wdGlvbnMucmVkaXJlY3RVcmkpIHVybCArPSBgJnJlZGlyZWN0X3VyaT0ke2VuY29kZVVSSUNvbXBvbmVudChvcHRpb25zLnJlZGlyZWN0VXJpKX1gXG4gIGlmIChvcHRpb25zLnByb21wdCkgdXJsICs9IGAmcHJvbXB0PSR7b3B0aW9ucy5wcm9tcHR9YFxuICBpZiAob3B0aW9ucy5wZXJtaXNzaW9ucykgdXJsICs9IGAmcGVybWlzc2lvbnM9JHtBcnJheS5pc0FycmF5KG9wdGlvbnMucGVybWlzc2lvbnMpID8gY2FsY3VsYXRlQml0cyhvcHRpb25zLnBlcm1pc3Npb25zKSA6IG9wdGlvbnMucGVybWlzc2lvbnN9YFxuICBpZiAob3B0aW9ucy5ndWlsZElkKSB1cmwgKz0gYCZndWlsZF9pZD0ke29wdGlvbnMuZ3VpbGRJZH1gXG4gIGlmIChvcHRpb25zLmRpc2FibGVHdWlsZFNlbGVjdCAhPT0gdW5kZWZpbmVkKSB1cmwgKz0gYCZkaXNhYmxlX2d1aWxkX3NlbGVjdD0ke29wdGlvbnMuZGlzYWJsZUd1aWxkU2VsZWN0fWBcbiAgaWYgKG9wdGlvbnMuaW50ZWdyYXRpb25UeXBlKSB1cmwgKz0gYCZpbnRlZ3JhdGlvbl90eXBlPSR7b3B0aW9ucy5pbnRlZ3JhdGlvblR5cGV9YFxuXG4gIC8vIE9wdGlvbnMgZGVmaW5lZCBieSBSRkMgNzYzNiAoaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3NjM2KVxuICBpZiAob3B0aW9ucy5jb2RlQ2hhbGxlbmdlKSB1cmwgKz0gYCZjb2RlX2NoYWxsZW5nZT0ke29wdGlvbnMuY29kZUNoYWxsZW5nZX1gXG4gIGlmIChvcHRpb25zLmNvZGVDaGFsbGVuZ2VNZXRob2QpIHVybCArPSBgJmNvZGVfY2hhbGxlbmdlX21ldGhvZD0ke29wdGlvbnMuY29kZUNoYWxsZW5nZU1ldGhvZH1gXG5cbiAgcmV0dXJuIHVybFxufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIGNvZGUgdmVyaWZpZXIgZm9yIHVzZSBpbiB0aGUgUEtDRSBleHRlbnNpb24gdG8gT0F1dGgyLlxuICpcbiAqIEBwYXJhbSBvY3RldExlbmd0aCAtIFRoZSBsZW5ndGggb2YgdGhlIGNvZGUgdmVyaWZpZXIgaW4gb2N0ZXRzIChkZWZhdWx0IGlzIDMyKS5cbiAqIEByZXR1cm4gVGhlIGJhc2U2NHVybCBlbmNvZGVkIGNvZGUgdmVyaWZpZXJcbiAqXG4gKiBAcmVtYXJrc1xuICogVGhlIGVudHJvcHkgb2YgdGhlIGNvZGUgdmVyaWZpZXIgc2hvdWxkIGJlIGJldHdlZW4gMjU2IGFuZCA3NjggYml0cyAoMzIgdG8gOTYgb2N0ZXRzKSwgYXMgdGhlIHJlc3VsdGluZyBiYXNlNjR1cmwgZW5jb2RlZCBzdHJpbmcgaGFzIHRvIGJlIGJldHdlZW4gNDMgYW5kIDEyOCBjaGFyYWN0ZXJzIGxvbmcuXG4gKlxuICogQHNlZSBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzc2MzYjc2VjdGlvbi03LjEgZm9yIHRoZSBvY3RldCBsZW5ndGhcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3NjM2I3NlY3Rpb24tNC4xIGZvciB3aHkgMzIgb2N0ZXRzIGlzIHRoZSBkZWZhdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUNvZGVWZXJpZmllcihvY3RldExlbmd0aDogbnVtYmVyID0gMzIpIHtcbiAgY29uc3QgcmFuZG9tQnl0ZXMgPSBuZXcgVWludDhBcnJheShvY3RldExlbmd0aClcbiAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhyYW5kb21CeXRlcylcbiAgcmV0dXJuIGVuY29kZUJhc2U2NFVybChyYW5kb21CeXRlcylcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgY29kZSBjaGFsbGVuZ2UgZnJvbSB0aGUgY29kZSB2ZXJpZmllciB1c2luZyB0aGUgc3BlY2lmaWVkIG1ldGhvZC5cbiAqXG4gKiBAcGFyYW0gdmVyaWZpZXIgLSBUaGUgY29kZSB2ZXJpZmllciB0byB1c2UuXG4gKiBAcmV0dXJucyBUaGUgY29kZSBjaGFsbGVuZ2UuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoaXMgcGVyZm9ybXMgYSBTSEEtMjU2IGhhc2ggb24gdGhlIHZlcmlmaWVyIGFuZCBlbmNvZGVzIGl0IHVzaW5nIGJhc2U2NHVybCBlbmNvZGluZy4gRGlzY29yZCBvbmx5IHN1cHBvcnRzICdTMjU2JyBhcyB0aGUgY29kZSBjaGFsbGVuZ2UgbWV0aG9kLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ29kZUNoYWxsZW5nZSh2ZXJpZmllcjogc3RyaW5nKSB7XG4gIGNvbnN0IGhhc2hlZCA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdTSEEtMjU2JywgbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHZlcmlmaWVyKSlcbiAgcmV0dXJuIGVuY29kZUJhc2U2NFVybChoYXNoZWQpXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlT0F1dGgyTGlua09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcmVzcG9uc2VcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpZiB1c2luZyBlaXRoZXIgT0F1dGgyIGF1dGhvcml6YXRpb24sIGltcGxpY2l0IG9yIG5vdCwgb3IgW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcmVzcG9uc2VUeXBlPzogJ2NvZGUnIHwgJ3Rva2VuJ1xuICAvKiogVGhlIGlkIG9mIHRoZSBhcHBsaWNhdGlvbiAqL1xuICBjbGllbnRJZDogQmlnU3RyaW5nXG4gIC8qKiBUaGUgc2NvcGVzIGZvciB0aGUgYXBwbGljYXRpb24gKi9cbiAgc2NvcGU6IE9BdXRoMlNjb3BlW11cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBzdGF0ZSBmb3Igc2VjdXJpdHlcbiAgICpcbiAgICogQHNlZSBodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI3N0YXRlLWFuZC1zZWN1cml0eVxuICAgKi9cbiAgc3RhdGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSByZWRpcmVjdCB1cmkgZm9yIGFmdGVyIHRoZSBhdXRoZW50aWNhdGlvblxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IGlmIHVzaW5nIGVpdGhlciBPQXV0aDIgYXV0aG9yaXphdGlvbiwgaW1wbGljaXQgb3Igbm90LCBvciBbYWR2YW5jZWQgYm90IGF1dGhvcml6YXRpb25dKGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3RvcGljcy9vYXV0aDIjYWR2YW5jZWQtYm90LWF1dGhvcml6YXRpb24pXG4gICAqL1xuICByZWRpcmVjdFVyaT86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcHJvbXB0IHRvIGdpdmUgdG8gdGhlIHVzZXJcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogSWYgc2V0IHRvIGBub25lYCwgaXQgd2lsbCBza2lwIHRoZSBhdXRob3JpemF0aW9uIHNjcmVlbiBhbmQgcmVkaXJlY3QgdGhlbSBiYWNrIHRvIHlvdXIgcmVkaXJlY3QgVVJJIHdpdGhvdXQgcmVxdWVzdGluZyB0aGVpciBhdXRob3JpemF0aW9uLlxuICAgKiBGb3IgcGFzc3Rocm91Z2ggc2NvcGVzLCBsaWtlIGJvdCBhbmQgd2ViaG9vay5pbmNvbWluZywgYXV0aG9yaXphdGlvbiBpcyBhbHdheXMgcmVxdWlyZWQuXG4gICAqL1xuICBwcm9tcHQ/OiAnY29uc2VudCcgfCAnbm9uZSdcbiAgLyoqXG4gICAqIFRoZSBwZXJtaXNzaW9ucyBvZiB0aGUgaW52aXRlZCBib3RcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpbiBhIFtib3QgYXV0aG9yaXphdGlvbiBmbG93XShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2JvdC1hdXRob3JpemF0aW9uLWZsb3cpIG9yIHdpdGggW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcGVybWlzc2lvbnM/OiBCaWdTdHJpbmcgfCBQZXJtaXNzaW9uU3RyaW5nc1tdXG4gIC8qKlxuICAgKiBQcmUtZmlsbHMgdGhlIGRyb3Bkb3duIHBpY2tlciB3aXRoIGEgZ3VpbGQgZm9yIHRoZSB1c2VyXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFNob3VsZCBiZSBkZWZpbmVkIG9ubHkgaW4gYSBbYm90IGF1dGhvcml6YXRpb24gZmxvd10oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNib3QtYXV0aG9yaXphdGlvbi1mbG93KSBvciB3aXRoIFthZHZhbmNlZCBib3QgYXV0aG9yaXphdGlvbl0oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNhZHZhbmNlZC1ib3QtYXV0aG9yaXphdGlvbikgb3Igd2l0aCB0aGUgYHdlYmhvb2suaW5jb21pbmdgIHNjb3BlXG4gICAqL1xuICBndWlsZElkPzogQmlnU3RyaW5nXG4gIC8qKlxuICAgKiBEaXNhbGxvd3MgdGhlIHVzZXIgZnJvbSBjaGFuZ2luZyB0aGUgZ3VpbGQgZHJvcGRvd24gaWYgc2V0IHRvIHRydWVcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpbiBhIFtib3QgYXV0aG9yaXphdGlvbiBmbG93XShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2JvdC1hdXRob3JpemF0aW9uLWZsb3cpLCB3aXRoIFthZHZhbmNlZCBib3QgYXV0aG9yaXphdGlvbl0oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNhZHZhbmNlZC1ib3QtYXV0aG9yaXphdGlvbikgb3Igd2l0aCB0aGUgYHdlYmhvb2suaW5jb21pbmdgIHNjb3BlXG4gICAqL1xuICBkaXNhYmxlR3VpbGRTZWxlY3Q/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGluc3RhbGxhdGlvbiBjb250ZXh0IGZvciB0aGUgYXV0aG9yaXphdGlvblxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IHdoZW4ge0BsaW5rIHNjb3BlfSBpbmNsdWRlcyB7QGxpbmsgT0F1dGgyU2NvcGUuQXBwbGljYXRpb25zQ29tbWFuZHN9LlxuICAgKlxuICAgKiBXaGVuIHNldCB0byBHdWlsZEluc3RhbGwgKDApIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGJlIGF1dGhvcml6ZWQgZm9yIGluc3RhbGxhdGlvbiB0byBhIHNlcnZlciwgYW5kIHdoZW4gc2V0IHRvIFVzZXJJbnN0YWxsICgxKSB0aGUgYXBwbGljYXRpb24gd2lsbCBiZSBhdXRob3JpemVkIGZvciBpbnN0YWxsYXRpb24gdG8gYSB1c2VyLlxuICAgKlxuICAgKiBUaGUgYXBwbGljYXRpb24gbXVzdCBiZSBjb25maWd1cmVkIGluIHRoZSBEZXZlbG9wZXIgUG9ydGFsIHRvIHN1cHBvcnQgdGhlIHByb3ZpZGVkIGBpbnRlZ3JhdGlvblR5cGVgLlxuICAgKi9cbiAgaW50ZWdyYXRpb25UeXBlPzogRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlXG4gIC8qKlxuICAgKiBUaGUgY29kZSBjaGFsbGVuZ2UgdXNlZCB0byB2ZXJpZnkgdGhlIGF1dGhvcml6YXRpb24gcmVxdWVzdFxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzYzNiNzZWN0aW9uLTQuMVxuICAgKi9cbiAgY29kZUNoYWxsZW5nZT86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIGNoYWxsZW5nZSBtZXRob2QgdXNlZCB0byBnZW5lcmF0ZSB0aGUgY29kZSBjaGFsbGVuZ2VcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogV2hpbGUgdGhlIFJGQyBhbGxvd3MgZm9yIHRoZSAncGxhaW4nIHZhbHVlIHRvIGJlIHNldCwgZGlzY29yZCBkb2VzIG5vdCBhbGxvdyBpdFxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzYzNiNzZWN0aW9uLTQuMlxuICAgKi9cbiAgY29kZUNoYWxsZW5nZU1ldGhvZD86ICdTMjU2J1xufVxuIl0sIm5hbWVzIjpbImVuY29kZUJhc2U2NFVybCIsImNhbGN1bGF0ZUJpdHMiLCJjcmVhdGVPQXV0aDJMaW5rIiwib3B0aW9ucyIsImpvaW5lZFNjb3BlU3RyaW5nIiwic2NvcGUiLCJqb2luIiwidXJsIiwiY2xpZW50SWQiLCJyZXNwb25zZVR5cGUiLCJzdGF0ZSIsImVuY29kZVVSSUNvbXBvbmVudCIsInJlZGlyZWN0VXJpIiwicHJvbXB0IiwicGVybWlzc2lvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJndWlsZElkIiwiZGlzYWJsZUd1aWxkU2VsZWN0IiwidW5kZWZpbmVkIiwiaW50ZWdyYXRpb25UeXBlIiwiY29kZUNoYWxsZW5nZSIsImNvZGVDaGFsbGVuZ2VNZXRob2QiLCJnZW5lcmF0ZUNvZGVWZXJpZmllciIsIm9jdGV0TGVuZ3RoIiwicmFuZG9tQnl0ZXMiLCJVaW50OEFycmF5IiwiY3J5cHRvIiwiZ2V0UmFuZG9tVmFsdWVzIiwiY3JlYXRlQ29kZUNoYWxsZW5nZSIsInZlcmlmaWVyIiwiaGFzaGVkIiwic3VidGxlIiwiZGlnZXN0IiwiVGV4dEVuY29kZXIiLCJlbmNvZGUiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGVBQWUsUUFBUSxjQUFhO0FBQzdDLFNBQVNDLGFBQWEsUUFBUSxtQkFBa0I7QUFFaEQsT0FBTyxTQUFTQyxpQkFBaUJDLE9BQWdDO0lBQy9ELE1BQU1DLG9CQUFvQkQsUUFBUUUsS0FBSyxDQUFDQyxJQUFJLENBQUM7SUFFN0MsSUFBSUMsTUFBTSxDQUFDLCtDQUErQyxFQUFFSixRQUFRSyxRQUFRLENBQUMsT0FBTyxFQUFFSixtQkFBbUI7SUFFekcsSUFBSUQsUUFBUU0sWUFBWSxFQUFFRixPQUFPLENBQUMsZUFBZSxFQUFFSixRQUFRTSxZQUFZLEVBQUU7SUFDekUsSUFBSU4sUUFBUU8sS0FBSyxFQUFFSCxPQUFPLENBQUMsT0FBTyxFQUFFSSxtQkFBbUJSLFFBQVFPLEtBQUssR0FBRztJQUN2RSxJQUFJUCxRQUFRUyxXQUFXLEVBQUVMLE9BQU8sQ0FBQyxjQUFjLEVBQUVJLG1CQUFtQlIsUUFBUVMsV0FBVyxHQUFHO0lBQzFGLElBQUlULFFBQVFVLE1BQU0sRUFBRU4sT0FBTyxDQUFDLFFBQVEsRUFBRUosUUFBUVUsTUFBTSxFQUFFO0lBQ3RELElBQUlWLFFBQVFXLFdBQVcsRUFBRVAsT0FBTyxDQUFDLGFBQWEsRUFBRVEsTUFBTUMsT0FBTyxDQUFDYixRQUFRVyxXQUFXLElBQUliLGNBQWNFLFFBQVFXLFdBQVcsSUFBSVgsUUFBUVcsV0FBVyxFQUFFO0lBQy9JLElBQUlYLFFBQVFjLE9BQU8sRUFBRVYsT0FBTyxDQUFDLFVBQVUsRUFBRUosUUFBUWMsT0FBTyxFQUFFO0lBQzFELElBQUlkLFFBQVFlLGtCQUFrQixLQUFLQyxXQUFXWixPQUFPLENBQUMsc0JBQXNCLEVBQUVKLFFBQVFlLGtCQUFrQixFQUFFO0lBQzFHLElBQUlmLFFBQVFpQixlQUFlLEVBQUViLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRUosUUFBUWlCLGVBQWUsRUFBRTtJQUVsRiw4RUFBOEU7SUFDOUUsSUFBSWpCLFFBQVFrQixhQUFhLEVBQUVkLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRUosUUFBUWtCLGFBQWEsRUFBRTtJQUM1RSxJQUFJbEIsUUFBUW1CLG1CQUFtQixFQUFFZixPQUFPLENBQUMsdUJBQXVCLEVBQUVKLFFBQVFtQixtQkFBbUIsRUFBRTtJQUUvRixPQUFPZjtBQUNUO0FBRUE7Ozs7Ozs7Ozs7O0NBV0MsR0FDRCxPQUFPLFNBQVNnQixxQkFBcUJDLGNBQXNCLEVBQUU7SUFDM0QsTUFBTUMsY0FBYyxJQUFJQyxXQUFXRjtJQUNuQ0csT0FBT0MsZUFBZSxDQUFDSDtJQUN2QixPQUFPekIsZ0JBQWdCeUI7QUFDekI7QUFFQTs7Ozs7Ozs7Q0FRQyxHQUNELE9BQU8sZUFBZUksb0JBQW9CQyxRQUFnQjtJQUN4RCxNQUFNQyxTQUFTLE1BQU1KLE9BQU9LLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLFdBQVcsSUFBSUMsY0FBY0MsTUFBTSxDQUFDTDtJQUM5RSxPQUFPOUIsZ0JBQWdCK0I7QUFDekIifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAG1D,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAOhF;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,WAAW,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAOtE"}
|
|
@@ -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 & 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wZXJtaXNzaW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBlcm1pc3Npb25TdHJpbmdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBCaXR3aXNlUGVybWlzc2lvbkZsYWdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5cbi8qKiBUaGlzIGZ1bmN0aW9uIGNvbnZlcnRzIGEgYml0d2lzZSBzdHJpbmcgdG8gcGVybWlzc2lvbiBzdHJpbmdzICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlUGVybWlzc2lvbnMocGVybWlzc2lvbkJpdHM6IGJpZ2ludCk6IFBlcm1pc3Npb25TdHJpbmdzW10ge1xuICByZXR1cm4gT2JqZWN0LmtleXMoQml0d2lzZVBlcm1pc3Npb25GbGFncykuZmlsdGVyKChwZXJtaXNzaW9uKSA9PiB7XG4gICAgLy8gU2luY2UgT2JqZWN0LmtleXMoKSBub3Qgb25seSByZXR1cm5zIHRoZSBwZXJtaXNzaW9uIG5hbWVzIGJ1dCBhbHNvIHRoZSBiaXQgdmFsdWVzIHdlIG5lZWQgdG8gcmV0dXJuIGZhbHNlIGlmIGl0IGlzIGEgTnVtYmVyXG4gICAgaWYgKE51bWJlcihwZXJtaXNzaW9uKSkgcmV0dXJuIGZhbHNlXG4gICAgLy8gQ2hlY2sgaWYgcGVybWlzc2lvbkJpdHMgaGFzIHRoaXMgcGVybWlzc2lvblxuICAgIHJldHVybiBwZXJtaXNzaW9uQml0cyAmIEJpdHdpc2VQZXJtaXNzaW9uRmxhZ3NbcGVybWlzc2lvbiBhcyBQZXJtaXNzaW9uU3RyaW5nc11cbiAgfSkgYXMgUGVybWlzc2lvblN0cmluZ3NbXVxufVxuXG4vKiogVGhpcyBmdW5jdGlvbiBjb252ZXJ0cyBhbiBhcnJheSBvZiBwZXJtaXNzaW9ucyBpbnRvIHRoZSBiaXR3aXNlIHN0cmluZy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVCaXRzKHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uU3RyaW5nc1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBlcm1pc3Npb25zXG4gICAgLnJlZHVjZSgoYml0cywgcGVybSkgPT4ge1xuICAgICAgYml0cyB8PSBCaXR3aXNlUGVybWlzc2lvbkZsYWdzW3Blcm1dXG4gICAgICByZXR1cm4gYml0c1xuICAgIH0sIDBuKVxuICAgIC50b1N0cmluZygpXG59XG4iXSwibmFtZXMiOlsiQml0d2lzZVBlcm1pc3Npb25GbGFncyIsImNhbGN1bGF0ZVBlcm1pc3Npb25zIiwicGVybWlzc2lvbkJpdHMiLCJPYmplY3QiLCJrZXlzIiwiZmlsdGVyIiwicGVybWlzc2lvbiIsIk51bWJlciIsImNhbGN1bGF0ZUJpdHMiLCJwZXJtaXNzaW9ucyIsInJlZHVjZSIsImJpdHMiLCJwZXJtIiwidG9TdHJpbmciXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLHNCQUFzQixRQUFRLG9CQUFtQjtBQUUxRCxrRUFBa0UsR0FDbEUsT0FBTyxTQUFTQyxxQkFBcUJDLGNBQXNCO0lBQ3pELE9BQU9DLE9BQU9DLElBQUksQ0FBQ0osd0JBQXdCSyxNQUFNLENBQUMsQ0FBQ0M7UUFDakQsOEhBQThIO1FBQzlILElBQUlDLE9BQU9ELGFBQWEsT0FBTztRQUMvQiw4Q0FBOEM7UUFDOUMsT0FBT0osaUJBQWlCRixzQkFBc0IsQ0FBQ00sV0FBZ0M7SUFDakY7QUFDRjtBQUVBLDRFQUE0RSxHQUM1RSxPQUFPLFNBQVNFLGNBQWNDLFdBQWdDO0lBQzVELE9BQU9BLFlBQ0pDLE1BQU0sQ0FBQyxDQUFDQyxNQUFNQztRQUNiRCxRQUFRWCxzQkFBc0IsQ0FBQ1ksS0FBSztRQUNwQyxPQUFPRDtJQUNULEdBQUcsRUFBRSxFQUNKRSxRQUFRO0FBQ2IifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactions.d.ts","sourceRoot":"","sources":["../src/reactions.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAU9D"}
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWFjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIENvbnZlcnRzIGFuIHJlYWN0aW9uIGVtb2ppIHVuaWNvZGUgc3RyaW5nIHRvIHRoZSBkaXNjb3JkIHJlcXVpcmVkIGZvcm0gb2YgbmFtZTppZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NSZWFjdGlvblN0cmluZyhyZWFjdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHJlYWN0aW9uLnN0YXJ0c1dpdGgoJzw6JykpIHtcbiAgICByZXR1cm4gcmVhY3Rpb24uc3Vic3RyaW5nKDIsIHJlYWN0aW9uLmxlbmd0aCAtIDEpXG4gIH1cblxuICBpZiAocmVhY3Rpb24uc3RhcnRzV2l0aCgnPGE6JykpIHtcbiAgICByZXR1cm4gcmVhY3Rpb24uc3Vic3RyaW5nKDMsIHJlYWN0aW9uLmxlbmd0aCAtIDEpXG4gIH1cblxuICByZXR1cm4gcmVhY3Rpb25cbn1cbiJdLCJuYW1lcyI6WyJwcm9jZXNzUmVhY3Rpb25TdHJpbmciLCJyZWFjdGlvbiIsInN0YXJ0c1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiXSwibWFwcGluZ3MiOiJBQUFBLHNGQUFzRixHQUN0RixPQUFPLFNBQVNBLHNCQUFzQkMsUUFBZ0I7SUFDcEQsSUFBSUEsU0FBU0MsVUFBVSxDQUFDLE9BQU87UUFDN0IsT0FBT0QsU0FBU0UsU0FBUyxDQUFDLEdBQUdGLFNBQVNHLE1BQU0sR0FBRztJQUNqRDtJQUVBLElBQUlILFNBQVNDLFVBQVUsQ0FBQyxRQUFRO1FBQzlCLE9BQU9ELFNBQVNFLFNBQVMsQ0FBQyxHQUFHRixTQUFTRyxNQUFNLEdBQUc7SUFDakQ7SUFFQSxPQUFPSDtBQUNUIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snowflakes.d.ts","sourceRoot":"","sources":["../src/snowflakes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAE9D;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAE9D;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAEjE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zbm93Zmxha2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBzbm93Zmxha2VUb0JpZ2ludChzbm93Zmxha2U6IEJpZ1N0cmluZyk6IGJpZ2ludCB7XG4gIHJldHVybiBCaWdJbnQoc25vd2ZsYWtlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYmlnaW50VG9Tbm93Zmxha2Uoc25vd2ZsYWtlOiBCaWdTdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc25vd2ZsYWtlLnRvU3RyaW5nKClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNub3dmbGFrZVRvVGltZXN0YW1wKHNub3dmbGFrZTogQmlnU3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIE51bWJlcihCaWdJbnQoc25vd2ZsYWtlKSA+PiAyMm4pICsgMTQyMDA3MDQwMDAwMFxufVxuIl0sIm5hbWVzIjpbInNub3dmbGFrZVRvQmlnaW50Iiwic25vd2ZsYWtlIiwiQmlnSW50IiwiYmlnaW50VG9Tbm93Zmxha2UiLCJ0b1N0cmluZyIsInNub3dmbGFrZVRvVGltZXN0YW1wIiwiTnVtYmVyIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLFNBQVNBLGtCQUFrQkMsU0FBb0I7SUFDcEQsT0FBT0MsT0FBT0Q7QUFDaEI7QUFFQSxPQUFPLFNBQVNFLGtCQUFrQkYsU0FBb0I7SUFDcEQsT0FBT0EsVUFBVUcsUUFBUTtBQUMzQjtBQUVBLE9BQU8sU0FBU0MscUJBQXFCSixTQUFvQjtJQUN2RCxPQUFPSyxPQUFPSixPQUFPRCxjQUFjLEdBQUcsSUFBSTtBQUM1QyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAEA,+CAA+C;AAC/C,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,SAAS,GAAG,MAAe,GAAG,MAAM,CAY3F;AAED,0LAA0L;AAC1L,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD"}
|
package/dist/token.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90b2tlbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB2YWxpZFRva2VuUHJlZml4ZXMgPSBbJ0JvdCcsICdCZWFyZXInXVxuXG4vKiogUmVtb3ZlcyB0aGUgQm90L0JlYXJlciBiZWZvcmUgdGhlIHRva2VuLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVRva2VuUHJlZml4KHRva2VuPzogc3RyaW5nLCB0eXBlOiAnR0FURVdBWScgfCAnUkVTVCcgPSAnUkVTVCcpOiBzdHJpbmcge1xuICAvLyBJZiBubyB0b2tlbiBpcyBwcm92aWRlZCwgdGhyb3cgYW4gZXJyb3JcbiAgaWYgKHRva2VuID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSAke3R5cGV9IHdhcyBub3QgZ2l2ZW4gYSB0b2tlbi4gUGxlYXNlIHByb3ZpZGUgYSB0b2tlbiBhbmQgdHJ5IGFnYWluLmApXG4gIH1cblxuICBjb25zdCBzcGxpdHRlZFRva2VuID0gdG9rZW4uc3BsaXQoJyAnKVxuXG4gIC8vIElmIHRoZSB0b2tlbiBkb2VzIG5vdCBoYXZlIGEgcHJlZml4IGp1c3QgcmV0dXJuIHRva2VuXG4gIGlmIChzcGxpdHRlZFRva2VuLmxlbmd0aCA8IDIgfHwgIXZhbGlkVG9rZW5QcmVmaXhlcy5pbmNsdWRlcyhzcGxpdHRlZFRva2VuWzBdKSkgcmV0dXJuIHRva2VuXG4gIC8vIFJlbW92ZSB0aGUgcHJlZml4IGFuZCByZXR1cm4gb25seSB0aGUgdG9rZW4uXG4gIHJldHVybiBzcGxpdHRlZFRva2VuLnNwbGljZSgxKS5qb2luKCcgJylcbn1cblxuLyoqIEdldCB0aGUgYm90IGlkIGZyb20gdGhlIGJvdCB0b2tlbi4gV0FSTklORzogRGlzY29yZCBzdGFmZiBoYXMgbWVudGlvbmVkIHRoaXMgbWF5IG5vdCBiZSBzdGFibGUgZm9yZXZlci4gVXNlIGF0IHlvdXIgb3duIHJpc2suIEhvd2V2ZXIsIG5vdGUgZm9yIG92ZXIgNSB5ZWFycyB0aGlzIGhhcyBuZXZlciBicm9rZW4uICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm90SWRGcm9tVG9rZW4odG9rZW46IHN0cmluZyk6IGJpZ2ludCB7XG4gIHJldHVybiBCaWdJbnQoYXRvYih0b2tlbi5zcGxpdCgnLicpWzBdKSlcbn1cbiJdLCJuYW1lcyI6WyJ2YWxpZFRva2VuUHJlZml4ZXMiLCJyZW1vdmVUb2tlblByZWZpeCIsInRva2VuIiwidHlwZSIsInVuZGVmaW5lZCIsIkVycm9yIiwic3BsaXR0ZWRUb2tlbiIsInNwbGl0IiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJzcGxpY2UiLCJqb2luIiwiZ2V0Qm90SWRGcm9tVG9rZW4iLCJCaWdJbnQiLCJhdG9iIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxxQkFBcUI7SUFBQztJQUFPO0NBQVM7QUFFNUMsNkNBQTZDLEdBQzdDLE9BQU8sU0FBU0Msa0JBQWtCQyxLQUFjLEVBQUVDLE9BQTJCLE1BQU07SUFDakYsMENBQTBDO0lBQzFDLElBQUlELFVBQVVFLFdBQVc7UUFDdkIsTUFBTSxJQUFJQyxNQUFNLENBQUMsSUFBSSxFQUFFRixLQUFLLDZEQUE2RCxDQUFDO0lBQzVGO0lBRUEsTUFBTUcsZ0JBQWdCSixNQUFNSyxLQUFLLENBQUM7SUFFbEMsd0RBQXdEO0lBQ3hELElBQUlELGNBQWNFLE1BQU0sR0FBRyxLQUFLLENBQUNSLG1CQUFtQlMsUUFBUSxDQUFDSCxhQUFhLENBQUMsRUFBRSxHQUFHLE9BQU9KO0lBQ3ZGLCtDQUErQztJQUMvQyxPQUFPSSxjQUFjSSxNQUFNLENBQUMsR0FBR0MsSUFBSSxDQUFDO0FBQ3RDO0FBRUEsd0xBQXdMLEdBQ3hMLE9BQU8sU0FBU0Msa0JBQWtCVixLQUFhO0lBQzdDLE9BQU9XLE9BQU9DLEtBQUtaLE1BQU1LLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUN4QyJ9
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { DiscordInviteCreate, DiscordInviteMetadata, GetMessagesAfter, GetMessagesAround, GetMessagesBefore, GetMessagesLimit, GetMessagesOptions } from '@discordeno/types';
|
|
2
2
|
export declare function isGetMessagesAfter(options: GetMessagesOptions): options is GetMessagesAfter;
|
|
3
3
|
export declare function isGetMessagesBefore(options: GetMessagesOptions): options is GetMessagesBefore;
|
|
4
4
|
export declare function isGetMessagesAround(options: GetMessagesOptions): options is GetMessagesAround;
|
|
5
5
|
export declare function isGetMessagesLimit(options: GetMessagesOptions): options is GetMessagesLimit;
|
|
6
6
|
export declare function isInviteWithMetadata(options: DiscordInviteCreate | DiscordInviteMetadata): options is DiscordInviteMetadata;
|
|
7
|
-
export declare function isContextApplicationCommand(command: CreateApplicationCommand): command is CreateContextApplicationCommand;
|
|
8
7
|
//# sourceMappingURL=typeguards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeguards.d.ts","sourceRoot":"","sources":["../src/typeguards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,mBAAmB,CAAA;AAG1B,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,IAAI,gBAAgB,CAE3F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,IAAI,iBAAiB,CAE7F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,IAAI,iBAAiB,CAE7F;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,IAAI,gBAAgB,CAE3F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,qBAAqB,GAAG,OAAO,IAAI,qBAAqB,CAE3H"}
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlZ3VhcmRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRGlzY29yZEludml0ZUNyZWF0ZSxcbiAgRGlzY29yZEludml0ZU1ldGFkYXRhLFxuICBHZXRNZXNzYWdlc0FmdGVyLFxuICBHZXRNZXNzYWdlc0Fyb3VuZCxcbiAgR2V0TWVzc2FnZXNCZWZvcmUsXG4gIEdldE1lc3NhZ2VzTGltaXQsXG4gIEdldE1lc3NhZ2VzT3B0aW9ucyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBoYXNQcm9wZXJ0eSB9IGZyb20gJy4vdXRpbHMuanMnXG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dldE1lc3NhZ2VzQWZ0ZXIob3B0aW9uczogR2V0TWVzc2FnZXNPcHRpb25zKTogb3B0aW9ucyBpcyBHZXRNZXNzYWdlc0FmdGVyIHtcbiAgcmV0dXJuIGhhc1Byb3BlcnR5KG9wdGlvbnMsICdhZnRlcicpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dldE1lc3NhZ2VzQmVmb3JlKG9wdGlvbnM6IEdldE1lc3NhZ2VzT3B0aW9ucyk6IG9wdGlvbnMgaXMgR2V0TWVzc2FnZXNCZWZvcmUge1xuICByZXR1cm4gaGFzUHJvcGVydHkob3B0aW9ucywgJ2JlZm9yZScpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dldE1lc3NhZ2VzQXJvdW5kKG9wdGlvbnM6IEdldE1lc3NhZ2VzT3B0aW9ucyk6IG9wdGlvbnMgaXMgR2V0TWVzc2FnZXNBcm91bmQge1xuICByZXR1cm4gaGFzUHJvcGVydHkob3B0aW9ucywgJ2Fyb3VuZCcpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dldE1lc3NhZ2VzTGltaXQob3B0aW9uczogR2V0TWVzc2FnZXNPcHRpb25zKTogb3B0aW9ucyBpcyBHZXRNZXNzYWdlc0xpbWl0IHtcbiAgcmV0dXJuIGhhc1Byb3BlcnR5KG9wdGlvbnMsICdsaW1pdCcpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ludml0ZVdpdGhNZXRhZGF0YShvcHRpb25zOiBEaXNjb3JkSW52aXRlQ3JlYXRlIHwgRGlzY29yZEludml0ZU1ldGFkYXRhKTogb3B0aW9ucyBpcyBEaXNjb3JkSW52aXRlTWV0YWRhdGEge1xuICByZXR1cm4gIWhhc1Byb3BlcnR5KG9wdGlvbnMsICdjaGFubmVsX2lkJylcbn1cbiJdLCJuYW1lcyI6WyJoYXNQcm9wZXJ0eSIsImlzR2V0TWVzc2FnZXNBZnRlciIsIm9wdGlvbnMiLCJpc0dldE1lc3NhZ2VzQmVmb3JlIiwiaXNHZXRNZXNzYWdlc0Fyb3VuZCIsImlzR2V0TWVzc2FnZXNMaW1pdCIsImlzSW52aXRlV2l0aE1ldGFkYXRhIl0sIm1hcHBpbmdzIjoiQUFTQSxTQUFTQSxXQUFXLFFBQVEsYUFBWTtBQUV4QyxPQUFPLFNBQVNDLG1CQUFtQkMsT0FBMkI7SUFDNUQsT0FBT0YsWUFBWUUsU0FBUztBQUM5QjtBQUVBLE9BQU8sU0FBU0Msb0JBQW9CRCxPQUEyQjtJQUM3RCxPQUFPRixZQUFZRSxTQUFTO0FBQzlCO0FBRUEsT0FBTyxTQUFTRSxvQkFBb0JGLE9BQTJCO0lBQzdELE9BQU9GLFlBQVlFLFNBQVM7QUFDOUI7QUFFQSxPQUFPLFNBQVNHLG1CQUFtQkgsT0FBMkI7SUFDNUQsT0FBT0YsWUFBWUUsU0FBUztBQUM5QjtBQUVBLE9BQU8sU0FBU0kscUJBQXFCSixPQUFvRDtJQUN2RixPQUFPLENBQUNGLFlBQVlFLFNBQVM7QUFDL0IifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urlToBase64.d.ts","sourceRoot":"","sources":["../src/urlToBase64.ts"],"names":[],"mappings":"AAEA,uFAAuF;AACvF,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK9D"}
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91cmxUb0Jhc2U2NC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbmNvZGUgfSBmcm9tICcuL2Jhc2U2NC5qcydcblxuLyoqIENvbnZlcnRzIGEgdXJsIHRvIGJhc2UgNjQuIFVzZWZ1bCBmb3IgZXhhbXBsZSwgdXBsb2FkaW5nL2NyZWF0aW5nIHNlcnZlciBlbW9qaXMuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXJsVG9CYXNlNjQodXJsOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBidWZmZXIgPSBhd2FpdCBmZXRjaCh1cmwpLnRoZW4oYXN5bmMgKHJlcykgPT4gYXdhaXQgcmVzLmFycmF5QnVmZmVyKCkpXG4gIGNvbnN0IGltYWdlU3RyID0gZW5jb2RlKGJ1ZmZlcilcbiAgY29uc3QgdHlwZSA9IHVybC5zdWJzdHJpbmcodXJsLmxhc3RJbmRleE9mKCcuJykgKyAxKVxuICByZXR1cm4gYGRhdGE6aW1hZ2UvJHt0eXBlfTtiYXNlNjQsJHtpbWFnZVN0cn1gXG59XG4iXSwibmFtZXMiOlsiZW5jb2RlIiwidXJsVG9CYXNlNjQiLCJ1cmwiLCJidWZmZXIiLCJmZXRjaCIsInRoZW4iLCJyZXMiLCJhcnJheUJ1ZmZlciIsImltYWdlU3RyIiwidHlwZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxNQUFNLFFBQVEsY0FBYTtBQUVwQyxxRkFBcUYsR0FDckYsT0FBTyxlQUFlQyxZQUFZQyxHQUFXO0lBQzNDLE1BQU1DLFNBQVMsTUFBTUMsTUFBTUYsS0FBS0csSUFBSSxDQUFDLE9BQU9DLE1BQVEsTUFBTUEsSUFBSUMsV0FBVztJQUN6RSxNQUFNQyxXQUFXUixPQUFPRztJQUN4QixNQUFNTSxPQUFPUCxJQUFJUSxTQUFTLENBQUNSLElBQUlTLFdBQVcsQ0FBQyxPQUFPO0lBQ2xELE9BQU8sQ0FBQyxXQUFXLEVBQUVGLEtBQUssUUFBUSxFQUFFRCxVQUFVO0FBQ2hEIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../src/urls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElD,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAElE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAElD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAEpD"}
|
package/dist/urls.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91cmxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBza3VMaW5rKGFwcElkOiBCaWdTdHJpbmcsIHNrdUlkOiBCaWdTdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYGh0dHBzOi8vZGlzY29yZC5jb20vYXBwbGljYXRpb24tZGlyZWN0b3J5LyR7YXBwSWR9L3N0b3JlLyR7c2t1SWR9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RvcmVMaW5rKGFwcElkOiBCaWdTdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYGh0dHBzOi8vZGlzY29yZC5jb20vYXBwbGljYXRpb24tZGlyZWN0b3J5LyR7YXBwSWR9L3N0b3JlYFxufVxuXG5leHBvcnQgZnVuY3Rpb24gc291bmRMaW5rKHNvdW5kSWQ6IEJpZ1N0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vc291bmRib2FyZC1zb3VuZHMvJHtzb3VuZElkfWBcbn1cbiJdLCJuYW1lcyI6WyJza3VMaW5rIiwiYXBwSWQiLCJza3VJZCIsInN0b3JlTGluayIsInNvdW5kTGluayIsInNvdW5kSWQiXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sU0FBU0EsUUFBUUMsS0FBZ0IsRUFBRUMsS0FBZ0I7SUFDeEQsT0FBTyxDQUFDLDBDQUEwQyxFQUFFRCxNQUFNLE9BQU8sRUFBRUMsT0FBTztBQUM1RTtBQUVBLE9BQU8sU0FBU0MsVUFBVUYsS0FBZ0I7SUFDeEMsT0FBTyxDQUFDLDBDQUEwQyxFQUFFQSxNQUFNLE1BQU0sQ0FBQztBQUNuRTtBQUVBLE9BQU8sU0FBU0csVUFBVUMsT0FBa0I7SUFDMUMsT0FBTyxDQUFDLDZDQUE2QyxFQUFFQSxTQUFTO0FBQ2xFIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOrD;AAID,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,WAAW,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAExH;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAQtE"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUGF1c2UgdGhlIGV4ZWN1dGlvbiBmb3IgYSBnaXZlbiBhbW91bnQgb2YgbWlsbGlzZWNvbmRzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGF5KG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKFxuICAgIChyZXNvbHZlKTogTm9kZUpTLlRpbWVvdXQgPT5cbiAgICAgIHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuICAgICAgICByZXNvbHZlKClcbiAgICAgIH0sIG1zKSxcbiAgKVxufVxuXG4vLyBUeXBlc2NyaXB0IGlzIG5vdCBzbyBnb29kIGFzIHdlIGRldmVsb3BlcnMgc28gd2UgbmVlZCB0aGlzIGxpdHRsZSB1dGlsaXR5IGZ1bmN0aW9uIHRvIGhlbHAgaXQgb3V0XG4vLyBUYWtlbiBmcm9tIGh0dHBzOi8vZmV0dGJsb2cuZXUvdHlwZXNjcmlwdC1oYXNvd25wcm9wZXJ0eS9cbi8qKiBUUyBzYXZlIHdheSB0byBjaGVjayBpZiBhIHByb3BlcnR5IGV4aXN0cyBpbiBhbiBvYmplY3QgKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNQcm9wZXJ0eTxUIGV4dGVuZHMge30sIFkgZXh0ZW5kcyBQcm9wZXJ0eUtleSA9IHN0cmluZz4ob2JqOiBULCBwcm9wOiBZKTogb2JqIGlzIFQgJiBSZWNvcmQ8WSwgdW5rbm93bj4ge1xuICByZXR1cm4gb2JqLmhhc093blByb3BlcnR5KHByb3ApXG59XG5cbi8qKiBDb252ZXJ0IGBKU09OLnN0cmluZ2lmeWAtdW5zZXJpYWxpemFibGUgcmVjb3JkIHZhbHVlcyBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25TYWZlUmVwbGFjZXIoX2tleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IHVua25vd24ge1xuICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgIGNhc2UgJ2JpZ2ludCc6XG4gICAgICAvLyBCaWdpbnRzIGFyZSB1bnNlcmlhbGl6YWJsZSBieSBgSlNPTi5zdHJpbmdpZnlgLlxuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSlcbiAgICBkZWZhdWx0OiAvLyBBbnkgb3RoZXIgdW5oYW5kbGVkIHR5cGUgdGhhdCBpc24ndCBzdXBwb3NlZCB0byByZXF1aXJlIGNvbnZlcnNpb24uXG4gICAgICByZXR1cm4gdmFsdWVcbiAgfVxufVxuIl0sIm5hbWVzIjpbImRlbGF5IiwibXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJoYXNQcm9wZXJ0eSIsIm9iaiIsInByb3AiLCJoYXNPd25Qcm9wZXJ0eSIsImpzb25TYWZlUmVwbGFjZXIiLCJfa2V5IiwidmFsdWUiLCJTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBLDREQUE0RCxHQUM1RCxPQUFPLGVBQWVBLE1BQU1DLEVBQVU7SUFDcEMsT0FBTyxJQUFJQyxRQUNULENBQUNDLFVBQ0NDLFdBQVc7WUFDVEQ7UUFDRixHQUFHRjtBQUVUO0FBRUEsb0dBQW9HO0FBQ3BHLDREQUE0RDtBQUM1RCwyREFBMkQsR0FDM0QsT0FBTyxTQUFTSSxZQUEwREMsR0FBTSxFQUFFQyxJQUFPO0lBQ3ZGLE9BQU9ELElBQUlFLGNBQWMsQ0FBQ0Q7QUFDNUI7QUFFQSxrRkFBa0YsR0FDbEYsT0FBTyxTQUFTRSxpQkFBaUJDLElBQVksRUFBRUMsS0FBYztJQUMzRCxPQUFRLE9BQU9BO1FBQ2IsS0FBSztZQUNILGtEQUFrRDtZQUNsRCxPQUFPQyxPQUFPRDtRQUNoQjtZQUNFLE9BQU9BO0lBQ1g7QUFDRiJ9
|
package/package.json
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@discordeno/utils",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"types": "./dist/types/index.d.ts",
|
|
6
|
-
"exports": {
|
|
7
|
-
"types": "./dist/types/index.d.ts",
|
|
8
|
-
"import": "./dist/esm/index.js",
|
|
9
|
-
"require": "./dist/cjs/index.cjs"
|
|
10
|
-
},
|
|
3
|
+
"version": "22.0.1-next.011f0fe",
|
|
4
|
+
"exports": "./dist/index.js",
|
|
11
5
|
"type": "module",
|
|
12
6
|
"license": "Apache-2.0",
|
|
13
7
|
"repository": {
|
|
@@ -19,11 +13,10 @@
|
|
|
19
13
|
"!dist/.tsbuildinfo"
|
|
20
14
|
],
|
|
21
15
|
"scripts": {
|
|
22
|
-
"build": "swc src --strip-leading-paths
|
|
23
|
-
"build:type": "tsc --
|
|
16
|
+
"build": "swc src --strip-leading-paths src --out-dir dist",
|
|
17
|
+
"build:type": "tsc --declaration --emitDeclarationOnly --declarationDir dist",
|
|
24
18
|
"release-build": "yarn build && yarn build:type",
|
|
25
|
-
"
|
|
26
|
-
"lint": "biome lint --write",
|
|
19
|
+
"check": "biome check --write",
|
|
27
20
|
"test:unit-coverage": "c8 mocha --no-warnings 'tests/**/*.spec.ts'",
|
|
28
21
|
"test:unit": "c8 --r lcov mocha --no-warnings 'tests/**/*.spec.ts' && node ../../scripts/coveragePathFixing.js utils",
|
|
29
22
|
"test:unit:watch": "mocha --no-warnings --watch --parallel 'tests/**/*.spec.ts'",
|
|
@@ -33,22 +26,22 @@
|
|
|
33
26
|
"test:test-type": "tsc --project tests/tsconfig.json"
|
|
34
27
|
},
|
|
35
28
|
"dependencies": {
|
|
36
|
-
"@discordeno/types": "
|
|
29
|
+
"@discordeno/types": "22.0.1-next.011f0fe"
|
|
37
30
|
},
|
|
38
31
|
"devDependencies": {
|
|
39
|
-
"@biomejs/biome": "2.
|
|
40
|
-
"@swc/cli": "^0.
|
|
41
|
-
"@swc/core": "^1.
|
|
42
|
-
"@types/chai": "^5.2.
|
|
32
|
+
"@biomejs/biome": "2.3.11",
|
|
33
|
+
"@swc/cli": "^0.7.9",
|
|
34
|
+
"@swc/core": "^1.15.8",
|
|
35
|
+
"@types/chai": "^5.2.3",
|
|
43
36
|
"@types/mocha": "^10.0.10",
|
|
44
|
-
"@types/node": "^
|
|
45
|
-
"@types/sinon": "^
|
|
37
|
+
"@types/node": "^25.0.3",
|
|
38
|
+
"@types/sinon": "^21.0.0",
|
|
46
39
|
"c8": "^10.1.3",
|
|
47
|
-
"chai": "^
|
|
48
|
-
"mocha": "
|
|
49
|
-
"sinon": "^21.0.
|
|
40
|
+
"chai": "^6.2.2",
|
|
41
|
+
"mocha": "^11.7.5",
|
|
42
|
+
"sinon": "^21.0.1",
|
|
50
43
|
"ts-node": "^10.9.2",
|
|
51
44
|
"tsconfig": "*",
|
|
52
|
-
"typescript": "^5.
|
|
45
|
+
"typescript": "^5.9.3"
|
|
53
46
|
}
|
|
54
47
|
}
|