halo-infinite-api 14.0.0 → 14.1.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/coverage/lcov-report/authentication/halo-authentication-client.ts.html +1 -1
- package/coverage/lcov-report/authentication/index.html +5 -5
- package/coverage/lcov-report/authentication/xbox-authentication-client.ts.html +18 -6
- package/coverage/lcov-report/core/halo-infinite-client.ts.html +88 -16
- package/coverage/lcov-report/core/index.html +15 -15
- package/coverage/lcov-report/core/request-policy.ts.html +1 -1
- package/coverage/lcov-report/core/token-persisters/in-memory-token-persister.ts.html +1 -1
- package/coverage/lcov-report/core/token-persisters/index.html +1 -1
- package/coverage/lcov-report/core/token-persisters/local-storage-token-persister.ts.html +1 -1
- package/coverage/lcov-report/core/token-persisters/node-fs-token-persister.ts.html +1 -1
- package/coverage/lcov-report/core/token-persisters/token-persister.ts.html +1 -1
- package/coverage/lcov-report/core/token-providers/auto-token-provider.ts.html +8 -11
- package/coverage/lcov-report/core/token-providers/index.html +7 -7
- package/coverage/lcov-report/core/token-providers/spartan-token-provider.ts.html +1 -1
- package/coverage/lcov-report/core/token-providers/static-xsts-ticket-token-spartan-token-provider.ts.html +7 -10
- package/coverage/lcov-report/core/token-providers/xbox-token-provider.ts.html +1 -1
- package/coverage/lcov-report/core/xbox-client.ts.html +1 -1
- package/coverage/lcov-report/endpoints/halo-core-endpoints.ts.html +1 -1
- package/coverage/lcov-report/endpoints/index.html +1 -1
- package/coverage/lcov-report/index.html +29 -29
- package/coverage/lcov-report/models/halo-infinite/api-formatted-date.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/asset-kind.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/asset-version-link.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/asset.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/ban-summary.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/game-variant-category.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/index.html +23 -8
- package/coverage/lcov-report/models/halo-infinite/match-info.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/match-outcome.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/match-skill.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/match-stats.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/match-type.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/matches-privacy.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/medals-metadata-file.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/player-match-history.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/playlist-csr-container.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/playlist-csr.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/playlist-experience.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/playlist.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/progression-file.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/season.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/service-record.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/settings.ts.html +205 -0
- package/coverage/lcov-report/models/halo-infinite/skill-result.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/stats.ts.html +1 -1
- package/coverage/lcov-report/models/halo-infinite/user-info.ts.html +1 -1
- package/coverage/lcov-report/models/index.html +1 -1
- package/coverage/lcov-report/models/spartan-token-proof.ts.html +1 -1
- package/coverage/lcov-report/models/spartan-token-request.ts.html +1 -1
- package/coverage/lcov-report/models/spartan-token.ts.html +1 -1
- package/coverage/lcov-report/models/xbox-ticket.ts.html +1 -1
- package/coverage/lcov-report/util/date-time.ts.html +1 -1
- package/coverage/lcov-report/util/expiry-token-cache.ts.html +1 -1
- package/coverage/lcov-report/util/fetch-function.ts.html +1 -1
- package/coverage/lcov-report/util/global-contants.ts.html +1 -1
- package/coverage/lcov-report/util/index.html +1 -1
- package/coverage/lcov-report/util/keyed-expiry-token-cache.ts.html +1 -1
- package/coverage/lcov-report/util/request-error.ts.html +1 -1
- package/coverage/lcov-report/util/resolvable-promise.ts.html +1 -1
- package/coverage/lcov-report/util/xuid.ts.html +1 -1
- package/coverage/lcov.info +272 -192
- package/dist/index.cjs +24 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +37 -2
- package/dist/index.d.ts +37 -2
- package/dist/index.js +24 -11
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/authentication/xbox-authentication-client.ts +6 -2
- package/src/core/halo-infinite-client.ts +32 -8
- package/src/core/token-providers/auto-token-provider.ts +3 -4
- package/src/core/token-providers/static-xsts-ticket-token-spartan-token-provider.ts +2 -3
- package/src/models/halo-infinite/settings.ts +40 -0
|
@@ -379,7 +379,7 @@
|
|
|
379
379
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
380
380
|
Code coverage generated by
|
|
381
381
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
382
|
-
at 2025-
|
|
382
|
+
at 2025-12-08T18:28:58.806Z
|
|
383
383
|
</div>
|
|
384
384
|
<script src="../prettify.js"></script>
|
|
385
385
|
<script>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">0% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>0/
|
|
28
|
+
<span class='fraction'>0/273</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">0% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>0/
|
|
49
|
+
<span class='fraction'>0/273</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -99,13 +99,13 @@
|
|
|
99
99
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
100
100
|
</td>
|
|
101
101
|
<td data-value="0" class="pct low">0%</td>
|
|
102
|
-
<td data-value="
|
|
102
|
+
<td data-value="170" class="abs low">0/170</td>
|
|
103
103
|
<td data-value="0" class="pct low">0%</td>
|
|
104
104
|
<td data-value="1" class="abs low">0/1</td>
|
|
105
105
|
<td data-value="0" class="pct low">0%</td>
|
|
106
106
|
<td data-value="1" class="abs low">0/1</td>
|
|
107
107
|
<td data-value="0" class="pct low">0%</td>
|
|
108
|
-
<td data-value="
|
|
108
|
+
<td data-value="170" class="abs low">0/170</td>
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
111
|
</tbody>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at 2025-
|
|
119
|
+
at 2025-12-08T18:28:58.806Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">0% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>0/
|
|
28
|
+
<span class='fraction'>0/170</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">0% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>0/
|
|
49
|
+
<span class='fraction'>0/170</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -229,7 +229,15 @@
|
|
|
229
229
|
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
230
|
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
231
|
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
-
<a name='L167'></a><a href='#L167'>167</a
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a></td><td class="line-coverage quiet"><span class="cline-any cline-no"> </span>
|
|
237
|
+
<span class="cline-any cline-no"> </span>
|
|
238
|
+
<span class="cline-any cline-no"> </span>
|
|
239
|
+
<span class="cline-any cline-no"> </span>
|
|
240
|
+
<span class="cline-any cline-no"> </span>
|
|
233
241
|
<span class="cline-any cline-no"> </span>
|
|
234
242
|
<span class="cline-any cline-no"> </span>
|
|
235
243
|
<span class="cline-any cline-no"> </span>
|
|
@@ -416,6 +424,10 @@
|
|
|
416
424
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
417
425
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
418
426
|
<span class="cstat-no" title="statement not covered" >export class XboxAuthenticationClient {</span>
|
|
427
|
+
<span class="cstat-no" title="statement not covered" > static readonly userTokenName = "xbox.userToken";</span>
|
|
428
|
+
<span class="cstat-no" title="statement not covered" > static readonly xstsTicketName = (relyingParty: RelyingParty) =></span>
|
|
429
|
+
<span class="cstat-no" title="statement not covered" > `xbox.xstsTicket.${relyingParty}`;</span>
|
|
430
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
419
431
|
<span class="cstat-no" title="statement not covered" > private userTokenCache = new ExpiryTokenCache(</span>
|
|
420
432
|
<span class="cstat-no" title="statement not covered" > async (accessToken: string) => {</span>
|
|
421
433
|
<span class="cstat-no" title="statement not covered" > const url = "https://user.auth.xboxlive.com/user/authenticate";</span>
|
|
@@ -456,7 +468,7 @@
|
|
|
456
468
|
<span class="cstat-no" title="statement not covered" > const tokenPersister = await this.tokenPersisterOrPromise;</span>
|
|
457
469
|
<span class="cstat-no" title="statement not covered" > return (</span>
|
|
458
470
|
<span class="cstat-no" title="statement not covered" > (await tokenPersister?.load<XboxTicket & { expiresAt: unknown }>(</span>
|
|
459
|
-
<span class="cstat-no" title="statement not covered" >
|
|
471
|
+
<span class="cstat-no" title="statement not covered" > XboxAuthenticationClient.userTokenName</span>
|
|
460
472
|
<span class="cstat-no" title="statement not covered" > )) ?? null</span>
|
|
461
473
|
<span class="cstat-no" title="statement not covered" > );</span>
|
|
462
474
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
@@ -490,7 +502,7 @@
|
|
|
490
502
|
<span class="cstat-no" title="statement not covered" > };</span>
|
|
491
503
|
<span class="cstat-no" title="statement not covered" > await (</span>
|
|
492
504
|
<span class="cstat-no" title="statement not covered" > await this.tokenPersisterOrPromise</span>
|
|
493
|
-
<span class="cstat-no" title="statement not covered" > )?.save(
|
|
505
|
+
<span class="cstat-no" title="statement not covered" > )?.save(XboxAuthenticationClient.xstsTicketName(relyingParty), token);</span>
|
|
494
506
|
<span class="cstat-no" title="statement not covered" > return token;</span>
|
|
495
507
|
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
496
508
|
<span class="cstat-no" title="statement not covered" > throw new RequestError(url, response);</span>
|
|
@@ -568,7 +580,7 @@
|
|
|
568
580
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
569
581
|
Code coverage generated by
|
|
570
582
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
571
|
-
at 2025-
|
|
583
|
+
at 2025-12-08T18:28:58.806Z
|
|
572
584
|
</div>
|
|
573
585
|
<script src="../prettify.js"></script>
|
|
574
586
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">45.2% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>226/500</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -37,16 +37,16 @@
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">20
|
|
40
|
+
<span class="strong">20% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>5/
|
|
42
|
+
<span class='fraction'>5/25</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">45.2% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>226/500</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -539,7 +539,31 @@
|
|
|
539
539
|
<a name='L474'></a><a href='#L474'>474</a>
|
|
540
540
|
<a name='L475'></a><a href='#L475'>475</a>
|
|
541
541
|
<a name='L476'></a><a href='#L476'>476</a>
|
|
542
|
-
<a name='L477'></a><a href='#L477'>477</a
|
|
542
|
+
<a name='L477'></a><a href='#L477'>477</a>
|
|
543
|
+
<a name='L478'></a><a href='#L478'>478</a>
|
|
544
|
+
<a name='L479'></a><a href='#L479'>479</a>
|
|
545
|
+
<a name='L480'></a><a href='#L480'>480</a>
|
|
546
|
+
<a name='L481'></a><a href='#L481'>481</a>
|
|
547
|
+
<a name='L482'></a><a href='#L482'>482</a>
|
|
548
|
+
<a name='L483'></a><a href='#L483'>483</a>
|
|
549
|
+
<a name='L484'></a><a href='#L484'>484</a>
|
|
550
|
+
<a name='L485'></a><a href='#L485'>485</a>
|
|
551
|
+
<a name='L486'></a><a href='#L486'>486</a>
|
|
552
|
+
<a name='L487'></a><a href='#L487'>487</a>
|
|
553
|
+
<a name='L488'></a><a href='#L488'>488</a>
|
|
554
|
+
<a name='L489'></a><a href='#L489'>489</a>
|
|
555
|
+
<a name='L490'></a><a href='#L490'>490</a>
|
|
556
|
+
<a name='L491'></a><a href='#L491'>491</a>
|
|
557
|
+
<a name='L492'></a><a href='#L492'>492</a>
|
|
558
|
+
<a name='L493'></a><a href='#L493'>493</a>
|
|
559
|
+
<a name='L494'></a><a href='#L494'>494</a>
|
|
560
|
+
<a name='L495'></a><a href='#L495'>495</a>
|
|
561
|
+
<a name='L496'></a><a href='#L496'>496</a>
|
|
562
|
+
<a name='L497'></a><a href='#L497'>497</a>
|
|
563
|
+
<a name='L498'></a><a href='#L498'>498</a>
|
|
564
|
+
<a name='L499'></a><a href='#L499'>499</a>
|
|
565
|
+
<a name='L500'></a><a href='#L500'>500</a>
|
|
566
|
+
<a name='L501'></a><a href='#L501'>501</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
543
567
|
<span class="cline-any cline-yes">1x</span>
|
|
544
568
|
<span class="cline-any cline-yes">1x</span>
|
|
545
569
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -614,6 +638,8 @@
|
|
|
614
638
|
<span class="cline-any cline-yes">1x</span>
|
|
615
639
|
<span class="cline-any cline-yes">1x</span>
|
|
616
640
|
<span class="cline-any cline-yes">1x</span>
|
|
641
|
+
<span class="cline-any cline-yes">1x</span>
|
|
642
|
+
<span class="cline-any cline-no"> </span>
|
|
617
643
|
<span class="cline-any cline-no"> </span>
|
|
618
644
|
<span class="cline-any cline-no"> </span>
|
|
619
645
|
<span class="cline-any cline-no"> </span>
|
|
@@ -654,6 +680,12 @@
|
|
|
654
680
|
<span class="cline-any cline-yes">1x</span>
|
|
655
681
|
<span class="cline-any cline-yes">1x</span>
|
|
656
682
|
<span class="cline-any cline-yes">1x</span>
|
|
683
|
+
<span class="cline-any cline-yes">1x</span>
|
|
684
|
+
<span class="cline-any cline-yes">1x</span>
|
|
685
|
+
<span class="cline-any cline-yes">1x</span>
|
|
686
|
+
<span class="cline-any cline-yes">1x</span>
|
|
687
|
+
<span class="cline-any cline-yes">2x</span>
|
|
688
|
+
<span class="cline-any cline-yes">2x</span>
|
|
657
689
|
<span class="cline-any cline-yes">2x</span>
|
|
658
690
|
<span class="cline-any cline-yes">2x</span>
|
|
659
691
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -688,6 +720,10 @@
|
|
|
688
720
|
<span class="cline-any cline-yes">1x</span>
|
|
689
721
|
<span class="cline-any cline-yes">1x</span>
|
|
690
722
|
<span class="cline-any cline-yes">1x</span>
|
|
723
|
+
<span class="cline-any cline-yes">1x</span>
|
|
724
|
+
<span class="cline-any cline-yes">1x</span>
|
|
725
|
+
<span class="cline-any cline-yes">1x</span>
|
|
726
|
+
<span class="cline-any cline-yes">1x</span>
|
|
691
727
|
<span class="cline-any cline-no"> </span>
|
|
692
728
|
<span class="cline-any cline-no"> </span>
|
|
693
729
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -1015,6 +1051,18 @@
|
|
|
1015
1051
|
<span class="cline-any cline-no"> </span>
|
|
1016
1052
|
<span class="cline-any cline-yes">1x</span>
|
|
1017
1053
|
<span class="cline-any cline-yes">1x</span>
|
|
1054
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1055
|
+
<span class="cline-any cline-no"> </span>
|
|
1056
|
+
<span class="cline-any cline-no"> </span>
|
|
1057
|
+
<span class="cline-any cline-no"> </span>
|
|
1058
|
+
<span class="cline-any cline-no"> </span>
|
|
1059
|
+
<span class="cline-any cline-no"> </span>
|
|
1060
|
+
<span class="cline-any cline-no"> </span>
|
|
1061
|
+
<span class="cline-any cline-no"> </span>
|
|
1062
|
+
<span class="cline-any cline-no"> </span>
|
|
1063
|
+
<span class="cline-any cline-no"> </span>
|
|
1064
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1065
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1018
1066
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { FetchFunction, defaultFetch } from "../util/fetch-function";
|
|
1019
1067
|
import { HaloCoreEndpoints } from "../endpoints/halo-core-endpoints";
|
|
1020
1068
|
import {
|
|
@@ -1047,6 +1095,7 @@ import { KeyedExpiryTokenCache } from "../util/keyed-expiry-token-cache";
|
|
|
1047
1095
|
import { DateTime } from "luxon";
|
|
1048
1096
|
import { wrapPlayerId, unwrapPlayerId } from "../util/xuid";
|
|
1049
1097
|
import { SeasonCalendarContainer } from "../models/halo-infinite/season";
|
|
1098
|
+
import { Settings } from "../models/halo-infinite/settings";
|
|
1050
1099
|
|
|
1051
1100
|
export interface ResultContainer<TValue> {
|
|
1052
1101
|
Id: string;
|
|
@@ -1097,7 +1146,8 @@ export class HaloInfiniteClient {
|
|
|
1097
1146
|
<span class="cstat-no" title="statement not covered" > }/oban/flight-configurations/titles/hi/audiences/retail/players/${wrapPlayerId(</span>
|
|
1098
1147
|
<span class="cstat-no" title="statement not covered" > xuid</span>
|
|
1099
1148
|
<span class="cstat-no" title="statement not covered" > )}/active`,</span>
|
|
1100
|
-
<span class="cstat-no" title="statement not covered" > { method: "get" }
|
|
1149
|
+
<span class="cstat-no" title="statement not covered" > { method: "get" },</span>
|
|
1150
|
+
<span class="cstat-no" title="statement not covered" > false</span>
|
|
1101
1151
|
<span class="cstat-no" title="statement not covered" > );</span>
|
|
1102
1152
|
<span class="cstat-no" title="statement not covered" > const {</span>
|
|
1103
1153
|
<span class="cstat-no" title="statement not covered" > FlightConfigurationId,</span>
|
|
@@ -1120,7 +1170,11 @@ export class HaloInfiniteClient {
|
|
|
1120
1170
|
private readonly fetchFn: FetchFunction = defaultFetch
|
|
1121
1171
|
) {}
|
|
1122
1172
|
|
|
1123
|
-
protected async executeRequest(
|
|
1173
|
+
protected async executeRequest(
|
|
1174
|
+
url: string,
|
|
1175
|
+
init: RequestInit,
|
|
1176
|
+
skipAuth: boolean
|
|
1177
|
+
) {
|
|
1124
1178
|
const failureHandler = unauthorizedRetryPolicy.onFailure(
|
|
1125
1179
|
async ({ handled }) => {
|
|
1126
1180
|
if (handled) {
|
|
@@ -1137,10 +1191,12 @@ export class HaloInfiniteClient {
|
|
|
1137
1191
|
if (!headers.has("Accept")) {
|
|
1138
1192
|
headers.set("Accept", "application/json");
|
|
1139
1193
|
}
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1194
|
+
if (!skipAuth) {
|
|
1195
|
+
headers.set(
|
|
1196
|
+
"x-343-authorization-spartan",
|
|
1197
|
+
await this.spartanTokenProvider.getSpartanToken()
|
|
1198
|
+
);
|
|
1199
|
+
}
|
|
1144
1200
|
|
|
1145
1201
|
const response = await this.fetchFn(url, {
|
|
1146
1202
|
...init,
|
|
@@ -1158,8 +1214,12 @@ export class HaloInfiniteClient {
|
|
|
1158
1214
|
}
|
|
1159
1215
|
}
|
|
1160
1216
|
|
|
1161
|
-
protected async executeJsonRequest<T>(
|
|
1162
|
-
|
|
1217
|
+
protected async executeJsonRequest<T>(
|
|
1218
|
+
url: string,
|
|
1219
|
+
init: RequestInit,
|
|
1220
|
+
skipAuth?: boolean
|
|
1221
|
+
) {
|
|
1222
|
+
const response = await this.executeRequest(url, init, skipAuth ?? false);
|
|
1163
1223
|
|
|
1164
1224
|
if (response.status >= 200 && response.status < 300) {
|
|
1165
1225
|
return (await response.json()) as T;
|
|
@@ -1490,6 +1550,18 @@ export class HaloInfiniteClient {
|
|
|
1490
1550
|
<span class="cstat-no" title="statement not covered" > method: "get",</span>
|
|
1491
1551
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1492
1552
|
);
|
|
1553
|
+
|
|
1554
|
+
public getSettings = <span class="fstat-no" title="function not covered" >(</span>
|
|
1555
|
+
<span class="cstat-no" title="statement not covered" > init?: Omit<RequestInit, "body" | "method"></span>
|
|
1556
|
+
<span class="cstat-no" title="statement not covered" > ): Promise<Settings> =></span>
|
|
1557
|
+
<span class="cstat-no" title="statement not covered" > this.executeJsonRequest(</span>
|
|
1558
|
+
<span class="cstat-no" title="statement not covered" > `https://${HaloCoreEndpoints.SettingsOrigin}.${HaloCoreEndpoints.ServiceDomain}/settings/hipc/e2a0a7c6-6efe-42af-9283-c2ab73250c48`,</span>
|
|
1559
|
+
<span class="cstat-no" title="statement not covered" > {</span>
|
|
1560
|
+
<span class="cstat-no" title="statement not covered" > ...init,</span>
|
|
1561
|
+
<span class="cstat-no" title="statement not covered" > method: "get",</span>
|
|
1562
|
+
<span class="cstat-no" title="statement not covered" > },</span>
|
|
1563
|
+
<span class="cstat-no" title="statement not covered" > true</span>
|
|
1564
|
+
);
|
|
1493
1565
|
}
|
|
1494
1566
|
</pre></td></tr></table></pre>
|
|
1495
1567
|
|
|
@@ -1498,7 +1570,7 @@ export class HaloInfiniteClient {
|
|
|
1498
1570
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1499
1571
|
Code coverage generated by
|
|
1500
1572
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1501
|
-
at 2025-
|
|
1573
|
+
at 2025-12-08T18:28:58.806Z
|
|
1502
1574
|
</div>
|
|
1503
1575
|
<script src="../prettify.js"></script>
|
|
1504
1576
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">38.13% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>233/611</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -37,16 +37,16 @@
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">19.23% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>5/
|
|
42
|
+
<span class='fraction'>5/26</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">38.13% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>233/611</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -80,17 +80,17 @@
|
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
82
|
<td class="file low" data-value="halo-infinite-client.ts"><a href="halo-infinite-client.ts.html">halo-infinite-client.ts</a></td>
|
|
83
|
-
<td data-value="
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
83
|
+
<td data-value="45.2" class="pic low">
|
|
84
|
+
<div class="chart"><div class="cover-fill" style="width: 45%"></div><div class="cover-empty" style="width: 55%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="
|
|
87
|
-
<td data-value="
|
|
86
|
+
<td data-value="45.2" class="pct low">45.2%</td>
|
|
87
|
+
<td data-value="500" class="abs low">226/500</td>
|
|
88
88
|
<td data-value="88.88" class="pct high">88.88%</td>
|
|
89
89
|
<td data-value="9" class="abs high">8/9</td>
|
|
90
|
-
<td data-value="20
|
|
91
|
-
<td data-value="
|
|
92
|
-
<td data-value="
|
|
93
|
-
<td data-value="
|
|
90
|
+
<td data-value="20" class="pct low">20%</td>
|
|
91
|
+
<td data-value="25" class="abs low">5/25</td>
|
|
92
|
+
<td data-value="45.2" class="pct low">45.2%</td>
|
|
93
|
+
<td data-value="500" class="abs low">226/500</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
132
132
|
Code coverage generated by
|
|
133
133
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
134
|
-
at 2025-
|
|
134
|
+
at 2025-12-08T18:28:58.806Z
|
|
135
135
|
</div>
|
|
136
136
|
<script src="../prettify.js"></script>
|
|
137
137
|
<script>
|
|
@@ -91,7 +91,7 @@ export const unauthorizedRetryPolicy = retry(
|
|
|
91
91
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
92
92
|
Code coverage generated by
|
|
93
93
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
94
|
-
at 2025-
|
|
94
|
+
at 2025-12-08T18:28:58.806Z
|
|
95
95
|
</div>
|
|
96
96
|
<script src="../prettify.js"></script>
|
|
97
97
|
<script>
|
|
@@ -115,7 +115,7 @@ export const inMemoryTokenPersister: TokenPersister = {
|
|
|
115
115
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
116
116
|
Code coverage generated by
|
|
117
117
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
118
|
-
at 2025-
|
|
118
|
+
at 2025-12-08T18:28:58.806Z
|
|
119
119
|
</div>
|
|
120
120
|
<script src="../../prettify.js"></script>
|
|
121
121
|
<script>
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
147
147
|
Code coverage generated by
|
|
148
148
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
149
|
-
at 2025-
|
|
149
|
+
at 2025-12-08T18:28:58.806Z
|
|
150
150
|
</div>
|
|
151
151
|
<script src="../../prettify.js"></script>
|
|
152
152
|
<script>
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
125
125
|
Code coverage generated by
|
|
126
126
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
127
|
-
at 2025-
|
|
127
|
+
at 2025-12-08T18:28:58.806Z
|
|
128
128
|
</div>
|
|
129
129
|
<script src="../../prettify.js"></script>
|
|
130
130
|
<script>
|
|
@@ -184,7 +184,7 @@ export const nodeFsTokenPersister: TokenPersister = {
|
|
|
184
184
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
185
185
|
Code coverage generated by
|
|
186
186
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
187
|
-
at 2025-
|
|
187
|
+
at 2025-12-08T18:28:58.806Z
|
|
188
188
|
</div>
|
|
189
189
|
<script src="../../prettify.js"></script>
|
|
190
190
|
<script>
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
86
86
|
Code coverage generated by
|
|
87
87
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
88
|
-
at 2025-
|
|
88
|
+
at 2025-12-08T18:28:58.806Z
|
|
89
89
|
</div>
|
|
90
90
|
<script src="../../prettify.js"></script>
|
|
91
91
|
<script>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">0% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>0/
|
|
28
|
+
<span class='fraction'>0/70</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">0% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>0/
|
|
49
|
+
<span class='fraction'>0/70</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -133,8 +133,7 @@
|
|
|
133
133
|
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
134
|
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
135
|
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a></td><td class="line-coverage quiet"><span class="cline-any cline-no"> </span>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a></td><td class="line-coverage quiet"><span class="cline-any cline-no"> </span>
|
|
138
137
|
<span class="cline-any cline-no"> </span>
|
|
139
138
|
<span class="cline-any cline-no"> </span>
|
|
140
139
|
<span class="cline-any cline-no"> </span>
|
|
@@ -204,18 +203,16 @@
|
|
|
204
203
|
<span class="cline-any cline-no"> </span>
|
|
205
204
|
<span class="cline-any cline-no"> </span>
|
|
206
205
|
<span class="cline-any cline-no"> </span>
|
|
207
|
-
<span class="cline-any cline-
|
|
208
|
-
<span class="
|
|
206
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >import { HaloAuthenticationClient } from "../../authentication/halo-authentication-client";</span></span></span>
|
|
207
|
+
<span class="cstat-no" title="statement not covered" >import {</span>
|
|
209
208
|
<span class="cstat-no" title="statement not covered" > RelyingParty,</span>
|
|
210
209
|
<span class="cstat-no" title="statement not covered" > XboxAuthenticationClient,</span>
|
|
211
210
|
<span class="cstat-no" title="statement not covered" >} from "../../authentication/xbox-authentication-client";</span>
|
|
211
|
+
<span class="cstat-no" title="statement not covered" >import type { FetchFunction } from "../../util/fetch-function";</span>
|
|
212
212
|
<span class="cstat-no" title="statement not covered" >import { TokenPersister } from "../token-persisters";</span>
|
|
213
|
-
<span class="cstat-no" title="statement not covered" >import { HaloAuthenticationClient } from "../../authentication/halo-authentication-client";</span>
|
|
214
|
-
<span class="cstat-no" title="statement not covered" >import { SpartanTokenProvider } from "./spartan-token-provider";</span>
|
|
215
213
|
<span class="cstat-no" title="statement not covered" >import { inMemoryTokenPersister } from "../token-persisters/in-memory-token-persister";</span>
|
|
214
|
+
<span class="cstat-no" title="statement not covered" >import { SpartanTokenProvider } from "./spartan-token-provider";</span>
|
|
216
215
|
<span class="cstat-no" title="statement not covered" >import { XboxTokenProvider } from "./xbox-token-provider";</span>
|
|
217
|
-
<span class="cstat-no" title="statement not covered" >import type { FetchFunction } from "../../util/fetch-function";</span>
|
|
218
|
-
<span class="cstat-no" title="statement not covered" >import type { DateTime } from "luxon";</span>
|
|
219
216
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
220
217
|
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
221
218
|
<span class="cstat-no" title="statement not covered" > * A SpartanTokenProvider that fetches both the Xbox and Halo tokens in the same</span>
|
|
@@ -283,7 +280,7 @@
|
|
|
283
280
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
284
281
|
Code coverage generated by
|
|
285
282
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
286
|
-
at 2025-
|
|
283
|
+
at 2025-12-08T18:28:58.806Z
|
|
287
284
|
</div>
|
|
288
285
|
<script src="../../prettify.js"></script>
|
|
289
286
|
<script>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">0% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>0/
|
|
28
|
+
<span class='fraction'>0/128</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">0% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>0/
|
|
49
|
+
<span class='fraction'>0/128</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -84,13 +84,13 @@
|
|
|
84
84
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
85
85
|
</td>
|
|
86
86
|
<td data-value="0" class="pct low">0%</td>
|
|
87
|
-
<td data-value="
|
|
87
|
+
<td data-value="70" class="abs low">0/70</td>
|
|
88
88
|
<td data-value="0" class="pct low">0%</td>
|
|
89
89
|
<td data-value="1" class="abs low">0/1</td>
|
|
90
90
|
<td data-value="0" class="pct low">0%</td>
|
|
91
91
|
<td data-value="1" class="abs low">0/1</td>
|
|
92
92
|
<td data-value="0" class="pct low">0%</td>
|
|
93
|
-
<td data-value="
|
|
93
|
+
<td data-value="70" class="abs low">0/70</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
@@ -114,13 +114,13 @@
|
|
|
114
114
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
115
115
|
</td>
|
|
116
116
|
<td data-value="0" class="pct low">0%</td>
|
|
117
|
-
<td data-value="
|
|
117
|
+
<td data-value="47" class="abs low">0/47</td>
|
|
118
118
|
<td data-value="0" class="pct low">0%</td>
|
|
119
119
|
<td data-value="1" class="abs low">0/1</td>
|
|
120
120
|
<td data-value="0" class="pct low">0%</td>
|
|
121
121
|
<td data-value="1" class="abs low">0/1</td>
|
|
122
122
|
<td data-value="0" class="pct low">0%</td>
|
|
123
|
-
<td data-value="
|
|
123
|
+
<td data-value="47" class="abs low">0/47</td>
|
|
124
124
|
</tr>
|
|
125
125
|
|
|
126
126
|
<tr>
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
147
147
|
Code coverage generated by
|
|
148
148
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
149
|
-
at 2025-
|
|
149
|
+
at 2025-12-08T18:28:58.806Z
|
|
150
150
|
</div>
|
|
151
151
|
<script src="../../prettify.js"></script>
|
|
152
152
|
<script>
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
92
92
|
Code coverage generated by
|
|
93
93
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
94
|
-
at 2025-
|
|
94
|
+
at 2025-12-08T18:28:58.806Z
|
|
95
95
|
</div>
|
|
96
96
|
<script src="../../prettify.js"></script>
|
|
97
97
|
<script>
|