@azure/msal-angular 5.3.1 → 6.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/README.md CHANGED
@@ -34,6 +34,7 @@ The current `@azure/msal-angular` library improves upon the previous version and
34
34
 
35
35
  ## Guides
36
36
 
37
+ - [Upgrade Guide (v5-v6)](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular/docs/v5-v6-upgrade-guide.md)
37
38
  - [Upgrade Guide (v4-v5)](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular/docs/v4-v5-upgrade-guide.md)
38
39
  - [Upgrade Guide (v3-v4)](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular/docs/v3-v4-upgrade-guide.md)
39
40
  - [Upgrade Guide (v2-v3)](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular/docs/v2-v3-upgrade-guide.md)
@@ -47,7 +48,8 @@ At a minimum, `@azure/msal-angular` will follow the [support schedule of the mai
47
48
 
48
49
  | MSAL Angular version | MSAL support status | Supported Angular versions |
49
50
  | -------------------- | ------------------- | -------------------------- |
50
- | MSAL Angular v5 | Active development | 19, 20, 21 |
51
+ | MSAL Angular v6 | Active development | 22 |
52
+ | MSAL Angular v5 | In maintenance | 19, 20, 21 |
51
53
  | MSAL Angular v4 | In maintenance | 15, 16, 17, 18, 19, 20 |
52
54
  | MSAL Angular v3 | In maintenance | 15, 16, 17, 18 |
53
55
  | MSAL Angular v2 | In maintenance | 9, 10, 11, 12, 13, 14 |
@@ -9,7 +9,7 @@ import * as i4 from '@angular/router';
9
9
 
10
10
  /* eslint-disable header/header */
11
11
  const name = "@azure/msal-angular";
12
- const version = "5.3.1";
12
+ const version = "6.0.0";
13
13
 
14
14
  /*
15
15
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -25,8 +25,9 @@ const MSAL_BROADCAST_CONFIG = new InjectionToken("MSAL_BROADCAST_CONFIG");
25
25
  * Licensed under the MIT License.
26
26
  */
27
27
  class MsalBroadcastService {
28
- constructor(msalInstance, msalBroadcastConfig) {
28
+ constructor(msalInstance, ngZone, msalBroadcastConfig) {
29
29
  this.msalInstance = msalInstance;
30
+ this.ngZone = ngZone;
30
31
  this.msalBroadcastConfig = msalBroadcastConfig;
31
32
  // Make _msalSubject a ReplaySubject if configured to replay past events
32
33
  if (this.msalBroadcastConfig &&
@@ -46,15 +47,17 @@ class MsalBroadcastService {
46
47
  this._inProgress = new BehaviorSubject(InteractionStatus.Startup);
47
48
  this.inProgress$ = this._inProgress.asObservable();
48
49
  this.msalInstance.addEventCallback((message) => {
49
- this._msalSubject.next(message);
50
- const status = EventMessageUtils.getInteractionStatusFromEvent(message, this._inProgress.value);
51
- if (status !== null) {
52
- this.msalInstance
53
- .getLogger()
54
- .clone(name, version)
55
- .verbose(`BroadcastService - ${message.eventType} results in setting inProgress from ${this._inProgress.value} to ${status}`, "");
56
- this._inProgress.next(status);
57
- }
50
+ this.ngZone.run(() => {
51
+ this._msalSubject.next(message);
52
+ const status = EventMessageUtils.getInteractionStatusFromEvent(message, this._inProgress.value);
53
+ if (status !== null) {
54
+ this.msalInstance
55
+ .getLogger()
56
+ .clone(name, version)
57
+ .verbose(`BroadcastService - ${message.eventType} results in setting inProgress from ${this._inProgress.value} to ${status}`, "");
58
+ this._inProgress.next(status);
59
+ }
60
+ });
58
61
  });
59
62
  }
60
63
  /**
@@ -65,15 +68,15 @@ class MsalBroadcastService {
65
68
  this._inProgress.next(InteractionStatus.None);
66
69
  }
67
70
  }
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalBroadcastService, deps: [{ token: MSAL_INSTANCE }, { token: MSAL_BROADCAST_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
69
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalBroadcastService }); }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalBroadcastService, deps: [{ token: MSAL_INSTANCE }, { token: i0.NgZone }, { token: MSAL_BROADCAST_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
72
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalBroadcastService }); }
70
73
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalBroadcastService, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalBroadcastService, decorators: [{
72
75
  type: Injectable
73
76
  }], ctorParameters: () => [{ type: undefined, decorators: [{
74
77
  type: Inject,
75
78
  args: [MSAL_INSTANCE]
76
- }] }, { type: undefined, decorators: [{
79
+ }] }, { type: i0.NgZone }, { type: undefined, decorators: [{
77
80
  type: Optional
78
81
  }, {
79
82
  type: Inject,
@@ -98,14 +101,20 @@ class MsalService {
98
101
  initialize() {
99
102
  return from(this.instance.initialize());
100
103
  }
104
+ /**
105
+ * Ensures the PublicClientApplication has been initialized.
106
+ */
107
+ withInitialize(call) {
108
+ return from(this.instance.initialize().then(() => call()));
109
+ }
101
110
  acquireTokenPopup(request) {
102
- return from(this.instance.acquireTokenPopup(request));
111
+ return this.withInitialize(() => this.instance.acquireTokenPopup(request));
103
112
  }
104
113
  acquireTokenRedirect(request) {
105
- return from(this.instance.acquireTokenRedirect(request));
114
+ return this.withInitialize(() => this.instance.acquireTokenRedirect(request));
106
115
  }
107
116
  acquireTokenSilent(silentRequest) {
108
- return from(this.instance.acquireTokenSilent(silentRequest));
117
+ return this.withInitialize(() => this.instance.acquireTokenSilent(silentRequest));
109
118
  }
110
119
  handleRedirectObservable(hashOrOptions) {
111
120
  // Support both legacy string parameter (hash) and new options object
@@ -127,19 +136,19 @@ class MsalService {
127
136
  }));
128
137
  }
129
138
  loginPopup(request) {
130
- return from(this.instance.loginPopup(request));
139
+ return this.withInitialize(() => this.instance.loginPopup(request));
131
140
  }
132
141
  loginRedirect(request) {
133
- return from(this.instance.loginRedirect(request));
142
+ return this.withInitialize(() => this.instance.loginRedirect(request));
134
143
  }
135
144
  logoutRedirect(logoutRequest) {
136
- return from(this.instance.logoutRedirect(logoutRequest));
145
+ return this.withInitialize(() => this.instance.logoutRedirect(logoutRequest));
137
146
  }
138
147
  logoutPopup(logoutRequest) {
139
- return from(this.instance.logoutPopup(logoutRequest));
148
+ return this.withInitialize(() => this.instance.logoutPopup(logoutRequest));
140
149
  }
141
150
  ssoSilent(request) {
142
- return from(this.instance.ssoSilent(request));
151
+ return this.withInitialize(() => this.instance.ssoSilent(request));
143
152
  }
144
153
  /**
145
154
  * Gets logger for msal-angular.
@@ -156,10 +165,10 @@ class MsalService {
156
165
  this.logger = logger.clone(name, version);
157
166
  this.instance.setLogger(logger);
158
167
  }
159
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalService, deps: [{ token: MSAL_INSTANCE }, { token: i3.Location }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
160
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalService }); }
168
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalService, deps: [{ token: MSAL_INSTANCE }, { token: i3.Location }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
169
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalService }); }
161
170
  }
162
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalService, decorators: [{
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalService, decorators: [{
163
172
  type: Injectable
164
173
  }], ctorParameters: () => [{ type: undefined, decorators: [{
165
174
  type: Inject,
@@ -223,18 +232,18 @@ class MsalGuard {
223
232
  if (this.msalGuardConfig.interactionType === InteractionType.Popup) {
224
233
  this.authService
225
234
  .getLogger()
226
- .verbose("Guard - logging in by popup", authRequest.correlationId);
235
+ .verbose("Guard - logging in by popup", authRequest.correlationId ?? "");
227
236
  return this.authService.loginPopup(authRequest).pipe(map((response) => {
228
237
  this.authService
229
238
  .getLogger()
230
- .verbose("Guard - login by popup successful, can activate, setting active account", authRequest.correlationId);
239
+ .verbose("Guard - login by popup successful, can activate, setting active account", authRequest.correlationId ?? "");
231
240
  this.authService.instance.setActiveAccount(response.account);
232
241
  return true;
233
242
  }));
234
243
  }
235
244
  this.authService
236
245
  .getLogger()
237
- .verbose("Guard - logging in by redirect", authRequest.correlationId);
246
+ .verbose("Guard - logging in by redirect", authRequest.correlationId ?? "");
238
247
  const redirectStartPage = this.getDestinationUrl(state.url);
239
248
  return this.authService
240
249
  .loginRedirect({
@@ -371,10 +380,10 @@ class MsalGuard {
371
380
  this.authService.getLogger().verbose("Guard - canLoad", "");
372
381
  return this.activateHelper();
373
382
  }
374
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalGuard, deps: [{ token: MSAL_GUARD_CONFIG }, { token: MsalBroadcastService }, { token: MsalService }, { token: i3.Location }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
375
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalGuard }); }
383
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalGuard, deps: [{ token: MSAL_GUARD_CONFIG }, { token: MsalBroadcastService }, { token: MsalService }, { token: i3.Location }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
384
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalGuard }); }
376
385
  }
377
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalGuard, decorators: [{
386
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalGuard, decorators: [{
378
387
  type: Injectable
379
388
  }], ctorParameters: () => [{ type: undefined, decorators: [{
380
389
  type: Inject,
@@ -386,9 +395,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
386
395
  * Licensed under the MIT License.
387
396
  */
388
397
  class MsalInterceptor {
389
- constructor(msalInterceptorConfig, authService, location, msalBroadcastService,
390
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types
391
- document) {
398
+ constructor(msalInterceptorConfig, authService, location, msalBroadcastService, document) {
392
399
  this.msalInterceptorConfig = msalInterceptorConfig;
393
400
  this.authService = authService;
394
401
  this.location = location;
@@ -419,11 +426,12 @@ class MsalInterceptor {
419
426
  }
420
427
  // Sets account as active account or first account
421
428
  let account;
422
- if (!!this.authService.instance.getActiveAccount()) {
429
+ const activeAccount = this.authService.instance.getActiveAccount();
430
+ if (activeAccount) {
423
431
  this.authService
424
432
  .getLogger()
425
433
  .verbose("Interceptor - active account selected", "");
426
- account = this.authService.instance.getActiveAccount();
434
+ account = activeAccount;
427
435
  }
428
436
  else {
429
437
  this.authService
@@ -465,7 +473,7 @@ class MsalInterceptor {
465
473
  .pipe(catchError(() => {
466
474
  this.authService
467
475
  .getLogger()
468
- .error("Interceptor - acquireTokenSilent rejected with error. Invoking interaction to resolve.", authRequest.correlationId);
476
+ .error("Interceptor - acquireTokenSilent rejected with error. Invoking interaction to resolve.", authRequest.correlationId ?? "");
469
477
  return this.msalBroadcastService.inProgress$.pipe(take(1), switchMap((status) => {
470
478
  if (status === InteractionStatus.None) {
471
479
  return this.acquireTokenInteractively(authRequest, scopes);
@@ -476,7 +484,7 @@ class MsalInterceptor {
476
484
  if (!result.accessToken) {
477
485
  this.authService
478
486
  .getLogger()
479
- .error("Interceptor - acquireTokenSilent resolved with null access token. Known issue with B2C tenants, invoking interaction to resolve.", authRequest.correlationId);
487
+ .error("Interceptor - acquireTokenSilent resolved with null access token. Known issue with B2C tenants, invoking interaction to resolve.", authRequest.correlationId ?? "");
480
488
  return this.msalBroadcastService.inProgress$.pipe(filter((status) => status === InteractionStatus.None), take(1), switchMap(() => this.acquireTokenInteractively(authRequest, scopes)));
481
489
  }
482
490
  return of(result);
@@ -492,12 +500,12 @@ class MsalInterceptor {
492
500
  if (this.msalInterceptorConfig.interactionType === InteractionType.Popup) {
493
501
  this.authService
494
502
  .getLogger()
495
- .verbose("Interceptor - error acquiring token silently, acquiring by popup", authRequest.correlationId);
503
+ .verbose("Interceptor - error acquiring token silently, acquiring by popup", authRequest.correlationId ?? "");
496
504
  return this.authService.acquireTokenPopup({ ...authRequest, scopes });
497
505
  }
498
506
  this.authService
499
507
  .getLogger()
500
- .verbose("Interceptor - error acquiring token silently, acquiring by redirect", authRequest.correlationId);
508
+ .verbose("Interceptor - error acquiring token silently, acquiring by redirect", authRequest.correlationId ?? "");
501
509
  const redirectStartPage = window.location.href;
502
510
  this.authService.acquireTokenRedirect({
503
511
  ...authRequest,
@@ -555,7 +563,13 @@ class MsalInterceptor {
555
563
  */
556
564
  checkUrlComponents(keyComponents, endpointComponents) {
557
565
  // URL properties from https://developer.mozilla.org/en-US/docs/Web/API/URL
558
- const urlProperties = ["protocol", "host", "pathname", "search", "hash"];
566
+ const urlProperties = [
567
+ "protocol",
568
+ "host",
569
+ "pathname",
570
+ "search",
571
+ "hash",
572
+ ];
559
573
  // Maps URL property names to the component identifiers used by matchPatternStrict.
560
574
  const componentMap = {
561
575
  protocol: "protocol",
@@ -616,6 +630,9 @@ class MsalInterceptor {
616
630
  allMatchedScopes.push(null);
617
631
  return;
618
632
  }
633
+ if (methodAndScopesArray === undefined) {
634
+ return;
635
+ }
619
636
  methodAndScopesArray.forEach((entry) => {
620
637
  // Entry is either array of scopes or ProtectedResourceScopes object
621
638
  if (typeof entry === "string") {
@@ -705,15 +722,15 @@ class MsalInterceptor {
705
722
  const regex = new RegExp(`^${regexBody}$`);
706
723
  return regex.test(input);
707
724
  }
708
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalInterceptor, deps: [{ token: MSAL_INTERCEPTOR_CONFIG }, { token: MsalService }, { token: i3.Location }, { token: MsalBroadcastService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
709
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalInterceptor }); }
725
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalInterceptor, deps: [{ token: MSAL_INTERCEPTOR_CONFIG }, { token: MsalService }, { token: i3.Location }, { token: MsalBroadcastService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
726
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalInterceptor }); }
710
727
  }
711
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalInterceptor, decorators: [{
728
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalInterceptor, decorators: [{
712
729
  type: Injectable
713
730
  }], ctorParameters: () => [{ type: undefined, decorators: [{
714
731
  type: Inject,
715
732
  args: [MSAL_INTERCEPTOR_CONFIG]
716
- }] }, { type: MsalService }, { type: i3.Location }, { type: MsalBroadcastService }, { type: undefined, decorators: [{
733
+ }] }, { type: MsalService }, { type: i3.Location }, { type: MsalBroadcastService }, { type: Document, decorators: [{
717
734
  type: Inject,
718
735
  args: [DOCUMENT]
719
736
  }] }] });
@@ -735,10 +752,10 @@ class MsalRedirectComponent {
735
752
  this.authService.getLogger().verbose("MsalRedirectComponent activated", "");
736
753
  this.authService.handleRedirectObservable().subscribe();
737
754
  }
738
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalRedirectComponent, deps: [{ token: MsalService }], target: i0.ɵɵFactoryTarget.Component }); }
739
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: MsalRedirectComponent, isStandalone: false, selector: "app-redirect", ngImport: i0, template: "", isInline: true }); }
755
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalRedirectComponent, deps: [{ token: MsalService }], target: i0.ɵɵFactoryTarget.Component }); }
756
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.2", type: MsalRedirectComponent, isStandalone: false, selector: "app-redirect", ngImport: i0, template: "", isInline: true }); }
740
757
  }
741
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalRedirectComponent, decorators: [{
758
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalRedirectComponent, decorators: [{
742
759
  type: Component,
743
760
  args: [{
744
761
  selector: "app-redirect",
@@ -772,11 +789,11 @@ class MsalModule {
772
789
  ],
773
790
  };
774
791
  }
775
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
776
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.25", ngImport: i0, type: MsalModule, declarations: [MsalRedirectComponent], imports: [CommonModule] }); }
777
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalModule, providers: [MsalGuard, MsalBroadcastService], imports: [CommonModule] }); }
792
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
793
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.2", ngImport: i0, type: MsalModule, declarations: [MsalRedirectComponent], imports: [CommonModule] }); }
794
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalModule, providers: [MsalGuard, MsalBroadcastService], imports: [CommonModule] }); }
778
795
  }
779
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalModule, decorators: [{
796
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalModule, decorators: [{
780
797
  type: NgModule,
781
798
  args: [{
782
799
  declarations: [MsalRedirectComponent],
@@ -825,10 +842,10 @@ class MsalCustomNavigationClient extends NavigationClient {
825
842
  }
826
843
  return Promise.resolve(options.noHistory);
827
844
  }
828
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalCustomNavigationClient, deps: [{ token: MsalService }, { token: i4.Router }, { token: i3.Location }], target: i0.ɵɵFactoryTarget.Injectable }); }
829
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalCustomNavigationClient }); }
845
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalCustomNavigationClient, deps: [{ token: MsalService }, { token: i4.Router }, { token: i3.Location }], target: i0.ɵɵFactoryTarget.Injectable }); }
846
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalCustomNavigationClient }); }
830
847
  }
831
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MsalCustomNavigationClient, decorators: [{
848
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: MsalCustomNavigationClient, decorators: [{
832
849
  type: Injectable
833
850
  }], ctorParameters: () => [{ type: MsalService }, { type: i4.Router }, { type: i3.Location }] });
834
851