halo-infinite-api 8.0.5 → 8.0.7

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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAiB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAOjE,MAAM,OAAO,wBAAwB;IAmDhB;IACA;IACA;IAIA;IACA;IACA;IA1DX,iBAAiB,GAAG,IAAI,gBAAgB,CAC9C,KAAK,IAAI,EAAE;QACT,MAAM,cAAc,GAAG,uBAAuB,CAAC,SAAS,CAAC,GAAG,EAAE,CAC5D,IAAI,CAAC,cAAc,EAAE,CACtB,CAAC;QACF,IAAI,CAAC;YACH,OAAO,MAAM,uBAAuB,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;gBACtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE9C,MAAM,YAAY,GAAwB;oBACxC,QAAQ,EAAE,qBAAqB;oBAC/B,UAAU,EAAE,GAAG;oBACf,KAAK,EAAE;wBACL;4BACE,KAAK,EAAE,SAAS;4BAChB,SAAS,EAAE,aAAa;yBACzB;qBACF;iBACF,CAAC;gBACF,MAAM,GAAG,GAAG,qDAAqD,CAAC;gBAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;oBACvC,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;oBAClC,OAAO,EAAE;wBACP,YAAY,EAAE,eAAe,CAAC,wBAAwB;wBACtD,cAAc,EAAE,iCAAiC;wBACjD,MAAM,EAAE,mCAAmC;qBAC5C;iBACF,CAAC,CAAC;gBACH,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBACpD,MAAM,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiB,CAAC;oBAEzD,MAAM,QAAQ,GAAG;wBACf,KAAK,EAAE,QAAQ,CAAC,YAAY;wBAC5B,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;qBAC7D,CAAC;oBACF,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAC/B,OAAO,QAAQ,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,cAAc,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC,EACD,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CACvB,CAAC;IAEF,YACmB,cAA8C,EAC9C,cAAmC,EACnC,SAGR,EACQ,SAA0C,EAC1C,UAA+B,EAC/B,UAAyB,YAAY;QARrC,mBAAc,GAAd,cAAc,CAAgC;QAC9C,mBAAc,GAAd,cAAc,CAAqB;QACnC,cAAS,GAAT,SAAS,CAGjB;QACQ,cAAS,GAAT,SAAS,CAAiC;QAC1C,eAAU,GAAV,UAAU,CAAqB;QAC/B,YAAO,GAAP,OAAO,CAA8B;IACrD,CAAC;IAEG,KAAK,CAAC,eAAe;QAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"halo-authentication-client.js","sourceRoot":"","sources":["../../src/authentication/halo-authentication-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAiB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAOjE,MAAM,OAAO,wBAAwB;IAmDhB;IACA;IACA;IAIA;IACA;IACA;IA1DX,iBAAiB,GAAG,IAAI,gBAAgB,CAC9C,KAAK,IAAI,EAAE;QACT,MAAM,cAAc,GAAG,uBAAuB,CAAC,SAAS,CAAC,GAAG,EAAE,CAC5D,IAAI,CAAC,cAAc,EAAE,CACtB,CAAC;QACF,IAAI,CAAC;YACH,OAAO,MAAM,uBAAuB,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;gBACtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE9C,MAAM,YAAY,GAAwB;oBACxC,QAAQ,EAAE,qBAAqB;oBAC/B,UAAU,EAAE,GAAG;oBACf,KAAK,EAAE;wBACL;4BACE,KAAK,EAAE,SAAS;4BAChB,SAAS,EAAE,aAAa;yBACzB;qBACF;iBACF,CAAC;gBACF,MAAM,GAAG,GAAG,qDAAqD,CAAC;gBAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;oBACvC,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;oBAClC,OAAO,EAAE;wBACP,YAAY,EAAE,eAAe,CAAC,wBAAwB;wBACtD,cAAc,EAAE,iCAAiC;wBACjD,MAAM,EAAE,mCAAmC;qBAC5C;iBACF,CAAC,CAAC;gBACH,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBACpD,MAAM,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiB,CAAC;oBAEzD,MAAM,QAAQ,GAAG;wBACf,KAAK,EAAE,QAAQ,CAAC,YAAY;wBAC5B,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;qBAC7D,CAAC;oBACF,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAC/B,OAAO,QAAQ,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,cAAc,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC,EACD,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CACvB,CAAC;IAEF,YACmB,cAA8C,EAC9C,cAAmC,EACnC,SAGR,EACQ,SAA0C,EAC1C,UAA+B,EAC/B,UAAyB,YAAY;QARrC,mBAAc,GAAd,cAAc,CAAgC;QAC9C,mBAAc,GAAd,cAAc,CAAqB;QACnC,cAAS,GAAT,SAAS,CAGjB;QACQ,cAAS,GAAT,SAAS,CAAiC;QAC1C,eAAU,GAAV,UAAU,CAAqB;QAC/B,YAAO,GAAP,OAAO,CAA8B;IACrD,CAAC;IAEG,KAAK,CAAC,eAAe;QAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,oBAAoB;QACpB,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;QACpC,qBAAqB;QACrB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;CACF"}
@@ -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"}
@@ -24,11 +24,11 @@ export class ExpiryTokenCache {
24
24
  this.tokenFetchPromise = new ResolvablePromise();
25
25
  try {
26
26
  const newToken = await this.generateNewToken(...args);
27
- this.tokenFetchPromise.resolve(newToken);
27
+ this.tokenFetchPromise?.resolve(newToken);
28
28
  return newToken;
29
29
  }
30
30
  catch (e) {
31
- this.tokenFetchPromise.reject(e);
31
+ this.tokenFetchPromise?.reject(e);
32
32
  this.tokenFetchPromise = undefined;
33
33
  throw e;
34
34
  }
@@ -43,16 +43,16 @@ export class ExpiryTokenCache {
43
43
  const expiresAt = coalesceDateTime(existingToken.expiresAt);
44
44
  if (expiresAt && expiresAt > DateTime.now()) {
45
45
  const newToken = { ...existingToken, expiresAt };
46
- this.tokenFetchPromise.resolve(newToken);
46
+ this.tokenFetchPromise?.resolve(newToken);
47
47
  return newToken;
48
48
  }
49
49
  }
50
50
  const newToken = await this.generateNewToken(...args);
51
- this.tokenFetchPromise.resolve(newToken);
51
+ this.tokenFetchPromise?.resolve(newToken);
52
52
  return newToken;
53
53
  }
54
54
  catch (e) {
55
- this.tokenFetchPromise.reject(e);
55
+ this.tokenFetchPromise?.reject(e);
56
56
  this.tokenFetchPromise = undefined;
57
57
  throw e;
58
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"expiry-token-cache.js","sourceRoot":"","sources":["../../src/util/expiry-token-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expiry-token-cache.js","sourceRoot":"","sources":["../../src/util/expiry-token-cache.ts"],"names":[],"mappings":"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"}
@@ -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.7",
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
  );
@@ -31,10 +31,10 @@ export class ExpiryTokenCache<
31
31
 
32
32
  try {
33
33
  const newToken = await this.generateNewToken(...args);
34
- this.tokenFetchPromise.resolve(newToken);
34
+ this.tokenFetchPromise?.resolve(newToken);
35
35
  return newToken;
36
36
  } catch (e) {
37
- this.tokenFetchPromise.reject(e);
37
+ this.tokenFetchPromise?.reject(e);
38
38
  this.tokenFetchPromise = undefined;
39
39
  throw e;
40
40
  }
@@ -50,16 +50,16 @@ export class ExpiryTokenCache<
50
50
  const expiresAt = coalesceDateTime(existingToken.expiresAt);
51
51
  if (expiresAt && expiresAt > DateTime.now()) {
52
52
  const newToken = { ...existingToken, expiresAt } as TToken;
53
- this.tokenFetchPromise.resolve(newToken);
53
+ this.tokenFetchPromise?.resolve(newToken);
54
54
  return newToken;
55
55
  }
56
56
  }
57
57
 
58
58
  const newToken = await this.generateNewToken(...args);
59
- this.tokenFetchPromise.resolve(newToken);
59
+ this.tokenFetchPromise?.resolve(newToken);
60
60
  return newToken;
61
61
  } catch (e) {
62
- this.tokenFetchPromise.reject(e);
62
+ this.tokenFetchPromise?.reject(e);
63
63
  this.tokenFetchPromise = undefined;
64
64
  throw e;
65
65
  }
@@ -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
  }