halo-infinite-api 8.0.5 → 8.0.6

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.
@@ -66,8 +66,11 @@ export class HaloAuthenticationClient {
66
66
  const { token } = await this.spartanTokenCache.getToken();
67
67
  return token;
68
68
  }
69
- clearSpartanToken() {
70
- return this.clearToken();
69
+ async clearSpartanToken() {
70
+ // Clear from memory
71
+ this.spartanTokenCache.clearToken();
72
+ // Clear from storage
73
+ await this.clearToken();
71
74
  }
72
75
  }
73
76
  //# sourceMappingURL=halo-authentication-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"halo-authentication-client.js","sourceRoot":"","sources":["../../src/authentication/halo-authentication-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"halo-authentication-client.js","sourceRoot":"","sources":["../../src/authentication/halo-authentication-client.ts"],"names":[],"mappings":"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"}
@@ -86,8 +86,11 @@ export class XboxAuthenticationClient {
86
86
  let xstsTicket = await this.xstsTicketCache.getExistingToken(relyingParty);
87
87
  if (!xstsTicket) {
88
88
  let userToken = await this.userTokenCache.getExistingToken();
89
- const xstsTicketFailureHandler = unauthorizedRetryPolicy.onFailure(() => {
89
+ const xstsTicketFailureHandler = unauthorizedRetryPolicy.onFailure(async () => {
90
+ // Clear from memory
90
91
  this.userTokenCache.clearToken();
92
+ // Clear from storage
93
+ (await this.tokenPersisterOrPromise)?.clear("xbox.userToken");
91
94
  userToken = null;
92
95
  });
93
96
  xstsTicket = await unauthorizedRetryPolicy
@@ -105,7 +108,10 @@ export class XboxAuthenticationClient {
105
108
  return xstsTicket;
106
109
  }
107
110
  clearXstsTicket = async (relyingParty) => {
111
+ // Clear from memory
108
112
  this.xstsTicketCache.clearToken(relyingParty);
113
+ // Clear from storage
114
+ (await this.tokenPersisterOrPromise)?.clear("xbox.xstsTicket." + relyingParty);
109
115
  };
110
116
  getXboxLiveV3Token = (xboxTicket) => `XBL3.0 x=${xboxTicket.DisplayClaims.xui[0].uhs};${xboxTicket.Token}`;
111
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xbox-authentication-client.js","sourceRoot":"","sources":["../../src/authentication/xbox-authentication-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xbox-authentication-client.js","sourceRoot":"","sources":["../../src/authentication/xbox-authentication-client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { handleWhen, retry } from "cockatiel";
1
+ import { handleType, retry } from "cockatiel";
2
2
  import { RequestError } from "../util/request-error";
3
- export const unauthorizedRetryPolicy = retry(handleWhen((error) => error instanceof RequestError && error.response.status === 401), { maxAttempts: 2 });
3
+ export const unauthorizedRetryPolicy = retry(handleType(RequestError, (error) => error.response.status === 401), { maxAttempts: 2 });
4
4
  //# sourceMappingURL=request-policy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-policy.js","sourceRoot":"","sources":["../../src/core/request-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,UAAU,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAC1C,UAAU,CACR,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,CAC1E,EACD,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB,CAAC"}
1
+ {"version":3,"file":"request-policy.js","sourceRoot":"","sources":["../../src/core/request-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAC1C,UAAU,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,EAClE,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB,CAAC"}
@@ -3,11 +3,11 @@ export class RequestError extends Error {
3
3
  response;
4
4
  url;
5
5
  constructor(request, response) {
6
- super(`${typeof request === "object" && "url" in request
6
+ super(`${response.status} from ${typeof request === "object" && "url" in request
7
7
  ? request.url
8
8
  : typeof request === "string"
9
9
  ? request
10
- : request.href} ${response.status} ${response.statusText}`);
10
+ : request.href}`);
11
11
  this.request = request;
12
12
  this.response = response;
13
13
  this.url =
@@ -16,6 +16,7 @@ export class RequestError extends Error {
16
16
  : typeof request === "string"
17
17
  ? request
18
18
  : request.href;
19
+ this.name = "RequestError";
19
20
  }
20
21
  }
21
22
  //# sourceMappingURL=request-error.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-error.js","sourceRoot":"","sources":["../../src/util/request-error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAa,SAAQ,KAAK;IAGnB;IACA;IAHF,GAAG,CAAS;IAC5B,YACkB,OAA0B,EAC1B,QAAkB;QAElC,KAAK,CACH,GACE,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,IAAI,OAAO;YAC7C,CAAC,CAAC,OAAO,CAAC,GAAG;YACb,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ;gBAC7B,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,OAAO,CAAC,IACd,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAC7C,CAAC;QAXc,YAAO,GAAP,OAAO,CAAmB;QAC1B,aAAQ,GAAR,QAAQ,CAAU;QAWlC,IAAI,CAAC,GAAG;YACN,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,IAAI,OAAO;gBAC7C,CAAC,CAAC,OAAO,CAAC,GAAG;gBACb,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ;oBAC7B,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"request-error.js","sourceRoot":"","sources":["../../src/util/request-error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAa,SAAQ,KAAK;IAGnB;IACA;IAHF,GAAG,CAAS;IAC5B,YACkB,OAA0B,EAC1B,QAAkB;QAElC,KAAK,CACH,GAAG,QAAQ,CAAC,MAAM,SAChB,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,IAAI,OAAO;YAC7C,CAAC,CAAC,OAAO,CAAC,GAAG;YACb,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ;gBAC7B,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,OAAO,CAAC,IACd,EAAE,CACH,CAAC;QAXc,YAAO,GAAP,OAAO,CAAmB;QAC1B,aAAQ,GAAR,QAAQ,CAAU;QAWlC,IAAI,CAAC,GAAG;YACN,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,IAAI,OAAO;gBAC7C,CAAC,CAAC,OAAO,CAAC,GAAG;gBACb,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ;oBAC7B,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "halo-infinite-api",
3
3
  "type": "module",
4
- "version": "8.0.5",
4
+ "version": "8.0.6",
5
5
  "description": "An NPM package for accessing the official Halo Infinite API.",
6
6
  "main": "dist/index.js",
7
7
  "exports": {
@@ -79,7 +79,10 @@ export class HaloAuthenticationClient {
79
79
  return token;
80
80
  }
81
81
 
82
- public clearSpartanToken() {
83
- return this.clearToken();
82
+ public async clearSpartanToken() {
83
+ // Clear from memory
84
+ this.spartanTokenCache.clearToken();
85
+ // Clear from storage
86
+ await this.clearToken();
84
87
  }
85
88
  }
@@ -121,10 +121,15 @@ export class XboxAuthenticationClient {
121
121
  let xstsTicket = await this.xstsTicketCache.getExistingToken(relyingParty);
122
122
  if (!xstsTicket) {
123
123
  let userToken = await this.userTokenCache.getExistingToken();
124
- const xstsTicketFailureHandler = unauthorizedRetryPolicy.onFailure(() => {
125
- this.userTokenCache.clearToken();
126
- userToken = null;
127
- });
124
+ const xstsTicketFailureHandler = unauthorizedRetryPolicy.onFailure(
125
+ async () => {
126
+ // Clear from memory
127
+ this.userTokenCache.clearToken();
128
+ // Clear from storage
129
+ (await this.tokenPersisterOrPromise)?.clear("xbox.userToken");
130
+ userToken = null;
131
+ }
132
+ );
128
133
  xstsTicket = await unauthorizedRetryPolicy
129
134
  .execute(async () => {
130
135
  if (!userToken) {
@@ -141,7 +146,12 @@ export class XboxAuthenticationClient {
141
146
  }
142
147
 
143
148
  public clearXstsTicket = async (relyingParty: RelyingParty) => {
149
+ // Clear from memory
144
150
  this.xstsTicketCache.clearToken(relyingParty);
151
+ // Clear from storage
152
+ (await this.tokenPersisterOrPromise)?.clear(
153
+ "xbox.xstsTicket." + relyingParty
154
+ );
145
155
  };
146
156
 
147
157
  public getXboxLiveV3Token = (xboxTicket: XboxTicket) =>
@@ -1,6 +1,5 @@
1
1
  import { HaloInfiniteClient } from "./halo-infinite-client";
2
2
  import { SpartanTokenProvider } from "./token-providers/spartan-token-providers";
3
- import { ResolvablePromise } from "../util/resolvable-promise";
4
3
  describe("Halo Infinite Client", () => {
5
4
  it("should retry a request when 401", async () => {
6
5
  const spartanTokenProvider: SpartanTokenProvider = {
@@ -1,9 +1,7 @@
1
- import { ConstantBackoff, handleWhen, retry } from "cockatiel";
1
+ import { handleType, retry } from "cockatiel";
2
2
  import { RequestError } from "../util/request-error";
3
3
 
4
4
  export const unauthorizedRetryPolicy = retry(
5
- handleWhen(
6
- (error) => error instanceof RequestError && error.response.status === 401
7
- ),
5
+ handleType(RequestError, (error) => error.response.status === 401),
8
6
  { maxAttempts: 2 }
9
7
  );
@@ -5,13 +5,13 @@ export class RequestError extends Error {
5
5
  public readonly response: Response
6
6
  ) {
7
7
  super(
8
- `${
8
+ `${response.status} from ${
9
9
  typeof request === "object" && "url" in request
10
10
  ? request.url
11
11
  : typeof request === "string"
12
12
  ? request
13
13
  : request.href
14
- } ${response.status} ${response.statusText}`
14
+ }`
15
15
  );
16
16
  this.url =
17
17
  typeof request === "object" && "url" in request
@@ -19,5 +19,6 @@ export class RequestError extends Error {
19
19
  : typeof request === "string"
20
20
  ? request
21
21
  : request.href;
22
+ this.name = "RequestError";
22
23
  }
23
24
  }