halo-infinite-api 1.0.3 → 1.0.4
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import axios from "axios";
|
|
2
|
-
import
|
|
2
|
+
import pkceChallenge from "pkce-challenge";
|
|
3
3
|
import { DateTime } from "luxon";
|
|
4
4
|
import { coalesceDateTime } from "../util/date-time";
|
|
5
5
|
const SCOPES = ["Xboxlive.signin", "Xboxlive.offline_access"];
|
|
@@ -32,16 +32,7 @@ export class XboxAuthenticationClient {
|
|
|
32
32
|
this.httpClient = axios.create();
|
|
33
33
|
}
|
|
34
34
|
getPkce() {
|
|
35
|
-
return
|
|
36
|
-
getPkce(43, (err, { verifier, challenge }) => {
|
|
37
|
-
if (err) {
|
|
38
|
-
reject(err);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
resolve({ verifier, challenge });
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
});
|
|
35
|
+
return pkceChallenge(43);
|
|
45
36
|
}
|
|
46
37
|
async getAccessToken() {
|
|
47
38
|
if (this.currentTokenPromise) {
|
|
@@ -106,14 +97,14 @@ export class XboxAuthenticationClient {
|
|
|
106
97
|
}
|
|
107
98
|
}
|
|
108
99
|
async fetchOauth2Token() {
|
|
109
|
-
const {
|
|
100
|
+
const { code_verifier, code_challenge } = await this.getPkce();
|
|
110
101
|
const authorizeUrl = `https://login.live.com/oauth20_authorize.srf?${new URLSearchParams({
|
|
111
102
|
client_id: this.clientId,
|
|
112
103
|
response_type: "code",
|
|
113
104
|
redirect_uri: this.redirectUri,
|
|
114
105
|
scope: SCOPES.join(" "),
|
|
115
106
|
code_challenge_method: "S256",
|
|
116
|
-
code_challenge
|
|
107
|
+
code_challenge,
|
|
117
108
|
})}`;
|
|
118
109
|
const code = await this.getAuthCode(authorizeUrl);
|
|
119
110
|
const response = await this.httpClient.post("https://login.live.com/oauth20_token.srf", new URLSearchParams({
|
|
@@ -123,7 +114,7 @@ export class XboxAuthenticationClient {
|
|
|
123
114
|
scope: SCOPES.join(" "),
|
|
124
115
|
redirect_uri: this.redirectUri,
|
|
125
116
|
client_id: this.clientId,
|
|
126
|
-
code_verifier
|
|
117
|
+
code_verifier,
|
|
127
118
|
}), {
|
|
128
119
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
129
120
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xbox-authentication-client.js","sourceRoot":"","sources":["../../src/authentication/xbox-authentication-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"xbox-authentication-client.js","sourceRoot":"","sources":["../../src/authentication/xbox-authentication-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "halo-infinite-api",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.4",
|
|
5
5
|
"description": "An NPM package for accessing the official Halo Infinite API.",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"scripts": {
|
|
@@ -35,7 +35,10 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"axios": "^1.3.5",
|
|
37
37
|
"luxon": "^3.3.0",
|
|
38
|
-
"
|
|
38
|
+
"pkce-challenge": "^4.0.1",
|
|
39
39
|
"simple-oauth2": "^5.0.0"
|
|
40
|
+
},
|
|
41
|
+
"publishConfig": {
|
|
42
|
+
"@GravlLift:registry": "https://npm.pkg.github.com"
|
|
40
43
|
}
|
|
41
44
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import axios, { AxiosInstance } from "axios";
|
|
2
|
-
import
|
|
2
|
+
import pkceChallenge from "pkce-challenge";
|
|
3
3
|
import { DateTime } from "luxon";
|
|
4
4
|
import { XboxTicket } from "../models/xbox-ticket";
|
|
5
5
|
import { coalesceDateTime } from "../util/date-time";
|
|
@@ -45,18 +45,7 @@ export class XboxAuthenticationClient {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
private getPkce() {
|
|
48
|
-
return
|
|
49
|
-
verifier: string;
|
|
50
|
-
challenge: string;
|
|
51
|
-
}>((resolve, reject) => {
|
|
52
|
-
getPkce(43, (err, { verifier, challenge }) => {
|
|
53
|
-
if (err) {
|
|
54
|
-
reject(err);
|
|
55
|
-
} else {
|
|
56
|
-
resolve({ verifier, challenge });
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
});
|
|
48
|
+
return pkceChallenge(43);
|
|
60
49
|
}
|
|
61
50
|
|
|
62
51
|
public async getAccessToken() {
|
|
@@ -128,7 +117,7 @@ export class XboxAuthenticationClient {
|
|
|
128
117
|
}
|
|
129
118
|
|
|
130
119
|
private async fetchOauth2Token(): Promise<XboxAuthenticationToken> {
|
|
131
|
-
const {
|
|
120
|
+
const { code_verifier, code_challenge } = await this.getPkce();
|
|
132
121
|
|
|
133
122
|
const authorizeUrl = `https://login.live.com/oauth20_authorize.srf?${new URLSearchParams(
|
|
134
123
|
{
|
|
@@ -137,7 +126,7 @@ export class XboxAuthenticationClient {
|
|
|
137
126
|
redirect_uri: this.redirectUri,
|
|
138
127
|
scope: SCOPES.join(" "),
|
|
139
128
|
code_challenge_method: "S256",
|
|
140
|
-
code_challenge
|
|
129
|
+
code_challenge,
|
|
141
130
|
}
|
|
142
131
|
)}`;
|
|
143
132
|
|
|
@@ -159,7 +148,7 @@ export class XboxAuthenticationClient {
|
|
|
159
148
|
scope: SCOPES.join(" "),
|
|
160
149
|
redirect_uri: this.redirectUri,
|
|
161
150
|
client_id: this.clientId,
|
|
162
|
-
code_verifier
|
|
151
|
+
code_verifier,
|
|
163
152
|
}),
|
|
164
153
|
{
|
|
165
154
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|