@discordeno/utils 21.0.1-next.fca0b40 → 22.0.1-next.0090dd2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/Collection.d.ts.map +1 -0
  2. package/dist/Collection.js +112 -0
  3. package/dist/{types/base64.d.ts → base64.d.ts} +7 -1
  4. package/dist/base64.d.ts.map +1 -0
  5. package/dist/base64.js +339 -0
  6. package/dist/bucket.d.ts.map +1 -0
  7. package/dist/bucket.js +81 -0
  8. package/dist/builders/embeds.d.ts.map +1 -0
  9. package/dist/builders/embeds.js +305 -0
  10. package/dist/builders.d.ts.map +1 -0
  11. package/dist/builders.js +5 -0
  12. package/dist/casing.d.ts.map +1 -0
  13. package/dist/casing.js +53 -0
  14. package/dist/colors.d.ts.map +1 -0
  15. package/dist/colors.js +467 -0
  16. package/dist/constants.d.ts +2 -0
  17. package/dist/constants.d.ts.map +1 -0
  18. package/dist/constants.js +3 -0
  19. package/dist/hash.d.ts.map +1 -0
  20. package/dist/hash.js +19 -0
  21. package/dist/{types/images.d.ts → images.d.ts} +40 -64
  22. package/dist/images.d.ts.map +1 -0
  23. package/dist/images.js +228 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +21 -0
  26. package/dist/logger.d.ts.map +1 -0
  27. package/dist/logger.js +115 -0
  28. package/dist/oauth2.d.ts +107 -0
  29. package/dist/oauth2.d.ts.map +1 -0
  30. package/dist/oauth2.js +48 -0
  31. package/dist/permissions.d.ts.map +1 -0
  32. package/dist/permissions.js +17 -0
  33. package/dist/reactions.d.ts.map +1 -0
  34. package/dist/{esm/reactions.js → reactions.js} +1 -1
  35. package/dist/snowflakes.d.ts.map +1 -0
  36. package/dist/snowflakes.js +11 -0
  37. package/dist/token.d.ts.map +1 -0
  38. package/dist/token.js +20 -0
  39. package/dist/{types/typeguards.d.ts → typeguards.d.ts} +1 -2
  40. package/dist/typeguards.d.ts.map +1 -0
  41. package/dist/typeguards.js +18 -0
  42. package/dist/urlToBase64.d.ts.map +1 -0
  43. package/dist/urlToBase64.js +9 -0
  44. package/dist/urls.d.ts.map +1 -0
  45. package/dist/urls.js +11 -0
  46. package/dist/utils.d.ts.map +1 -0
  47. package/dist/utils.js +21 -0
  48. package/package.json +21 -30
  49. package/dist/cjs/Collection.cjs +0 -122
  50. package/dist/cjs/base64.cjs +0 -276
  51. package/dist/cjs/bucket.cjs +0 -96
  52. package/dist/cjs/builders/embeds.cjs +0 -306
  53. package/dist/cjs/builders.cjs +0 -27
  54. package/dist/cjs/casing.cjs +0 -79
  55. package/dist/cjs/colors.cjs +0 -456
  56. package/dist/cjs/constants.cjs +0 -13
  57. package/dist/cjs/hash.cjs +0 -37
  58. package/dist/cjs/images.cjs +0 -149
  59. package/dist/cjs/index.cjs +0 -38
  60. package/dist/cjs/logger.cjs +0 -139
  61. package/dist/cjs/oauth2.cjs +0 -26
  62. package/dist/cjs/permissions.cjs +0 -35
  63. package/dist/cjs/reactions.cjs +0 -21
  64. package/dist/cjs/snowflakes.cjs +0 -32
  65. package/dist/cjs/token.cjs +0 -38
  66. package/dist/cjs/typeguards.cjs +0 -52
  67. package/dist/cjs/urlToBase64.cjs +0 -19
  68. package/dist/cjs/urls.cjs +0 -32
  69. package/dist/cjs/utils.cjs +0 -40
  70. package/dist/esm/Collection.js +0 -112
  71. package/dist/esm/base64.js +0 -262
  72. package/dist/esm/bucket.js +0 -81
  73. package/dist/esm/builders/embeds.js +0 -305
  74. package/dist/esm/builders.js +0 -5
  75. package/dist/esm/casing.js +0 -55
  76. package/dist/esm/colors.js +0 -467
  77. package/dist/esm/constants.js +0 -3
  78. package/dist/esm/hash.js +0 -19
  79. package/dist/esm/images.js +0 -204
  80. package/dist/esm/index.js +0 -21
  81. package/dist/esm/logger.js +0 -115
  82. package/dist/esm/oauth2.js +0 -16
  83. package/dist/esm/permissions.js +0 -17
  84. package/dist/esm/snowflakes.js +0 -11
  85. package/dist/esm/token.js +0 -20
  86. package/dist/esm/typeguards.js +0 -22
  87. package/dist/esm/urlToBase64.js +0 -9
  88. package/dist/esm/urls.js +0 -11
  89. package/dist/esm/utils.js +0 -21
  90. package/dist/types/Collection.d.ts.map +0 -1
  91. package/dist/types/base64.d.ts.map +0 -1
  92. package/dist/types/bucket.d.ts.map +0 -1
  93. package/dist/types/builders/embeds.d.ts.map +0 -1
  94. package/dist/types/builders.d.ts.map +0 -1
  95. package/dist/types/casing.d.ts.map +0 -1
  96. package/dist/types/colors.d.ts.map +0 -1
  97. package/dist/types/constants.d.ts +0 -2
  98. package/dist/types/constants.d.ts.map +0 -1
  99. package/dist/types/hash.d.ts.map +0 -1
  100. package/dist/types/images.d.ts.map +0 -1
  101. package/dist/types/index.d.ts.map +0 -1
  102. package/dist/types/logger.d.ts.map +0 -1
  103. package/dist/types/oauth2.d.ts +0 -69
  104. package/dist/types/oauth2.d.ts.map +0 -1
  105. package/dist/types/permissions.d.ts.map +0 -1
  106. package/dist/types/reactions.d.ts.map +0 -1
  107. package/dist/types/snowflakes.d.ts.map +0 -1
  108. package/dist/types/token.d.ts.map +0 -1
  109. package/dist/types/typeguards.d.ts.map +0 -1
  110. package/dist/types/urlToBase64.d.ts.map +0 -1
  111. package/dist/types/urls.d.ts.map +0 -1
  112. package/dist/types/utils.d.ts.map +0 -1
  113. /package/dist/{types/Collection.d.ts → Collection.d.ts} +0 -0
  114. /package/dist/{types/bucket.d.ts → bucket.d.ts} +0 -0
  115. /package/dist/{types/builders → builders}/embeds.d.ts +0 -0
  116. /package/dist/{types/builders.d.ts → builders.d.ts} +0 -0
  117. /package/dist/{types/casing.d.ts → casing.d.ts} +0 -0
  118. /package/dist/{types/colors.d.ts → colors.d.ts} +0 -0
  119. /package/dist/{types/hash.d.ts → hash.d.ts} +0 -0
  120. /package/dist/{types/index.d.ts → index.d.ts} +0 -0
  121. /package/dist/{types/logger.d.ts → logger.d.ts} +0 -0
  122. /package/dist/{types/permissions.d.ts → permissions.d.ts} +0 -0
  123. /package/dist/{types/reactions.d.ts → reactions.d.ts} +0 -0
  124. /package/dist/{types/snowflakes.d.ts → snowflakes.d.ts} +0 -0
  125. /package/dist/{types/token.d.ts → token.d.ts} +0 -0
  126. /package/dist/{types/urlToBase64.d.ts → urlToBase64.d.ts} +0 -0
  127. /package/dist/{types/urls.d.ts → urls.d.ts} +0 -0
  128. /package/dist/{types/utils.d.ts → utils.d.ts} +0 -0
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2dnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmdCcmlnaHRNYWdlbnRhLCBibGFjaywgYm9sZCwgY3lhbiwgZ3JheSwgaXRhbGljLCByZWQsIHllbGxvdyB9IGZyb20gJy4vY29sb3JzLmpzJztcblxuZXhwb3J0IGVudW0gTG9nTGV2ZWxzIHtcbiAgRGVidWcsXG4gIEluZm8sXG4gIFdhcm4sXG4gIEVycm9yLFxuICBGYXRhbCxcbn1cblxuY29uc3QgcHJlZml4ZXMgPSBuZXcgTWFwPExvZ0xldmVscywgc3RyaW5nPihbXG4gIFtMb2dMZXZlbHMuRGVidWcsICdERUJVRyddLFxuICBbTG9nTGV2ZWxzLkluZm8sICdJTkZPJ10sXG4gIFtMb2dMZXZlbHMuV2FybiwgJ1dBUk4nXSxcbiAgW0xvZ0xldmVscy5FcnJvciwgJ0VSUk9SJ10sXG4gIFtMb2dMZXZlbHMuRmF0YWwsICdGQVRBTCddLFxuXSk7XG5cbmNvbnN0IG5vQ29sb3I6IChzdHI6IHN0cmluZykgPT4gc3RyaW5nID0gKG1zZykgPT4gbXNnO1xuY29uc3QgY29sb3JGdW5jdGlvbnMgPSBuZXcgTWFwPExvZ0xldmVscywgKHN0cjogc3RyaW5nKSA9PiBzdHJpbmc+KFtcbiAgW0xvZ0xldmVscy5EZWJ1ZywgZ3JheV0sXG4gIFtMb2dMZXZlbHMuSW5mbywgY3lhbl0sXG4gIFtMb2dMZXZlbHMuV2FybiwgeWVsbG93XSxcbiAgW0xvZ0xldmVscy5FcnJvciwgKHN0cjogc3RyaW5nKSA9PiByZWQoc3RyKV0sXG4gIFtMb2dMZXZlbHMuRmF0YWwsIChzdHI6IHN0cmluZykgPT4gcmVkKGJvbGQoaXRhbGljKHN0cikpKV0sXG5dKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxvZ2dlcih7IGxvZ0xldmVsID0gTG9nTGV2ZWxzLkluZm8sIG5hbWUgfTogeyBsb2dMZXZlbD86IExvZ0xldmVsczsgbmFtZT86IHN0cmluZyB9ID0ge30pIHtcbiAgZnVuY3Rpb24gbG9nKGxldmVsOiBMb2dMZXZlbHMsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgaWYgKGxldmVsIDwgbG9nTGV2ZWwpIHJldHVybjtcblxuICAgIGxldCBjb2xvciA9IGNvbG9yRnVuY3Rpb25zLmdldChsZXZlbCk7XG4gICAgaWYgKCFjb2xvcikgY29sb3IgPSBub0NvbG9yO1xuXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgbG9nID0gW1xuICAgICAgYmdCcmlnaHRNYWdlbnRhKGJsYWNrKGBbJHtkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpfSAke2RhdGUudG9Mb2NhbGVUaW1lU3RyaW5nKCl9XWApKSxcbiAgICAgIGNvbG9yKHByZWZpeGVzLmdldChsZXZlbCkgPz8gJ0RFQlVHJyksXG4gICAgICBuYW1lID8gYCR7bmFtZX0gPmAgOiAnPicsXG4gICAgICAuLi5hcmdzLFxuICAgIF07XG5cbiAgICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgICBjYXNlIExvZ0xldmVscy5EZWJ1ZzpcbiAgICAgICAgcmV0dXJuIGNvbnNvbGUuZGVidWcoLi4ubG9nKTtcbiAgICAgIGNhc2UgTG9nTGV2ZWxzLkluZm86XG4gICAgICAgIHJldHVybiBjb25zb2xlLmluZm8oLi4ubG9nKTtcbiAgICAgIGNhc2UgTG9nTGV2ZWxzLldhcm46XG4gICAgICAgIHJldHVybiBjb25zb2xlLndhcm4oLi4ubG9nKTtcbiAgICAgIGNhc2UgTG9nTGV2ZWxzLkVycm9yOlxuICAgICAgICByZXR1cm4gY29uc29sZS5lcnJvciguLi5sb2cpO1xuICAgICAgY2FzZSBMb2dMZXZlbHMuRmF0YWw6XG4gICAgICAgIHJldHVybiBjb25zb2xlLmVycm9yKC4uLmxvZyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gY29uc29sZS5sb2coLi4ubG9nKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzZXRMZXZlbChsZXZlbDogTG9nTGV2ZWxzKSB7XG4gICAgbG9nTGV2ZWwgPSBsZXZlbDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlYnVnKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgbG9nKExvZ0xldmVscy5EZWJ1ZywgLi4uYXJncyk7XG4gIH1cblxuICBmdW5jdGlvbiBpbmZvKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgbG9nKExvZ0xldmVscy5JbmZvLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHdhcm4oLi4uYXJnczogYW55W10pIHtcbiAgICBsb2coTG9nTGV2ZWxzLldhcm4sIC4uLmFyZ3MpO1xuICB9XG5cbiAgZnVuY3Rpb24gZXJyb3IoLi4uYXJnczogYW55W10pIHtcbiAgICBsb2coTG9nTGV2ZWxzLkVycm9yLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZhdGFsKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgbG9nKExvZ0xldmVscy5GYXRhbCwgLi4uYXJncyk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGxvZyxcbiAgICBzZXRMZXZlbCxcbiAgICBkZWJ1ZyxcbiAgICBpbmZvLFxuICAgIHdhcm4sXG4gICAgZXJyb3IsXG4gICAgZmF0YWwsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBsb2dnZXIgPSBjcmVhdGVMb2dnZXIoeyBuYW1lOiAnRGlzY29yZGVubycgfSk7XG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iXSwibmFtZXMiOlsiYmdCcmlnaHRNYWdlbnRhIiwiYmxhY2siLCJib2xkIiwiY3lhbiIsImdyYXkiLCJpdGFsaWMiLCJyZWQiLCJ5ZWxsb3ciLCJMb2dMZXZlbHMiLCJwcmVmaXhlcyIsIk1hcCIsIm5vQ29sb3IiLCJtc2ciLCJjb2xvckZ1bmN0aW9ucyIsInN0ciIsImNyZWF0ZUxvZ2dlciIsImxvZ0xldmVsIiwibmFtZSIsImxvZyIsImxldmVsIiwiYXJncyIsImNvbG9yIiwiZ2V0IiwiZGF0ZSIsIkRhdGUiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJjb25zb2xlIiwiZGVidWciLCJpbmZvIiwid2FybiIsImVycm9yIiwic2V0TGV2ZWwiLCJmYXRhbCIsImxvZ2dlciJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZUFBZSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLE1BQU0sRUFBRUMsR0FBRyxFQUFFQyxNQUFNLFFBQVEsY0FBYztBQUU1RixPQUFPLElBQUEsQUFBS0MsbUNBQUFBOzs7Ozs7V0FBQUE7TUFNWDtBQUVELE1BQU1DLFdBQVcsSUFBSUMsSUFBdUI7SUFDMUM7O1FBQWtCO0tBQVE7SUFDMUI7O1FBQWlCO0tBQU87SUFDeEI7O1FBQWlCO0tBQU87SUFDeEI7O1FBQWtCO0tBQVE7SUFDMUI7O1FBQWtCO0tBQVE7Q0FDM0I7QUFFRCxNQUFNQyxVQUFtQyxDQUFDQyxNQUFRQTtBQUNsRCxNQUFNQyxpQkFBaUIsSUFBSUgsSUFBd0M7SUFDakU7O1FBQWtCTjtLQUFLO0lBQ3ZCOztRQUFpQkQ7S0FBSztJQUN0Qjs7UUFBaUJJO0tBQU87SUFDeEI7O1FBQWtCLENBQUNPLE1BQWdCUixJQUFJUTtLQUFLO0lBQzVDOztRQUFrQixDQUFDQSxNQUFnQlIsSUFBSUosS0FBS0csT0FBT1M7S0FBTztDQUMzRDtBQUVELE9BQU8sU0FBU0MsYUFBYSxFQUFFQyxZQUF5QixFQUFFQyxJQUFJLEVBQTJDLEdBQUcsQ0FBQyxDQUFDO0lBQzVHLFNBQVNDLElBQUlDLEtBQWdCLEVBQUUsR0FBR0MsSUFBVztRQUMzQyxJQUFJRCxRQUFRSCxVQUFVO1FBRXRCLElBQUlLLFFBQVFSLGVBQWVTLEdBQUcsQ0FBQ0g7UUFDL0IsSUFBSSxDQUFDRSxPQUFPQSxRQUFRVjtRQUVwQixNQUFNWSxPQUFPLElBQUlDO1FBQ2pCLE1BQU1OLE9BQU07WUFDVmxCLGdCQUFnQkMsTUFBTSxDQUFDLENBQUMsRUFBRXNCLEtBQUtFLGtCQUFrQixHQUFHLENBQUMsRUFBRUYsS0FBS0csa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1lBQ25GTCxNQUFNWixTQUFTYSxHQUFHLENBQUNILFVBQVU7WUFDN0JGLE9BQU8sR0FBR0EsS0FBSyxFQUFFLENBQUMsR0FBRztlQUNsQkc7U0FDSjtRQUVELE9BQVFEO1lBQ047Z0JBQ0UsT0FBT1EsUUFBUUMsS0FBSyxJQUFJVjtZQUMxQjtnQkFDRSxPQUFPUyxRQUFRRSxJQUFJLElBQUlYO1lBQ3pCO2dCQUNFLE9BQU9TLFFBQVFHLElBQUksSUFBSVo7WUFDekI7Z0JBQ0UsT0FBT1MsUUFBUUksS0FBSyxJQUFJYjtZQUMxQjtnQkFDRSxPQUFPUyxRQUFRSSxLQUFLLElBQUliO1lBQzFCO2dCQUNFLE9BQU9TLFFBQVFULEdBQUcsSUFBSUE7UUFDMUI7SUFDRjtJQUVBLFNBQVNjLFNBQVNiLEtBQWdCO1FBQ2hDSCxXQUFXRztJQUNiO0lBRUEsU0FBU1MsTUFBTSxHQUFHUixJQUFXO1FBQzNCRixVQUF3QkU7SUFDMUI7SUFFQSxTQUFTUyxLQUFLLEdBQUdULElBQVc7UUFDMUJGLFVBQXVCRTtJQUN6QjtJQUVBLFNBQVNVLEtBQUssR0FBR1YsSUFBVztRQUMxQkYsVUFBdUJFO0lBQ3pCO0lBRUEsU0FBU1csTUFBTSxHQUFHWCxJQUFXO1FBQzNCRixVQUF3QkU7SUFDMUI7SUFFQSxTQUFTYSxNQUFNLEdBQUdiLElBQVc7UUFDM0JGLFVBQXdCRTtJQUMxQjtJQUVBLE9BQU87UUFDTEY7UUFDQWM7UUFDQUo7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUU7SUFDRjtBQUNGO0FBRUEsT0FBTyxNQUFNQyxTQUFTbkIsYUFBYTtJQUFFRSxNQUFNO0FBQWEsR0FBRztBQUMzRCxlQUFlaUIsT0FBTyJ9
@@ -0,0 +1,107 @@
1
+ import type { BigString, DiscordApplicationIntegrationType, OAuth2Scope, PermissionStrings } from '@discordeno/types';
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>;
26
+ export interface CreateOAuth2LinkOptions {
27
+ /**
28
+ * The type of response
29
+ *
30
+ * @remarks
31
+ * Should be defined only if using either OAuth2 authorization, implicit or not, or [advanced bot authorization](https://docs.discord.com/developers/topics/oauth2#advanced-bot-authorization)
32
+ */
33
+ responseType?: 'code' | 'token';
34
+ /** The id of the application */
35
+ clientId: BigString;
36
+ /** The scopes for the application */
37
+ scope: OAuth2Scope[];
38
+ /**
39
+ * The optional state for security
40
+ *
41
+ * @see https://docs.discord.com/developers/topics/oauth2#state-and-security
42
+ */
43
+ state?: string;
44
+ /**
45
+ * The redirect uri for after the authentication
46
+ *
47
+ * @remarks
48
+ * Should be defined only if using either OAuth2 authorization, implicit or not, or [advanced bot authorization](https://docs.discord.com/developers/topics/oauth2#advanced-bot-authorization)
49
+ */
50
+ redirectUri?: string;
51
+ /**
52
+ * The type of prompt to give to the user
53
+ *
54
+ * @remarks
55
+ * If set to `none`, it will skip the authorization screen and redirect them back to your redirect URI without requesting their authorization.
56
+ * For passthrough scopes, like bot and webhook.incoming, authorization is always required.
57
+ */
58
+ prompt?: 'consent' | 'none';
59
+ /**
60
+ * The permissions of the invited bot
61
+ *
62
+ * @remarks
63
+ * Should be defined only in a [bot authorization flow](https://docs.discord.com/developers/topics/oauth2#bot-authorization-flow) or with [advanced bot authorization](https://docs.discord.com/developers/topics/oauth2#advanced-bot-authorization)
64
+ */
65
+ permissions?: BigString | PermissionStrings[];
66
+ /**
67
+ * Pre-fills the dropdown picker with a guild for the user
68
+ *
69
+ * @remarks
70
+ * Should be defined only in a [bot authorization flow](https://docs.discord.com/developers/topics/oauth2#bot-authorization-flow) or with [advanced bot authorization](https://docs.discord.com/developers/topics/oauth2#advanced-bot-authorization) or with the `webhook.incoming` scope
71
+ */
72
+ guildId?: BigString;
73
+ /**
74
+ * Disallows the user from changing the guild dropdown if set to true
75
+ *
76
+ * @remarks
77
+ * Should be defined only in a [bot authorization flow](https://docs.discord.com/developers/topics/oauth2#bot-authorization-flow), with [advanced bot authorization](https://docs.discord.com/developers/topics/oauth2#advanced-bot-authorization) or with the `webhook.incoming` scope
78
+ */
79
+ disableGuildSelect?: boolean;
80
+ /**
81
+ * Specifies the installation context for the authorization
82
+ *
83
+ * @remarks
84
+ * Should be defined only when {@link scope} includes {@link OAuth2Scope.ApplicationsCommands}.
85
+ *
86
+ * When set to GuildInstall (0) the application will be authorized for installation to a server, and when set to UserInstall (1) the application will be authorized for installation to a user.
87
+ *
88
+ * The application must be configured in the Developer Portal to support the provided `integrationType`.
89
+ */
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';
106
+ }
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,CAAC;AAItH,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,CAAC;IAChC,gCAAgC;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,qCAAqC;IACrC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,iBAAiB,EAAE,CAAC;IAC9C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,iCAAiC,CAAC;IACpD;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B"}
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9vYXV0aDIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCaWdTdHJpbmcsIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSwgT0F1dGgyU2NvcGUsIFBlcm1pc3Npb25TdHJpbmdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHsgZW5jb2RlQmFzZTY0VXJsIH0gZnJvbSAnLi9iYXNlNjQuanMnO1xuaW1wb3J0IHsgY2FsY3VsYXRlQml0cyB9IGZyb20gJy4vcGVybWlzc2lvbnMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT0F1dGgyTGluayhvcHRpb25zOiBDcmVhdGVPQXV0aDJMaW5rT3B0aW9ucyk6IHN0cmluZyB7XG4gIGNvbnN0IGpvaW5lZFNjb3BlU3RyaW5nID0gb3B0aW9ucy5zY29wZS5qb2luKCclMjAnKTtcblxuICBsZXQgdXJsID0gYGh0dHBzOi8vZGlzY29yZC5jb20vb2F1dGgyL2F1dGhvcml6ZT9jbGllbnRfaWQ9JHtvcHRpb25zLmNsaWVudElkfSZzY29wZT0ke2pvaW5lZFNjb3BlU3RyaW5nfWA7XG5cbiAgaWYgKG9wdGlvbnMucmVzcG9uc2VUeXBlKSB1cmwgKz0gYCZyZXNwb25zZV90eXBlPSR7b3B0aW9ucy5yZXNwb25zZVR5cGV9YDtcbiAgaWYgKG9wdGlvbnMuc3RhdGUpIHVybCArPSBgJnN0YXRlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KG9wdGlvbnMuc3RhdGUpfWA7XG4gIGlmIChvcHRpb25zLnJlZGlyZWN0VXJpKSB1cmwgKz0gYCZyZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQob3B0aW9ucy5yZWRpcmVjdFVyaSl9YDtcbiAgaWYgKG9wdGlvbnMucHJvbXB0KSB1cmwgKz0gYCZwcm9tcHQ9JHtvcHRpb25zLnByb21wdH1gO1xuICBpZiAob3B0aW9ucy5wZXJtaXNzaW9ucykgdXJsICs9IGAmcGVybWlzc2lvbnM9JHtBcnJheS5pc0FycmF5KG9wdGlvbnMucGVybWlzc2lvbnMpID8gY2FsY3VsYXRlQml0cyhvcHRpb25zLnBlcm1pc3Npb25zKSA6IG9wdGlvbnMucGVybWlzc2lvbnN9YDtcbiAgaWYgKG9wdGlvbnMuZ3VpbGRJZCkgdXJsICs9IGAmZ3VpbGRfaWQ9JHtvcHRpb25zLmd1aWxkSWR9YDtcbiAgaWYgKG9wdGlvbnMuZGlzYWJsZUd1aWxkU2VsZWN0ICE9PSB1bmRlZmluZWQpIHVybCArPSBgJmRpc2FibGVfZ3VpbGRfc2VsZWN0PSR7b3B0aW9ucy5kaXNhYmxlR3VpbGRTZWxlY3R9YDtcbiAgaWYgKG9wdGlvbnMuaW50ZWdyYXRpb25UeXBlKSB1cmwgKz0gYCZpbnRlZ3JhdGlvbl90eXBlPSR7b3B0aW9ucy5pbnRlZ3JhdGlvblR5cGV9YDtcblxuICAvLyBPcHRpb25zIGRlZmluZWQgYnkgUkZDIDc2MzYgKGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzYzNilcbiAgaWYgKG9wdGlvbnMuY29kZUNoYWxsZW5nZSkgdXJsICs9IGAmY29kZV9jaGFsbGVuZ2U9JHtvcHRpb25zLmNvZGVDaGFsbGVuZ2V9YDtcbiAgaWYgKG9wdGlvbnMuY29kZUNoYWxsZW5nZU1ldGhvZCkgdXJsICs9IGAmY29kZV9jaGFsbGVuZ2VfbWV0aG9kPSR7b3B0aW9ucy5jb2RlQ2hhbGxlbmdlTWV0aG9kfWA7XG5cbiAgcmV0dXJuIHVybDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBjb2RlIHZlcmlmaWVyIGZvciB1c2UgaW4gdGhlIFBLQ0UgZXh0ZW5zaW9uIHRvIE9BdXRoMi5cbiAqXG4gKiBAcGFyYW0gb2N0ZXRMZW5ndGggLSBUaGUgbGVuZ3RoIG9mIHRoZSBjb2RlIHZlcmlmaWVyIGluIG9jdGV0cyAoZGVmYXVsdCBpcyAzMikuXG4gKiBAcmV0dXJuIFRoZSBiYXNlNjR1cmwgZW5jb2RlZCBjb2RlIHZlcmlmaWVyXG4gKlxuICogQHJlbWFya3NcbiAqIFRoZSBlbnRyb3B5IG9mIHRoZSBjb2RlIHZlcmlmaWVyIHNob3VsZCBiZSBiZXR3ZWVuIDI1NiBhbmQgNzY4IGJpdHMgKDMyIHRvIDk2IG9jdGV0cyksIGFzIHRoZSByZXN1bHRpbmcgYmFzZTY0dXJsIGVuY29kZWQgc3RyaW5nIGhhcyB0byBiZSBiZXR3ZWVuIDQzIGFuZCAxMjggY2hhcmFjdGVycyBsb25nLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3NjM2I3NlY3Rpb24tNy4xIGZvciB0aGUgb2N0ZXQgbGVuZ3RoXG4gKiBAc2VlIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzYzNiNzZWN0aW9uLTQuMSBmb3Igd2h5IDMyIG9jdGV0cyBpcyB0aGUgZGVmYXVsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVDb2RlVmVyaWZpZXIob2N0ZXRMZW5ndGg6IG51bWJlciA9IDMyKSB7XG4gIGNvbnN0IHJhbmRvbUJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkob2N0ZXRMZW5ndGgpO1xuICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHJhbmRvbUJ5dGVzKTtcbiAgcmV0dXJuIGVuY29kZUJhc2U2NFVybChyYW5kb21CeXRlcyk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvZGUgY2hhbGxlbmdlIGZyb20gdGhlIGNvZGUgdmVyaWZpZXIgdXNpbmcgdGhlIHNwZWNpZmllZCBtZXRob2QuXG4gKlxuICogQHBhcmFtIHZlcmlmaWVyIC0gVGhlIGNvZGUgdmVyaWZpZXIgdG8gdXNlLlxuICogQHJldHVybnMgVGhlIGNvZGUgY2hhbGxlbmdlLlxuICpcbiAqIEByZW1hcmtzXG4gKiBUaGlzIHBlcmZvcm1zIGEgU0hBLTI1NiBoYXNoIG9uIHRoZSB2ZXJpZmllciBhbmQgZW5jb2RlcyBpdCB1c2luZyBiYXNlNjR1cmwgZW5jb2RpbmcuIERpc2NvcmQgb25seSBzdXBwb3J0cyAnUzI1NicgYXMgdGhlIGNvZGUgY2hhbGxlbmdlIG1ldGhvZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUNvZGVDaGFsbGVuZ2UodmVyaWZpZXI6IHN0cmluZykge1xuICBjb25zdCBoYXNoZWQgPSBhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh2ZXJpZmllcikpO1xuICByZXR1cm4gZW5jb2RlQmFzZTY0VXJsKGhhc2hlZCk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlT0F1dGgyTGlua09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcmVzcG9uc2VcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpZiB1c2luZyBlaXRoZXIgT0F1dGgyIGF1dGhvcml6YXRpb24sIGltcGxpY2l0IG9yIG5vdCwgb3IgW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2RvY3MuZGlzY29yZC5jb20vZGV2ZWxvcGVycy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcmVzcG9uc2VUeXBlPzogJ2NvZGUnIHwgJ3Rva2VuJztcbiAgLyoqIFRoZSBpZCBvZiB0aGUgYXBwbGljYXRpb24gKi9cbiAgY2xpZW50SWQ6IEJpZ1N0cmluZztcbiAgLyoqIFRoZSBzY29wZXMgZm9yIHRoZSBhcHBsaWNhdGlvbiAqL1xuICBzY29wZTogT0F1dGgyU2NvcGVbXTtcbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBzdGF0ZSBmb3Igc2VjdXJpdHlcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZGlzY29yZC5jb20vZGV2ZWxvcGVycy90b3BpY3Mvb2F1dGgyI3N0YXRlLWFuZC1zZWN1cml0eVxuICAgKi9cbiAgc3RhdGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcmVkaXJlY3QgdXJpIGZvciBhZnRlciB0aGUgYXV0aGVudGljYXRpb25cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpZiB1c2luZyBlaXRoZXIgT0F1dGgyIGF1dGhvcml6YXRpb24sIGltcGxpY2l0IG9yIG5vdCwgb3IgW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2RvY3MuZGlzY29yZC5jb20vZGV2ZWxvcGVycy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcmVkaXJlY3RVcmk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBwcm9tcHQgdG8gZ2l2ZSB0byB0aGUgdXNlclxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBJZiBzZXQgdG8gYG5vbmVgLCBpdCB3aWxsIHNraXAgdGhlIGF1dGhvcml6YXRpb24gc2NyZWVuIGFuZCByZWRpcmVjdCB0aGVtIGJhY2sgdG8geW91ciByZWRpcmVjdCBVUkkgd2l0aG91dCByZXF1ZXN0aW5nIHRoZWlyIGF1dGhvcml6YXRpb24uXG4gICAqIEZvciBwYXNzdGhyb3VnaCBzY29wZXMsIGxpa2UgYm90IGFuZCB3ZWJob29rLmluY29taW5nLCBhdXRob3JpemF0aW9uIGlzIGFsd2F5cyByZXF1aXJlZC5cbiAgICovXG4gIHByb21wdD86ICdjb25zZW50JyB8ICdub25lJztcbiAgLyoqXG4gICAqIFRoZSBwZXJtaXNzaW9ucyBvZiB0aGUgaW52aXRlZCBib3RcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpbiBhIFtib3QgYXV0aG9yaXphdGlvbiBmbG93XShodHRwczovL2RvY3MuZGlzY29yZC5jb20vZGV2ZWxvcGVycy90b3BpY3Mvb2F1dGgyI2JvdC1hdXRob3JpemF0aW9uLWZsb3cpIG9yIHdpdGggW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2RvY3MuZGlzY29yZC5jb20vZGV2ZWxvcGVycy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcGVybWlzc2lvbnM/OiBCaWdTdHJpbmcgfCBQZXJtaXNzaW9uU3RyaW5nc1tdO1xuICAvKipcbiAgICogUHJlLWZpbGxzIHRoZSBkcm9wZG93biBwaWNrZXIgd2l0aCBhIGd1aWxkIGZvciB0aGUgdXNlclxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IGluIGEgW2JvdCBhdXRob3JpemF0aW9uIGZsb3ddKGh0dHBzOi8vZG9jcy5kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL3RvcGljcy9vYXV0aDIjYm90LWF1dGhvcml6YXRpb24tZmxvdykgb3Igd2l0aCBbYWR2YW5jZWQgYm90IGF1dGhvcml6YXRpb25dKGh0dHBzOi8vZG9jcy5kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL3RvcGljcy9vYXV0aDIjYWR2YW5jZWQtYm90LWF1dGhvcml6YXRpb24pIG9yIHdpdGggdGhlIGB3ZWJob29rLmluY29taW5nYCBzY29wZVxuICAgKi9cbiAgZ3VpbGRJZD86IEJpZ1N0cmluZztcbiAgLyoqXG4gICAqIERpc2FsbG93cyB0aGUgdXNlciBmcm9tIGNoYW5naW5nIHRoZSBndWlsZCBkcm9wZG93biBpZiBzZXQgdG8gdHJ1ZVxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IGluIGEgW2JvdCBhdXRob3JpemF0aW9uIGZsb3ddKGh0dHBzOi8vZG9jcy5kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL3RvcGljcy9vYXV0aDIjYm90LWF1dGhvcml6YXRpb24tZmxvdyksIHdpdGggW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2RvY3MuZGlzY29yZC5jb20vZGV2ZWxvcGVycy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKSBvciB3aXRoIHRoZSBgd2ViaG9vay5pbmNvbWluZ2Agc2NvcGVcbiAgICovXG4gIGRpc2FibGVHdWlsZFNlbGVjdD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGluc3RhbGxhdGlvbiBjb250ZXh0IGZvciB0aGUgYXV0aG9yaXphdGlvblxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IHdoZW4ge0BsaW5rIHNjb3BlfSBpbmNsdWRlcyB7QGxpbmsgT0F1dGgyU2NvcGUuQXBwbGljYXRpb25zQ29tbWFuZHN9LlxuICAgKlxuICAgKiBXaGVuIHNldCB0byBHdWlsZEluc3RhbGwgKDApIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGJlIGF1dGhvcml6ZWQgZm9yIGluc3RhbGxhdGlvbiB0byBhIHNlcnZlciwgYW5kIHdoZW4gc2V0IHRvIFVzZXJJbnN0YWxsICgxKSB0aGUgYXBwbGljYXRpb24gd2lsbCBiZSBhdXRob3JpemVkIGZvciBpbnN0YWxsYXRpb24gdG8gYSB1c2VyLlxuICAgKlxuICAgKiBUaGUgYXBwbGljYXRpb24gbXVzdCBiZSBjb25maWd1cmVkIGluIHRoZSBEZXZlbG9wZXIgUG9ydGFsIHRvIHN1cHBvcnQgdGhlIHByb3ZpZGVkIGBpbnRlZ3JhdGlvblR5cGVgLlxuICAgKi9cbiAgaW50ZWdyYXRpb25UeXBlPzogRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlO1xuICAvKipcbiAgICogVGhlIGNvZGUgY2hhbGxlbmdlIHVzZWQgdG8gdmVyaWZ5IHRoZSBhdXRob3JpemF0aW9uIHJlcXVlc3RcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzc2MzYjc2VjdGlvbi00LjFcbiAgICovXG4gIGNvZGVDaGFsbGVuZ2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY2hhbGxlbmdlIG1ldGhvZCB1c2VkIHRvIGdlbmVyYXRlIHRoZSBjb2RlIGNoYWxsZW5nZVxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBXaGlsZSB0aGUgUkZDIGFsbG93cyBmb3IgdGhlICdwbGFpbicgdmFsdWUgdG8gYmUgc2V0LCBkaXNjb3JkIGRvZXMgbm90IGFsbG93IGl0XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3NjM2I3NlY3Rpb24tNC4yXG4gICAqL1xuICBjb2RlQ2hhbGxlbmdlTWV0aG9kPzogJ1MyNTYnO1xufVxuIl0sIm5hbWVzIjpbImVuY29kZUJhc2U2NFVybCIsImNhbGN1bGF0ZUJpdHMiLCJjcmVhdGVPQXV0aDJMaW5rIiwib3B0aW9ucyIsImpvaW5lZFNjb3BlU3RyaW5nIiwic2NvcGUiLCJqb2luIiwidXJsIiwiY2xpZW50SWQiLCJyZXNwb25zZVR5cGUiLCJzdGF0ZSIsImVuY29kZVVSSUNvbXBvbmVudCIsInJlZGlyZWN0VXJpIiwicHJvbXB0IiwicGVybWlzc2lvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJndWlsZElkIiwiZGlzYWJsZUd1aWxkU2VsZWN0IiwidW5kZWZpbmVkIiwiaW50ZWdyYXRpb25UeXBlIiwiY29kZUNoYWxsZW5nZSIsImNvZGVDaGFsbGVuZ2VNZXRob2QiLCJnZW5lcmF0ZUNvZGVWZXJpZmllciIsIm9jdGV0TGVuZ3RoIiwicmFuZG9tQnl0ZXMiLCJVaW50OEFycmF5IiwiY3J5cHRvIiwiZ2V0UmFuZG9tVmFsdWVzIiwiY3JlYXRlQ29kZUNoYWxsZW5nZSIsInZlcmlmaWVyIiwiaGFzaGVkIiwic3VidGxlIiwiZGlnZXN0IiwiVGV4dEVuY29kZXIiLCJlbmNvZGUiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGVBQWUsUUFBUSxjQUFjO0FBQzlDLFNBQVNDLGFBQWEsUUFBUSxtQkFBbUI7QUFFakQsT0FBTyxTQUFTQyxpQkFBaUJDLE9BQWdDO0lBQy9ELE1BQU1DLG9CQUFvQkQsUUFBUUUsS0FBSyxDQUFDQyxJQUFJLENBQUM7SUFFN0MsSUFBSUMsTUFBTSxDQUFDLCtDQUErQyxFQUFFSixRQUFRSyxRQUFRLENBQUMsT0FBTyxFQUFFSixtQkFBbUI7SUFFekcsSUFBSUQsUUFBUU0sWUFBWSxFQUFFRixPQUFPLENBQUMsZUFBZSxFQUFFSixRQUFRTSxZQUFZLEVBQUU7SUFDekUsSUFBSU4sUUFBUU8sS0FBSyxFQUFFSCxPQUFPLENBQUMsT0FBTyxFQUFFSSxtQkFBbUJSLFFBQVFPLEtBQUssR0FBRztJQUN2RSxJQUFJUCxRQUFRUyxXQUFXLEVBQUVMLE9BQU8sQ0FBQyxjQUFjLEVBQUVJLG1CQUFtQlIsUUFBUVMsV0FBVyxHQUFHO0lBQzFGLElBQUlULFFBQVFVLE1BQU0sRUFBRU4sT0FBTyxDQUFDLFFBQVEsRUFBRUosUUFBUVUsTUFBTSxFQUFFO0lBQ3RELElBQUlWLFFBQVFXLFdBQVcsRUFBRVAsT0FBTyxDQUFDLGFBQWEsRUFBRVEsTUFBTUMsT0FBTyxDQUFDYixRQUFRVyxXQUFXLElBQUliLGNBQWNFLFFBQVFXLFdBQVcsSUFBSVgsUUFBUVcsV0FBVyxFQUFFO0lBQy9JLElBQUlYLFFBQVFjLE9BQU8sRUFBRVYsT0FBTyxDQUFDLFVBQVUsRUFBRUosUUFBUWMsT0FBTyxFQUFFO0lBQzFELElBQUlkLFFBQVFlLGtCQUFrQixLQUFLQyxXQUFXWixPQUFPLENBQUMsc0JBQXNCLEVBQUVKLFFBQVFlLGtCQUFrQixFQUFFO0lBQzFHLElBQUlmLFFBQVFpQixlQUFlLEVBQUViLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRUosUUFBUWlCLGVBQWUsRUFBRTtJQUVsRiw4RUFBOEU7SUFDOUUsSUFBSWpCLFFBQVFrQixhQUFhLEVBQUVkLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRUosUUFBUWtCLGFBQWEsRUFBRTtJQUM1RSxJQUFJbEIsUUFBUW1CLG1CQUFtQixFQUFFZixPQUFPLENBQUMsdUJBQXVCLEVBQUVKLFFBQVFtQixtQkFBbUIsRUFBRTtJQUUvRixPQUFPZjtBQUNUO0FBRUE7Ozs7Ozs7Ozs7O0NBV0MsR0FDRCxPQUFPLFNBQVNnQixxQkFBcUJDLGNBQXNCLEVBQUU7SUFDM0QsTUFBTUMsY0FBYyxJQUFJQyxXQUFXRjtJQUNuQ0csT0FBT0MsZUFBZSxDQUFDSDtJQUN2QixPQUFPekIsZ0JBQWdCeUI7QUFDekI7QUFFQTs7Ozs7Ozs7Q0FRQyxHQUNELE9BQU8sZUFBZUksb0JBQW9CQyxRQUFnQjtJQUN4RCxNQUFNQyxTQUFTLE1BQU1KLE9BQU9LLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLFdBQVcsSUFBSUMsY0FBY0MsTUFBTSxDQUFDTDtJQUM5RSxPQUFPOUIsZ0JBQWdCK0I7QUFDekIifQ==
@@ -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,CAAC;AAG3D,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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wZXJtaXNzaW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBlcm1pc3Npb25TdHJpbmdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHsgQml0d2lzZVBlcm1pc3Npb25GbGFncyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJztcblxuLyoqIFRoaXMgZnVuY3Rpb24gY29udmVydHMgYSBiaXR3aXNlIHN0cmluZyB0byBwZXJtaXNzaW9uIHN0cmluZ3MgKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVQZXJtaXNzaW9ucyhwZXJtaXNzaW9uQml0czogYmlnaW50KTogUGVybWlzc2lvblN0cmluZ3NbXSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhCaXR3aXNlUGVybWlzc2lvbkZsYWdzKS5maWx0ZXIoKHBlcm1pc3Npb24pID0+IHtcbiAgICAvLyBTaW5jZSBPYmplY3Qua2V5cygpIG5vdCBvbmx5IHJldHVybnMgdGhlIHBlcm1pc3Npb24gbmFtZXMgYnV0IGFsc28gdGhlIGJpdCB2YWx1ZXMgd2UgbmVlZCB0byByZXR1cm4gZmFsc2UgaWYgaXQgaXMgYSBOdW1iZXJcbiAgICBpZiAoTnVtYmVyKHBlcm1pc3Npb24pKSByZXR1cm4gZmFsc2U7XG4gICAgLy8gQ2hlY2sgaWYgcGVybWlzc2lvbkJpdHMgaGFzIHRoaXMgcGVybWlzc2lvblxuICAgIHJldHVybiBwZXJtaXNzaW9uQml0cyAmIEJpdHdpc2VQZXJtaXNzaW9uRmxhZ3NbcGVybWlzc2lvbiBhcyBQZXJtaXNzaW9uU3RyaW5nc107XG4gIH0pIGFzIFBlcm1pc3Npb25TdHJpbmdzW107XG59XG5cbi8qKiBUaGlzIGZ1bmN0aW9uIGNvbnZlcnRzIGFuIGFycmF5IG9mIHBlcm1pc3Npb25zIGludG8gdGhlIGJpdHdpc2Ugc3RyaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUJpdHMocGVybWlzc2lvbnM6IFBlcm1pc3Npb25TdHJpbmdzW10pOiBzdHJpbmcge1xuICByZXR1cm4gcGVybWlzc2lvbnNcbiAgICAucmVkdWNlKChiaXRzLCBwZXJtKSA9PiB7XG4gICAgICBiaXRzIHw9IEJpdHdpc2VQZXJtaXNzaW9uRmxhZ3NbcGVybV07XG4gICAgICByZXR1cm4gYml0cztcbiAgICB9LCAwbilcbiAgICAudG9TdHJpbmcoKTtcbn1cbiJdLCJuYW1lcyI6WyJCaXR3aXNlUGVybWlzc2lvbkZsYWdzIiwiY2FsY3VsYXRlUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9uQml0cyIsIk9iamVjdCIsImtleXMiLCJmaWx0ZXIiLCJwZXJtaXNzaW9uIiwiTnVtYmVyIiwiY2FsY3VsYXRlQml0cyIsInBlcm1pc3Npb25zIiwicmVkdWNlIiwiYml0cyIsInBlcm0iLCJ0b1N0cmluZyJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0Esc0JBQXNCLFFBQVEsb0JBQW9CO0FBRTNELGtFQUFrRSxHQUNsRSxPQUFPLFNBQVNDLHFCQUFxQkMsY0FBc0I7SUFDekQsT0FBT0MsT0FBT0MsSUFBSSxDQUFDSix3QkFBd0JLLE1BQU0sQ0FBQyxDQUFDQztRQUNqRCw4SEFBOEg7UUFDOUgsSUFBSUMsT0FBT0QsYUFBYSxPQUFPO1FBQy9CLDhDQUE4QztRQUM5QyxPQUFPSixpQkFBaUJGLHNCQUFzQixDQUFDTSxXQUFnQztJQUNqRjtBQUNGO0FBRUEsNEVBQTRFLEdBQzVFLE9BQU8sU0FBU0UsY0FBY0MsV0FBZ0M7SUFDNUQsT0FBT0EsWUFDSkMsTUFBTSxDQUFDLENBQUNDLE1BQU1DO1FBQ2JELFFBQVFYLHNCQUFzQixDQUFDWSxLQUFLO1FBQ3BDLE9BQU9EO0lBQ1QsR0FBRyxFQUFFLEVBQ0pFLFFBQVE7QUFDYiJ9
@@ -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"}
@@ -8,4 +8,4 @@
8
8
  return reaction;
9
9
  }
10
10
 
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWFjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIENvbnZlcnRzIGFuIHJlYWN0aW9uIGVtb2ppIHVuaWNvZGUgc3RyaW5nIHRvIHRoZSBkaXNjb3JkIHJlcXVpcmVkIGZvcm0gb2YgbmFtZTppZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NSZWFjdGlvblN0cmluZyhyZWFjdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHJlYWN0aW9uLnN0YXJ0c1dpdGgoJzw6JykpIHtcbiAgICByZXR1cm4gcmVhY3Rpb24uc3Vic3RyaW5nKDIsIHJlYWN0aW9uLmxlbmd0aCAtIDEpXG4gIH1cblxuICBpZiAocmVhY3Rpb24uc3RhcnRzV2l0aCgnPGE6JykpIHtcbiAgICByZXR1cm4gcmVhY3Rpb24uc3Vic3RyaW5nKDMsIHJlYWN0aW9uLmxlbmd0aCAtIDEpXG4gIH1cblxuICByZXR1cm4gcmVhY3Rpb25cbn1cbiJdLCJuYW1lcyI6WyJwcm9jZXNzUmVhY3Rpb25TdHJpbmciLCJyZWFjdGlvbiIsInN0YXJ0c1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiXSwibWFwcGluZ3MiOiJBQUFBLHNGQUFzRixHQUN0RixPQUFPLFNBQVNBLHNCQUFzQkMsUUFBZ0I7SUFDcEQsSUFBSUEsU0FBU0MsVUFBVSxDQUFDLE9BQU87UUFDN0IsT0FBT0QsU0FBU0UsU0FBUyxDQUFDLEdBQUdGLFNBQVNHLE1BQU0sR0FBRztJQUNqRDtJQUVBLElBQUlILFNBQVNDLFVBQVUsQ0FBQyxRQUFRO1FBQzlCLE9BQU9ELFNBQVNFLFNBQVMsQ0FBQyxHQUFHRixTQUFTRyxNQUFNLEdBQUc7SUFDakQ7SUFFQSxPQUFPSDtBQUNUIn0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWFjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIENvbnZlcnRzIGFuIHJlYWN0aW9uIGVtb2ppIHVuaWNvZGUgc3RyaW5nIHRvIHRoZSBkaXNjb3JkIHJlcXVpcmVkIGZvcm0gb2YgbmFtZTppZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NSZWFjdGlvblN0cmluZyhyZWFjdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHJlYWN0aW9uLnN0YXJ0c1dpdGgoJzw6JykpIHtcbiAgICByZXR1cm4gcmVhY3Rpb24uc3Vic3RyaW5nKDIsIHJlYWN0aW9uLmxlbmd0aCAtIDEpO1xuICB9XG5cbiAgaWYgKHJlYWN0aW9uLnN0YXJ0c1dpdGgoJzxhOicpKSB7XG4gICAgcmV0dXJuIHJlYWN0aW9uLnN1YnN0cmluZygzLCByZWFjdGlvbi5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIHJldHVybiByZWFjdGlvbjtcbn1cbiJdLCJuYW1lcyI6WyJwcm9jZXNzUmVhY3Rpb25TdHJpbmciLCJyZWFjdGlvbiIsInN0YXJ0c1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiXSwibWFwcGluZ3MiOiJBQUFBLHNGQUFzRixHQUN0RixPQUFPLFNBQVNBLHNCQUFzQkMsUUFBZ0I7SUFDcEQsSUFBSUEsU0FBU0MsVUFBVSxDQUFDLE9BQU87UUFDN0IsT0FBT0QsU0FBU0UsU0FBUyxDQUFDLEdBQUdGLFNBQVNHLE1BQU0sR0FBRztJQUNqRDtJQUVBLElBQUlILFNBQVNDLFVBQVUsQ0FBQyxRQUFRO1FBQzlCLE9BQU9ELFNBQVNFLFNBQVMsQ0FBQyxHQUFHRixTQUFTRyxNQUFNLEdBQUc7SUFDakQ7SUFFQSxPQUFPSDtBQUNUIn0=
@@ -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,CAAC;AAEnD,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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zbm93Zmxha2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc25vd2ZsYWtlVG9CaWdpbnQoc25vd2ZsYWtlOiBCaWdTdHJpbmcpOiBiaWdpbnQge1xuICByZXR1cm4gQmlnSW50KHNub3dmbGFrZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiaWdpbnRUb1Nub3dmbGFrZShzbm93Zmxha2U6IEJpZ1N0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzbm93Zmxha2UudG9TdHJpbmcoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNub3dmbGFrZVRvVGltZXN0YW1wKHNub3dmbGFrZTogQmlnU3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIE51bWJlcihCaWdJbnQoc25vd2ZsYWtlKSA+PiAyMm4pICsgMTQyMDA3MDQwMDAwMDtcbn1cbiJdLCJuYW1lcyI6WyJzbm93Zmxha2VUb0JpZ2ludCIsInNub3dmbGFrZSIsIkJpZ0ludCIsImJpZ2ludFRvU25vd2ZsYWtlIiwidG9TdHJpbmciLCJzbm93Zmxha2VUb1RpbWVzdGFtcCIsIk51bWJlciJdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxTQUFTQSxrQkFBa0JDLFNBQW9CO0lBQ3BELE9BQU9DLE9BQU9EO0FBQ2hCO0FBRUEsT0FBTyxTQUFTRSxrQkFBa0JGLFNBQW9CO0lBQ3BELE9BQU9BLFVBQVVHLFFBQVE7QUFDM0I7QUFFQSxPQUFPLFNBQVNDLHFCQUFxQkosU0FBb0I7SUFDdkQsT0FBT0ssT0FBT0osT0FBT0QsY0FBYyxHQUFHLElBQUk7QUFDNUMifQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90b2tlbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB2YWxpZFRva2VuUHJlZml4ZXMgPSBbJ0JvdCcsICdCZWFyZXInXTtcblxuLyoqIFJlbW92ZXMgdGhlIEJvdC9CZWFyZXIgYmVmb3JlIHRoZSB0b2tlbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVUb2tlblByZWZpeCh0b2tlbj86IHN0cmluZywgdHlwZTogJ0dBVEVXQVknIHwgJ1JFU1QnID0gJ1JFU1QnKTogc3RyaW5nIHtcbiAgLy8gSWYgbm8gdG9rZW4gaXMgcHJvdmlkZWQsIHRocm93IGFuIGVycm9yXG4gIGlmICh0b2tlbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgJHt0eXBlfSB3YXMgbm90IGdpdmVuIGEgdG9rZW4uIFBsZWFzZSBwcm92aWRlIGEgdG9rZW4gYW5kIHRyeSBhZ2Fpbi5gKTtcbiAgfVxuXG4gIGNvbnN0IHNwbGl0dGVkVG9rZW4gPSB0b2tlbi5zcGxpdCgnICcpO1xuXG4gIC8vIElmIHRoZSB0b2tlbiBkb2VzIG5vdCBoYXZlIGEgcHJlZml4IGp1c3QgcmV0dXJuIHRva2VuXG4gIGlmIChzcGxpdHRlZFRva2VuLmxlbmd0aCA8IDIgfHwgIXZhbGlkVG9rZW5QcmVmaXhlcy5pbmNsdWRlcyhzcGxpdHRlZFRva2VuWzBdKSkgcmV0dXJuIHRva2VuO1xuICAvLyBSZW1vdmUgdGhlIHByZWZpeCBhbmQgcmV0dXJuIG9ubHkgdGhlIHRva2VuLlxuICByZXR1cm4gc3BsaXR0ZWRUb2tlbi5zcGxpY2UoMSkuam9pbignICcpO1xufVxuXG4vKiogR2V0IHRoZSBib3QgaWQgZnJvbSB0aGUgYm90IHRva2VuLiBXQVJOSU5HOiBEaXNjb3JkIHN0YWZmIGhhcyBtZW50aW9uZWQgdGhpcyBtYXkgbm90IGJlIHN0YWJsZSBmb3JldmVyLiBVc2UgYXQgeW91ciBvd24gcmlzay4gSG93ZXZlciwgbm90ZSBmb3Igb3ZlciA1IHllYXJzIHRoaXMgaGFzIG5ldmVyIGJyb2tlbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCb3RJZEZyb21Ub2tlbih0b2tlbjogc3RyaW5nKTogYmlnaW50IHtcbiAgcmV0dXJuIEJpZ0ludChhdG9iKHRva2VuLnNwbGl0KCcuJylbMF0pKTtcbn1cbiJdLCJuYW1lcyI6WyJ2YWxpZFRva2VuUHJlZml4ZXMiLCJyZW1vdmVUb2tlblByZWZpeCIsInRva2VuIiwidHlwZSIsInVuZGVmaW5lZCIsIkVycm9yIiwic3BsaXR0ZWRUb2tlbiIsInNwbGl0IiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJzcGxpY2UiLCJqb2luIiwiZ2V0Qm90SWRGcm9tVG9rZW4iLCJCaWdJbnQiLCJhdG9iIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxxQkFBcUI7SUFBQztJQUFPO0NBQVM7QUFFNUMsNkNBQTZDLEdBQzdDLE9BQU8sU0FBU0Msa0JBQWtCQyxLQUFjLEVBQUVDLE9BQTJCLE1BQU07SUFDakYsMENBQTBDO0lBQzFDLElBQUlELFVBQVVFLFdBQVc7UUFDdkIsTUFBTSxJQUFJQyxNQUFNLENBQUMsSUFBSSxFQUFFRixLQUFLLDZEQUE2RCxDQUFDO0lBQzVGO0lBRUEsTUFBTUcsZ0JBQWdCSixNQUFNSyxLQUFLLENBQUM7SUFFbEMsd0RBQXdEO0lBQ3hELElBQUlELGNBQWNFLE1BQU0sR0FBRyxLQUFLLENBQUNSLG1CQUFtQlMsUUFBUSxDQUFDSCxhQUFhLENBQUMsRUFBRSxHQUFHLE9BQU9KO0lBQ3ZGLCtDQUErQztJQUMvQyxPQUFPSSxjQUFjSSxNQUFNLENBQUMsR0FBR0MsSUFBSSxDQUFDO0FBQ3RDO0FBRUEsd0xBQXdMLEdBQ3hMLE9BQU8sU0FBU0Msa0JBQWtCVixLQUFhO0lBQzdDLE9BQU9XLE9BQU9DLEtBQUtaLE1BQU1LLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUN4QyJ9
@@ -1,8 +1,7 @@
1
- import { type CreateApplicationCommand, type CreateContextApplicationCommand, type DiscordInviteCreate, type DiscordInviteMetadata, type GetMessagesAfter, type GetMessagesAround, type GetMessagesBefore, type GetMessagesLimit, type GetMessagesOptions } from '@discordeno/types';
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,CAAC;AAG3B,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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlZ3VhcmRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRGlzY29yZEludml0ZUNyZWF0ZSxcbiAgRGlzY29yZEludml0ZU1ldGFkYXRhLFxuICBHZXRNZXNzYWdlc0FmdGVyLFxuICBHZXRNZXNzYWdlc0Fyb3VuZCxcbiAgR2V0TWVzc2FnZXNCZWZvcmUsXG4gIEdldE1lc3NhZ2VzTGltaXQsXG4gIEdldE1lc3NhZ2VzT3B0aW9ucyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHsgaGFzUHJvcGVydHkgfSBmcm9tICcuL3V0aWxzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzR2V0TWVzc2FnZXNBZnRlcihvcHRpb25zOiBHZXRNZXNzYWdlc09wdGlvbnMpOiBvcHRpb25zIGlzIEdldE1lc3NhZ2VzQWZ0ZXIge1xuICByZXR1cm4gaGFzUHJvcGVydHkob3B0aW9ucywgJ2FmdGVyJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dldE1lc3NhZ2VzQmVmb3JlKG9wdGlvbnM6IEdldE1lc3NhZ2VzT3B0aW9ucyk6IG9wdGlvbnMgaXMgR2V0TWVzc2FnZXNCZWZvcmUge1xuICByZXR1cm4gaGFzUHJvcGVydHkob3B0aW9ucywgJ2JlZm9yZScpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNHZXRNZXNzYWdlc0Fyb3VuZChvcHRpb25zOiBHZXRNZXNzYWdlc09wdGlvbnMpOiBvcHRpb25zIGlzIEdldE1lc3NhZ2VzQXJvdW5kIHtcbiAgcmV0dXJuIGhhc1Byb3BlcnR5KG9wdGlvbnMsICdhcm91bmQnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzR2V0TWVzc2FnZXNMaW1pdChvcHRpb25zOiBHZXRNZXNzYWdlc09wdGlvbnMpOiBvcHRpb25zIGlzIEdldE1lc3NhZ2VzTGltaXQge1xuICByZXR1cm4gaGFzUHJvcGVydHkob3B0aW9ucywgJ2xpbWl0Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ludml0ZVdpdGhNZXRhZGF0YShvcHRpb25zOiBEaXNjb3JkSW52aXRlQ3JlYXRlIHwgRGlzY29yZEludml0ZU1ldGFkYXRhKTogb3B0aW9ucyBpcyBEaXNjb3JkSW52aXRlTWV0YWRhdGEge1xuICByZXR1cm4gIWhhc1Byb3BlcnR5KG9wdGlvbnMsICdjaGFubmVsX2lkJyk7XG59XG4iXSwibmFtZXMiOlsiaGFzUHJvcGVydHkiLCJpc0dldE1lc3NhZ2VzQWZ0ZXIiLCJvcHRpb25zIiwiaXNHZXRNZXNzYWdlc0JlZm9yZSIsImlzR2V0TWVzc2FnZXNBcm91bmQiLCJpc0dldE1lc3NhZ2VzTGltaXQiLCJpc0ludml0ZVdpdGhNZXRhZGF0YSJdLCJtYXBwaW5ncyI6IkFBU0EsU0FBU0EsV0FBVyxRQUFRLGFBQWE7QUFFekMsT0FBTyxTQUFTQyxtQkFBbUJDLE9BQTJCO0lBQzVELE9BQU9GLFlBQVlFLFNBQVM7QUFDOUI7QUFFQSxPQUFPLFNBQVNDLG9CQUFvQkQsT0FBMkI7SUFDN0QsT0FBT0YsWUFBWUUsU0FBUztBQUM5QjtBQUVBLE9BQU8sU0FBU0Usb0JBQW9CRixPQUEyQjtJQUM3RCxPQUFPRixZQUFZRSxTQUFTO0FBQzlCO0FBRUEsT0FBTyxTQUFTRyxtQkFBbUJILE9BQTJCO0lBQzVELE9BQU9GLFlBQVlFLFNBQVM7QUFDOUI7QUFFQSxPQUFPLFNBQVNJLHFCQUFxQkosT0FBb0Q7SUFDdkYsT0FBTyxDQUFDRixZQUFZRSxTQUFTO0FBQy9CIn0=
@@ -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91cmxUb0Jhc2U2NC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbmNvZGUgfSBmcm9tICcuL2Jhc2U2NC5qcyc7XG5cbi8qKiBDb252ZXJ0cyBhIHVybCB0byBiYXNlIDY0LiBVc2VmdWwgZm9yIGV4YW1wbGUsIHVwbG9hZGluZy9jcmVhdGluZyBzZXJ2ZXIgZW1vamlzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVybFRvQmFzZTY0KHVybDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgYnVmZmVyID0gYXdhaXQgZmV0Y2godXJsKS50aGVuKGFzeW5jIChyZXMpID0+IGF3YWl0IHJlcy5hcnJheUJ1ZmZlcigpKTtcbiAgY29uc3QgaW1hZ2VTdHIgPSBlbmNvZGUoYnVmZmVyKTtcbiAgY29uc3QgdHlwZSA9IHVybC5zdWJzdHJpbmcodXJsLmxhc3RJbmRleE9mKCcuJykgKyAxKTtcbiAgcmV0dXJuIGBkYXRhOmltYWdlLyR7dHlwZX07YmFzZTY0LCR7aW1hZ2VTdHJ9YDtcbn1cbiJdLCJuYW1lcyI6WyJlbmNvZGUiLCJ1cmxUb0Jhc2U2NCIsInVybCIsImJ1ZmZlciIsImZldGNoIiwidGhlbiIsInJlcyIsImFycmF5QnVmZmVyIiwiaW1hZ2VTdHIiLCJ0eXBlIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQU0sUUFBUSxjQUFjO0FBRXJDLHFGQUFxRixHQUNyRixPQUFPLGVBQWVDLFlBQVlDLEdBQVc7SUFDM0MsTUFBTUMsU0FBUyxNQUFNQyxNQUFNRixLQUFLRyxJQUFJLENBQUMsT0FBT0MsTUFBUSxNQUFNQSxJQUFJQyxXQUFXO0lBQ3pFLE1BQU1DLFdBQVdSLE9BQU9HO0lBQ3hCLE1BQU1NLE9BQU9QLElBQUlRLFNBQVMsQ0FBQ1IsSUFBSVMsV0FBVyxDQUFDLE9BQU87SUFDbEQsT0FBTyxDQUFDLFdBQVcsRUFBRUYsS0FBSyxRQUFRLEVBQUVELFVBQVU7QUFDaEQifQ==
@@ -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,CAAC;AAEnD,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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91cmxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2t1TGluayhhcHBJZDogQmlnU3RyaW5nLCBza3VJZDogQmlnU3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBodHRwczovL2Rpc2NvcmQuY29tL2FwcGxpY2F0aW9uLWRpcmVjdG9yeS8ke2FwcElkfS9zdG9yZS8ke3NrdUlkfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9yZUxpbmsoYXBwSWQ6IEJpZ1N0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgaHR0cHM6Ly9kaXNjb3JkLmNvbS9hcHBsaWNhdGlvbi1kaXJlY3RvcnkvJHthcHBJZH0vc3RvcmVgO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc291bmRMaW5rKHNvdW5kSWQ6IEJpZ1N0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vc291bmRib2FyZC1zb3VuZHMvJHtzb3VuZElkfWA7XG59XG4iXSwibmFtZXMiOlsic2t1TGluayIsImFwcElkIiwic2t1SWQiLCJzdG9yZUxpbmsiLCJzb3VuZExpbmsiLCJzb3VuZElkIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLFNBQVNBLFFBQVFDLEtBQWdCLEVBQUVDLEtBQWdCO0lBQ3hELE9BQU8sQ0FBQywwQ0FBMEMsRUFBRUQsTUFBTSxPQUFPLEVBQUVDLE9BQU87QUFDNUU7QUFFQSxPQUFPLFNBQVNDLFVBQVVGLEtBQWdCO0lBQ3hDLE9BQU8sQ0FBQywwQ0FBMEMsRUFBRUEsTUFBTSxNQUFNLENBQUM7QUFDbkU7QUFFQSxPQUFPLFNBQVNHLFVBQVVDLE9BQWtCO0lBQzFDLE9BQU8sQ0FBQyw2Q0FBNkMsRUFBRUEsU0FBUztBQUNsRSJ9
@@ -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+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKFxuICAgIChyZXNvbHZlKTogTm9kZUpTLlRpbWVvdXQgPT5cbiAgICAgIHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9LCBtcyksXG4gICk7XG59XG5cbi8vIFR5cGVzY3JpcHQgaXMgbm90IHNvIGdvb2QgYXMgd2UgZGV2ZWxvcGVycyBzbyB3ZSBuZWVkIHRoaXMgbGl0dGxlIHV0aWxpdHkgZnVuY3Rpb24gdG8gaGVscCBpdCBvdXRcbi8vIFRha2VuIGZyb20gaHR0cHM6Ly9mZXR0YmxvZy5ldS90eXBlc2NyaXB0LWhhc293bnByb3BlcnR5L1xuLyoqIFRTIHNhdmUgd2F5IHRvIGNoZWNrIGlmIGEgcHJvcGVydHkgZXhpc3RzIGluIGFuIG9iamVjdCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1Byb3BlcnR5PFQgZXh0ZW5kcyB7fSwgWSBleHRlbmRzIFByb3BlcnR5S2V5ID0gc3RyaW5nPihvYmo6IFQsIHByb3A6IFkpOiBvYmogaXMgVCAmIFJlY29yZDxZLCB1bmtub3duPiB7XG4gIHJldHVybiBvYmouaGFzT3duUHJvcGVydHkocHJvcCk7XG59XG5cbi8qKiBDb252ZXJ0IGBKU09OLnN0cmluZ2lmeWAtdW5zZXJpYWxpemFibGUgcmVjb3JkIHZhbHVlcyBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25TYWZlUmVwbGFjZXIoX2tleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IHVua25vd24ge1xuICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgIGNhc2UgJ2JpZ2ludCc6XG4gICAgICAvLyBCaWdpbnRzIGFyZSB1bnNlcmlhbGl6YWJsZSBieSBgSlNPTi5zdHJpbmdpZnlgLlxuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgZGVmYXVsdDogLy8gQW55IG90aGVyIHVuaGFuZGxlZCB0eXBlIHRoYXQgaXNuJ3Qgc3VwcG9zZWQgdG8gcmVxdWlyZSBjb252ZXJzaW9uLlxuICAgICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXSwibmFtZXMiOlsiZGVsYXkiLCJtcyIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsImhhc1Byb3BlcnR5Iiwib2JqIiwicHJvcCIsImhhc093blByb3BlcnR5IiwianNvblNhZmVSZXBsYWNlciIsIl9rZXkiLCJ2YWx1ZSIsIlN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTRELEdBQzVELE9BQU8sZUFBZUEsTUFBTUMsRUFBVTtJQUNwQyxPQUFPLElBQUlDLFFBQ1QsQ0FBQ0MsVUFDQ0MsV0FBVztZQUNURDtRQUNGLEdBQUdGO0FBRVQ7QUFFQSxvR0FBb0c7QUFDcEcsNERBQTREO0FBQzVELDJEQUEyRCxHQUMzRCxPQUFPLFNBQVNJLFlBQTBEQyxHQUFNLEVBQUVDLElBQU87SUFDdkYsT0FBT0QsSUFBSUUsY0FBYyxDQUFDRDtBQUM1QjtBQUVBLGtGQUFrRixHQUNsRixPQUFPLFNBQVNFLGlCQUFpQkMsSUFBWSxFQUFFQyxLQUFjO0lBQzNELE9BQVEsT0FBT0E7UUFDYixLQUFLO1lBQ0gsa0RBQWtEO1lBQ2xELE9BQU9DLE9BQU9EO1FBQ2hCO1lBQ0UsT0FBT0E7SUFDWDtBQUNGIn0=
package/package.json CHANGED
@@ -1,13 +1,7 @@
1
1
  {
2
2
  "name": "@discordeno/utils",
3
- "version": "21.0.1-next.fca0b40",
4
- "main": "./dist/esm/index.js",
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.0090dd2",
4
+ "exports": "./dist/index.js",
11
5
  "type": "module",
12
6
  "license": "Apache-2.0",
13
7
  "repository": {
@@ -19,36 +13,33 @@
19
13
  "!dist/.tsbuildinfo"
20
14
  ],
21
15
  "scripts": {
22
- "build": "swc src --strip-leading-paths --delete-dir-on-start src --out-dir dist/esm && swc --strip-leading-paths --delete-dir-on-start src --out-dir dist/cjs -C module.type=commonjs && node ../../scripts/fixCjsExtension.js",
23
- "build:type": "tsc --skipDefaultLibCheck --declaration --emitDeclarationOnly --declarationDir dist/types",
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
- "fmt": "biome format --write",
26
- "lint": "biome lint --write",
27
- "test:unit-coverage": "c8 mocha --no-warnings 'tests/**/*.spec.ts'",
28
- "test:unit": "c8 --r lcov mocha --no-warnings 'tests/**/*.spec.ts' && node ../../scripts/coveragePathFixing.js utils",
29
- "test:unit:watch": "mocha --no-warnings --watch --parallel 'tests/**/*.spec.ts'",
30
- "test:deno-unit": "deno -A ../../node_modules/mocha/bin/mocha.js --config ../../.mocharc.base.cjs 'tests/**/*.spec.ts'",
31
- "test:bun-unit": "bun ../../node_modules/mocha/bin/mocha.js --config ../../.mocharc.base.cjs 'tests/**/*.spec.ts'",
32
- "test:type": "tsc --noEmit",
33
- "test:test-type": "tsc --project tests/tsconfig.json"
19
+ "check": "biome check --write",
20
+ "test:unit": "c8 -r lcov mocha 'tests/**/*.spec.ts' && node ../../scripts/coveragePathFixing.js utils",
21
+ "test:deno-unit": "deno -A npm:mocha 'tests/**/*.spec.ts'",
22
+ "test:bun-unit": "bun --bun mocha 'tests/**/*.spec.ts'",
23
+ "test:test-type": "tsc --project tests/tsconfig.json",
24
+ "test:type": "tsc --noEmit"
34
25
  },
35
26
  "dependencies": {
36
- "@discordeno/types": "21.0.1-next.fca0b40"
27
+ "@discordeno/types": "22.0.1-next.0090dd2"
37
28
  },
38
29
  "devDependencies": {
39
- "@biomejs/biome": "2.1.3",
40
- "@swc/cli": "^0.5.2",
41
- "@swc/core": "^1.13.3",
42
- "@types/chai": "^5.2.2",
30
+ "@biomejs/biome": "2.4.1",
31
+ "@swc/cli": "^0.8.0",
32
+ "@swc/core": "^1.15.13",
33
+ "@types/chai": "^5.2.3",
43
34
  "@types/mocha": "^10.0.10",
44
- "@types/node": "^24.1.0",
45
- "@types/sinon": "^17.0.3",
35
+ "@types/node": "^25.3.0",
36
+ "@types/sinon": "^21.0.0",
46
37
  "c8": "^10.1.3",
47
- "chai": "^5.2.1",
48
- "mocha": "patch:mocha@npm%3A11.0.2#~/.yarn/patches/mocha-npm-11.0.2-b5d6b95284.patch",
49
- "sinon": "^21.0.0",
38
+ "chai": "^6.2.2",
39
+ "mocha": "^11.7.5",
40
+ "sinon": "^21.0.1",
50
41
  "ts-node": "^10.9.2",
51
42
  "tsconfig": "*",
52
- "typescript": "^5.8.3"
43
+ "typescript": "^5.9.3"
53
44
  }
54
45
  }