@auth0/auth0-angular 2.2.3 → 2.3.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 +1 -1
- package/esm2022/lib/abstract-navigator.mjs +35 -0
- package/esm2022/lib/auth.client.mjs +23 -0
- package/esm2022/lib/auth.config.mjs +97 -0
- package/esm2022/lib/auth.guard.mjs +40 -0
- package/esm2022/lib/auth.interceptor.mjs +134 -0
- package/{esm2020 → esm2022}/lib/auth.module.mjs +5 -5
- package/esm2022/lib/auth.service.mjs +233 -0
- package/{esm2020 → esm2022}/lib/auth.state.mjs +6 -6
- package/esm2022/lib/interfaces.mjs +2 -0
- package/{esm2020 → esm2022}/useragent.mjs +2 -2
- package/{fesm2020 → fesm2022}/auth0-auth0-angular.mjs +39 -36
- package/fesm2022/auth0-auth0-angular.mjs.map +1 -0
- package/lib/auth.config.d.ts +1 -1
- package/lib/auth.guard.d.ts +2 -2
- package/package.json +7 -13
- package/esm2020/lib/abstract-navigator.mjs +0 -35
- package/esm2020/lib/auth.client.mjs +0 -23
- package/esm2020/lib/auth.config.mjs +0 -97
- package/esm2020/lib/auth.guard.mjs +0 -36
- package/esm2020/lib/auth.interceptor.mjs +0 -134
- package/esm2020/lib/auth.service.mjs +0 -233
- package/esm2020/lib/interfaces.mjs +0 -2
- package/fesm2015/auth0-auth0-angular.mjs +0 -736
- package/fesm2015/auth0-auth0-angular.mjs.map +0 -1
- package/fesm2020/auth0-auth0-angular.mjs.map +0 -1
- /package/{esm2020 → esm2022}/auth0-auth0-angular.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/functional.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/provide.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{auth0-auth0-angular.d.ts → index.d.ts} +0 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { Injectable, Inject } from '@angular/core';
|
|
2
|
+
import { of, from, Subject, iif, defer, ReplaySubject, throwError, } from 'rxjs';
|
|
3
|
+
import { concatMap, tap, map, takeUntil, catchError, switchMap, withLatestFrom, } from 'rxjs/operators';
|
|
4
|
+
import { Auth0ClientService } from './auth.client';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./auth.config";
|
|
7
|
+
import * as i2 from "./abstract-navigator";
|
|
8
|
+
import * as i3 from "./auth.state";
|
|
9
|
+
import * as i4 from "@auth0/auth0-spa-js";
|
|
10
|
+
export class AuthService {
|
|
11
|
+
constructor(auth0Client, configFactory, navigator, authState) {
|
|
12
|
+
this.auth0Client = auth0Client;
|
|
13
|
+
this.configFactory = configFactory;
|
|
14
|
+
this.navigator = navigator;
|
|
15
|
+
this.authState = authState;
|
|
16
|
+
this.appStateSubject$ = new ReplaySubject(1);
|
|
17
|
+
// https://stackoverflow.com/a/41177163
|
|
18
|
+
this.ngUnsubscribe$ = new Subject();
|
|
19
|
+
/**
|
|
20
|
+
* Emits boolean values indicating the loading state of the SDK.
|
|
21
|
+
*/
|
|
22
|
+
this.isLoading$ = this.authState.isLoading$;
|
|
23
|
+
/**
|
|
24
|
+
* Emits boolean values indicating the authentication state of the user. If `true`, it means a user has authenticated.
|
|
25
|
+
* This depends on the value of `isLoading$`, so there is no need to manually check the loading state of the SDK.
|
|
26
|
+
*/
|
|
27
|
+
this.isAuthenticated$ = this.authState.isAuthenticated$;
|
|
28
|
+
/**
|
|
29
|
+
* Emits details about the authenticated user, or null if not authenticated.
|
|
30
|
+
*/
|
|
31
|
+
this.user$ = this.authState.user$;
|
|
32
|
+
/**
|
|
33
|
+
* Emits ID token claims when authenticated, or null if not authenticated.
|
|
34
|
+
*/
|
|
35
|
+
this.idTokenClaims$ = this.authState.idTokenClaims$;
|
|
36
|
+
/**
|
|
37
|
+
* Emits errors that occur during login, or when checking for an active session on startup.
|
|
38
|
+
*/
|
|
39
|
+
this.error$ = this.authState.error$;
|
|
40
|
+
/**
|
|
41
|
+
* Emits the value (if any) that was passed to the `loginWithRedirect` method call
|
|
42
|
+
* but only **after** `handleRedirectCallback` is first called
|
|
43
|
+
*/
|
|
44
|
+
this.appState$ = this.appStateSubject$.asObservable();
|
|
45
|
+
const checkSessionOrCallback$ = (isCallback) => iif(() => isCallback, this.handleRedirectCallback(), defer(() => this.auth0Client.checkSession()));
|
|
46
|
+
this.shouldHandleCallback()
|
|
47
|
+
.pipe(switchMap((isCallback) => checkSessionOrCallback$(isCallback).pipe(catchError((error) => {
|
|
48
|
+
const config = this.configFactory.get();
|
|
49
|
+
this.navigator.navigateByUrl(config.errorPath || '/');
|
|
50
|
+
this.authState.setError(error);
|
|
51
|
+
return of(undefined);
|
|
52
|
+
}))), tap(() => {
|
|
53
|
+
this.authState.setIsLoading(false);
|
|
54
|
+
}), takeUntil(this.ngUnsubscribe$))
|
|
55
|
+
.subscribe();
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Called when the service is destroyed
|
|
59
|
+
*/
|
|
60
|
+
ngOnDestroy() {
|
|
61
|
+
// https://stackoverflow.com/a/41177163
|
|
62
|
+
this.ngUnsubscribe$.next();
|
|
63
|
+
this.ngUnsubscribe$.complete();
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* ```js
|
|
67
|
+
* loginWithRedirect(options);
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* Performs a redirect to `/authorize` using the parameters
|
|
71
|
+
* provided as arguments. Random and secure `state` and `nonce`
|
|
72
|
+
* parameters will be auto-generated.
|
|
73
|
+
*
|
|
74
|
+
* @param options The login options
|
|
75
|
+
*/
|
|
76
|
+
loginWithRedirect(options) {
|
|
77
|
+
return from(this.auth0Client.loginWithRedirect(options));
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* ```js
|
|
81
|
+
* await loginWithPopup(options);
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* Opens a popup with the `/authorize` URL using the parameters
|
|
85
|
+
* provided as arguments. Random and secure `state` and `nonce`
|
|
86
|
+
* parameters will be auto-generated. If the response is successful,
|
|
87
|
+
* results will be valid according to their expiration times.
|
|
88
|
+
*
|
|
89
|
+
* IMPORTANT: This method has to be called from an event handler
|
|
90
|
+
* that was started by the user like a button click, for example,
|
|
91
|
+
* otherwise the popup will be blocked in most browsers.
|
|
92
|
+
*
|
|
93
|
+
* @param options The login options
|
|
94
|
+
* @param config Configuration for the popup window
|
|
95
|
+
*/
|
|
96
|
+
loginWithPopup(options, config) {
|
|
97
|
+
return from(this.auth0Client.loginWithPopup(options, config).then(() => {
|
|
98
|
+
this.authState.refresh();
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* ```js
|
|
103
|
+
* logout();
|
|
104
|
+
* ```
|
|
105
|
+
*
|
|
106
|
+
* Clears the application session and performs a redirect to `/v2/logout`, using
|
|
107
|
+
* the parameters provided as arguments, to clear the Auth0 session.
|
|
108
|
+
* If the `federated` option is specified it also clears the Identity Provider session.
|
|
109
|
+
* If the `openUrl` option is set to false, it only clears the application session.
|
|
110
|
+
* It is invalid to set both the `federated` to true and `openUrl` to `false`,
|
|
111
|
+
* and an error will be thrown if you do.
|
|
112
|
+
* [Read more about how Logout works at Auth0](https://auth0.com/docs/logout).
|
|
113
|
+
*
|
|
114
|
+
* @param options The logout options
|
|
115
|
+
*/
|
|
116
|
+
logout(options) {
|
|
117
|
+
return from(this.auth0Client.logout(options).then(() => {
|
|
118
|
+
if (options?.openUrl === false || options?.openUrl) {
|
|
119
|
+
this.authState.refresh();
|
|
120
|
+
}
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* ```js
|
|
125
|
+
* getAccessTokenSilently(options).subscribe(token => ...)
|
|
126
|
+
* ```
|
|
127
|
+
*
|
|
128
|
+
* If there's a valid token stored, return it. Otherwise, opens an
|
|
129
|
+
* iframe with the `/authorize` URL using the parameters provided
|
|
130
|
+
* as arguments. Random and secure `state` and `nonce` parameters
|
|
131
|
+
* will be auto-generated. If the response is successful, results
|
|
132
|
+
* will be valid according to their expiration times.
|
|
133
|
+
*
|
|
134
|
+
* If refresh tokens are used, the token endpoint is called directly with the
|
|
135
|
+
* 'refresh_token' grant. If no refresh token is available to make this call,
|
|
136
|
+
* the SDK falls back to using an iframe to the '/authorize' URL.
|
|
137
|
+
*
|
|
138
|
+
* This method may use a web worker to perform the token call if the in-memory
|
|
139
|
+
* cache is used.
|
|
140
|
+
*
|
|
141
|
+
* If an `audience` value is given to this function, the SDK always falls
|
|
142
|
+
* back to using an iframe to make the token exchange.
|
|
143
|
+
*
|
|
144
|
+
* Note that in all cases, falling back to an iframe requires access to
|
|
145
|
+
* the `auth0` cookie, and thus will not work in browsers that block third-party
|
|
146
|
+
* cookies by default (Safari, Brave, etc).
|
|
147
|
+
*
|
|
148
|
+
* @param options The options for configuring the token fetch.
|
|
149
|
+
*/
|
|
150
|
+
getAccessTokenSilently(options = {}) {
|
|
151
|
+
return of(this.auth0Client).pipe(concatMap((client) => options.detailedResponse === true
|
|
152
|
+
? client.getTokenSilently({ ...options, detailedResponse: true })
|
|
153
|
+
: client.getTokenSilently(options)), tap((token) => {
|
|
154
|
+
if (token) {
|
|
155
|
+
this.authState.setAccessToken(typeof token === 'string' ? token : token.access_token);
|
|
156
|
+
}
|
|
157
|
+
}), catchError((error) => {
|
|
158
|
+
this.authState.setError(error);
|
|
159
|
+
this.authState.refresh();
|
|
160
|
+
return throwError(error);
|
|
161
|
+
}));
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* ```js
|
|
165
|
+
* getTokenWithPopup(options).subscribe(token => ...)
|
|
166
|
+
* ```
|
|
167
|
+
*
|
|
168
|
+
* Get an access token interactively.
|
|
169
|
+
*
|
|
170
|
+
* Opens a popup with the `/authorize` URL using the parameters
|
|
171
|
+
* provided as arguments. Random and secure `state` and `nonce`
|
|
172
|
+
* parameters will be auto-generated. If the response is successful,
|
|
173
|
+
* results will be valid according to their expiration times.
|
|
174
|
+
*/
|
|
175
|
+
getAccessTokenWithPopup(options) {
|
|
176
|
+
return of(this.auth0Client).pipe(concatMap((client) => client.getTokenWithPopup(options)), tap((token) => {
|
|
177
|
+
if (token) {
|
|
178
|
+
this.authState.setAccessToken(token);
|
|
179
|
+
}
|
|
180
|
+
}), catchError((error) => {
|
|
181
|
+
this.authState.setError(error);
|
|
182
|
+
this.authState.refresh();
|
|
183
|
+
return throwError(error);
|
|
184
|
+
}));
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* ```js
|
|
188
|
+
* handleRedirectCallback(url).subscribe(result => ...)
|
|
189
|
+
* ```
|
|
190
|
+
*
|
|
191
|
+
* After the browser redirects back to the callback page,
|
|
192
|
+
* call `handleRedirectCallback` to handle success and error
|
|
193
|
+
* responses from Auth0. If the response is successful, results
|
|
194
|
+
* will be valid according to their expiration times.
|
|
195
|
+
*
|
|
196
|
+
* Calling this method also refreshes the authentication and user states.
|
|
197
|
+
*
|
|
198
|
+
* @param url The URL to that should be used to retrieve the `state` and `code` values. Defaults to `window.location.href` if not given.
|
|
199
|
+
*/
|
|
200
|
+
handleRedirectCallback(url) {
|
|
201
|
+
return defer(() => this.auth0Client.handleRedirectCallback(url)).pipe(withLatestFrom(this.authState.isLoading$), tap(([result, isLoading]) => {
|
|
202
|
+
if (!isLoading) {
|
|
203
|
+
this.authState.refresh();
|
|
204
|
+
}
|
|
205
|
+
const appState = result?.appState;
|
|
206
|
+
const target = appState?.target ?? '/';
|
|
207
|
+
if (appState) {
|
|
208
|
+
this.appStateSubject$.next(appState);
|
|
209
|
+
}
|
|
210
|
+
this.navigator.navigateByUrl(target);
|
|
211
|
+
}), map(([result]) => result));
|
|
212
|
+
}
|
|
213
|
+
shouldHandleCallback() {
|
|
214
|
+
return of(location.search).pipe(map((search) => {
|
|
215
|
+
const searchParams = new URLSearchParams(search);
|
|
216
|
+
return ((searchParams.has('code') || searchParams.has('error')) &&
|
|
217
|
+
searchParams.has('state') &&
|
|
218
|
+
!this.configFactory.get().skipRedirectCallback);
|
|
219
|
+
}));
|
|
220
|
+
}
|
|
221
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, deps: [{ token: Auth0ClientService }, { token: i1.AuthClientConfig }, { token: i2.AbstractNavigator }, { token: i3.AuthState }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
222
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, providedIn: 'root' }); }
|
|
223
|
+
}
|
|
224
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, decorators: [{
|
|
225
|
+
type: Injectable,
|
|
226
|
+
args: [{
|
|
227
|
+
providedIn: 'root',
|
|
228
|
+
}]
|
|
229
|
+
}], ctorParameters: () => [{ type: i4.Auth0Client, decorators: [{
|
|
230
|
+
type: Inject,
|
|
231
|
+
args: [Auth0ClientService]
|
|
232
|
+
}] }, { type: i1.AuthClientConfig }, { type: i2.AbstractNavigator }, { type: i3.AuthState }] });
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYXV0aDAtYW5ndWxhci9zcmMvbGliL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQVk5RCxPQUFPLEVBQ0wsRUFBRSxFQUNGLElBQUksRUFDSixPQUFPLEVBRVAsR0FBRyxFQUNILEtBQUssRUFDTCxhQUFhLEVBQ2IsVUFBVSxHQUNYLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLFNBQVMsRUFDVCxHQUFHLEVBQ0gsR0FBRyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUNULGNBQWMsR0FDZixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU25ELE1BQU0sT0FBTyxXQUFXO0lBdUN0QixZQUNzQyxXQUF3QixFQUNwRCxhQUErQixFQUMvQixTQUE0QixFQUM1QixTQUFvQjtRQUhRLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3BELGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQixjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBeEN0QixxQkFBZ0IsR0FBRyxJQUFJLGFBQWEsQ0FBWSxDQUFDLENBQUMsQ0FBQztRQUUzRCx1Q0FBdUM7UUFDL0IsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzdDOztXQUVHO1FBQ00sZUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1FBRWhEOzs7V0FHRztRQUNNLHFCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7UUFFNUQ7O1dBRUc7UUFDTSxVQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxL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QU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQzdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2IsTUFBTSxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakQsT0FBTyxDQUNMLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2RCxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztnQkFDekIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUMvQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7K0dBelNVLFdBQVcsa0JBd0NaLGtCQUFrQjttSEF4Q2pCLFdBQVcsY0FGVixNQUFNOzs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBeUNJLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQXV0aDBDbGllbnQsXG4gIFBvcHVwTG9naW5PcHRpb25zLFxuICBQb3B1cENvbmZpZ09wdGlvbnMsXG4gIEdldFRva2VuU2lsZW50bHlPcHRpb25zLFxuICBHZXRUb2tlbldpdGhQb3B1cE9wdGlvbnMsXG4gIFJlZGlyZWN0TG9naW5SZXN1bHQsXG4gIEdldFRva2VuU2lsZW50bHlWZXJib3NlUmVzcG9uc2UsXG59IGZyb20gJ0BhdXRoMC9hdXRoMC1zcGEtanMnO1xuXG5pbXBvcnQge1xuICBvZixcbiAgZnJvbSxcbiAgU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgaWlmLFxuICBkZWZlcixcbiAgUmVwbGF5U3ViamVjdCxcbiAgdGhyb3dFcnJvcixcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIGNvbmNhdE1hcCxcbiAgdGFwLFxuICBtYXAsXG4gIHRha2VVbnRpbCxcbiAgY2F0Y2hFcnJvcixcbiAgc3dpdGNoTWFwLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBdXRoMENsaWVudFNlcnZpY2UgfSBmcm9tICcuL2F1dGguY2xpZW50JztcbmltcG9ydCB7IEFic3RyYWN0TmF2aWdhdG9yIH0gZnJvbSAnLi9hYnN0cmFjdC1uYXZpZ2F0b3InO1xuaW1wb3J0IHsgQXV0aENsaWVudENvbmZpZywgQXBwU3RhdGUgfSBmcm9tICcuL2F1dGguY29uZmlnJztcbmltcG9ydCB7IEF1dGhTdGF0ZSB9IGZyb20gJy4vYXV0aC5zdGF0ZSc7XG5pbXBvcnQgeyBMb2dvdXRPcHRpb25zLCBSZWRpcmVjdExvZ2luT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZTxUQXBwU3RhdGUgZXh0ZW5kcyBBcHBTdGF0ZSA9IEFwcFN0YXRlPlxuICBpbXBsZW1lbnRzIE9uRGVzdHJveVxue1xuICBwcml2YXRlIGFwcFN0YXRlU3ViamVjdCQgPSBuZXcgUmVwbGF5U3ViamVjdDxUQXBwU3RhdGU+KDEpO1xuXG4gIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80MTE3NzE2M1xuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgLyoqXG4gICAqIEVtaXRzIGJvb2xlYW4gdmFsdWVzIGluZGljYXRpbmcgdGhlIGxvYWRpbmcgc3RhdGUgb2YgdGhlIFNESy5cbiAgICovXG4gIHJlYWRvbmx5IGlzTG9hZGluZyQgPSB0aGlzLmF1dGhTdGF0ZS5pc0xvYWRpbmckO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBib29sZWFuIHZhbHVlcyBpbmRpY2F0aW5nIHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0ZSBvZiB0aGUgdXNlci4gSWYgYHRydWVgLCBpdCBtZWFucyBhIHVzZXIgaGFzIGF1dGhlbnRpY2F0ZWQuXG4gICAqIFRoaXMgZGVwZW5kcyBvbiB0aGUgdmFsdWUgb2YgYGlzTG9hZGluZyRgLCBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIG1hbnVhbGx5IGNoZWNrIHRoZSBsb2FkaW5nIHN0YXRlIG9mIHRoZSBTREsuXG4gICAqL1xuICByZWFkb25seSBpc0F1dGhlbnRpY2F0ZWQkID0gdGhpcy5hdXRoU3RhdGUuaXNBdXRoZW50aWNhdGVkJDtcblxuICAvKipcbiAgICogRW1pdHMgZGV0YWlscyBhYm91dCB0aGUgYXV0aGVudGljYXRlZCB1c2VyLCBvciBudWxsIGlmIG5vdCBhdXRoZW50aWNhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdXNlciQgPSB0aGlzLmF1dGhTdGF0ZS51c2VyJDtcblxuICAvKipcbiAgICogRW1pdHMgSUQgdG9rZW4gY2xhaW1zIHdoZW4gYXV0aGVudGljYXRlZCwgb3IgbnVsbCBpZiBub3QgYXV0aGVudGljYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGlkVG9rZW5DbGFpbXMkID0gdGhpcy5hdXRoU3RhdGUuaWRUb2tlbkNsYWltcyQ7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGVycm9ycyB0aGF0IG9jY3VyIGR1cmluZyBsb2dpbiwgb3Igd2hlbiBjaGVja2luZyBmb3IgYW4gYWN0aXZlIHNlc3Npb24gb24gc3RhcnR1cC5cbiAgICovXG4gIHJlYWRvbmx5IGVycm9yJCA9IHRoaXMuYXV0aFN0YXRlLmVycm9yJDtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIHZhbHVlIChpZiBhbnkpIHRoYXQgd2FzIHBhc3NlZCB0byB0aGUgYGxvZ2luV2l0aFJlZGlyZWN0YCBtZXRob2QgY2FsbFxuICAgKiBidXQgb25seSAqKmFmdGVyKiogYGhhbmRsZVJlZGlyZWN0Q2FsbGJhY2tgIGlzIGZpcnN0IGNhbGxlZFxuICAgKi9cbiAgcmVhZG9ubHkgYXBwU3RhdGUkID0gdGhpcy5hcHBTdGF0ZVN1YmplY3QkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQXV0aDBDbGllbnRTZXJ2aWNlKSBwcml2YXRlIGF1dGgwQ2xpZW50OiBBdXRoMENsaWVudCxcbiAgICBwcml2YXRlIGNvbmZpZ0ZhY3Rvcnk6IEF1dGhDbGllbnRDb25maWcsXG4gICAgcHJpdmF0ZSBuYXZpZ2F0b3I6IEFic3RyYWN0TmF2aWdhdG9yLFxuICAgIHByaXZhdGUgYXV0aFN0YXRlOiBBdXRoU3RhdGVcbiAgKSB7XG4gICAgY29uc3QgY2hlY2tTZXNzaW9uT3JDYWxsYmFjayQgPSAoaXNDYWxsYmFjazogYm9vbGVhbikgPT5cbiAgICAgIGlpZihcbiAgICAgICAgKCkgPT4gaXNDYWxsYmFjayxcbiAgICAgICAgdGhpcy5oYW5kbGVSZWRpcmVjdENhbGxiYWNrKCksXG4gICAgICAgIGRlZmVyKCgpID0+IHRoaXMuYXV0aDBDbGllbnQuY2hlY2tTZXNzaW9uKCkpXG4gICAgICApO1xuXG4gICAgdGhpcy5zaG91bGRIYW5kbGVDYWxsYmFjaygpXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChpc0NhbGxiYWNrKSA9PlxuICAgICAgICAgIGNoZWNrU2Vzc2lvbk9yQ2FsbGJhY2skKGlzQ2FsbGJhY2spLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZ0ZhY3RvcnkuZ2V0KCk7XG4gICAgICAgICAgICAgIHRoaXMubmF2aWdhdG9yLm5hdmlnYXRlQnlVcmwoY29uZmlnLmVycm9yUGF0aCB8fCAnLycpO1xuICAgICAgICAgICAgICB0aGlzLmF1dGhTdGF0ZS5zZXRFcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5hdXRoU3RhdGUuc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBzZXJ2aWNlIGlzIGRlc3Ryb3llZFxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQxMTc3MTYzXG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIGBgYGpzXG4gICAqIGxvZ2luV2l0aFJlZGlyZWN0KG9wdGlvbnMpO1xuICAgKiBgYGBcbiAgICpcbiAgICogUGVyZm9ybXMgYSByZWRpcmVjdCB0byBgL2F1dGhvcml6ZWAgdXNpbmcgdGhlIHBhcmFtZXRlcnNcbiAgICogcHJvdmlkZWQgYXMgYXJndW1lbnRzLiBSYW5kb20gYW5kIHNlY3VyZSBgc3RhdGVgIGFuZCBgbm9uY2VgXG4gICAqIHBhcmFtZXRlcnMgd2lsbCBiZSBhdXRvLWdlbmVyYXRlZC5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGxvZ2luIG9wdGlvbnNcbiAgICovXG4gIGxvZ2luV2l0aFJlZGlyZWN0KFxuICAgIG9wdGlvbnM/OiBSZWRpcmVjdExvZ2luT3B0aW9uczxUQXBwU3RhdGU+XG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuYXV0aDBDbGllbnQubG9naW5XaXRoUmVkaXJlY3Qob3B0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIGBgYGpzXG4gICAqIGF3YWl0IGxvZ2luV2l0aFBvcHVwKG9wdGlvbnMpO1xuICAgKiBgYGBcbiAgICpcbiAgICogT3BlbnMgYSBwb3B1cCB3aXRoIHRoZSBgL2F1dGhvcml6ZWAgVVJMIHVzaW5nIHRoZSBwYXJhbWV0ZXJzXG4gICAqIHByb3ZpZGVkIGFzIGFyZ3VtZW50cy4gUmFuZG9tIGFuZCBzZWN1cmUgYHN0YXRlYCBhbmQgYG5vbmNlYFxuICAgKiBwYXJhbWV0ZXJzIHdpbGwgYmUgYXV0by1nZW5lcmF0ZWQuIElmIHRoZSByZXNwb25zZSBpcyBzdWNjZXNzZnVsLFxuICAgKiByZXN1bHRzIHdpbGwgYmUgdmFsaWQgYWNjb3JkaW5nIHRvIHRoZWlyIGV4cGlyYXRpb24gdGltZXMuXG4gICAqXG4gICAqIElNUE9SVEFOVDogVGhpcyBtZXRob2QgaGFzIHRvIGJlIGNhbGxlZCBmcm9tIGFuIGV2ZW50IGhhbmRsZXJcbiAgICogdGhhdCB3YXMgc3RhcnRlZCBieSB0aGUgdXNlciBsaWtlIGEgYnV0dG9uIGNsaWNrLCBmb3IgZXhhbXBsZSxcbiAgICogb3RoZXJ3aXNlIHRoZSBwb3B1cCB3aWxsIGJlIGJsb2NrZWQgaW4gbW9zdCBicm93c2Vycy5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGxvZ2luIG9wdGlvbnNcbiAgICogQHBhcmFtIGNvbmZpZyBDb25maWd1cmF0aW9uIGZvciB0aGUgcG9wdXAgd2luZG93XG4gICAqL1xuICBsb2dpbldpdGhQb3B1cChcbiAgICBvcHRpb25zPzogUG9wdXBMb2dpbk9wdGlvbnMsXG4gICAgY29uZmlnPzogUG9wdXBDb25maWdPcHRpb25zXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBmcm9tKFxuICAgICAgdGhpcy5hdXRoMENsaWVudC5sb2dpbldpdGhQb3B1cChvcHRpb25zLCBjb25maWcpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmF1dGhTdGF0ZS5yZWZyZXNoKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogYGBganNcbiAgICogbG9nb3V0KCk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBDbGVhcnMgdGhlIGFwcGxpY2F0aW9uIHNlc3Npb24gYW5kIHBlcmZvcm1zIGEgcmVkaXJlY3QgdG8gYC92Mi9sb2dvdXRgLCB1c2luZ1xuICAgKiB0aGUgcGFyYW1ldGVycyBwcm92aWRlZCBhcyBhcmd1bWVudHMsIHRvIGNsZWFyIHRoZSBBdXRoMCBzZXNzaW9uLlxuICAgKiBJZiB0aGUgYGZlZGVyYXRlZGAgb3B0aW9uIGlzIHNwZWNpZmllZCBpdCBhbHNvIGNsZWFycyB0aGUgSWRlbnRpdHkgUHJvdmlkZXIgc2Vzc2lvbi5cbiAgICogSWYgdGhlIGBvcGVuVXJsYCBvcHRpb24gaXMgc2V0IHRvIGZhbHNlLCBpdCBvbmx5IGNsZWFycyB0aGUgYXBwbGljYXRpb24gc2Vzc2lvbi5cbiAgICogSXQgaXMgaW52YWxpZCB0byBzZXQgYm90aCB0aGUgYGZlZGVyYXRlZGAgdG8gdHJ1ZSBhbmQgYG9wZW5VcmxgIHRvIGBmYWxzZWAsXG4gICAqIGFuZCBhbiBlcnJvciB3aWxsIGJlIHRocm93biBpZiB5b3UgZG8uXG4gICAqIFtSZWFkIG1vcmUgYWJvdXQgaG93IExvZ291dCB3b3JrcyBhdCBBdXRoMF0oaHR0cHM6Ly9hdXRoMC5jb20vZG9jcy9sb2dvdXQpLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgbG9nb3V0IG9wdGlvbnNcbiAgICovXG4gIGxvZ291dChvcHRpb25zPzogTG9nb3V0T3B0aW9ucyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBmcm9tKFxuICAgICAgdGhpcy5hdXRoMENsaWVudC5sb2dvdXQob3B0aW9ucykudGhlbigoKSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25zPy5vcGVuVXJsID09PSBmYWxzZSB8fCBvcHRpb25zPy5vcGVuVXJsKSB7XG4gICAgICAgICAgdGhpcy5hdXRoU3RhdGUucmVmcmVzaCgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyBhIG5ldyBhY2Nlc3MgdG9rZW4gYW5kIHJldHVybnMgdGhlIHJlc3BvbnNlIGZyb20gdGhlIC9vYXV0aC90b2tlbiBlbmRwb2ludCwgb21pdHRpbmcgdGhlIHJlZnJlc2ggdG9rZW4uXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgdG9rZW4gZmV0Y2guXG4gICAqL1xuICBnZXRBY2Nlc3NUb2tlblNpbGVudGx5KFxuICAgIG9wdGlvbnM6IEdldFRva2VuU2lsZW50bHlPcHRpb25zICYgeyBkZXRhaWxlZFJlc3BvbnNlOiB0cnVlIH1cbiAgKTogT2JzZXJ2YWJsZTxHZXRUb2tlblNpbGVudGx5VmVyYm9zZVJlc3BvbnNlPjtcblxuICAvKipcbiAgICogRmV0Y2hlcyBhIG5ldyBhY2Nlc3MgdG9rZW4gYW5kIHJldHVybnMgaXQuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgdG9rZW4gZmV0Y2guXG4gICAqL1xuICBnZXRBY2Nlc3NUb2tlblNpbGVudGx5KG9wdGlvbnM/OiBHZXRUb2tlblNpbGVudGx5T3B0aW9ucyk6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAvKipcbiAgICogYGBganNcbiAgICogZ2V0QWNjZXNzVG9rZW5TaWxlbnRseShvcHRpb25zKS5zdWJzY3JpYmUodG9rZW4gPT4gLi4uKVxuICAgKiBgYGBcbiAgICpcbiAgICogSWYgdGhlcmUncyBhIHZhbGlkIHRva2VuIHN0b3JlZCwgcmV0dXJuIGl0LiBPdGhlcndpc2UsIG9wZW5zIGFuXG4gICAqIGlmcmFtZSB3aXRoIHRoZSBgL2F1dGhvcml6ZWAgVVJMIHVzaW5nIHRoZSBwYXJhbWV0ZXJzIHByb3ZpZGVkXG4gICAqIGFzIGFyZ3VtZW50cy4gUmFuZG9tIGFuZCBzZWN1cmUgYHN0YXRlYCBhbmQgYG5vbmNlYCBwYXJhbWV0ZXJzXG4gICAqIHdpbGwgYmUgYXV0by1nZW5lcmF0ZWQuIElmIHRoZSByZXNwb25zZSBpcyBzdWNjZXNzZnVsLCByZXN1bHRzXG4gICAqIHdpbGwgYmUgdmFsaWQgYWNjb3JkaW5nIHRvIHRoZWlyIGV4cGlyYXRpb24gdGltZXMuXG4gICAqXG4gICAqIElmIHJlZnJlc2ggdG9rZW5zIGFyZSB1c2VkLCB0aGUgdG9rZW4gZW5kcG9pbnQgaXMgY2FsbGVkIGRpcmVjdGx5IHdpdGggdGhlXG4gICAqICdyZWZyZXNoX3Rva2VuJyBncmFudC4gSWYgbm8gcmVmcmVzaCB0b2tlbiBpcyBhdmFpbGFibGUgdG8gbWFrZSB0aGlzIGNhbGwsXG4gICAqIHRoZSBTREsgZmFsbHMgYmFjayB0byB1c2luZyBhbiBpZnJhbWUgdG8gdGhlICcvYXV0aG9yaXplJyBVUkwuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIG1heSB1c2UgYSB3ZWIgd29ya2VyIHRvIHBlcmZvcm0gdGhlIHRva2VuIGNhbGwgaWYgdGhlIGluLW1lbW9yeVxuICAgKiBjYWNoZSBpcyB1c2VkLlxuICAgKlxuICAgKiBJZiBhbiBgYXVkaWVuY2VgIHZhbHVlIGlzIGdpdmVuIHRvIHRoaXMgZnVuY3Rpb24sIHRoZSBTREsgYWx3YXlzIGZhbGxzXG4gICAqIGJhY2sgdG8gdXNpbmcgYW4gaWZyYW1lIHRvIG1ha2UgdGhlIHRva2VuIGV4Y2hhbmdlLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgaW4gYWxsIGNhc2VzLCBmYWxsaW5nIGJhY2sgdG8gYW4gaWZyYW1lIHJlcXVpcmVzIGFjY2VzcyB0b1xuICAgKiB0aGUgYGF1dGgwYCBjb29raWUsIGFuZCB0aHVzIHdpbGwgbm90IHdvcmsgaW4gYnJvd3NlcnMgdGhhdCBibG9jayB0aGlyZC1wYXJ0eVxuICAgKiBjb29raWVzIGJ5IGRlZmF1bHQgKFNhZmFyaSwgQnJhdmUsIGV0YykuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgdG9rZW4gZmV0Y2guXG4gICAqL1xuICBnZXRBY2Nlc3NUb2tlblNpbGVudGx5KFxuICAgIG9wdGlvbnM6IEdldFRva2VuU2lsZW50bHlPcHRpb25zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBHZXRUb2tlblNpbGVudGx5VmVyYm9zZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG9mKHRoaXMuYXV0aDBDbGllbnQpLnBpcGUoXG4gICAgICBjb25jYXRNYXAoKGNsaWVudCkgPT5cbiAgICAgICAgb3B0aW9ucy5kZXRhaWxlZFJlc3BvbnNlID09PSB0cnVlXG4gICAgICAgICAgPyBjbGllbnQuZ2V0VG9rZW5TaWxlbnRseSh7IC4uLm9wdGlvbnMsIGRldGFpbGVkUmVzcG9uc2U6IHRydWUgfSlcbiAgICAgICAgICA6IGNsaWVudC5nZXRUb2tlblNpbGVudGx5KG9wdGlvbnMpXG4gICAgICApLFxuICAgICAgdGFwKCh0b2tlbikgPT4ge1xuICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICB0aGlzLmF1dGhTdGF0ZS5zZXRBY2Nlc3NUb2tlbihcbiAgICAgICAgICAgIHR5cGVvZiB0b2tlbiA9PT0gJ3N0cmluZycgPyB0b2tlbiA6IHRva2VuLmFjY2Vzc190b2tlblxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5hdXRoU3RhdGUuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgICB0aGlzLmF1dGhTdGF0ZS5yZWZyZXNoKCk7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBgYGBqc1xuICAgKiBnZXRUb2tlbldpdGhQb3B1cChvcHRpb25zKS5zdWJzY3JpYmUodG9rZW4gPT4gLi4uKVxuICAgKiBgYGBcbiAgICpcbiAgICogR2V0IGFuIGFjY2VzcyB0b2tlbiBpbnRlcmFjdGl2ZWx5LlxuICAgKlxuICAgKiBPcGVucyBhIHBvcHVwIHdpdGggdGhlIGAvYXV0aG9yaXplYCBVUkwgdXNpbmcgdGhlIHBhcmFtZXRlcnNcbiAgICogcHJvdmlkZWQgYXMgYXJndW1lbnRzLiBSYW5kb20gYW5kIHNlY3VyZSBgc3RhdGVgIGFuZCBgbm9uY2VgXG4gICAqIHBhcmFtZXRlcnMgd2lsbCBiZSBhdXRvLWdlbmVyYXRlZC4gSWYgdGhlIHJlc3BvbnNlIGlzIHN1Y2Nlc3NmdWwsXG4gICAqIHJlc3VsdHMgd2lsbCBiZSB2YWxpZCBhY2NvcmRpbmcgdG8gdGhlaXIgZXhwaXJhdGlvbiB0aW1lcy5cbiAgICovXG4gIGdldEFjY2Vzc1Rva2VuV2l0aFBvcHVwKFxuICAgIG9wdGlvbnM/OiBHZXRUb2tlbldpdGhQb3B1cE9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gb2YodGhpcy5hdXRoMENsaWVudCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgoY2xpZW50KSA9PiBjbGllbnQuZ2V0VG9rZW5XaXRoUG9wdXAob3B0aW9ucykpLFxuICAgICAgdGFwKCh0b2tlbikgPT4ge1xuICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICB0aGlzLmF1dGhTdGF0ZS5zZXRBY2Nlc3NUb2tlbih0b2tlbik7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5hdXRoU3RhdGUuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgICB0aGlzLmF1dGhTdGF0ZS5yZWZyZXNoKCk7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBgYGBqc1xuICAgKiBoYW5kbGVSZWRpcmVjdENhbGxiYWNrKHVybCkuc3Vic2NyaWJlKHJlc3VsdCA9PiAuLi4pXG4gICAqIGBgYFxuICAgKlxuICAgKiBBZnRlciB0aGUgYnJvd3NlciByZWRpcmVjdHMgYmFjayB0byB0aGUgY2FsbGJhY2sgcGFnZSxcbiAgICogY2FsbCBgaGFuZGxlUmVkaXJlY3RDYWxsYmFja2AgdG8gaGFuZGxlIHN1Y2Nlc3MgYW5kIGVycm9yXG4gICAqIHJlc3BvbnNlcyBmcm9tIEF1dGgwLiBJZiB0aGUgcmVzcG9uc2UgaXMgc3VjY2Vzc2Z1bCwgcmVzdWx0c1xuICAgKiB3aWxsIGJlIHZhbGlkIGFjY29yZGluZyB0byB0aGVpciBleHBpcmF0aW9uIHRpbWVzLlxuICAgKlxuICAgKiBDYWxsaW5nIHRoaXMgbWV0aG9kIGFsc28gcmVmcmVzaGVzIHRoZSBhdXRoZW50aWNhdGlvbiBhbmQgdXNlciBzdGF0ZXMuXG4gICAqXG4gICAqIEBwYXJhbSB1cmwgVGhlIFVSTCB0byB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIHJldHJpZXZlIHRoZSBgc3RhdGVgIGFuZCBgY29kZWAgdmFsdWVzLiBEZWZhdWx0cyB0byBgd2luZG93LmxvY2F0aW9uLmhyZWZgIGlmIG5vdCBnaXZlbi5cbiAgICovXG4gIGhhbmRsZVJlZGlyZWN0Q2FsbGJhY2soXG4gICAgdXJsPzogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8UmVkaXJlY3RMb2dpblJlc3VsdDxUQXBwU3RhdGU+PiB7XG4gICAgcmV0dXJuIGRlZmVyKCgpID0+XG4gICAgICB0aGlzLmF1dGgwQ2xpZW50LmhhbmRsZVJlZGlyZWN0Q2FsbGJhY2s8VEFwcFN0YXRlPih1cmwpXG4gICAgKS5waXBlKFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5hdXRoU3RhdGUuaXNMb2FkaW5nJCksXG4gICAgICB0YXAoKFtyZXN1bHQsIGlzTG9hZGluZ10pID0+IHtcbiAgICAgICAgaWYgKCFpc0xvYWRpbmcpIHtcbiAgICAgICAgICB0aGlzLmF1dGhTdGF0ZS5yZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXBwU3RhdGUgPSByZXN1bHQ/LmFwcFN0YXRlO1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBhcHBTdGF0ZT8udGFyZ2V0ID8/ICcvJztcblxuICAgICAgICBpZiAoYXBwU3RhdGUpIHtcbiAgICAgICAgICB0aGlzLmFwcFN0YXRlU3ViamVjdCQubmV4dChhcHBTdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5hdmlnYXRvci5uYXZpZ2F0ZUJ5VXJsKHRhcmdldCk7XG4gICAgICB9KSxcbiAgICAgIG1hcCgoW3Jlc3VsdF0pID0+IHJlc3VsdClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRIYW5kbGVDYWxsYmFjaygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gb2YobG9jYXRpb24uc2VhcmNoKS5waXBlKFxuICAgICAgbWFwKChzZWFyY2gpID0+IHtcbiAgICAgICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhzZWFyY2gpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIChzZWFyY2hQYXJhbXMuaGFzKCdjb2RlJykgfHwgc2VhcmNoUGFyYW1zLmhhcygnZXJyb3InKSkgJiZcbiAgICAgICAgICBzZWFyY2hQYXJhbXMuaGFzKCdzdGF0ZScpICYmXG4gICAgICAgICAgIXRoaXMuY29uZmlnRmFjdG9yeS5nZXQoKS5za2lwUmVkaXJlY3RDYWxsYmFja1xuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -87,14 +87,14 @@ export class AuthState {
|
|
|
87
87
|
setError(error) {
|
|
88
88
|
this.errorSubject$.next(error);
|
|
89
89
|
}
|
|
90
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthState, deps: [{ token: Auth0ClientService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
91
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthState, providedIn: 'root' }); }
|
|
90
92
|
}
|
|
91
|
-
|
|
92
|
-
AuthState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AuthState, providedIn: 'root' });
|
|
93
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AuthState, decorators: [{
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthState, decorators: [{
|
|
94
94
|
type: Injectable,
|
|
95
95
|
args: [{ providedIn: 'root' }]
|
|
96
|
-
}], ctorParameters:
|
|
96
|
+
}], ctorParameters: () => [{ type: i1.Auth0Client, decorators: [{
|
|
97
97
|
type: Inject,
|
|
98
98
|
args: [Auth0ClientService]
|
|
99
|
-
}] }]
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
}] }] });
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2F1dGgwLWFuZ3VsYXIvc3JjL2xpYi9hdXRoLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFDTCxlQUFlLEVBQ2YsS0FBSyxFQUNMLEtBQUssRUFDTCxFQUFFLEVBQ0YsYUFBYSxFQUNiLE9BQU8sR0FDUixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxTQUFTLEVBQ1Qsb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVuRDs7R0FFRztBQUVILE1BQU0sT0FBTyxTQUFTO0lBc0ZwQixZQUFnRCxXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXJGaEUsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDdkQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IsaUJBQVksR0FBRyxJQUFJLGFBQWEsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUM1QyxrQkFBYSxHQUFHLElBQUksYUFBYSxDQUFRLENBQUMsQ0FBQyxDQUFDO1FBRXBEOztXQUVHO1FBQ2EsZUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVuRTs7O1dBR0c7UUFDSyx3QkFBbUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDbEQsSUFBSSxDQUNGLENBQ0UsR0FBd0QsRUFDeEQsT0FBc0IsRUFDdEIsRUFBRSxDQUFDLENBQUM7WUFDSixRQUFRLEVBQUUsR0FBRyxDQUFDLE9B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WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGgwQ2xpZW50IH0gZnJvbSAnQGF1dGgwL2F1dGgwLXNwYS1qcyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGRlZmVyLFxuICBtZXJnZSxcbiAgb2YsXG4gIFJlcGxheVN1YmplY3QsXG4gIFN1YmplY3QsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY29uY2F0TWFwLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBtZXJnZU1hcCxcbiAgc2NhbixcbiAgc2hhcmVSZXBsYXksXG4gIHN3aXRjaE1hcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXV0aDBDbGllbnRTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLmNsaWVudCc7XG5cbi8qKlxuICogVHJhY2tzIHRoZSBBdXRoZW50aWNhdGlvbiBTdGF0ZSBmb3IgdGhlIFNES1xuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEF1dGhTdGF0ZSB7XG4gIHByaXZhdGUgaXNMb2FkaW5nU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwcml2YXRlIHJlZnJlc2gkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBhY2Nlc3NUb2tlbiQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuICBwcml2YXRlIGVycm9yU3ViamVjdCQgPSBuZXcgUmVwbGF5U3ViamVjdDxFcnJvcj4oMSk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGJvb2xlYW4gdmFsdWVzIGluZGljYXRpbmcgdGhlIGxvYWRpbmcgc3RhdGUgb2YgdGhlIFNESy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpc0xvYWRpbmckID0gdGhpcy5pc0xvYWRpbmdTdWJqZWN0JC5hc09ic2VydmFibGUoKTtcblxuICAvKipcbiAgICogVHJpZ2dlciB1c2VkIHRvIHB1bGwgVXNlciBpbmZvcm1hdGlvbiBmcm9tIHRoZSBBdXRoMENsaWVudC5cbiAgICogVHJpZ2dlcnMgd2hlbiB0aGUgYWNjZXNzIHRva2VuIGhhcyBjaGFuZ2VkLlxuICAgKi9cbiAgcHJpdmF0ZSBhY2Nlc3NUb2tlblRyaWdnZXIkID0gdGhpcy5hY2Nlc3NUb2tlbiQucGlwZShcbiAgICBzY2FuKFxuICAgICAgKFxuICAgICAgICBhY2M6IHsgY3VycmVudDogc3RyaW5nIHwgbnVsbDsgcHJldmlvdXM6IHN0cmluZyB8IG51bGwgfSxcbiAgICAgICAgY3VycmVudDogc3RyaW5nIHwgbnVsbFxuICAgICAgKSA9PiAoe1xuICAgICAgICBwcmV2aW91czogYWNjLmN1cnJlbnQsXG4gICAgICAgIGN1cnJlbnQsXG4gICAgICB9KSxcbiAgICAgIHsgY3VycmVudDogbnVsbCwgcHJldmlvdXM6IG51bGwgfVxuICAgICksXG4gICAgZmlsdGVyKCh7IHByZXZpb3VzLCBjdXJyZW50IH0pID0+IHByZXZpb3VzICE9PSBjdXJyZW50KVxuICApO1xuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIHVzZWQgdG8gcHVsbCBVc2VyIGluZm9ybWF0aW9uIGZyb20gdGhlIEF1dGgwQ2xpZW50LlxuICAgKiBUcmlnZ2VycyB3aGVuIGFuIGV2ZW50IG9jY3VycyB0aGF0IG5lZWRzIHRvIHJldHJpZ2dlciB0aGUgVXNlciBQcm9maWxlIGluZm9ybWF0aW9uLlxuICAgKiBFdmVudHM6IExvZ2luLCBBY2Nlc3MgVG9rZW4gY2hhbmdlIGFuZCBMb2dvdXRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNBdXRoZW50aWNhdGVkVHJpZ2dlciQgPSB0aGlzLmlzTG9hZGluZyQucGlwZShcbiAgICBmaWx0ZXIoKGxvYWRpbmcpID0+ICFsb2FkaW5nKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgLy8gVG8gdHJhY2sgdGhlIHZhbHVlIG9mIGlzQXV0aGVudGljYXRlZCBvdmVyIHRpbWUsIHdlIG5lZWQgdG8gbWVyZ2U6XG4gICAgICAvLyAgLSB0aGUgY3VycmVudCB2YWx1ZVxuICAgICAgLy8gIC0gdGhlIHZhbHVlIHdoZW5ldmVyIHRoZSBhY2Nlc3MgdG9rZW4gY2hhbmdlcy4gKHRoaXMgc2hvdWxkIGFsd2F5cyBiZSB0cnVlIG9mIHRoZXJlIGlzIGFuIGFjY2VzcyB0b2tlblxuICAgICAgLy8gICAgYnV0IGl0IGlzIHNhZmVyIHRvIHBhc3MgdGhpcyB0aHJvdWdoIHRoaXMuYXV0aDBDbGllbnQuaXNBdXRoZW50aWNhdGVkKCkgbmV2ZXJ0aGVsZXNzKVxuICAgICAgLy8gIC0gdGhlIHZhbHVlIHdoZW5ldmVyIHJlZnJlc2hTdGF0ZSQgZW1pdHNcbiAgICAgIG1lcmdlKFxuICAgICAgICBkZWZlcigoKSA9PiB0aGlzLmF1dGgwQ2xpZW50LmlzQXV0aGVudGljYXRlZCgpKSxcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlblRyaWdnZXIkLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5hdXRoMENsaWVudC5pc0F1dGhlbnRpY2F0ZWQoKSlcbiAgICAgICAgKSxcbiAgICAgICAgdGhpcy5yZWZyZXNoJC5waXBlKG1lcmdlTWFwKCgpID0+IHRoaXMuYXV0aDBDbGllbnQuaXNBdXRoZW50aWNhdGVkKCkpKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICAvKipcbiAgICogRW1pdHMgYm9vbGVhbiB2YWx1ZXMgaW5kaWNhdGluZyB0aGUgYXV0aGVudGljYXRpb24gc3RhdGUgb2YgdGhlIHVzZXIuIElmIGB0cnVlYCwgaXQgbWVhbnMgYSB1c2VyIGhhcyBhdXRoZW50aWNhdGVkLlxuICAgKiBUaGlzIGRlcGVuZHMgb24gdGhlIHZhbHVlIG9mIGBpc0xvYWRpbmckYCwgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBtYW51YWxseSBjaGVjayB0aGUgbG9hZGluZyBzdGF0ZSBvZiB0aGUgU0RLLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNBdXRoZW50aWNhdGVkJCA9IHRoaXMuaXNBdXRoZW50aWNhdGVkVHJpZ2dlciQucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGRldGFpbHMgYWJvdXQgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlciwgb3IgbnVsbCBpZiBub3QgYXV0aGVudGljYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXIkID0gdGhpcy5pc0F1dGhlbnRpY2F0ZWRUcmlnZ2VyJC5waXBlKFxuICAgIGNvbmNhdE1hcCgoYXV0aGVudGljYXRlZCkgPT5cbiAgICAgIGF1dGhlbnRpY2F0ZWQgPyB0aGlzLmF1dGgwQ2xpZW50LmdldFVzZXIoKSA6IG9mKG51bGwpXG4gICAgKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIElEIHRva2VuIGNsYWltcyB3aGVuIGF1dGhlbnRpY2F0ZWQsIG9yIG51bGwgaWYgbm90IGF1dGhlbnRpY2F0ZWQuXG4gICAqL1xuICByZWFkb25seSBpZFRva2VuQ2xhaW1zJCA9IHRoaXMuaXNBdXRoZW50aWNhdGVkVHJpZ2dlciQucGlwZShcbiAgICBjb25jYXRNYXAoKGF1dGhlbnRpY2F0ZWQpID0+XG4gICAgICBhdXRoZW50aWNhdGVkID8gdGhpcy5hdXRoMENsaWVudC5nZXRJZFRva2VuQ2xhaW1zKCkgOiBvZihudWxsKVxuICAgIClcbiAgKTtcblxuICAvKipcbiAgICogRW1pdHMgZXJyb3JzIHRoYXQgb2NjdXIgZHVyaW5nIGxvZ2luLCBvciB3aGVuIGNoZWNraW5nIGZvciBhbiBhY3RpdmUgc2Vzc2lvbiBvbiBzdGFydHVwLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVycm9yJCA9IHRoaXMuZXJyb3JTdWJqZWN0JC5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEF1dGgwQ2xpZW50U2VydmljZSkgcHJpdmF0ZSBhdXRoMENsaWVudDogQXV0aDBDbGllbnQpIHt9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgaXNMb2FkaW5nIHN0YXRlIHVzaW5nIHRoZSBwcm92aWRlZCB2YWx1ZVxuICAgKlxuICAgKiBAcGFyYW0gaXNMb2FkaW5nIFRoZSBuZXcgdmFsdWUgZm9yIGlzTG9hZGluZ1xuICAgKi9cbiAgcHVibGljIHNldElzTG9hZGluZyhpc0xvYWRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzTG9hZGluZ1N1YmplY3QkLm5leHQoaXNMb2FkaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoIHRoZSBzdGF0ZSB0byBlbnN1cmUgdGhlIGBpc0F1dGhlbnRpY2F0ZWRgLCBgdXNlciRgIGFuZCBgaWRUb2tlbkNsYWltcyRgXG4gICAqIHJlZmxlY3QgdGhlIG1vc3QgdXAtdG8tZGF0ZSB2YWx1ZXMgZnJvbSAgQXV0aDBDbGllbnQuXG4gICAqL1xuICBwdWJsaWMgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZnJlc2gkLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIGFjY2VzcyB0b2tlbiwgZG9pbmcgc28gd2lsbCBhbHNvIHJlZnJlc2ggdGhlIHN0YXRlLlxuICAgKlxuICAgKiBAcGFyYW0gYWNjZXNzVG9rZW4gVGhlIG5ldyBBY2Nlc3MgVG9rZW5cbiAgICovXG4gIHB1YmxpYyBzZXRBY2Nlc3NUb2tlbihhY2Nlc3NUb2tlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5hY2Nlc3NUb2tlbiQubmV4dChhY2Nlc3NUb2tlbik7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgdGhlIGVycm9yIGluIHRoZSBgZXJyb3IkYCBvYnNlcnZhYmxlLlxuICAgKlxuICAgKiBAcGFyYW0gZXJyb3IgVGhlIG5ldyBlcnJvclxuICAgKi9cbiAgcHVibGljIHNldEVycm9yKGVycm9yOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yU3ViamVjdCQubmV4dChlcnJvcik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2F1dGgwLWFuZ3VsYXIvc3JjL2xpYi9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBSZWRpcmVjdExvZ2luT3B0aW9ucyBhcyBTUEFSZWRpcmVjdExvZ2luT3B0aW9ucyxcbiAgTG9nb3V0T3B0aW9ucyBhcyBTUEFMb2dvdXRPcHRpb25zLFxufSBmcm9tICdAYXV0aDAvYXV0aDAtc3BhLWpzJztcblxuZXhwb3J0IGludGVyZmFjZSBSZWRpcmVjdExvZ2luT3B0aW9uczxUQXBwU3RhdGU+XG4gIGV4dGVuZHMgT21pdDxTUEFSZWRpcmVjdExvZ2luT3B0aW9uczxUQXBwU3RhdGU+LCAnb25SZWRpcmVjdCc+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nb3V0T3B0aW9ucyBleHRlbmRzIE9taXQ8U1BBTG9nb3V0T3B0aW9ucywgJ29uUmVkaXJlY3QnPiB7fVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export default { name: '@auth0/auth0-angular', version: '2.
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export default { name: '@auth0/auth0-angular', version: '2.3.0' };
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcmFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYXV0aDAtYW5ndWxhci9zcmMvdXNlcmFnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQWUsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgeyBuYW1lOiAnQGF1dGgwL2F1dGgwLWFuZ3VsYXInLCB2ZXJzaW9uOiAnMi4zLjAnIH07XG4iXX0=
|
|
@@ -8,7 +8,7 @@ export { AuthenticationError, GenericError, InMemoryCache, LocalStorageCache, Mf
|
|
|
8
8
|
import { Router } from '@angular/router';
|
|
9
9
|
import * as i1 from '@angular/common';
|
|
10
10
|
|
|
11
|
-
var useragent = { name: '@auth0/auth0-angular', version: '2.
|
|
11
|
+
var useragent = { name: '@auth0/auth0-angular', version: '2.3.0' };
|
|
12
12
|
|
|
13
13
|
class Auth0ClientFactory {
|
|
14
14
|
static createClient(configFactory) {
|
|
@@ -112,18 +112,18 @@ class AuthClientConfig {
|
|
|
112
112
|
get() {
|
|
113
113
|
return this.config;
|
|
114
114
|
}
|
|
115
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthClientConfig, deps: [{ token: AuthConfigService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
116
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthClientConfig, providedIn: 'root' }); }
|
|
115
117
|
}
|
|
116
|
-
|
|
117
|
-
AuthClientConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AuthClientConfig, providedIn: 'root' });
|
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AuthClientConfig, decorators: [{
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthClientConfig, decorators: [{
|
|
119
119
|
type: Injectable,
|
|
120
120
|
args: [{ providedIn: 'root' }]
|
|
121
|
-
}], ctorParameters:
|
|
121
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
122
122
|
type: Optional
|
|
123
123
|
}, {
|
|
124
124
|
type: Inject,
|
|
125
125
|
args: [AuthConfigService]
|
|
126
|
-
}] }]
|
|
126
|
+
}] }] });
|
|
127
127
|
|
|
128
128
|
class AbstractNavigator {
|
|
129
129
|
constructor(location, injector) {
|
|
@@ -146,15 +146,15 @@ class AbstractNavigator {
|
|
|
146
146
|
}
|
|
147
147
|
this.location.replaceState(url);
|
|
148
148
|
}
|
|
149
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractNavigator, deps: [{ token: i1.Location }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
150
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractNavigator, providedIn: 'root' }); }
|
|
149
151
|
}
|
|
150
|
-
|
|
151
|
-
AbstractNavigator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AbstractNavigator, providedIn: 'root' });
|
|
152
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AbstractNavigator, decorators: [{
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractNavigator, decorators: [{
|
|
153
153
|
type: Injectable,
|
|
154
154
|
args: [{
|
|
155
155
|
providedIn: 'root',
|
|
156
156
|
}]
|
|
157
|
-
}], ctorParameters:
|
|
157
|
+
}], ctorParameters: () => [{ type: i1.Location }, { type: i0.Injector }] });
|
|
158
158
|
|
|
159
159
|
/**
|
|
160
160
|
* Tracks the Authentication State for the SDK
|
|
@@ -239,16 +239,16 @@ class AuthState {
|
|
|
239
239
|
setError(error) {
|
|
240
240
|
this.errorSubject$.next(error);
|
|
241
241
|
}
|
|
242
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthState, deps: [{ token: Auth0ClientService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
243
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthState, providedIn: 'root' }); }
|
|
242
244
|
}
|
|
243
|
-
|
|
244
|
-
AuthState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AuthState, providedIn: 'root' });
|
|
245
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AuthState, decorators: [{
|
|
245
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthState, decorators: [{
|
|
246
246
|
type: Injectable,
|
|
247
247
|
args: [{ providedIn: 'root' }]
|
|
248
|
-
}], ctorParameters:
|
|
248
|
+
}], ctorParameters: () => [{ type: i4.Auth0Client, decorators: [{
|
|
249
249
|
type: Inject,
|
|
250
250
|
args: [Auth0ClientService]
|
|
251
|
-
}] }]
|
|
251
|
+
}] }] });
|
|
252
252
|
|
|
253
253
|
class AuthService {
|
|
254
254
|
constructor(auth0Client, configFactory, navigator, authState) {
|
|
@@ -461,18 +461,18 @@ class AuthService {
|
|
|
461
461
|
!this.configFactory.get().skipRedirectCallback);
|
|
462
462
|
}));
|
|
463
463
|
}
|
|
464
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, deps: [{ token: Auth0ClientService }, { token: AuthClientConfig }, { token: AbstractNavigator }, { token: AuthState }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
465
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, providedIn: 'root' }); }
|
|
464
466
|
}
|
|
465
|
-
|
|
466
|
-
AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AuthService, providedIn: 'root' });
|
|
467
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AuthService, decorators: [{
|
|
467
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, decorators: [{
|
|
468
468
|
type: Injectable,
|
|
469
469
|
args: [{
|
|
470
470
|
providedIn: 'root',
|
|
471
471
|
}]
|
|
472
|
-
}], ctorParameters:
|
|
472
|
+
}], ctorParameters: () => [{ type: i4.Auth0Client, decorators: [{
|
|
473
473
|
type: Inject,
|
|
474
474
|
args: [Auth0ClientService]
|
|
475
|
-
}] }, { type: AuthClientConfig }, { type: AbstractNavigator }, { type: AuthState }]
|
|
475
|
+
}] }, { type: AuthClientConfig }, { type: AbstractNavigator }, { type: AuthState }] });
|
|
476
476
|
|
|
477
477
|
class AuthGuard {
|
|
478
478
|
constructor(auth) {
|
|
@@ -488,23 +488,26 @@ class AuthGuard {
|
|
|
488
488
|
return this.redirectIfUnauthenticated(state);
|
|
489
489
|
}
|
|
490
490
|
redirectIfUnauthenticated(state) {
|
|
491
|
-
return this.auth.isAuthenticated$.pipe(
|
|
491
|
+
return this.auth.isAuthenticated$.pipe(switchMap((loggedIn) => {
|
|
492
492
|
if (!loggedIn) {
|
|
493
|
-
this.auth
|
|
493
|
+
return this.auth
|
|
494
|
+
.loginWithRedirect({
|
|
494
495
|
appState: { target: state.url },
|
|
495
|
-
})
|
|
496
|
+
})
|
|
497
|
+
.pipe(map(() => false));
|
|
496
498
|
}
|
|
499
|
+
return of(true);
|
|
497
500
|
}));
|
|
498
501
|
}
|
|
502
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthGuard, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
503
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthGuard, providedIn: 'root' }); }
|
|
499
504
|
}
|
|
500
|
-
|
|
501
|
-
AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AuthGuard, providedIn: 'root' });
|
|
502
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AuthGuard, decorators: [{
|
|
505
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthGuard, decorators: [{
|
|
503
506
|
type: Injectable,
|
|
504
507
|
args: [{
|
|
505
508
|
providedIn: 'root',
|
|
506
509
|
}]
|
|
507
|
-
}], ctorParameters:
|
|
510
|
+
}], ctorParameters: () => [{ type: AuthService }] });
|
|
508
511
|
|
|
509
512
|
class AuthModule {
|
|
510
513
|
/**
|
|
@@ -531,11 +534,11 @@ class AuthModule {
|
|
|
531
534
|
],
|
|
532
535
|
};
|
|
533
536
|
}
|
|
537
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
538
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuthModule }); }
|
|
539
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthModule }); }
|
|
534
540
|
}
|
|
535
|
-
|
|
536
|
-
AuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AuthModule });
|
|
537
|
-
AuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AuthModule });
|
|
538
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AuthModule, decorators: [{
|
|
541
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthModule, decorators: [{
|
|
539
542
|
type: NgModule
|
|
540
543
|
}] });
|
|
541
544
|
|
|
@@ -653,15 +656,15 @@ class AuthHttpInterceptor {
|
|
|
653
656
|
!!route.allowAnonymous &&
|
|
654
657
|
['login_required', 'consent_required', 'missing_refresh_token'].includes(err.error));
|
|
655
658
|
}
|
|
659
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthHttpInterceptor, deps: [{ token: AuthClientConfig }, { token: Auth0ClientService }, { token: AuthState }, { token: AuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
660
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthHttpInterceptor }); }
|
|
656
661
|
}
|
|
657
|
-
|
|
658
|
-
AuthHttpInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AuthHttpInterceptor });
|
|
659
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AuthHttpInterceptor, decorators: [{
|
|
662
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthHttpInterceptor, decorators: [{
|
|
660
663
|
type: Injectable
|
|
661
|
-
}], ctorParameters:
|
|
664
|
+
}], ctorParameters: () => [{ type: AuthClientConfig }, { type: i4.Auth0Client, decorators: [{
|
|
662
665
|
type: Inject,
|
|
663
666
|
args: [Auth0ClientService]
|
|
664
|
-
}] }, { type: AuthState }, { type: AuthService }]
|
|
667
|
+
}] }, { type: AuthState }, { type: AuthService }] });
|
|
665
668
|
|
|
666
669
|
/**
|
|
667
670
|
* Initialize the authentication system. Configuration can either be specified here,
|