tiny-essentials 1.0.0
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/.github/FUNDING.yml +4 -0
- package/.github/workflows/node.js.yml +31 -0
- package/LICENSE +674 -0
- package/README.md +67 -0
- package/dist/TinyEssentials.min.js +1 -0
- package/dist/_virtual/_commonjsHelpers.cjs +7 -0
- package/dist/_virtual/common.cjs +5 -0
- package/dist/_virtual/index.cjs +9 -0
- package/dist/_virtual/index2.cjs +5 -0
- package/dist/_virtual/trace.cjs +5 -0
- package/dist/legacy/crypto/decrypt.cjs +57 -0
- package/dist/legacy/crypto/decrypt.d.mts +18 -0
- package/dist/legacy/crypto/decrypt.mjs +47 -0
- package/dist/legacy/crypto/default.cjs +23 -0
- package/dist/legacy/crypto/default.d.mts +35 -0
- package/dist/legacy/crypto/default.mjs +19 -0
- package/dist/legacy/crypto/encrypt.cjs +54 -0
- package/dist/legacy/crypto/encrypt.d.mts +19 -0
- package/dist/legacy/crypto/encrypt.mjs +46 -0
- package/dist/legacy/crypto/index.cjs +11 -0
- package/dist/legacy/crypto/index.d.mts +4 -0
- package/dist/legacy/crypto/index.mjs +6 -0
- package/dist/legacy/firebase/cookieSession.cjs +121 -0
- package/dist/legacy/firebase/cookieSession.d.mts +56 -0
- package/dist/legacy/firebase/cookieSession.mjs +114 -0
- package/dist/legacy/firebase/database/index.cjs +11 -0
- package/dist/legacy/firebase/database/index.d.mts +7 -0
- package/dist/legacy/firebase/database/index.mjs +7 -0
- package/dist/legacy/firebase/database/presence.cjs +131 -0
- package/dist/legacy/firebase/database/presence.d.mts +9 -0
- package/dist/legacy/firebase/database/presence.mjs +111 -0
- package/dist/legacy/firebase/database/saveAsync.cjs +147 -0
- package/dist/legacy/firebase/database/saveAsync.d.mts +54 -0
- package/dist/legacy/firebase/database/saveAsync.mjs +147 -0
- package/dist/legacy/firebase/databaseEscape.cjs +42 -0
- package/dist/legacy/firebase/databaseEscape.d.mts +11 -0
- package/dist/legacy/firebase/databaseEscape.mjs +37 -0
- package/dist/legacy/firebase/databaseLogger.cjs +258 -0
- package/dist/legacy/firebase/databaseLogger.d.mts +7 -0
- package/dist/legacy/firebase/databaseLogger.mjs +234 -0
- package/dist/legacy/firebase/discord/api/addGuildMember.cjs +71 -0
- package/dist/legacy/firebase/discord/api/addGuildMember.d.mts +38 -0
- package/dist/legacy/firebase/discord/api/addGuildMember.mjs +64 -0
- package/dist/legacy/firebase/discord/api/getGuildWidget.cjs +47 -0
- package/dist/legacy/firebase/discord/api/getGuildWidget.d.mts +17 -0
- package/dist/legacy/firebase/discord/api/getGuildWidget.mjs +43 -0
- package/dist/legacy/firebase/discord/api/getToken.cjs +67 -0
- package/dist/legacy/firebase/discord/api/getToken.d.mts +35 -0
- package/dist/legacy/firebase/discord/api/getToken.mjs +63 -0
- package/dist/legacy/firebase/discord/api/getUser.cjs +58 -0
- package/dist/legacy/firebase/discord/api/getUser.d.mts +27 -0
- package/dist/legacy/firebase/discord/api/getUser.mjs +54 -0
- package/dist/legacy/firebase/discord/api/getUserConnections.cjs +57 -0
- package/dist/legacy/firebase/discord/api/getUserConnections.d.mts +26 -0
- package/dist/legacy/firebase/discord/api/getUserConnections.mjs +53 -0
- package/dist/legacy/firebase/discord/api/getUserGuilds.cjs +56 -0
- package/dist/legacy/firebase/discord/api/getUserGuilds.d.mts +25 -0
- package/dist/legacy/firebase/discord/api/getUserGuilds.mjs +52 -0
- package/dist/legacy/firebase/discord/api/index.cjs +24 -0
- package/dist/legacy/firebase/discord/api/index.d.mts +19 -0
- package/dist/legacy/firebase/discord/api/index.mjs +20 -0
- package/dist/legacy/firebase/discord/api/refreshToken.cjs +77 -0
- package/dist/legacy/firebase/discord/api/refreshToken.d.mts +45 -0
- package/dist/legacy/firebase/discord/api/refreshToken.mjs +73 -0
- package/dist/legacy/firebase/discord/api/revokeToken.cjs +61 -0
- package/dist/legacy/firebase/discord/api/revokeToken.d.mts +29 -0
- package/dist/legacy/firebase/discord/api/revokeToken.mjs +58 -0
- package/dist/legacy/firebase/discord/config.cjs +21 -0
- package/dist/legacy/firebase/discord/config.d.mts +27 -0
- package/dist/legacy/firebase/discord/config.mjs +17 -0
- package/dist/legacy/firebase/discord/firebase_redirect/index.cjs +11 -0
- package/dist/legacy/firebase/discord/firebase_redirect/index.d.mts +7 -0
- package/dist/legacy/firebase/discord/firebase_redirect/index.mjs +7 -0
- package/dist/legacy/firebase/discord/firebase_redirect/login.cjs +110 -0
- package/dist/legacy/firebase/discord/firebase_redirect/login.d.mts +4 -0
- package/dist/legacy/firebase/discord/firebase_redirect/login.mjs +107 -0
- package/dist/legacy/firebase/discord/firebase_redirect/logout.cjs +100 -0
- package/dist/legacy/firebase/discord/firebase_redirect/logout.d.mts +4 -0
- package/dist/legacy/firebase/discord/firebase_redirect/logout.mjs +97 -0
- package/dist/legacy/firebase/discord/get/authURLGenerator.cjs +76 -0
- package/dist/legacy/firebase/discord/get/authURLGenerator.d.mts +23 -0
- package/dist/legacy/firebase/discord/get/authURLGenerator.mjs +67 -0
- package/dist/legacy/firebase/discord/get/cookie-session.cjs +32 -0
- package/dist/legacy/firebase/discord/get/cookie-session.d.mts +20 -0
- package/dist/legacy/firebase/discord/get/cookie-session.mjs +28 -0
- package/dist/legacy/firebase/discord/get/credentials.cjs +24 -0
- package/dist/legacy/firebase/discord/get/credentials.d.mts +19 -0
- package/dist/legacy/firebase/discord/get/credentials.mjs +20 -0
- package/dist/legacy/firebase/discord/get/errorValidator.cjs +60 -0
- package/dist/legacy/firebase/discord/get/errorValidator.d.mts +28 -0
- package/dist/legacy/firebase/discord/get/errorValidator.mjs +55 -0
- package/dist/legacy/firebase/discord/get/index.cjs +17 -0
- package/dist/legacy/firebase/discord/get/index.d.mts +13 -0
- package/dist/legacy/firebase/discord/get/index.mjs +13 -0
- package/dist/legacy/firebase/discord/get/randomAvatar.cjs +37 -0
- package/dist/legacy/firebase/discord/get/randomAvatar.d.mts +22 -0
- package/dist/legacy/firebase/discord/get/randomAvatar.mjs +30 -0
- package/dist/legacy/firebase/discord/http/index.cjs +15 -0
- package/dist/legacy/firebase/discord/http/index.d.mts +11 -0
- package/dist/legacy/firebase/discord/http/index.mjs +11 -0
- package/dist/legacy/firebase/discord/http/login.cjs +127 -0
- package/dist/legacy/firebase/discord/http/login.d.mts +21 -0
- package/dist/legacy/firebase/discord/http/login.mjs +123 -0
- package/dist/legacy/firebase/discord/http/logout.cjs +155 -0
- package/dist/legacy/firebase/discord/http/logout.d.mts +22 -0
- package/dist/legacy/firebase/discord/http/logout.mjs +143 -0
- package/dist/legacy/firebase/discord/http/redirect.cjs +188 -0
- package/dist/legacy/firebase/discord/http/redirect.d.mts +24 -0
- package/dist/legacy/firebase/discord/http/redirect.mjs +178 -0
- package/dist/legacy/firebase/discord/http/refreshToken.cjs +133 -0
- package/dist/legacy/firebase/discord/http/refreshToken.d.mts +24 -0
- package/dist/legacy/firebase/discord/http/refreshToken.mjs +121 -0
- package/dist/legacy/firebase/discord/index.cjs +19 -0
- package/dist/legacy/firebase/discord/index.d.mts +15 -0
- package/dist/legacy/firebase/discord/index.mjs +15 -0
- package/dist/legacy/firebase/discord/template/cookie-session.cjs +1430 -0
- package/dist/legacy/firebase/discord/template/cookie-session.d.mts +22 -0
- package/dist/legacy/firebase/discord/template/cookie-session.mjs +1159 -0
- package/dist/legacy/firebase/domainRedirect.cjs +35 -0
- package/dist/legacy/firebase/domainRedirect.d.mts +12 -0
- package/dist/legacy/firebase/domainRedirect.mjs +27 -0
- package/dist/legacy/firebase/escape.cjs +75 -0
- package/dist/legacy/firebase/escape.d.mts +17 -0
- package/dist/legacy/firebase/escape.mjs +58 -0
- package/dist/legacy/firebase/getDBAsync.cjs +33 -0
- package/dist/legacy/firebase/getDBAsync.d.mts +10 -0
- package/dist/legacy/firebase/getDBAsync.mjs +26 -0
- package/dist/legacy/firebase/getDBData.cjs +21 -0
- package/dist/legacy/firebase/getDBData.d.mts +1 -0
- package/dist/legacy/firebase/getDBData.mjs +17 -0
- package/dist/legacy/firebase/getDBValue.cjs +17 -0
- package/dist/legacy/firebase/getDBValue.d.mts +9 -0
- package/dist/legacy/firebase/getDBValue.mjs +14 -0
- package/dist/legacy/firebase/index.cjs +261 -0
- package/dist/legacy/firebase/index.d.mts +51 -0
- package/dist/legacy/firebase/index.mjs +234 -0
- package/dist/legacy/firebase/isEmulator.cjs +14 -0
- package/dist/legacy/firebase/isEmulator.d.mts +8 -0
- package/dist/legacy/firebase/isEmulator.mjs +10 -0
- package/dist/legacy/firebase/logger.cjs +137 -0
- package/dist/legacy/firebase/logger.d.mts +7 -0
- package/dist/legacy/firebase/logger.mjs +125 -0
- package/dist/legacy/firebase/mySQL.cjs +26 -0
- package/dist/legacy/firebase/mySQL.d.mts +10 -0
- package/dist/legacy/firebase/mySQL.mjs +22 -0
- package/dist/legacy/firebase/mysqlConnector/create.cjs +119 -0
- package/dist/legacy/firebase/mysqlConnector/create.d.mts +36 -0
- package/dist/legacy/firebase/mysqlConnector/create.mjs +109 -0
- package/dist/legacy/firebase/mysqlConnector/index.cjs +23 -0
- package/dist/legacy/firebase/mysqlConnector/index.d.mts +11 -0
- package/dist/legacy/firebase/mysqlConnector/index.mjs +16 -0
- package/dist/legacy/firebase/mysqlConnector/nextPrev.cjs +75 -0
- package/dist/legacy/firebase/mysqlConnector/nextPrev.d.mts +31 -0
- package/dist/legacy/firebase/mysqlConnector/nextPrev.mjs +63 -0
- package/dist/legacy/firebase/mysqlConnector/pagination.cjs +91 -0
- package/dist/legacy/firebase/mysqlConnector/pagination.d.mts +33 -0
- package/dist/legacy/firebase/mysqlConnector/pagination.mjs +87 -0
- package/dist/legacy/firebase/mysqlConnector/sameUser.cjs +28 -0
- package/dist/legacy/firebase/mysqlConnector/sameUser.d.mts +12 -0
- package/dist/legacy/firebase/mysqlConnector/sameUser.mjs +23 -0
- package/dist/legacy/firebase/transactionDBAsync.cjs +33 -0
- package/dist/legacy/firebase/transactionDBAsync.d.mts +11 -0
- package/dist/legacy/firebase/transactionDBAsync.mjs +27 -0
- package/dist/legacy/get/countObj.cjs +24 -0
- package/dist/legacy/get/countObj.d.mts +11 -0
- package/dist/legacy/get/countObj.mjs +21 -0
- package/dist/legacy/get/decimalColor.cjs +60 -0
- package/dist/legacy/get/decimalColor.d.mts +12 -0
- package/dist/legacy/get/decimalColor.mjs +54 -0
- package/dist/legacy/get/objType.cjs +43 -0
- package/dist/legacy/get/objType.d.mts +19 -0
- package/dist/legacy/get/objType.mjs +40 -0
- package/dist/legacy/get/pagination.cjs +100 -0
- package/dist/legacy/get/pagination.d.mts +25 -0
- package/dist/legacy/get/pagination.mjs +91 -0
- package/dist/legacy/get/queryUrlByName.cjs +31 -0
- package/dist/legacy/get/queryUrlByName.d.mts +20 -0
- package/dist/legacy/get/queryUrlByName.mjs +28 -0
- package/dist/legacy/get/queryUrlJSON.cjs +54 -0
- package/dist/legacy/get/queryUrlJSON.d.mts +23 -0
- package/dist/legacy/get/queryUrlJSON.mjs +57 -0
- package/dist/legacy/get/super_string_filter.cjs +97 -0
- package/dist/legacy/get/super_string_filter.d.mts +25 -0
- package/dist/legacy/get/super_string_filter.mjs +83 -0
- package/dist/legacy/get/versionCheck.cjs +49 -0
- package/dist/legacy/get/versionCheck.d.mts +17 -0
- package/dist/legacy/get/versionCheck.mjs +38 -0
- package/dist/legacy/http/HTTP-1.0.cjs +151 -0
- package/dist/legacy/http/HTTP-1.0.d.mts +8 -0
- package/dist/legacy/http/HTTP-1.0.mjs +136 -0
- package/dist/legacy/http/auth.cjs +70 -0
- package/dist/legacy/http/auth.d.mts +41 -0
- package/dist/legacy/http/auth.mjs +63 -0
- package/dist/legacy/http/check_domain.cjs +84 -0
- package/dist/legacy/http/check_domain.d.mts +10 -0
- package/dist/legacy/http/check_domain.mjs +82 -0
- package/dist/legacy/http/csrfTokenAnalyze.cjs +46 -0
- package/dist/legacy/http/csrfTokenAnalyze.d.mts +21 -0
- package/dist/legacy/http/csrfTokenAnalyze.mjs +40 -0
- package/dist/legacy/http/domainValidator.cjs +98 -0
- package/dist/legacy/http/domainValidator.d.mts +30 -0
- package/dist/legacy/http/domainValidator.mjs +82 -0
- package/dist/legacy/http/errorsCallback.cjs +55 -0
- package/dist/legacy/http/errorsCallback.d.mts +29 -0
- package/dist/legacy/http/errorsCallback.mjs +48 -0
- package/dist/legacy/http/fetch/json.cjs +48 -0
- package/dist/legacy/http/fetch/json.d.mts +22 -0
- package/dist/legacy/http/fetch/json.mjs +41 -0
- package/dist/legacy/http/fetch/text.cjs +47 -0
- package/dist/legacy/http/fetch/text.d.mts +21 -0
- package/dist/legacy/http/fetch/text.mjs +40 -0
- package/dist/legacy/http/fileCache.cjs +79 -0
- package/dist/legacy/http/fileCache.d.mts +35 -0
- package/dist/legacy/http/fileCache.mjs +70 -0
- package/dist/legacy/http/getDomainURL.cjs +59 -0
- package/dist/legacy/http/getDomainURL.d.mts +18 -0
- package/dist/legacy/http/getDomainURL.mjs +54 -0
- package/dist/legacy/http/userIP.cjs +59 -0
- package/dist/legacy/http/userIP.d.mts +21 -0
- package/dist/legacy/http/userIP.mjs +48 -0
- package/dist/legacy/index.cjs +122 -0
- package/dist/legacy/index.d.mts +89 -0
- package/dist/legacy/index.mjs +92 -0
- package/dist/legacy/libs/arraySortPositions.cjs +30 -0
- package/dist/legacy/libs/arraySortPositions.d.mts +16 -0
- package/dist/legacy/libs/arraySortPositions.mjs +27 -0
- package/dist/legacy/libs/capitalize.cjs +21 -0
- package/dist/legacy/libs/capitalize.d.mts +13 -0
- package/dist/legacy/libs/capitalize.mjs +17 -0
- package/dist/legacy/libs/convertBytes.cjs +64 -0
- package/dist/legacy/libs/convertBytes.d.mts +17 -0
- package/dist/legacy/libs/convertBytes.mjs +55 -0
- package/dist/legacy/libs/custom_module_loader.cjs +82 -0
- package/dist/legacy/libs/custom_module_loader.d.mts +5 -0
- package/dist/legacy/libs/custom_module_loader.mjs +79 -0
- package/dist/legacy/libs/dice.cjs +35 -0
- package/dist/legacy/libs/dice.d.mts +5 -0
- package/dist/legacy/libs/dice.mjs +31 -0
- package/dist/legacy/libs/markdown.cjs +85 -0
- package/dist/legacy/libs/markdown.d.mts +75 -0
- package/dist/legacy/libs/markdown.mjs +78 -0
- package/dist/legacy/libs/percentage.cjs +22 -0
- package/dist/legacy/libs/percentage.d.mts +4 -0
- package/dist/legacy/libs/percentage.mjs +19 -0
- package/dist/legacy/libs/regex/getLetter.cjs +22 -0
- package/dist/legacy/libs/regex/getLetter.d.mts +12 -0
- package/dist/legacy/libs/regex/getLetter.mjs +19 -0
- package/dist/legacy/libs/replaceAsync.cjs +32 -0
- package/dist/legacy/libs/replaceAsync.d.mts +15 -0
- package/dist/legacy/libs/replaceAsync.mjs +25 -0
- package/dist/legacy/libs/rule3.cjs +58 -0
- package/dist/legacy/libs/rule3.d.mts +5 -0
- package/dist/legacy/libs/rule3.mjs +54 -0
- package/dist/legacy/libs/userLevel.cjs +134 -0
- package/dist/legacy/libs/userLevel.d.mts +69 -0
- package/dist/legacy/libs/userLevel.mjs +123 -0
- package/dist/legacy/momentjs/getAge.cjs +28 -0
- package/dist/legacy/momentjs/getAge.d.mts +8 -0
- package/dist/legacy/momentjs/getAge.mjs +22 -0
- package/dist/legacy/momentjs/index.cjs +9 -0
- package/dist/legacy/momentjs/index.d.mts +3 -0
- package/dist/legacy/momentjs/index.mjs +3 -0
- package/dist/legacy/momentjs/timeDuration.cjs +29 -0
- package/dist/legacy/momentjs/timeDuration.d.mts +9 -0
- package/dist/legacy/momentjs/timeDuration.mjs +23 -0
- package/dist/legacy/socket.io/antiFlood/index.cjs +9 -0
- package/dist/legacy/socket.io/antiFlood/index.d.mts +3 -0
- package/dist/legacy/socket.io/antiFlood/index.mjs +3 -0
- package/dist/legacy/socket.io/antiFlood/install.cjs +32 -0
- package/dist/legacy/socket.io/antiFlood/install.d.mts +14 -0
- package/dist/legacy/socket.io/antiFlood/install.mjs +27 -0
- package/dist/legacy/socket.io/antiFlood/verify.cjs +87 -0
- package/dist/legacy/socket.io/antiFlood/verify.d.mts +15 -0
- package/dist/legacy/socket.io/antiFlood/verify.mjs +73 -0
- package/dist/legacy/socket.io/cookie-session.cjs +25 -0
- package/dist/legacy/socket.io/cookie-session.d.mts +9 -0
- package/dist/legacy/socket.io/cookie-session.mjs +20 -0
- package/dist/legacy/socket.io/discord.cjs +61 -0
- package/dist/legacy/socket.io/discord.d.mts +10 -0
- package/dist/legacy/socket.io/discord.mjs +52 -0
- package/dist/legacy/socket.io/index.cjs +13 -0
- package/dist/legacy/socket.io/index.d.mts +9 -0
- package/dist/legacy/socket.io/index.mjs +9 -0
- package/dist/v1/basics/array.cjs +31 -0
- package/dist/v1/basics/array.d.mts +10 -0
- package/dist/v1/basics/array.mjs +22 -0
- package/dist/v1/basics/clock.cjs +187 -0
- package/dist/v1/basics/clock.d.mts +37 -0
- package/dist/v1/basics/clock.mjs +152 -0
- package/dist/v1/basics/objFilter.cjs +55 -0
- package/dist/v1/basics/objFilter.d.mts +27 -0
- package/dist/v1/basics/objFilter.mjs +52 -0
- package/dist/v1/basics/simpleMath.cjs +88 -0
- package/dist/v1/basics/simpleMath.d.mts +54 -0
- package/dist/v1/basics/simpleMath.mjs +75 -0
- package/dist/v1/basics/text.cjs +34 -0
- package/dist/v1/basics/text.d.mts +20 -0
- package/dist/v1/basics/text.mjs +25 -0
- package/dist/v1/index.cjs +26 -0
- package/dist/v1/index.d.mts +15 -0
- package/dist/v1/index.mjs +8 -0
- package/package.json +72 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var json = require('../../../http/fetch/json.cjs');
|
|
4
|
+
var config = require('../config.cjs');
|
|
5
|
+
var errorValidator = require('../get/errorValidator.cjs');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Retrieves user information from the Discord API.
|
|
9
|
+
*
|
|
10
|
+
* This function is typically used to fetch the authenticated user's information
|
|
11
|
+
* (`@me`) or a specific user's data by their user ID.
|
|
12
|
+
*
|
|
13
|
+
* @param {string} access_token - The access token used for authentication (typically obtained via OAuth2).
|
|
14
|
+
* @param {string} [type='Bearer'] - The token type (usually 'Bearer' for OAuth2 or 'Bot' for bot tokens).
|
|
15
|
+
* @param {string} [user='@me'] - The user ID to fetch. Use '@me' to get the authenticated user's profile.
|
|
16
|
+
* @param {string} [version=''] - Optional API version prefix (e.g., 'v10/') if needed by your API setup.
|
|
17
|
+
*
|
|
18
|
+
* @returns {Promise<Object>} Resolves with the user's profile data returned by Discord.
|
|
19
|
+
*
|
|
20
|
+
* @throws {Object} If the request fails, rejects with an error object containing `code` and `message`.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* getUser('access_token_here')
|
|
24
|
+
* .then(user => console.log('Logged in as:', user.username))
|
|
25
|
+
* .catch(err => console.error('User fetch failed:', err));
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* // Using a bot token to fetch another user
|
|
29
|
+
* getUser('bot_token', 'Bot', '123456789012345678')
|
|
30
|
+
* .then(user => console.log('User info:', user))
|
|
31
|
+
* .catch(err => console.error('Error:', err));
|
|
32
|
+
*/
|
|
33
|
+
function getUser(access_token, type = 'Bearer', user = '@me', version = '') {
|
|
34
|
+
return new Promise(function (resolve, reject) {
|
|
35
|
+
// API URL
|
|
36
|
+
const apiURL = config.url;
|
|
37
|
+
|
|
38
|
+
// Response
|
|
39
|
+
json(`${apiURL}${version}users/${user}`, {
|
|
40
|
+
method: 'GET',
|
|
41
|
+
headers: {
|
|
42
|
+
Authorization: `${type} ${access_token}`,
|
|
43
|
+
'Content-Type': 'application/json',
|
|
44
|
+
},
|
|
45
|
+
})
|
|
46
|
+
.then((data) => {
|
|
47
|
+
// Error Validator
|
|
48
|
+
const result = errorValidator(data);
|
|
49
|
+
if (!result.error) resolve(result.data);
|
|
50
|
+
else reject(result.error);
|
|
51
|
+
})
|
|
52
|
+
.catch((err) => {
|
|
53
|
+
reject({ code: err.response.status, message: err.message });
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
module.exports = getUser;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retrieves user information from the Discord API.
|
|
3
|
+
*
|
|
4
|
+
* This function is typically used to fetch the authenticated user's information
|
|
5
|
+
* (`@me`) or a specific user's data by their user ID.
|
|
6
|
+
*
|
|
7
|
+
* @param {string} access_token - The access token used for authentication (typically obtained via OAuth2).
|
|
8
|
+
* @param {string} [type='Bearer'] - The token type (usually 'Bearer' for OAuth2 or 'Bot' for bot tokens).
|
|
9
|
+
* @param {string} [user='@me'] - The user ID to fetch. Use '@me' to get the authenticated user's profile.
|
|
10
|
+
* @param {string} [version=''] - Optional API version prefix (e.g., 'v10/') if needed by your API setup.
|
|
11
|
+
*
|
|
12
|
+
* @returns {Promise<Object>} Resolves with the user's profile data returned by Discord.
|
|
13
|
+
*
|
|
14
|
+
* @throws {Object} If the request fails, rejects with an error object containing `code` and `message`.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* getUser('access_token_here')
|
|
18
|
+
* .then(user => console.log('Logged in as:', user.username))
|
|
19
|
+
* .catch(err => console.error('User fetch failed:', err));
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* // Using a bot token to fetch another user
|
|
23
|
+
* getUser('bot_token', 'Bot', '123456789012345678')
|
|
24
|
+
* .then(user => console.log('User info:', user))
|
|
25
|
+
* .catch(err => console.error('Error:', err));
|
|
26
|
+
*/
|
|
27
|
+
export default function getUser(access_token: string, type?: string, user?: string, version?: string): Promise<Object>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import getJsonFetch from '../../../http/fetch/json.mjs';
|
|
2
|
+
import config from '../config.mjs';
|
|
3
|
+
import errorValidator from '../get/errorValidator.mjs';
|
|
4
|
+
/**
|
|
5
|
+
* Retrieves user information from the Discord API.
|
|
6
|
+
*
|
|
7
|
+
* This function is typically used to fetch the authenticated user's information
|
|
8
|
+
* (`@me`) or a specific user's data by their user ID.
|
|
9
|
+
*
|
|
10
|
+
* @param {string} access_token - The access token used for authentication (typically obtained via OAuth2).
|
|
11
|
+
* @param {string} [type='Bearer'] - The token type (usually 'Bearer' for OAuth2 or 'Bot' for bot tokens).
|
|
12
|
+
* @param {string} [user='@me'] - The user ID to fetch. Use '@me' to get the authenticated user's profile.
|
|
13
|
+
* @param {string} [version=''] - Optional API version prefix (e.g., 'v10/') if needed by your API setup.
|
|
14
|
+
*
|
|
15
|
+
* @returns {Promise<Object>} Resolves with the user's profile data returned by Discord.
|
|
16
|
+
*
|
|
17
|
+
* @throws {Object} If the request fails, rejects with an error object containing `code` and `message`.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* getUser('access_token_here')
|
|
21
|
+
* .then(user => console.log('Logged in as:', user.username))
|
|
22
|
+
* .catch(err => console.error('User fetch failed:', err));
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* // Using a bot token to fetch another user
|
|
26
|
+
* getUser('bot_token', 'Bot', '123456789012345678')
|
|
27
|
+
* .then(user => console.log('User info:', user))
|
|
28
|
+
* .catch(err => console.error('Error:', err));
|
|
29
|
+
*/
|
|
30
|
+
export default function getUser(access_token, type = 'Bearer', user = '@me', version = '') {
|
|
31
|
+
return new Promise(function (resolve, reject) {
|
|
32
|
+
// API URL
|
|
33
|
+
const apiURL = config.url;
|
|
34
|
+
// Response
|
|
35
|
+
getJsonFetch(`${apiURL}${version}users/${user}`, {
|
|
36
|
+
method: 'GET',
|
|
37
|
+
headers: {
|
|
38
|
+
Authorization: `${type} ${access_token}`,
|
|
39
|
+
'Content-Type': 'application/json',
|
|
40
|
+
},
|
|
41
|
+
})
|
|
42
|
+
.then((data) => {
|
|
43
|
+
// Error Validator
|
|
44
|
+
const result = errorValidator(data);
|
|
45
|
+
if (!result.error)
|
|
46
|
+
resolve(result.data);
|
|
47
|
+
else
|
|
48
|
+
reject(result.error);
|
|
49
|
+
})
|
|
50
|
+
.catch((err) => {
|
|
51
|
+
reject({ code: err.response.status, message: err.message });
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var json = require('../../../http/fetch/json.cjs');
|
|
4
|
+
var config = require('../config.cjs');
|
|
5
|
+
var errorValidator = require('../get/errorValidator.cjs');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Retrieves the authenticated user's linked connections from the Discord API.
|
|
9
|
+
*
|
|
10
|
+
* This includes external accounts the user has connected to their Discord profile,
|
|
11
|
+
* such as Steam, Twitch, YouTube, GitHub, etc.
|
|
12
|
+
*
|
|
13
|
+
* Requires the `connections` scope to be present in the OAuth2 token.
|
|
14
|
+
*
|
|
15
|
+
* @param {string} access_token - The OAuth2 access token used to authenticate the user.
|
|
16
|
+
*
|
|
17
|
+
* @returns {Promise<Array<Object>>} Resolves with an array of connection objects.
|
|
18
|
+
*
|
|
19
|
+
* @throws {Object} If the request fails, rejects with an error object containing `code` and `message`.
|
|
20
|
+
*
|
|
21
|
+
* @see {@link https://discord.com/developers/docs/resources/user#get-user-connections} Discord API Reference
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* getUserConnections('your_access_token')
|
|
25
|
+
* .then(connections => {
|
|
26
|
+
* connections.forEach(conn => {
|
|
27
|
+
* console.log(`${conn.type}: ${conn.name}`);
|
|
28
|
+
* });
|
|
29
|
+
* })
|
|
30
|
+
* .catch(err => console.error('Failed to get connections:', err));
|
|
31
|
+
*/
|
|
32
|
+
function getUserConnections(access_token) {
|
|
33
|
+
return new Promise(function (resolve, reject) {
|
|
34
|
+
// API URL
|
|
35
|
+
const apiURL = config.url;
|
|
36
|
+
|
|
37
|
+
// Response
|
|
38
|
+
json(`${apiURL}users/@me/connections`, {
|
|
39
|
+
method: 'GET',
|
|
40
|
+
headers: {
|
|
41
|
+
Authorization: `Bearer ${access_token}`,
|
|
42
|
+
'Content-Type': 'application/json',
|
|
43
|
+
},
|
|
44
|
+
})
|
|
45
|
+
.then((data) => {
|
|
46
|
+
// Error Validator
|
|
47
|
+
const result = errorValidator(data);
|
|
48
|
+
if (!result.error) resolve(result.data);
|
|
49
|
+
else reject(result.error);
|
|
50
|
+
})
|
|
51
|
+
.catch((err) => {
|
|
52
|
+
reject({ code: err.response.status, message: err.message });
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
module.exports = getUserConnections;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retrieves the authenticated user's linked connections from the Discord API.
|
|
3
|
+
*
|
|
4
|
+
* This includes external accounts the user has connected to their Discord profile,
|
|
5
|
+
* such as Steam, Twitch, YouTube, GitHub, etc.
|
|
6
|
+
*
|
|
7
|
+
* Requires the `connections` scope to be present in the OAuth2 token.
|
|
8
|
+
*
|
|
9
|
+
* @param {string} access_token - The OAuth2 access token used to authenticate the user.
|
|
10
|
+
*
|
|
11
|
+
* @returns {Promise<Array<Object>>} Resolves with an array of connection objects.
|
|
12
|
+
*
|
|
13
|
+
* @throws {Object} If the request fails, rejects with an error object containing `code` and `message`.
|
|
14
|
+
*
|
|
15
|
+
* @see {@link https://discord.com/developers/docs/resources/user#get-user-connections} Discord API Reference
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* getUserConnections('your_access_token')
|
|
19
|
+
* .then(connections => {
|
|
20
|
+
* connections.forEach(conn => {
|
|
21
|
+
* console.log(`${conn.type}: ${conn.name}`);
|
|
22
|
+
* });
|
|
23
|
+
* })
|
|
24
|
+
* .catch(err => console.error('Failed to get connections:', err));
|
|
25
|
+
*/
|
|
26
|
+
export default function getUserConnections(access_token: string): Promise<Array<Object>>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import getJsonFetch from '../../../http/fetch/json.mjs';
|
|
2
|
+
import config from '../config.mjs';
|
|
3
|
+
import errorValidator from '../get/errorValidator.mjs';
|
|
4
|
+
/**
|
|
5
|
+
* Retrieves the authenticated user's linked connections from the Discord API.
|
|
6
|
+
*
|
|
7
|
+
* This includes external accounts the user has connected to their Discord profile,
|
|
8
|
+
* such as Steam, Twitch, YouTube, GitHub, etc.
|
|
9
|
+
*
|
|
10
|
+
* Requires the `connections` scope to be present in the OAuth2 token.
|
|
11
|
+
*
|
|
12
|
+
* @param {string} access_token - The OAuth2 access token used to authenticate the user.
|
|
13
|
+
*
|
|
14
|
+
* @returns {Promise<Array<Object>>} Resolves with an array of connection objects.
|
|
15
|
+
*
|
|
16
|
+
* @throws {Object} If the request fails, rejects with an error object containing `code` and `message`.
|
|
17
|
+
*
|
|
18
|
+
* @see {@link https://discord.com/developers/docs/resources/user#get-user-connections} Discord API Reference
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* getUserConnections('your_access_token')
|
|
22
|
+
* .then(connections => {
|
|
23
|
+
* connections.forEach(conn => {
|
|
24
|
+
* console.log(`${conn.type}: ${conn.name}`);
|
|
25
|
+
* });
|
|
26
|
+
* })
|
|
27
|
+
* .catch(err => console.error('Failed to get connections:', err));
|
|
28
|
+
*/
|
|
29
|
+
export default function getUserConnections(access_token) {
|
|
30
|
+
return new Promise(function (resolve, reject) {
|
|
31
|
+
// API URL
|
|
32
|
+
const apiURL = config.url;
|
|
33
|
+
// Response
|
|
34
|
+
getJsonFetch(`${apiURL}users/@me/connections`, {
|
|
35
|
+
method: 'GET',
|
|
36
|
+
headers: {
|
|
37
|
+
Authorization: `Bearer ${access_token}`,
|
|
38
|
+
'Content-Type': 'application/json',
|
|
39
|
+
},
|
|
40
|
+
})
|
|
41
|
+
.then((data) => {
|
|
42
|
+
// Error Validator
|
|
43
|
+
const result = errorValidator(data);
|
|
44
|
+
if (!result.error)
|
|
45
|
+
resolve(result.data);
|
|
46
|
+
else
|
|
47
|
+
reject(result.error);
|
|
48
|
+
})
|
|
49
|
+
.catch((err) => {
|
|
50
|
+
reject({ code: err.response.status, message: err.message });
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var json = require('../../../http/fetch/json.cjs');
|
|
4
|
+
var config = require('../config.cjs');
|
|
5
|
+
var errorValidator = require('../get/errorValidator.cjs');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Retrieves a list of guilds (servers) the authenticated user is a member of.
|
|
9
|
+
*
|
|
10
|
+
* This function uses the Discord OAuth2 API and requires the `guilds` scope
|
|
11
|
+
* in the access token. It returns basic information about each guild, such as
|
|
12
|
+
* name, ID, owner status, permissions, and icon.
|
|
13
|
+
*
|
|
14
|
+
* Note: This does NOT include information available only to bots, like full member lists.
|
|
15
|
+
*
|
|
16
|
+
* @param {string} access_token - The OAuth2 access token used to authenticate the user.
|
|
17
|
+
*
|
|
18
|
+
* @returns {Promise<Array<Object>>} Resolves with an array of guild objects the user is in.
|
|
19
|
+
*
|
|
20
|
+
* @throws {Object} If the request fails, rejects with an error object containing `code` and `message`.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* getUserGuilds('your_access_token')
|
|
24
|
+
* .then(guilds => {
|
|
25
|
+
* guilds.forEach(guild => {
|
|
26
|
+
* console.log(`${guild.name} (${guild.id})`);
|
|
27
|
+
* });
|
|
28
|
+
* })
|
|
29
|
+
* .catch(err => console.error('Failed to get guilds:', err));
|
|
30
|
+
*/
|
|
31
|
+
function getUserGuilds(access_token) {
|
|
32
|
+
return new Promise(function (resolve, reject) {
|
|
33
|
+
// API URL
|
|
34
|
+
const apiURL = config.url;
|
|
35
|
+
|
|
36
|
+
// Response
|
|
37
|
+
json(`${apiURL}users/@me/guilds`, {
|
|
38
|
+
method: 'GET',
|
|
39
|
+
headers: {
|
|
40
|
+
Authorization: `Bearer ${access_token}`,
|
|
41
|
+
'Content-Type': 'application/json',
|
|
42
|
+
},
|
|
43
|
+
})
|
|
44
|
+
.then((data) => {
|
|
45
|
+
// Error Validator
|
|
46
|
+
const result = errorValidator(data);
|
|
47
|
+
if (!result.error) resolve(result.data);
|
|
48
|
+
else reject(result.error);
|
|
49
|
+
})
|
|
50
|
+
.catch((err) => {
|
|
51
|
+
reject({ code: err.response.status, message: err.message });
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
module.exports = getUserGuilds;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retrieves a list of guilds (servers) the authenticated user is a member of.
|
|
3
|
+
*
|
|
4
|
+
* This function uses the Discord OAuth2 API and requires the `guilds` scope
|
|
5
|
+
* in the access token. It returns basic information about each guild, such as
|
|
6
|
+
* name, ID, owner status, permissions, and icon.
|
|
7
|
+
*
|
|
8
|
+
* Note: This does NOT include information available only to bots, like full member lists.
|
|
9
|
+
*
|
|
10
|
+
* @param {string} access_token - The OAuth2 access token used to authenticate the user.
|
|
11
|
+
*
|
|
12
|
+
* @returns {Promise<Array<Object>>} Resolves with an array of guild objects the user is in.
|
|
13
|
+
*
|
|
14
|
+
* @throws {Object} If the request fails, rejects with an error object containing `code` and `message`.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* getUserGuilds('your_access_token')
|
|
18
|
+
* .then(guilds => {
|
|
19
|
+
* guilds.forEach(guild => {
|
|
20
|
+
* console.log(`${guild.name} (${guild.id})`);
|
|
21
|
+
* });
|
|
22
|
+
* })
|
|
23
|
+
* .catch(err => console.error('Failed to get guilds:', err));
|
|
24
|
+
*/
|
|
25
|
+
export default function getUserGuilds(access_token: string): Promise<Array<Object>>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import getJsonFetch from '../../../http/fetch/json.mjs';
|
|
2
|
+
import config from '../config.mjs';
|
|
3
|
+
import errorValidator from '../get/errorValidator.mjs';
|
|
4
|
+
/**
|
|
5
|
+
* Retrieves a list of guilds (servers) the authenticated user is a member of.
|
|
6
|
+
*
|
|
7
|
+
* This function uses the Discord OAuth2 API and requires the `guilds` scope
|
|
8
|
+
* in the access token. It returns basic information about each guild, such as
|
|
9
|
+
* name, ID, owner status, permissions, and icon.
|
|
10
|
+
*
|
|
11
|
+
* Note: This does NOT include information available only to bots, like full member lists.
|
|
12
|
+
*
|
|
13
|
+
* @param {string} access_token - The OAuth2 access token used to authenticate the user.
|
|
14
|
+
*
|
|
15
|
+
* @returns {Promise<Array<Object>>} Resolves with an array of guild objects the user is in.
|
|
16
|
+
*
|
|
17
|
+
* @throws {Object} If the request fails, rejects with an error object containing `code` and `message`.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* getUserGuilds('your_access_token')
|
|
21
|
+
* .then(guilds => {
|
|
22
|
+
* guilds.forEach(guild => {
|
|
23
|
+
* console.log(`${guild.name} (${guild.id})`);
|
|
24
|
+
* });
|
|
25
|
+
* })
|
|
26
|
+
* .catch(err => console.error('Failed to get guilds:', err));
|
|
27
|
+
*/
|
|
28
|
+
export default function getUserGuilds(access_token) {
|
|
29
|
+
return new Promise(function (resolve, reject) {
|
|
30
|
+
// API URL
|
|
31
|
+
const apiURL = config.url;
|
|
32
|
+
// Response
|
|
33
|
+
getJsonFetch(`${apiURL}users/@me/guilds`, {
|
|
34
|
+
method: 'GET',
|
|
35
|
+
headers: {
|
|
36
|
+
Authorization: `Bearer ${access_token}`,
|
|
37
|
+
'Content-Type': 'application/json',
|
|
38
|
+
},
|
|
39
|
+
})
|
|
40
|
+
.then((data) => {
|
|
41
|
+
// Error Validator
|
|
42
|
+
const result = errorValidator(data);
|
|
43
|
+
if (!result.error)
|
|
44
|
+
resolve(result.data);
|
|
45
|
+
else
|
|
46
|
+
reject(result.error);
|
|
47
|
+
})
|
|
48
|
+
.catch((err) => {
|
|
49
|
+
reject({ code: err.response.status, message: err.message });
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var addGuildMember = require('./addGuildMember.cjs');
|
|
4
|
+
var getGuildWidget = require('./getGuildWidget.cjs');
|
|
5
|
+
var getToken = require('./getToken.cjs');
|
|
6
|
+
var getUser = require('./getUser.cjs');
|
|
7
|
+
var getUserConnections = require('./getUserConnections.cjs');
|
|
8
|
+
var getUserGuilds = require('./getUserGuilds.cjs');
|
|
9
|
+
var refreshToken = require('./refreshToken.cjs');
|
|
10
|
+
var revokeToken = require('./revokeToken.cjs');
|
|
11
|
+
|
|
12
|
+
// Module Base
|
|
13
|
+
const discord_api = {
|
|
14
|
+
getToken,
|
|
15
|
+
getUser,
|
|
16
|
+
revokeToken,
|
|
17
|
+
getUserGuilds,
|
|
18
|
+
getGuildWidget,
|
|
19
|
+
getUserConnections,
|
|
20
|
+
addGuildMember,
|
|
21
|
+
refreshToken,
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
module.exports = discord_api;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export default discord_api;
|
|
2
|
+
declare namespace discord_api {
|
|
3
|
+
export { getToken };
|
|
4
|
+
export { getUser };
|
|
5
|
+
export { revokeToken };
|
|
6
|
+
export { getUserGuilds };
|
|
7
|
+
export { getGuildWidget };
|
|
8
|
+
export { getUserConnections };
|
|
9
|
+
export { addGuildMember };
|
|
10
|
+
export { refreshToken };
|
|
11
|
+
}
|
|
12
|
+
import getToken from './getToken.mjs';
|
|
13
|
+
import getUser from './getUser.mjs';
|
|
14
|
+
import revokeToken from './revokeToken.mjs';
|
|
15
|
+
import getUserGuilds from './getUserGuilds.mjs';
|
|
16
|
+
import getGuildWidget from './getGuildWidget.mjs';
|
|
17
|
+
import getUserConnections from './getUserConnections.mjs';
|
|
18
|
+
import addGuildMember from './addGuildMember.mjs';
|
|
19
|
+
import refreshToken from './refreshToken.mjs';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import addGuildMember from './addGuildMember.mjs';
|
|
2
|
+
import getGuildWidget from './getGuildWidget.mjs';
|
|
3
|
+
import getToken from './getToken.mjs';
|
|
4
|
+
import getUser from './getUser.mjs';
|
|
5
|
+
import getUserConnections from './getUserConnections.mjs';
|
|
6
|
+
import getUserGuilds from './getUserGuilds.mjs';
|
|
7
|
+
import refreshToken from './refreshToken.mjs';
|
|
8
|
+
import revokeToken from './revokeToken.mjs';
|
|
9
|
+
// Module Base
|
|
10
|
+
const discord_api = {
|
|
11
|
+
getToken,
|
|
12
|
+
getUser,
|
|
13
|
+
revokeToken,
|
|
14
|
+
getUserGuilds,
|
|
15
|
+
getGuildWidget,
|
|
16
|
+
getUserConnections,
|
|
17
|
+
addGuildMember,
|
|
18
|
+
refreshToken,
|
|
19
|
+
};
|
|
20
|
+
export default discord_api;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var json = require('../../../http/fetch/json.cjs');
|
|
4
|
+
var config = require('../config.cjs');
|
|
5
|
+
var errorValidator = require('../get/errorValidator.cjs');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Refreshes the Discord OAuth2 access token using a valid refresh token.
|
|
9
|
+
*
|
|
10
|
+
* This function makes a `POST` request to the Discord API's `/oauth2/token` endpoint
|
|
11
|
+
* to obtain a new access token and refresh token. It uses the `refresh_token` grant type.
|
|
12
|
+
*
|
|
13
|
+
* @param {Object} dsData - The Discord OAuth2 data required for token refresh.
|
|
14
|
+
* @param {string} dsData.client_id - Your application's client ID.
|
|
15
|
+
* @param {string} dsData.client_secret - Your application's client secret.
|
|
16
|
+
* @param {string} dsData.code - The original authorization code (optional but may be required by some flows).
|
|
17
|
+
* @param {string} dsData.refresh_token - The current valid refresh token.
|
|
18
|
+
* @param {string} dsData.redirect_uri - The redirect URI used in the original OAuth2 flow.
|
|
19
|
+
* @param {string} dsData.scope - The scope(s) to request (e.g., 'identify guilds').
|
|
20
|
+
*
|
|
21
|
+
* @returns {Promise<Object>} Resolves with a new token object from the Discord API:
|
|
22
|
+
* {
|
|
23
|
+
* access_token: string,
|
|
24
|
+
* token_type: string,
|
|
25
|
+
* expires_in: number,
|
|
26
|
+
* refresh_token: string,
|
|
27
|
+
* scope: string
|
|
28
|
+
* }
|
|
29
|
+
*
|
|
30
|
+
* @throws {Object} If the request fails, rejects with an error object containing `code` and `message`.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* refreshToken({
|
|
34
|
+
* client_id: '1234567890',
|
|
35
|
+
* client_secret: 'mySecret',
|
|
36
|
+
* code: 'optional-code',
|
|
37
|
+
* refresh_token: 'old-refresh-token',
|
|
38
|
+
* redirect_uri: 'https://myapp.com/callback',
|
|
39
|
+
* scope: 'identify guilds'
|
|
40
|
+
* })
|
|
41
|
+
* .then(newTokens => console.log('New Access Token:', newTokens.access_token))
|
|
42
|
+
* .catch(err => console.error('Failed to refresh token:', err));
|
|
43
|
+
*/
|
|
44
|
+
function refreshToken(dsData) {
|
|
45
|
+
return new Promise(function (resolve, reject) {
|
|
46
|
+
// API URL
|
|
47
|
+
const apiURL = config.url;
|
|
48
|
+
|
|
49
|
+
// Response
|
|
50
|
+
json(`${apiURL}oauth2/token`, {
|
|
51
|
+
method: 'POST',
|
|
52
|
+
body: new URLSearchParams({
|
|
53
|
+
client_id: dsData.client_id,
|
|
54
|
+
client_secret: dsData.client_secret,
|
|
55
|
+
grant_type: 'refresh_token',
|
|
56
|
+
code: dsData.code,
|
|
57
|
+
refresh_token: dsData.refresh_token,
|
|
58
|
+
redirect_uri: dsData.redirect_uri,
|
|
59
|
+
scope: dsData.scope,
|
|
60
|
+
}),
|
|
61
|
+
headers: {
|
|
62
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
63
|
+
},
|
|
64
|
+
})
|
|
65
|
+
.then((data) => {
|
|
66
|
+
// Error Validator
|
|
67
|
+
const result = errorValidator(data);
|
|
68
|
+
if (!result.error) resolve(result.data);
|
|
69
|
+
else reject(result.error);
|
|
70
|
+
})
|
|
71
|
+
.catch((err) => {
|
|
72
|
+
reject({ code: err.response.status, message: err.message });
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
module.exports = refreshToken;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Refreshes the Discord OAuth2 access token using a valid refresh token.
|
|
3
|
+
*
|
|
4
|
+
* This function makes a `POST` request to the Discord API's `/oauth2/token` endpoint
|
|
5
|
+
* to obtain a new access token and refresh token. It uses the `refresh_token` grant type.
|
|
6
|
+
*
|
|
7
|
+
* @param {Object} dsData - The Discord OAuth2 data required for token refresh.
|
|
8
|
+
* @param {string} dsData.client_id - Your application's client ID.
|
|
9
|
+
* @param {string} dsData.client_secret - Your application's client secret.
|
|
10
|
+
* @param {string} dsData.code - The original authorization code (optional but may be required by some flows).
|
|
11
|
+
* @param {string} dsData.refresh_token - The current valid refresh token.
|
|
12
|
+
* @param {string} dsData.redirect_uri - The redirect URI used in the original OAuth2 flow.
|
|
13
|
+
* @param {string} dsData.scope - The scope(s) to request (e.g., 'identify guilds').
|
|
14
|
+
*
|
|
15
|
+
* @returns {Promise<Object>} Resolves with a new token object from the Discord API:
|
|
16
|
+
* {
|
|
17
|
+
* access_token: string,
|
|
18
|
+
* token_type: string,
|
|
19
|
+
* expires_in: number,
|
|
20
|
+
* refresh_token: string,
|
|
21
|
+
* scope: string
|
|
22
|
+
* }
|
|
23
|
+
*
|
|
24
|
+
* @throws {Object} If the request fails, rejects with an error object containing `code` and `message`.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* refreshToken({
|
|
28
|
+
* client_id: '1234567890',
|
|
29
|
+
* client_secret: 'mySecret',
|
|
30
|
+
* code: 'optional-code',
|
|
31
|
+
* refresh_token: 'old-refresh-token',
|
|
32
|
+
* redirect_uri: 'https://myapp.com/callback',
|
|
33
|
+
* scope: 'identify guilds'
|
|
34
|
+
* })
|
|
35
|
+
* .then(newTokens => console.log('New Access Token:', newTokens.access_token))
|
|
36
|
+
* .catch(err => console.error('Failed to refresh token:', err));
|
|
37
|
+
*/
|
|
38
|
+
export default function refreshToken(dsData: {
|
|
39
|
+
client_id: string;
|
|
40
|
+
client_secret: string;
|
|
41
|
+
code: string;
|
|
42
|
+
refresh_token: string;
|
|
43
|
+
redirect_uri: string;
|
|
44
|
+
scope: string;
|
|
45
|
+
}): Promise<Object>;
|