@alauda-fe/common 1.4.0 → 1.4.1
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/api/auth-api.service.d.ts +14 -0
- package/api/platform-ui.service.d.ts +1 -0
- package/api/public-api.d.ts +1 -0
- package/array-form-table/form/component.d.ts +7 -3
- package/assets/icons/icon-refresh-drag.svg +1 -0
- package/authorization/interceptor.service.d.ts +2 -0
- package/authorization/public-api.d.ts +1 -0
- package/authorization/session-manage.service.d.ts +2 -4
- package/authorization/state.service.d.ts +9 -8
- package/authorization/storage-token.d.ts +4 -10
- package/core/abstract/base-nested-form-control.d.ts +1 -1
- package/core/directives/feature-gate.directive.d.ts +2 -1
- package/core/directives/scroll-to-first-invalid.directive.d.ts +1 -1
- package/core/pipes/minimum-format.pipe.d.ts +1 -1
- package/core/services/feature-gate.service.d.ts +2 -1
- package/core/types/commons.d.ts +2 -0
- package/core/types/k8s/crd.d.ts +64 -0
- package/core/types/resource-definitions.d.ts +3 -3
- package/core/utils/cache-store.d.ts +15 -13
- package/core/utils/common.d.ts +1 -0
- package/core/utils/version.d.ts +1 -1
- package/effect-directive/event.directive.d.ts +36 -0
- package/esm2022/api/auth-api.service.mjs +34 -0
- package/esm2022/api/platform-ui.service.mjs +2 -1
- package/esm2022/api/public-api.mjs +2 -1
- package/esm2022/array-form-table/form/component.mjs +30 -15
- package/esm2022/authorization/interceptor.service.mjs +32 -10
- package/esm2022/authorization/public-api.mjs +2 -1
- package/esm2022/authorization/session-manage.service.mjs +11 -24
- package/esm2022/authorization/state.service.mjs +51 -23
- package/esm2022/authorization/storage-token.mjs +12 -88
- package/esm2022/core/directives/feature-gate.directive.mjs +7 -4
- package/esm2022/core/guards/feature.guard.mjs +3 -2
- package/esm2022/core/pipes/minimum-format.pipe.mjs +4 -3
- package/esm2022/core/services/feature-gate.service.mjs +4 -3
- package/esm2022/core/types/commons.mjs +1 -1
- package/esm2022/core/types/k8s/crd.mjs +8 -1
- package/esm2022/core/types/resource-definitions.mjs +2 -2
- package/esm2022/core/utils/cache-store.mjs +51 -29
- package/esm2022/core/utils/common.mjs +9 -1
- package/esm2022/effect-directive/event.directive.mjs +79 -4
- package/esm2022/k8s-resource-list/footer/component.mjs +7 -5
- package/esm2022/multi-search/multi-search-tags/component.mjs +2 -2
- package/esm2022/multi-search/types.mjs +1 -1
- package/esm2022/page-scaffold/page-header/account-menu/component/component.mjs +3 -8
- package/esm2022/pod-status/component.mjs +34 -55
- package/esm2022/searchable-selector/component.mjs +2 -2
- package/k8s-resource-list/k8s-resource-paged-list.d.ts +2 -2
- package/multi-search/types.d.ts +1 -0
- package/package.json +1 -1
- package/pod-status/component.d.ts +1 -3
- package/styles/tailwind-preset.scss +1 -1
- package/table/component.d.ts +1 -1
- package/table/helper.d.ts +1 -1
- package/table/module.d.ts +1 -1
|
@@ -4,13 +4,16 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { HttpClient } from '@angular/common/http';
|
|
6
6
|
import { Injectable, inject } from '@angular/core';
|
|
7
|
-
import { EMPTY, of, catchError, map, shareReplay, switchMap, tap, pipe, } from 'rxjs';
|
|
8
|
-
import { NOT_NOTIFY_ON_ERROR_HEADERS, publishRef, getTopWindow, skipError, } from '../core/public-api';
|
|
7
|
+
import { EMPTY, of, catchError, map, shareReplay, switchMap, tap, pipe, timeout, timer, fromEvent, merge, } from 'rxjs';
|
|
8
|
+
import { NOT_NOTIFY_ON_ERROR_HEADERS, publishRef, getTopWindow, skipError, getGlobalEnvironments, TRUE, } from '../core/public-api';
|
|
9
9
|
import { getInitUrl } from './app-init-url';
|
|
10
|
+
import { HEARTBEAT_POLLING } from './session-manage.service';
|
|
11
|
+
import { cleanStorageToken, readStorageAliveRecord, readStorageToken, refreshStorageAliveRecord, writeStorageToken, } from './storage-token';
|
|
10
12
|
import * as i0 from "@angular/core";
|
|
11
13
|
export const STORAGE_TYPE_KEY = 'token_storage';
|
|
12
14
|
export const CODE_KEY = 'code';
|
|
13
|
-
export const
|
|
15
|
+
export const ID_TOKEN_KEY = 'id_token';
|
|
16
|
+
const LOADING_CACHE = 15_000;
|
|
14
17
|
const LOGIN_API = '/console/api/v2/token/login';
|
|
15
18
|
const LOGOUT_API = '/console/api/v2/token/logout';
|
|
16
19
|
const CALLBACK_API = '/console/api/v2/token/callback';
|
|
@@ -26,21 +29,39 @@ export class AuthorizationStateService {
|
|
|
26
29
|
...token,
|
|
27
30
|
info,
|
|
28
31
|
})))))), tap(state => {
|
|
29
|
-
this.stateSnapshot = state;
|
|
30
32
|
if (!state.info) {
|
|
31
33
|
this.logout(true);
|
|
32
34
|
}
|
|
35
|
+
this.stateSnapshot = state;
|
|
33
36
|
this.payloadSnapshot = state.info;
|
|
34
37
|
}), shareReplay(1));
|
|
35
38
|
this.checkTokenCache$ = null;
|
|
36
39
|
this.stateSnapshot = null;
|
|
40
|
+
if (getGlobalEnvironments('CLOSE_BROWSER_END_SESSION') === TRUE) {
|
|
41
|
+
this.state$
|
|
42
|
+
.pipe(switchMap(state => {
|
|
43
|
+
const aliveRecord = readStorageAliveRecord();
|
|
44
|
+
if (!aliveRecord ||
|
|
45
|
+
Date.now() - aliveRecord > HEARTBEAT_POLLING + LOADING_CACHE) {
|
|
46
|
+
this.logout();
|
|
47
|
+
return EMPTY;
|
|
48
|
+
}
|
|
49
|
+
return of(state);
|
|
50
|
+
}), switchMap(() => {
|
|
51
|
+
return merge(timer(0, HEARTBEAT_POLLING), fromEvent(window, 'beforeunload'));
|
|
52
|
+
}))
|
|
53
|
+
.subscribe(refreshStorageAliveRecord);
|
|
54
|
+
}
|
|
37
55
|
}
|
|
38
56
|
logout(specificUrl = false) {
|
|
39
|
-
this.
|
|
40
|
-
|
|
41
|
-
logoutAudit() {
|
|
42
|
-
return this.http.get(LOGOUT_API, {
|
|
57
|
+
this.http
|
|
58
|
+
.get(LOGOUT_API, {
|
|
43
59
|
headers: NOT_NOTIFY_ON_ERROR_HEADERS,
|
|
60
|
+
})
|
|
61
|
+
.pipe(timeout(1000))
|
|
62
|
+
.subscribe(() => {
|
|
63
|
+
cleanStorageToken();
|
|
64
|
+
this.redirectToDex(specificUrl && location.href);
|
|
44
65
|
});
|
|
45
66
|
}
|
|
46
67
|
async redirectToDex(redirectUrl = null) {
|
|
@@ -64,7 +85,9 @@ export class AuthorizationStateService {
|
|
|
64
85
|
if (this.refreshTokenCache$) {
|
|
65
86
|
return this.refreshTokenCache$;
|
|
66
87
|
}
|
|
67
|
-
this.refreshTokenCache$ = this.http
|
|
88
|
+
this.refreshTokenCache$ = this.http
|
|
89
|
+
.get(TOKEN_REFRESH_API)
|
|
90
|
+
.pipe(tap(() => {
|
|
68
91
|
this.refreshTokenCache$ = null;
|
|
69
92
|
}), catchError(() => {
|
|
70
93
|
this.logout(true);
|
|
@@ -94,6 +117,9 @@ export class AuthorizationStateService {
|
|
|
94
117
|
}
|
|
95
118
|
return this.state$.pipe(map(state => state.info || {}));
|
|
96
119
|
}
|
|
120
|
+
getTokenByStorage() {
|
|
121
|
+
return readStorageToken();
|
|
122
|
+
}
|
|
97
123
|
getAuthConfiguration() {
|
|
98
124
|
return this.http
|
|
99
125
|
.get(LOGIN_API)
|
|
@@ -106,32 +132,32 @@ export class AuthorizationStateService {
|
|
|
106
132
|
getExistedToken(config) {
|
|
107
133
|
return this.getTokenFromLocal(config).pipe(catchError(error => {
|
|
108
134
|
console.error(error);
|
|
109
|
-
return of({
|
|
135
|
+
return of({});
|
|
110
136
|
}));
|
|
111
137
|
}
|
|
112
138
|
getTokenFromLocal(config) {
|
|
113
139
|
const { queryParams, hashParams } = this.getParams();
|
|
114
140
|
const code = queryParams[CODE_KEY] || hashParams[CODE_KEY];
|
|
115
|
-
const idToken = queryParams[
|
|
116
|
-
if (code) {
|
|
117
|
-
return
|
|
118
|
-
}
|
|
119
|
-
if (idToken) {
|
|
120
|
-
return this.getCookieByToken(idToken);
|
|
141
|
+
const idToken = queryParams[ID_TOKEN_KEY] || hashParams[ID_TOKEN_KEY];
|
|
142
|
+
if (!code && !idToken) {
|
|
143
|
+
return of(null);
|
|
121
144
|
}
|
|
122
|
-
|
|
145
|
+
refreshStorageAliveRecord();
|
|
146
|
+
return code
|
|
147
|
+
? this.setCookieByCode(code, config.state)
|
|
148
|
+
: this.setCookieByToken(idToken);
|
|
123
149
|
}
|
|
124
|
-
|
|
150
|
+
setCookieByCode(code, state) {
|
|
125
151
|
return this.http
|
|
126
152
|
.get(CALLBACK_API, {
|
|
127
153
|
params: { code, state },
|
|
128
154
|
})
|
|
129
155
|
.pipe(mapTokenResponse());
|
|
130
156
|
}
|
|
131
|
-
|
|
157
|
+
setCookieByToken(idToken) {
|
|
132
158
|
return this.http
|
|
133
159
|
.get(CALLBACK_API, {
|
|
134
|
-
params: { idToken },
|
|
160
|
+
params: { id_token: idToken },
|
|
135
161
|
})
|
|
136
162
|
.pipe(mapTokenResponse());
|
|
137
163
|
}
|
|
@@ -148,7 +174,7 @@ export class AuthorizationStateService {
|
|
|
148
174
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthorizationStateService, [{
|
|
149
175
|
type: Injectable,
|
|
150
176
|
args: [{ providedIn: 'root' }]
|
|
151
|
-
}],
|
|
177
|
+
}], () => [], null); })();
|
|
152
178
|
function replaceRedirectUrl(dexUrl, redirectUrl) {
|
|
153
179
|
const [path, queryParams] = dexUrl.split('?');
|
|
154
180
|
const replacedQueryParams = queryParams
|
|
@@ -183,11 +209,13 @@ function parseParams(query) {
|
|
|
183
209
|
}, {});
|
|
184
210
|
}
|
|
185
211
|
function mapTokenResponse() {
|
|
186
|
-
return pipe(
|
|
212
|
+
return pipe(tap(({ id_token: idToken }) => {
|
|
213
|
+
writeStorageToken(idToken);
|
|
214
|
+
}), map(({ token_type, token_storage, expire_at, issued_at }) => ({
|
|
187
215
|
storageType: token_storage,
|
|
188
216
|
tokenType: token_type,
|
|
189
217
|
expireAt: expire_at,
|
|
190
218
|
issuedAt: issued_at,
|
|
191
219
|
})));
|
|
192
220
|
}
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL3N0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFDTCxLQUFLLEVBRUwsRUFBRSxFQUNGLFVBQVUsRUFDVixHQUFHLEVBQ0gsV0FBVyxFQUNYLFNBQVMsRUFDVCxHQUFHLEVBQ0gsSUFBSSxHQUNMLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUVMLDJCQUEyQixFQUMzQixVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsR0FDVixNQUFNLG9CQUFvQixDQUFDO0FBRzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFvQjVDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUM7QUFFbkMsTUFBTSxTQUFTLEdBQUcsNkJBQTZCLENBQUM7QUFDaEQsTUFBTSxVQUFVLEdBQUcsOEJBQThCLENBQUM7QUFDbEQsTUFBTSxZQUFZLEdBQUcsZ0NBQWdDLENBQUM7QUFDdEQsTUFBTSxpQkFBaUIsR0FBRywrQkFBK0IsQ0FBQztBQUMxRCxNQUFNLGNBQWMsR0FBRyw0QkFBNEIsQ0FBQztBQUNwRCxNQUFNLHFCQUFxQixHQUFHLGdDQUFnQyxDQUFDO0FBRS9ELE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztBQUc1RSxNQUFN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QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdEMsT0FBTztZQUNMLEdBQUcsR0FBRztZQUNOLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSztTQUNiLENBQUM7SUFDSixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0I7SUFDdkIsT0FBTyxJQUFJLENBQ1QsR0FBRyxDQUNELENBQUMsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkUsV0FBVyxFQUFFLGFBQWE7UUFDMUIsU0FBUyxFQUFFLFVBQVU7UUFDckIsUUFBUSxFQUFFLFNBQVM7UUFDbkIsUUFBUSxFQUFFLFNBQVM7S0FDcEIsQ0FBQyxDQUNILENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSBhdXRob3JpemF0aW9uXG4gKi9cblxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRU1QVFksXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBjYXRjaEVycm9yLFxuICBtYXAsXG4gIHNoYXJlUmVwbGF5LFxuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbiAgcGlwZSxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIFN0cmluZ01hcCxcbiAgTk9UX05PVElGWV9PTl9FUlJPUl9IRUFERVJTLFxuICBwdWJsaXNoUmVmLFxuICBnZXRUb3BXaW5kb3csXG4gIHNraXBFcnJvcixcbn0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IEFjY291bnRJbmZvIH0gZnJvbSAnLi4vcGFnZS1zY2FmZm9sZC9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHsgZ2V0SW5pdFVybCB9IGZyb20gJy4vYXBwLWluaXQtdXJsJztcblxuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uU3RhdGUge1xuICBleHBpcmVBdD86IHN0cmluZztcbiAgaXNzdWVkQXQ/OiBzdHJpbmc7XG4gIHN0YXRlPzogc3RyaW5nO1xuICBhdXRoVXJsPzogc3RyaW5nO1xuICBsb2dvdXRVcmw/OiBzdHJpbmc7XG4gIGluZm8/OiBBY2NvdW50SW5mbztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb2tlblJlc3BvbnNlIHtcbiAgdG9rZW5fc3RvcmFnZTogU3RvcmFnZVR5cGU7XG4gIHRva2VuX3R5cGU6IHN0cmluZztcbiAgZXhwaXJlX2F0OiBzdHJpbmc7XG4gIGlzc3VlZF9hdDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBTdG9yYWdlVHlwZSA9ICdsb2NhbCcgfCAnc2Vzc2lvbic7XG5cbmV4cG9ydCBjb25zdCBTVE9SQUdFX1RZUEVfS0VZID0gJ3Rva2VuX3N0b3JhZ2UnO1xuZXhwb3J0IGNvbnN0IENPREVfS0VZID0gJ2NvZGUnO1xuZXhwb3J0IGNvbnN0IElEX1RPS0VOID0gJ2lkX3Rva2VuJztcblxuY29uc3QgTE9HSU5fQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9sb2dpbic7XG5jb25zdCBMT0dPVVRfQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9sb2dvdXQnO1xuY29uc3QgQ0FMTEJBQ0tfQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9jYWxsYmFjayc7XG5jb25zdCBUT0tFTl9SRUZSRVNIX0FQSSA9ICcvY29uc29sZS9hcGkvdjIvdG9rZW4vcmVmcmVzaCc7XG5jb25zdCBUT0tFTl9JTkZPX0FQSSA9ICcvY29uc29sZS9hcGkvdjIvdG9rZW4vaW5mbyc7XG5jb25zdCBFWFRFUk5BTF9SRURJUkVDVF9BUEkgPSAnL2NvbnNvbGUvYXBpL3YyL3Rva2VuL3JlZGlyZWN0JztcblxuY29uc3QgUkVESVJFQ1RfVVJJUyA9IG5ldyBTZXQoWydyZWRpcmVjdF91cmknLCAncG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpJ10pO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25TdGF0ZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZSQgPSB0aGlzLmdldEF1dGhDb25maWd1cmF0aW9uKCkucGlwZShcbiAgICBzd2l0Y2hNYXAoY29uZmlnID0+XG4gICAgICB0aGlzLmdldEV4aXN0ZWRUb2tlbihjb25maWcpLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCh0b2tlbiA9PlxuICAgICAgICAgIHRoaXMuaHR0cC5nZXQ8QWNjb3VudEluZm8+KFRPS0VOX0lORk9fQVBJLCB7fSkucGlwZShcbiAgICAgICAgICAgIHNraXBFcnJvcihudWxsKSxcbiAgICAgICAgICAgIG1hcChpbmZvID0+ICh7XG4gICAgICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICAgICAgLi4udG9rZW4sXG4gICAgICAgICAgICAgIGluZm8sXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKSxcbiAgICB0YXAoc3RhdGUgPT4ge1xuICAgICAgdGhpcy5zdGF0ZVNuYXBzaG90ID0gc3RhdGU7XG4gICAgICBpZiAoIXN0YXRlLmluZm8pIHtcbiAgICAgICAgdGhpcy5sb2dvdXQodHJ1ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLnBheWxvYWRTbmFwc2hvdCA9IHN0YXRlLmluZm87XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICk7XG5cbiAgcHJpdmF0ZSBjaGVja1Rva2VuQ2FjaGUkOiBPYnNlcnZhYmxlPHVua25vd24+ID0gbnVsbDtcbiAgcHJpdmF0ZSByZWZyZXNoVG9rZW5DYWNoZSQ6IE9ic2VydmFibGU8dW5rbm93bj47XG4gIHN0YXRlU25hcHNob3Q6IEF1dGhvcml6YXRpb25TdGF0ZSA9IG51bGw7XG5cbiAgcGF5bG9hZFNuYXBzaG90OiBBY2NvdW50SW5mbztcblxuICBsb2dvdXQoc3BlY2lmaWNVcmwgPSBmYWxzZSkge1xuICAgIHRoaXMucmVkaXJlY3RUb0RleChzcGVjaWZpY1VybCAmJiBsb2NhdGlvbi5ocmVmKTtcbiAgfVxuXG4gIGxvZ291dEF1ZGl0KCkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KExPR09VVF9BUEksIHtcbiAgICAgIGhlYWRlcnM6IE5PVF9OT1RJRllfT05fRVJST1JfSEVBREVSUyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHJlZGlyZWN0VG9EZXgocmVkaXJlY3RVcmw6IHN0cmluZyA9IG51bGwpIHtcbiAgICBpZiAoIXRoaXMuc3RhdGVTbmFwc2hvdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGhyZWYgPSByZXBsYWNlUmVkaXJlY3RVcmwoXG4gICAgICB0aGlzLnN0YXRlU25hcHNob3QuYXV0aFVybCxcbiAgICAgIC8vIGF1dGhVcmwg5Lit55qEIHJlZGlyZWN0VXJsIOaYr+aguei3r+eUse+8jOaguei3r+eUseS6jOasoemHjeWumuWQkeWbniBwb3J0YWwg5pe25Lya5Lii5aSxIGNvZGUg5a+86Ie055m75b2V5aSx6LSlXG4gICAgICAvLyDlpoLmnpzlkI7mnJ/mnInlrprliLbljJbopoHmsYLpu5jorqTpppbpobXkuI3mmK8gcG9ydGFs77yM5Y+v5Lul5pS55Zue5LmL5YmN55qE5pa55qGI77yM5L2/55So5rWP6KeI5Zmo5a+86Iiq5omT5byAIGxvZ291dFVybO+8jOeEtuWQjiBkZXgg6YeN5a6a5ZCR5Yiw5qC56Lev55Sx77yM5qC56Lev55Sx6YeN5a6a5ZCR5Yiw6buY6K6k6aaW6aG177yM6aaW6aG15YaN5bCGIGF1dGhVcmwg5Lit55qEIHJlZGlyZWN0VXJsIOabv+aNouS4uuW9k+WJjSB1cmwg6Lez6L2s5YiwIGRleCDov5vooYznmbvlvZXvvJtcbiAgICAgIC8vIOacgOWlveeOr+Wig+WPmOmHj+WinuWKoOm7mOiupOmmlumhteWcsOWdgOaIluiAhSBkZXggcmVkaXJlY3RVcmwg55u05o6l5piv5q2j56Gu5Zyw5Z2AXG4gICAgICByZWRpcmVjdFVybCB8fCBsb2NhdGlvbi5vcmlnaW4gKyAnL2NvbnNvbGUtcG9ydGFsJyxcbiAgICApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGdldFRvcFdpbmRvdygpLmxvY2F0aW9uLmhyZWYgPSBocmVmO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gc2hvdWxkIG5ldmVyIGhhcHBlbiwganVzdCBmb3Igcm9idXN0bmVzcyBpbiBjYXNlIG9mIGNyb3NzLW9yaWdpbiBpZnJhbWVcbiAgICAgIGxvY2F0aW9uLmhyZWYgPSBocmVmO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2hUb2tlbigpIHtcbiAgICBpZiAodGhpcy5yZWZyZXNoVG9rZW5DYWNoZSQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlZnJlc2hUb2tlbkNhY2hlJDtcbiAgICB9XG5cbiAgICB0aGlzLnJlZnJlc2hUb2tlbkNhY2hlJCA9IHRoaXMuaHR0cC5nZXQoVE9LRU5fUkVGUkVTSF9BUEkpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbkNhY2hlJCA9IG51bGw7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICB0aGlzLmxvZ291dCh0cnVlKTtcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgfSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLnJlZnJlc2hUb2tlbkNhY2hlJDtcbiAgfVxuXG4gIGNoZWNrVG9rZW4oKSB7XG4gICAgaWYgKCF0aGlzLmNoZWNrVG9rZW5DYWNoZSQpIHtcbiAgICAgIHRoaXMuY2hlY2tUb2tlbkNhY2hlJCA9IHRoaXMuaHR0cC5nZXQoVE9LRU5fSU5GT19BUEkpLnBpcGUoXG4gICAgICAgIHRhcCh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGVja1Rva2VuQ2FjaGUkID0gbnVsbDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrVG9rZW5DYWNoZSQgPSBudWxsO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICBwdWJsaXNoUmVmKCksXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jaGVja1Rva2VuQ2FjaGUkO1xuICB9XG5cbiAgZ2V0VG9rZW5QYXlsb2FkPFQ+KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlJC5waXBlKG1hcChzdGF0ZSA9PiBzdGF0ZS5pbmZvIGFzIFQpKTtcbiAgfVxuXG4gIGdldEFjY291bnRJbmZvKCkge1xuICAgIGlmICh0aGlzLnBheWxvYWRTbmFwc2hvdCkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMucGF5bG9hZFNuYXBzaG90KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUobWFwKHN0YXRlID0+IHN0YXRlLmluZm8gfHwge30pKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXV0aENvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDx7IGF1dGhfdXJsOiBzdHJpbmc7IHN0YXRlOiBzdHJpbmc7IGxvZ291dF91cmw6IHN0cmluZyB9PihMT0dJTl9BUEkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiAoe1xuICAgICAgICAgIGF1dGhVcmw6IHJlcy5hdXRoX3VybCxcbiAgICAgICAgICBzdGF0ZTogcmVzLnN0YXRlLFxuICAgICAgICAgIGxvZ291dFVybDogcmVzLmxvZ291dF91cmwgfHwgJycsXG4gICAgICAgIH0pKSxcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldEV4aXN0ZWRUb2tlbihjb25maWc6IEF1dGhvcml6YXRpb25TdGF0ZSkge1xuICAgIHJldHVybiB0aGlzLmdldFRva2VuRnJvbUxvY2FsKGNvbmZpZykucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgcmV0dXJuIG9mKHsgZXhwaXJlQXQ6ICcnLCBpc3N1ZWRBdDogJycgfSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb2tlbkZyb21Mb2NhbChcbiAgICBjb25maWc6IEF1dGhvcml6YXRpb25TdGF0ZSxcbiAgKTogT2JzZXJ2YWJsZTx7IGV4cGlyZUF0Pzogc3RyaW5nOyBpc3N1ZWRBdD86IHN0cmluZyB9PiB7XG4gICAgY29uc3QgeyBxdWVyeVBhcmFtcywgaGFzaFBhcmFtcyB9ID0gdGhpcy5nZXRQYXJhbXMoKTtcblxuICAgIGNvbnN0IGNvZGUgPSBxdWVyeVBhcmFtc1tDT0RFX0tFWV0gfHwgaGFzaFBhcmFtc1tDT0RFX0tFWV07XG4gICAgY29uc3QgaWRUb2tlbiA9IHF1ZXJ5UGFyYW1zW0lEX1RPS0VOXSB8fCBoYXNoUGFyYW1zW0lEX1RPS0VOXTtcblxuICAgIGlmIChjb2RlKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRUb2tlbkJ5Q29kZShjb2RlLCBjb25maWcuc3RhdGUpO1xuICAgIH1cblxuICAgIGlmIChpZFRva2VuKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDb29raWVCeVRva2VuKGlkVG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBvZihudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VG9rZW5CeUNvZGUoY29kZTogc3RyaW5nLCBzdGF0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxUb2tlblJlc3BvbnNlPihDQUxMQkFDS19BUEksIHtcbiAgICAgICAgcGFyYW1zOiB7IGNvZGUsIHN0YXRlIH0sXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwVG9rZW5SZXNwb25zZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29va2llQnlUb2tlbihpZFRva2VuOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PFRva2VuUmVzcG9uc2U+KENBTExCQUNLX0FQSSwge1xuICAgICAgICBwYXJhbXM6IHsgaWRUb2tlbiB9LFxuICAgICAgfSlcbiAgICAgIC5waXBlKG1hcFRva2VuUmVzcG9uc2UoKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFBhcmFtcygpIHtcbiAgICBjb25zdCBpbml0VXJsID0gZ2V0SW5pdFVybCgpO1xuXG4gICAgY29uc3QgaW5pdExvY2F0aW9uID0gbmV3IFVSTChpbml0VXJsKTtcblxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gcGFyc2VQYXJhbXMoXG4gICAgICBpbml0TG9jYXRpb24uc2VhcmNoID8gaW5pdExvY2F0aW9uLnNlYXJjaC5zbGljZSgxKSA6ICcnLFxuICAgICk7XG5cbiAgICBjb25zdCBoYXNoUGFyYW1zID0gcGFyc2VQYXJhbXMoXG4gICAgICBpbml0TG9jYXRpb24uaGFzaCA/IGluaXRMb2NhdGlvbi5oYXNoLnNsaWNlKDEpIDogJycsXG4gICAgKTtcblxuICAgIHJldHVybiB7IHF1ZXJ5UGFyYW1zLCBoYXNoUGFyYW1zIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVwbGFjZVJlZGlyZWN0VXJsKGRleFVybDogc3RyaW5nLCByZWRpcmVjdFVybDogc3RyaW5nKSB7XG4gIGNvbnN0IFtwYXRoLCBxdWVyeVBhcmFtc10gPSBkZXhVcmwuc3BsaXQoJz8nKTtcblxuICBjb25zdCByZXBsYWNlZFF1ZXJ5UGFyYW1zID0gcXVlcnlQYXJhbXNcbiAgICAuc3BsaXQoJyYnKVxuICAgIC5tYXAocGFpciA9PiB7XG4gICAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBwYWlyLnNwbGl0KCc9Jyk7XG4gICAgICByZXR1cm4gUkVESVJFQ1RfVVJJUy5oYXMoa2V5KVxuICAgICAgICA/IGAke2tleX09JHtlbmNvZGVVUklDb21wb25lbnQocmVkaXJlY3RVcmwpfWBcbiAgICAgICAgOiBgJHtrZXl9PSR7dmFsdWV9YDtcbiAgICB9KVxuICAgIC5qb2luKCcmJyk7XG5cbiAgcmV0dXJuIGAke3BhdGh9PyR7cmVwbGFjZWRRdWVyeVBhcmFtc31gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkaXJlY3RTU09FbnRyeShlbnRyeTogc3RyaW5nKSB7XG4gIGNvbnN0IGhhc1F1ZXJ5ID0gZW50cnkuaW5jbHVkZXMoJz8nKTtcblxuICBpZiAoaGFzUXVlcnkpIHtcbiAgICBjb25zdCBbdXJsLCBxdWVyeV0gPSBlbnRyeS5zcGxpdCgnPycpO1xuICAgIHJldHVybiBgJHtFWFRFUk5BTF9SRURJUkVDVF9BUEl9P3JlZGlyZWN0X3VybD0ke3VybH0mJHtxdWVyeX1gO1xuICB9XG5cbiAgcmV0dXJuIGAke0VYVEVSTkFMX1JFRElSRUNUX0FQSX0/cmVkaXJlY3RfdXJsPSR7ZW50cnl9YDtcbn1cblxuZnVuY3Rpb24gcGFyc2VQYXJhbXMocXVlcnk6IHN0cmluZyk6IFN0cmluZ01hcCB7XG4gIGlmICghcXVlcnkpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICByZXR1cm4gcXVlcnkuc3BsaXQoJyYnKS5yZWR1Y2UoKGFjYywgcGFyYW0pID0+IHtcbiAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBwYXJhbS5zcGxpdCgnPScpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjYyxcbiAgICAgIFtrZXldOiB2YWx1ZSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG5cbmZ1bmN0aW9uIG1hcFRva2VuUmVzcG9uc2UoKSB7XG4gIHJldHVybiBwaXBlKFxuICAgIG1hcChcbiAgICAgICh7IHRva2VuX3R5cGUsIHRva2VuX3N0b3JhZ2UsIGV4cGlyZV9hdCwgaXNzdWVkX2F0IH06IFRva2VuUmVzcG9uc2UpID0+ICh7XG4gICAgICAgIHN0b3JhZ2VUeXBlOiB0b2tlbl9zdG9yYWdlLFxuICAgICAgICB0b2tlblR5cGU6IHRva2VuX3R5cGUsXG4gICAgICAgIGV4cGlyZUF0OiBleHBpcmVfYXQsXG4gICAgICAgIGlzc3VlZEF0OiBpc3N1ZWRfYXQsXG4gICAgICB9KSxcbiAgICApLFxuICApO1xufVxuIl19
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL3N0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFDTCxLQUFLLEVBRUwsRUFBRSxFQUNGLFVBQVUsRUFDVixHQUFHLEVBQ0gsV0FBVyxFQUNYLFNBQVMsRUFDVCxHQUFHLEVBQ0gsSUFBSSxFQUNKLE9BQU8sRUFDUCxLQUFLLEVBQ0wsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFFTCwyQkFBMkIsRUFDM0IsVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEVBQ1QscUJBQXFCLEVBQ3JCLElBQUksR0FDTCxNQUFNLG9CQUFvQixDQUFDO0FBRzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIseUJBQXlCLEVBQ3pCLGlCQUFpQixHQUNsQixNQUFNLGlCQUFpQixDQUFDOztBQW1CekIsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO0FBQ2hELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUM7QUFDL0IsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQztBQUV2QyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFFN0IsTUFBTSxTQUFTLEdBQUcsNkJBQTZCLENBQUM7QUFDaEQsTUFBTSxVQUFV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QUFLLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXRDLE9BQU87WUFDTCxHQUFHLEdBQUc7WUFDTixDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUs7U0FDYixDQUFDO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQztBQUVELFNBQVMsZ0JBQWdCO0lBQ3ZCLE9BQU8sSUFBSSxDQUNULEdBQUcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBaUIsRUFBRSxFQUFFO1FBQzNDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FDRCxDQUFDLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLFdBQVcsRUFBRSxhQUFhO1FBQzFCLFNBQVMsRUFBRSxVQUFVO1FBQ3JCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUMsQ0FDSCxDQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgYXV0aG9yaXphdGlvblxuICovXG5cbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEVNUFRZLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgY2F0Y2hFcnJvcixcbiAgbWFwLFxuICBzaGFyZVJlcGxheSxcbiAgc3dpdGNoTWFwLFxuICB0YXAsXG4gIHBpcGUsXG4gIHRpbWVvdXQsXG4gIHRpbWVyLFxuICBmcm9tRXZlbnQsXG4gIG1lcmdlLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgU3RyaW5nTWFwLFxuICBOT1RfTk9USUZZX09OX0VSUk9SX0hFQURFUlMsXG4gIHB1Ymxpc2hSZWYsXG4gIGdldFRvcFdpbmRvdyxcbiAgc2tpcEVycm9yLFxuICBnZXRHbG9iYWxFbnZpcm9ubWVudHMsXG4gIFRSVUUsXG59IGZyb20gJy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBBY2NvdW50SW5mbyB9IGZyb20gJy4uL3BhZ2Utc2NhZmZvbGQvcHVibGljLWFwaSc7XG5cbmltcG9ydCB7IGdldEluaXRVcmwgfSBmcm9tICcuL2FwcC1pbml0LXVybCc7XG5pbXBvcnQgeyBIRUFSVEJFQVRfUE9MTElORyB9IGZyb20gJy4vc2Vzc2lvbi1tYW5hZ2Uuc2VydmljZSc7XG5pbXBvcnQge1xuICBjbGVhblN0b3JhZ2VUb2tlbixcbiAgcmVhZFN0b3JhZ2VBbGl2ZVJlY29yZCxcbiAgcmVhZFN0b3JhZ2VUb2tlbixcbiAgcmVmcmVzaFN0b3JhZ2VBbGl2ZVJlY29yZCxcbiAgd3JpdGVTdG9yYWdlVG9rZW4sXG59IGZyb20gJy4vc3RvcmFnZS10b2tlbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXphdGlvblN0YXRlIHtcbiAgZXhwaXJlQXQ/OiBzdHJpbmc7XG4gIGlzc3VlZEF0Pzogc3RyaW5nO1xuICBzdGF0ZT86IHN0cmluZztcbiAgYXV0aFVybD86IHN0cmluZztcbiAgbG9nb3V0VXJsPzogc3RyaW5nO1xuICBpbmZvPzogQWNjb3VudEluZm87XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5SZXNwb25zZSB7XG4gIHRva2VuX3N0b3JhZ2U6IHN0cmluZztcbiAgdG9rZW5fdHlwZTogc3RyaW5nO1xuICBleHBpcmVfYXQ6IHN0cmluZztcbiAgaXNzdWVkX2F0OiBzdHJpbmc7XG4gIGlkX3Rva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgU1RPUkFHRV9UWVBFX0tFWSA9ICd0b2tlbl9zdG9yYWdlJztcbmV4cG9ydCBjb25zdCBDT0RFX0tFWSA9ICdjb2RlJztcbmV4cG9ydCBjb25zdCBJRF9UT0tFTl9LRVkgPSAnaWRfdG9rZW4nO1xuXG5jb25zdCBMT0FESU5HX0NBQ0hFID0gMTVfMDAwO1xuXG5jb25zdCBMT0dJTl9BUEkgPSAnL2NvbnNvbGUvYXBpL3YyL3Rva2VuL2xvZ2luJztcbmNvbnN0IExPR09VVF9BUEkgPSAnL2NvbnNvbGUvYXBpL3YyL3Rva2VuL2xvZ291dCc7XG5jb25zdCBDQUxMQkFDS19BUEkgPSAnL2NvbnNvbGUvYXBpL3YyL3Rva2VuL2NhbGxiYWNrJztcbmNvbnN0IFRPS0VOX1JFRlJFU0hfQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9yZWZyZXNoJztcbmNvbnN0IFRPS0VOX0lORk9fQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9pbmZvJztcbmNvbnN0IEVYVEVSTkFMX1JFRElSRUNUX0FQSSA9ICcvY29uc29sZS9hcGkvdjIvdG9rZW4vcmVkaXJlY3QnO1xuXG5jb25zdCBSRURJUkVDVF9VUklTID0gbmV3IFNldChbJ3JlZGlyZWN0X3VyaScsICdwb3N0X2xvZ291dF9yZWRpcmVjdF91cmknXSk7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXV0aG9yaXphdGlvblN0YXRlU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlJCA9IHRoaXMuZ2V0QXV0aENvbmZpZ3VyYXRpb24oKS5waXBlKFxuICAgIHN3aXRjaE1hcChjb25maWcgPT5cbiAgICAgIHRoaXMuZ2V0RXhpc3RlZFRva2VuKGNvbmZpZykucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHRva2VuID0+XG4gICAgICAgICAgdGhpcy5odHRwLmdldDxBY2NvdW50SW5mbz4oVE9LRU5fSU5GT19BUEksIHt9KS5waXBlKFxuICAgICAgICAgICAgc2tpcEVycm9yKG51bGwpLFxuICAgICAgICAgICAgbWFwKGluZm8gPT4gKHtcbiAgICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgICAuLi50b2tlbixcbiAgICAgICAgICAgICAgaW5mbyxcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApLFxuICAgIHRhcChzdGF0ZSA9PiB7XG4gICAgICBpZiAoIXN0YXRlLmluZm8pIHtcbiAgICAgICAgdGhpcy5sb2dvdXQodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RhdGVTbmFwc2hvdCA9IHN0YXRlO1xuICAgICAgdGhpcy5wYXlsb2FkU25hcHNob3QgPSBzdGF0ZS5pbmZvO1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICApO1xuXG4gIHByaXZhdGUgY2hlY2tUb2tlbkNhY2hlJDogT2JzZXJ2YWJsZTx1bmtub3duPiA9IG51bGw7XG4gIHByaXZhdGUgcmVmcmVzaFRva2VuQ2FjaGUkOiBPYnNlcnZhYmxlPFRva2VuUmVzcG9uc2U+O1xuICBzdGF0ZVNuYXBzaG90OiBBdXRob3JpemF0aW9uU3RhdGUgPSBudWxsO1xuXG4gIHBheWxvYWRTbmFwc2hvdDogQWNjb3VudEluZm87XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKGdldEdsb2JhbEVudmlyb25tZW50cygnQ0xPU0VfQlJPV1NFUl9FTkRfU0VTU0lPTicpID09PSBUUlVFKSB7XG4gICAgICB0aGlzLnN0YXRlJFxuICAgICAgICAucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoc3RhdGUgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWxpdmVSZWNvcmQgPSByZWFkU3RvcmFnZUFsaXZlUmVjb3JkKCk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICFhbGl2ZVJlY29yZCB8fFxuICAgICAgICAgICAgICBEYXRlLm5vdygpIC0gYWxpdmVSZWNvcmQgPiBIRUFSVEJFQVRfUE9MTElORyArIExPQURJTkdfQ0FDSEVcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aGlzLmxvZ291dCgpO1xuICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb2Yoc3RhdGUpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2UoXG4gICAgICAgICAgICAgIHRpbWVyKDAsIEhFQVJUQkVBVF9QT0xMSU5HKSxcbiAgICAgICAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ2JlZm9yZXVubG9hZCcpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHJlZnJlc2hTdG9yYWdlQWxpdmVSZWNvcmQpO1xuICAgIH1cbiAgfVxuXG4gIGxvZ291dChzcGVjaWZpY1VybCA9IGZhbHNlKSB7XG4gICAgdGhpcy5odHRwXG4gICAgICAuZ2V0KExPR09VVF9BUEksIHtcbiAgICAgICAgaGVhZGVyczogTk9UX05PVElGWV9PTl9FUlJPUl9IRUFERVJTLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHRpbWVvdXQoMTAwMCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY2xlYW5TdG9yYWdlVG9rZW4oKTtcbiAgICAgICAgdGhpcy5yZWRpcmVjdFRvRGV4KHNwZWNpZmljVXJsICYmIGxvY2F0aW9uLmhyZWYpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlZGlyZWN0VG9EZXgocmVkaXJlY3RVcmw6IHN0cmluZyA9IG51bGwpIHtcbiAgICBpZiAoIXRoaXMuc3RhdGVTbmFwc2hvdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGhyZWYgPSByZXBsYWNlUmVkaXJlY3RVcmwoXG4gICAgICB0aGlzLnN0YXRlU25hcHNob3QuYXV0aFVybCxcbiAgICAgIC8vIGF1dGhVcmwg5Lit55qEIHJlZGlyZWN0VXJsIOaYr+aguei3r+eUse+8jOaguei3r+eUseS6jOasoemHjeWumuWQkeWbniBwb3J0YWwg5pe25Lya5Lii5aSxIGNvZGUg5a+86Ie055m75b2V5aSx6LSlXG4gICAgICAvLyDlpoLmnpzlkI7mnJ/mnInlrprliLbljJbopoHmsYLpu5jorqTpppbpobXkuI3mmK8gcG9ydGFs77yM5Y+v5Lul5pS55Zue5LmL5YmN55qE5pa55qGI77yM5L2/55So5rWP6KeI5Zmo5a+86Iiq5omT5byAIGxvZ291dFVybO+8jOeEtuWQjiBkZXgg6YeN5a6a5ZCR5Yiw5qC56Lev55Sx77yM5qC56Lev55Sx6YeN5a6a5ZCR5Yiw6buY6K6k6aaW6aG177yM6aaW6aG15YaN5bCGIGF1dGhVcmwg5Lit55qEIHJlZGlyZWN0VXJsIOabv+aNouS4uuW9k+WJjSB1cmwg6Lez6L2s5YiwIGRleCDov5vooYznmbvlvZXvvJtcbiAgICAgIC8vIOacgOWlveeOr+Wig+WPmOmHj+WinuWKoOm7mOiupOmmlumhteWcsOWdgOaIluiAhSBkZXggcmVkaXJlY3RVcmwg55u05o6l5piv5q2j56Gu5Zyw5Z2AXG4gICAgICByZWRpcmVjdFVybCB8fCBsb2NhdGlvbi5vcmlnaW4gKyAnL2NvbnNvbGUtcG9ydGFsJyxcbiAgICApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGdldFRvcFdpbmRvdygpLmxvY2F0aW9uLmhyZWYgPSBocmVmO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gc2hvdWxkIG5ldmVyIGhhcHBlbiwganVzdCBmb3Igcm9idXN0bmVzcyBpbiBjYXNlIG9mIGNyb3NzLW9yaWdpbiBpZnJhbWVcbiAgICAgIGxvY2F0aW9uLmhyZWYgPSBocmVmO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2hUb2tlbigpIHtcbiAgICBpZiAodGhpcy5yZWZyZXNoVG9rZW5DYWNoZSQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlZnJlc2hUb2tlbkNhY2hlJDtcbiAgICB9XG5cbiAgICB0aGlzLnJlZnJlc2hUb2tlbkNhY2hlJCA9IHRoaXMuaHR0cFxuICAgICAgLmdldDxUb2tlblJlc3BvbnNlPihUT0tFTl9SRUZSRVNIX0FQSSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuQ2FjaGUkID0gbnVsbDtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9nb3V0KHRydWUpO1xuICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgfSksXG4gICAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoVG9rZW5DYWNoZSQ7XG4gIH1cblxuICBjaGVja1Rva2VuKCkge1xuICAgIGlmICghdGhpcy5jaGVja1Rva2VuQ2FjaGUkKSB7XG4gICAgICB0aGlzLmNoZWNrVG9rZW5DYWNoZSQgPSB0aGlzLmh0dHAuZ2V0KFRPS0VOX0lORk9fQVBJKS5waXBlKFxuICAgICAgICB0YXAoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tUb2tlbkNhY2hlJCA9IG51bGw7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGVja1Rva2VuQ2FjaGUkID0gbnVsbDtcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgcHVibGlzaFJlZigpLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2hlY2tUb2tlbkNhY2hlJDtcbiAgfVxuXG4gIGdldFRva2VuUGF5bG9hZDxUPigpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSQucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUuaW5mbyBhcyBUKSk7XG4gIH1cblxuICBnZXRBY2NvdW50SW5mbygpIHtcbiAgICBpZiAodGhpcy5wYXlsb2FkU25hcHNob3QpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLnBheWxvYWRTbmFwc2hvdCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN0YXRlJC5waXBlKG1hcChzdGF0ZSA9PiBzdGF0ZS5pbmZvIHx8IHt9KSk7XG4gIH1cblxuICBnZXRUb2tlbkJ5U3RvcmFnZSgpIHtcbiAgICByZXR1cm4gcmVhZFN0b3JhZ2VUb2tlbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBdXRoQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PHsgYXV0aF91cmw6IHN0cmluZzsgc3RhdGU6IHN0cmluZzsgbG9nb3V0X3VybDogc3RyaW5nIH0+KExPR0lOX0FQSSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzID0+ICh7XG4gICAgICAgICAgYXV0aFVybDogcmVzLmF1dGhfdXJsLFxuICAgICAgICAgIHN0YXRlOiByZXMuc3RhdGUsXG4gICAgICAgICAgbG9nb3V0VXJsOiByZXMubG9nb3V0X3VybCB8fCAnJyxcbiAgICAgICAgfSkpLFxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXhpc3RlZFRva2VuKGNvbmZpZzogQXV0aG9yaXphdGlvblN0YXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VG9rZW5Gcm9tTG9jYWwoY29uZmlnKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICByZXR1cm4gb2Yoe30gYXMgQXV0aG9yaXphdGlvblN0YXRlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFRva2VuRnJvbUxvY2FsKFxuICAgIGNvbmZpZzogQXV0aG9yaXphdGlvblN0YXRlLFxuICApOiBPYnNlcnZhYmxlPEF1dGhvcml6YXRpb25TdGF0ZT4ge1xuICAgIGNvbnN0IHsgcXVlcnlQYXJhbXMsIGhhc2hQYXJhbXMgfSA9IHRoaXMuZ2V0UGFyYW1zKCk7XG5cbiAgICBjb25zdCBjb2RlID0gcXVlcnlQYXJhbXNbQ09ERV9LRVldIHx8IGhhc2hQYXJhbXNbQ09ERV9LRVldO1xuICAgIGNvbnN0IGlkVG9rZW4gPSBxdWVyeVBhcmFtc1tJRF9UT0tFTl9LRVldIHx8IGhhc2hQYXJhbXNbSURfVE9LRU5fS0VZXTtcblxuICAgIGlmICghY29kZSAmJiAhaWRUb2tlbikge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cblxuICAgIHJlZnJlc2hTdG9yYWdlQWxpdmVSZWNvcmQoKTtcblxuICAgIHJldHVybiBjb2RlXG4gICAgICA/IHRoaXMuc2V0Q29va2llQnlDb2RlKGNvZGUsIGNvbmZpZy5zdGF0ZSlcbiAgICAgIDogdGhpcy5zZXRDb29raWVCeVRva2VuKGlkVG9rZW4pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb29raWVCeUNvZGUoY29kZTogc3RyaW5nLCBzdGF0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxUb2tlblJlc3BvbnNlPihDQUxMQkFDS19BUEksIHtcbiAgICAgICAgcGFyYW1zOiB7IGNvZGUsIHN0YXRlIH0sXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwVG9rZW5SZXNwb25zZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29va2llQnlUb2tlbihpZFRva2VuOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PFRva2VuUmVzcG9uc2U+KENBTExCQUNLX0FQSSwge1xuICAgICAgICBwYXJhbXM6IHsgaWRfdG9rZW46IGlkVG9rZW4gfSxcbiAgICAgIH0pXG4gICAgICAucGlwZShtYXBUb2tlblJlc3BvbnNlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXJhbXMoKSB7XG4gICAgY29uc3QgaW5pdFVybCA9IGdldEluaXRVcmwoKTtcblxuICAgIGNvbnN0IGluaXRMb2NhdGlvbiA9IG5ldyBVUkwoaW5pdFVybCk7XG5cbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHBhcnNlUGFyYW1zKFxuICAgICAgaW5pdExvY2F0aW9uLnNlYXJjaCA/IGluaXRMb2NhdGlvbi5zZWFyY2guc2xpY2UoMSkgOiAnJyxcbiAgICApO1xuXG4gICAgY29uc3QgaGFzaFBhcmFtcyA9IHBhcnNlUGFyYW1zKFxuICAgICAgaW5pdExvY2F0aW9uLmhhc2ggPyBpbml0TG9jYXRpb24uaGFzaC5zbGljZSgxKSA6ICcnLFxuICAgICk7XG5cbiAgICByZXR1cm4geyBxdWVyeVBhcmFtcywgaGFzaFBhcmFtcyB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlcGxhY2VSZWRpcmVjdFVybChkZXhVcmw6IHN0cmluZywgcmVkaXJlY3RVcmw6IHN0cmluZykge1xuICBjb25zdCBbcGF0aCwgcXVlcnlQYXJhbXNdID0gZGV4VXJsLnNwbGl0KCc/Jyk7XG5cbiAgY29uc3QgcmVwbGFjZWRRdWVyeVBhcmFtcyA9IHF1ZXJ5UGFyYW1zXG4gICAgLnNwbGl0KCcmJylcbiAgICAubWFwKHBhaXIgPT4ge1xuICAgICAgY29uc3QgW2tleSwgdmFsdWVdID0gcGFpci5zcGxpdCgnPScpO1xuICAgICAgcmV0dXJuIFJFRElSRUNUX1VSSVMuaGFzKGtleSlcbiAgICAgICAgPyBgJHtrZXl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHJlZGlyZWN0VXJsKX1gXG4gICAgICAgIDogYCR7a2V5fT0ke3ZhbHVlfWA7XG4gICAgfSlcbiAgICAuam9pbignJicpO1xuXG4gIHJldHVybiBgJHtwYXRofT8ke3JlcGxhY2VkUXVlcnlQYXJhbXN9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZGlyZWN0U1NPRW50cnkoZW50cnk6IHN0cmluZykge1xuICBjb25zdCBoYXNRdWVyeSA9IGVudHJ5LmluY2x1ZGVzKCc/Jyk7XG5cbiAgaWYgKGhhc1F1ZXJ5KSB7XG4gICAgY29uc3QgW3VybCwgcXVlcnldID0gZW50cnkuc3BsaXQoJz8nKTtcbiAgICByZXR1cm4gYCR7RVhURVJOQUxfUkVESVJFQ1RfQVBJfT9yZWRpcmVjdF91cmw9JHt1cmx9JiR7cXVlcnl9YDtcbiAgfVxuXG4gIHJldHVybiBgJHtFWFRFUk5BTF9SRURJUkVDVF9BUEl9P3JlZGlyZWN0X3VybD0ke2VudHJ5fWA7XG59XG5cbmZ1bmN0aW9uIHBhcnNlUGFyYW1zKHF1ZXJ5OiBzdHJpbmcpOiBTdHJpbmdNYXAge1xuICBpZiAoIXF1ZXJ5KSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcmV0dXJuIHF1ZXJ5LnNwbGl0KCcmJykucmVkdWNlKChhY2MsIHBhcmFtKSA9PiB7XG4gICAgY29uc3QgW2tleSwgdmFsdWVdID0gcGFyYW0uc3BsaXQoJz0nKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5hY2MsXG4gICAgICBba2V5XTogdmFsdWUsXG4gICAgfTtcbiAgfSwge30pO1xufVxuXG5mdW5jdGlvbiBtYXBUb2tlblJlc3BvbnNlKCkge1xuICByZXR1cm4gcGlwZShcbiAgICB0YXAoKHsgaWRfdG9rZW46IGlkVG9rZW4gfTogVG9rZW5SZXNwb25zZSkgPT4ge1xuICAgICAgd3JpdGVTdG9yYWdlVG9rZW4oaWRUb2tlbik7XG4gICAgfSksXG4gICAgbWFwKFxuICAgICAgKHsgdG9rZW5fdHlwZSwgdG9rZW5fc3RvcmFnZSwgZXhwaXJlX2F0LCBpc3N1ZWRfYXQgfTogVG9rZW5SZXNwb25zZSkgPT4gKHtcbiAgICAgICAgc3RvcmFnZVR5cGU6IHRva2VuX3N0b3JhZ2UsXG4gICAgICAgIHRva2VuVHlwZTogdG9rZW5fdHlwZSxcbiAgICAgICAgZXhwaXJlQXQ6IGV4cGlyZV9hdCxcbiAgICAgICAgaXNzdWVkQXQ6IGlzc3VlZF9hdCxcbiAgICAgIH0pLFxuICAgICksXG4gICk7XG59XG4iXX0=
|
|
@@ -1,98 +1,22 @@
|
|
|
1
|
-
import { ID_TOKEN_KEY
|
|
2
|
-
|
|
3
|
-
const SESSION_TOKEN_SHARE_CHANNEL = 'SESSION_TOKEN_SHARE_CHANNEL';
|
|
4
|
-
const SESSION_CLOSE_TIMESTAMP = 'session_close_timestamp';
|
|
5
|
-
const recordSessionTimestamp = () => {
|
|
6
|
-
sessionStorage.setItem(SESSION_CLOSE_TIMESTAMP, Date.now().toString());
|
|
7
|
-
};
|
|
8
|
-
const getStorage = (storageType) => storageType === 'session' ? sessionStorage : localStorage;
|
|
9
|
-
export function readStorageType() {
|
|
10
|
-
return (localStorage.getItem(STORAGE_TYPE_KEY) === 'session' ? 'session' : 'local');
|
|
11
|
-
}
|
|
1
|
+
import { ID_TOKEN_KEY } from './state.service';
|
|
2
|
+
const APP_ALIVE_RECORD = 'app_alive_record';
|
|
12
3
|
export function cleanStorageToken() {
|
|
13
4
|
localStorage.removeItem(ID_TOKEN_KEY);
|
|
14
|
-
localStorage.removeItem(REFRESH_TOKEN_KEY);
|
|
15
|
-
sessionStorage.removeItem(ID_TOKEN_KEY);
|
|
16
|
-
sessionStorage.removeItem(REFRESH_TOKEN_KEY);
|
|
17
5
|
}
|
|
18
6
|
export function writeStorageToken(token) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const storage = getStorage(token.storageType);
|
|
22
|
-
storage.setItem(ID_TOKEN_KEY, token.idToken);
|
|
23
|
-
storage.setItem(REFRESH_TOKEN_KEY, token.refreshToken);
|
|
24
|
-
localStorage.setItem(STORAGE_TYPE_KEY, token.storageType);
|
|
25
|
-
if (token.storageType === 'session') {
|
|
26
|
-
setupSessionTokenShareChannel();
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
closeSessionTokenShareChannel();
|
|
7
|
+
if (!token) {
|
|
8
|
+
return;
|
|
30
9
|
}
|
|
10
|
+
cleanStorageToken();
|
|
11
|
+
localStorage.setItem(ID_TOKEN_KEY, token);
|
|
31
12
|
}
|
|
32
13
|
export function readStorageToken() {
|
|
33
|
-
|
|
34
|
-
if (storageType === 'session') {
|
|
35
|
-
const sessionTimestamp = sessionStorage.getItem(SESSION_CLOSE_TIMESTAMP);
|
|
36
|
-
sessionStorage.removeItem(SESSION_CLOSE_TIMESTAMP);
|
|
37
|
-
if (sessionTimestamp &&
|
|
38
|
-
Date.now() - parseInt(sessionTimestamp) > 30 * 1000) {
|
|
39
|
-
// 浏览器恢复标签时清除 session token
|
|
40
|
-
cleanStorageToken();
|
|
41
|
-
console.warn('session timeout');
|
|
42
|
-
}
|
|
43
|
-
setupSessionTokenShareChannel();
|
|
44
|
-
}
|
|
45
|
-
const storage = getStorage(storageType);
|
|
46
|
-
return {
|
|
47
|
-
storageType,
|
|
48
|
-
idToken: storage.getItem(ID_TOKEN_KEY),
|
|
49
|
-
refreshToken: storage.getItem(REFRESH_TOKEN_KEY),
|
|
50
|
-
};
|
|
14
|
+
return localStorage.getItem(ID_TOKEN_KEY);
|
|
51
15
|
}
|
|
52
|
-
export function
|
|
53
|
-
|
|
54
|
-
if (storageToken.storageType === 'session' && !storageToken.idToken) {
|
|
55
|
-
return new Promise(resolve => {
|
|
56
|
-
const timer = window.setTimeout(() => {
|
|
57
|
-
console.warn('request session token timeout');
|
|
58
|
-
sessionTokenShareChannel.removeEventListener('message', receiveSessionToken);
|
|
59
|
-
resolve({});
|
|
60
|
-
}, 50);
|
|
61
|
-
function receiveSessionToken({ data, }) {
|
|
62
|
-
if (data.type === 'provide') {
|
|
63
|
-
window.clearTimeout(timer);
|
|
64
|
-
sessionTokenShareChannel.removeEventListener('message', receiveSessionToken);
|
|
65
|
-
writeStorageToken(data.token);
|
|
66
|
-
resolve(data.token);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
sessionTokenShareChannel.addEventListener('message', receiveSessionToken);
|
|
70
|
-
sessionTokenShareChannel.postMessage({ type: 'request' });
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
return Promise.resolve(storageToken);
|
|
74
|
-
}
|
|
75
|
-
function setupSessionTokenShareChannel() {
|
|
76
|
-
if (sessionTokenShareChannel) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
sessionTokenShareChannel = new BroadcastChannel(SESSION_TOKEN_SHARE_CHANNEL);
|
|
80
|
-
sessionTokenShareChannel.addEventListener('message', ({ data }) => {
|
|
81
|
-
if (data.type === 'request') {
|
|
82
|
-
sessionTokenShareChannel.postMessage({
|
|
83
|
-
type: 'provide',
|
|
84
|
-
token: readStorageToken(),
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
window.addEventListener('beforeunload', recordSessionTimestamp);
|
|
16
|
+
export function refreshStorageAliveRecord() {
|
|
17
|
+
localStorage.setItem(APP_ALIVE_RECORD, Date.now().toString());
|
|
89
18
|
}
|
|
90
|
-
function
|
|
91
|
-
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
sessionTokenShareChannel.close();
|
|
95
|
-
sessionTokenShareChannel = null;
|
|
96
|
-
window.removeEventListener('beforeunload', recordSessionTimestamp);
|
|
19
|
+
export function readStorageAliveRecord() {
|
|
20
|
+
return parseInt(localStorage.getItem(APP_ALIVE_RECORD));
|
|
97
21
|
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL3N0b3JhZ2UtdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixpQkFBaUIsRUFDakIsZ0JBQWdCLEdBRWpCLE1BQU0saUJBQWlCLENBQUM7QUFFekIsSUFBSSx3QkFBMEMsQ0FBQztBQUUvQyxNQUFNLDJCQUEyQixHQUFHLDZCQUE2QixDQUFDO0FBRWxFLE1BQU0sdUJBQXVCLEdBQUcseUJBQXlCLENBQUM7QUFFMUQsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLEVBQUU7SUFDbEMsY0FBYyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUN6RSxDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLFdBQXdCLEVBQVcsRUFBRSxDQUN2RCxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztBQWU1RCxNQUFNLFVBQVUsZUFBZTtJQUM3QixPQUFPLENBQ0wsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQzVELENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsWUFBWSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0QyxZQUFZLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFM0MsY0FBYyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QyxjQUFjLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVE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LENBQUMsQ0FBQztZQUUxRSx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVELFNBQVMsNkJBQTZCO0lBQ3BDLElBQUksd0JBQXdCLEVBQUUsQ0FBQztRQUM3QixPQUFPO0lBQ1QsQ0FBQztJQUVELHdCQUF3QixHQUFHLElBQUksZ0JBQWdCLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUU3RSx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FDdkMsU0FBUyxFQUNULENBQUMsRUFBRSxJQUFJLEVBQXVDLEVBQUUsRUFBRTtRQUNoRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUIsd0JBQXdCLENBQUMsV0FBVyxDQUFDO2dCQUNuQyxJQUFJLEVBQUUsU0FBUztnQkFDZixLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7YUFDRCxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUMsQ0FDRixDQUFDO0lBRUYsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFFRCxTQUFTLDZCQUE2QjtJQUNwQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUM5QixPQUFPO0lBQ1QsQ0FBQztJQUVELHdCQUF3QixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pDLHdCQUF3QixHQUFHLElBQUksQ0FBQztJQUVoQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsY0FBYyxFQUFFLHNCQUFzQixDQUFDLENBQUM7QUFDckUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElEX1RPS0VOX0tFWSxcbiAgUkVGUkVTSF9UT0tFTl9LRVksXG4gIFNUT1JBR0VfVFlQRV9LRVksXG4gIFN0b3JhZ2VUeXBlLFxufSBmcm9tICcuL3N0YXRlLnNlcnZpY2UnO1xuXG5sZXQgc2Vzc2lvblRva2VuU2hhcmVDaGFubmVsOiBCcm9hZGNhc3RDaGFubmVsO1xuXG5jb25zdCBTRVNTSU9OX1RPS0VOX1NIQVJFX0NIQU5ORUwgPSAnU0VTU0lPTl9UT0tFTl9TSEFSRV9DSEFOTkVMJztcblxuY29uc3QgU0VTU0lPTl9DTE9TRV9USU1FU1RBTVAgPSAnc2Vzc2lvbl9jbG9zZV90aW1lc3RhbXAnO1xuXG5jb25zdCByZWNvcmRTZXNzaW9uVGltZXN0YW1wID0gKCkgPT4ge1xuICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFNFU1NJT05fQ0xPU0VfVElNRVNUQU1QLCBEYXRlLm5vdygpLnRvU3RyaW5nKCkpO1xufTtcblxuY29uc3QgZ2V0U3RvcmFnZSA9IChzdG9yYWdlVHlwZTogU3RvcmFnZVR5cGUpOiBTdG9yYWdlID0+XG4gIHN0b3JhZ2VUeXBlID09PSAnc2Vzc2lvbicgPyBzZXNzaW9uU3RvcmFnZSA6IGxvY2FsU3RvcmFnZTtcblxudHlwZSBTZXNzaW9uVG9rZW5TaGFyZURhdGEgPVxuICB8IHtcbiAgICAgIHR5cGU6ICdwcm92aWRlJztcbiAgICAgIHRva2VuOiBTdG9yYWdlVG9rZW47XG4gICAgfVxuICB8IHsgdHlwZTogJ3JlcXVlc3QnIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZVRva2VuIHtcbiAgc3RvcmFnZVR5cGU6IFN0b3JhZ2VUeXBlO1xuICBpZFRva2VuOiBzdHJpbmc7XG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFN0b3JhZ2VUeXBlKCkge1xuICByZXR1cm4gKFxuICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfVFlQRV9LRVkpID09PSAnc2Vzc2lvbicgPyAnc2Vzc2lvbicgOiAnbG9jYWwnXG4gICkgYXMgU3RvcmFnZVR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhblN0b3JhZ2VUb2tlbigpIHtcbiAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oSURfVE9LRU5fS0VZKTtcbiAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oUkVGUkVTSF9UT0tFTl9LRVkpO1xuXG4gIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oSURfVE9LRU5fS0VZKTtcbiAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShSRUZSRVNIX1RPS0VOX0tFWSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZVN0b3JhZ2VUb2tlbih0b2tlbjogU3RvcmFnZVRva2VuKSB7XG4gIGNsZWFuU3RvcmFnZVRva2VuKCk7XG4gIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oU0VTU0lPTl9DTE9TRV9USU1FU1RBTVApO1xuXG4gIGNvbnN0IHN0b3JhZ2UgPSBnZXRTdG9yYWdlKHRva2VuLnN0b3JhZ2VUeXBlKTtcblxuICBzdG9yYWdlLnNldEl0ZW0oSURfVE9LRU5fS0VZLCB0b2tlbi5pZFRva2VuKTtcbiAgc3RvcmFnZS5zZXRJdGVtKFJFRlJFU0hfVE9LRU5fS0VZLCB0b2tlbi5yZWZyZXNoVG9rZW4pO1xuICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTVE9SQUdFX1RZUEVfS0VZLCB0b2tlbi5zdG9yYWdlVHlwZSk7XG5cbiAgaWYgKHRva2VuLnN0b3JhZ2VUeXBlID09PSAnc2Vzc2lvbicpIHtcbiAgICBzZXR1cFNlc3Npb25Ub2tlblNoYXJlQ2hhbm5lbCgpO1xuICB9IGVsc2Uge1xuICAgIGNsb3NlU2Vzc2lvblRva2VuU2hhcmVDaGFubmVsKCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRTdG9yYWdlVG9rZW4oKTogUGFydGlhbDxTdG9yYWdlVG9rZW4+IHtcbiAgY29uc3Qgc3RvcmFnZVR5cGUgPSByZWFkU3RvcmFnZVR5cGUoKTtcblxuICBpZiAoc3RvcmFnZVR5cGUgPT09ICdzZXNzaW9uJykge1xuICAgIGNvbnN0IHNlc3Npb25UaW1lc3RhbXAgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFNFU1NJT05fQ0xPU0VfVElNRVNUQU1QKTtcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFNFU1NJT05fQ0xPU0VfVElNRVNUQU1QKTtcblxuICAgIGlmIChcbiAgICAgIHNlc3Npb25UaW1lc3RhbXAgJiZcbiAgICAgIERhdGUubm93KCkgLSBwYXJzZUludChzZXNzaW9uVGltZXN0YW1wKSA+IDMwICogMTAwMFxuICAgICkge1xuICAgICAgLy8g5rWP6KeI5Zmo5oGi5aSN5qCH562+5pe25riF6ZmkIHNlc3Npb24gdG9rZW5cbiAgICAgIGNsZWFuU3RvcmFnZVRva2VuKCk7XG4gICAgICBjb25zb2xlLndhcm4oJ3Nlc3Npb24gdGltZW91dCcpO1xuICAgIH1cblxuICAgIHNldHVwU2Vzc2lvblRva2VuU2hhcmVDaGFubmVsKCk7XG4gIH1cblxuICBjb25zdCBzdG9yYWdlID0gZ2V0U3RvcmFnZShzdG9yYWdlVHlwZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBzdG9yYWdlVHlwZSxcbiAgICBpZFRva2VuOiBzdG9yYWdlLmdldEl0ZW0oSURfVE9LRU5fS0VZKSxcbiAgICByZWZyZXNoVG9rZW46IHN0b3JhZ2UuZ2V0SXRlbShSRUZSRVNIX1RPS0VOX0tFWSksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY1JlYWRTdG9yYWdlVG9rZW4oKTogUHJvbWlzZTxQYXJ0aWFsPFN0b3JhZ2VUb2tlbj4+IHtcbiAgY29uc3Qgc3RvcmFnZVRva2VuID0gcmVhZFN0b3JhZ2VUb2tlbigpO1xuXG4gIGlmIChzdG9yYWdlVG9rZW4uc3RvcmFnZVR5cGUgPT09ICdzZXNzaW9uJyAmJiAhc3RvcmFnZVRva2VuLmlkVG9rZW4pIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICBjb25zdCB0aW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdyZXF1ZXN0IHNlc3Npb24gdG9rZW4gdGltZW91dCcpO1xuXG4gICAgICAgIHNlc3Npb25Ub2tlblNoYXJlQ2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgICAgICdtZXNzYWdlJyxcbiAgICAgICAgICByZWNlaXZlU2Vzc2lvblRva2VuLFxuICAgICAgICApO1xuICAgICAgICByZXNvbHZlKHt9KTtcbiAgICAgIH0sIDUwKTtcblxuICAgICAgZnVuY3Rpb24gcmVjZWl2ZVNlc3Npb25Ub2tlbih7XG4gICAgICAgIGRhdGEsXG4gICAgICB9OiBNZXNzYWdlRXZlbnQ8U2Vzc2lvblRva2VuU2hhcmVEYXRhPikge1xuICAgICAgICBpZiAoZGF0YS50eXBlID09PSAncHJvdmlkZScpIHtcbiAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgICBzZXNzaW9uVG9rZW5TaGFyZUNoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAgICdtZXNzYWdlJyxcbiAgICAgICAgICAgIHJlY2VpdmVTZXNzaW9uVG9rZW4sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHdyaXRlU3RvcmFnZVRva2VuKGRhdGEudG9rZW4pO1xuICAgICAgICAgIHJlc29sdmUoZGF0YS50b2tlbik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc2Vzc2lvblRva2VuU2hhcmVDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZWNlaXZlU2Vzc2lvblRva2VuKTtcblxuICAgICAgc2Vzc2lvblRva2VuU2hhcmVDaGFubmVsLnBvc3RNZXNzYWdlKHsgdHlwZTogJ3JlcXVlc3QnIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzdG9yYWdlVG9rZW4pO1xufVxuXG5mdW5jdGlvbiBzZXR1cFNlc3Npb25Ub2tlblNoYXJlQ2hhbm5lbCgpIHtcbiAgaWYgKHNlc3Npb25Ub2tlblNoYXJlQ2hhbm5lbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHNlc3Npb25Ub2tlblNoYXJlQ2hhbm5lbCA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKFNFU1NJT05fVE9LRU5fU0hBUkVfQ0hBTk5FTCk7XG5cbiAgc2Vzc2lvblRva2VuU2hhcmVDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgJ21lc3NhZ2UnLFxuICAgICh7IGRhdGEgfTogTWVzc2FnZUV2ZW50PFNlc3Npb25Ub2tlblNoYXJlRGF0YT4pID0+IHtcbiAgICAgIGlmIChkYXRhLnR5cGUgPT09ICdyZXF1ZXN0Jykge1xuICAgICAgICBzZXNzaW9uVG9rZW5TaGFyZUNoYW5uZWwucG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgIHR5cGU6ICdwcm92aWRlJyxcbiAgICAgICAgICB0b2tlbjogcmVhZFN0b3JhZ2VUb2tlbigpLFxuICAgICAgICB9IGFzIFNlc3Npb25Ub2tlblNoYXJlRGF0YSk7XG4gICAgICB9XG4gICAgfSxcbiAgKTtcblxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgcmVjb3JkU2Vzc2lvblRpbWVzdGFtcCk7XG59XG5cbmZ1bmN0aW9uIGNsb3NlU2Vzc2lvblRva2VuU2hhcmVDaGFubmVsKCkge1xuICBpZiAoIXNlc3Npb25Ub2tlblNoYXJlQ2hhbm5lbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHNlc3Npb25Ub2tlblNoYXJlQ2hhbm5lbC5jbG9zZSgpO1xuICBzZXNzaW9uVG9rZW5TaGFyZUNoYW5uZWwgPSBudWxsO1xuXG4gIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCByZWNvcmRTZXNzaW9uVGltZXN0YW1wKTtcbn1cbiJdfQ==
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL3N0b3JhZ2UtdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUM7QUFFNUMsTUFBTSxVQUFVLGlCQUFpQjtJQUMvQixZQUFZLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBYTtJQUM3QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPO0lBQ1QsQ0FBQztJQUNELGlCQUFpQixFQUFFLENBQUM7SUFFcEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0I7SUFDOUIsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCO0lBQ3ZDLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0I7SUFDcEMsT0FBTyxRQUFRLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEX1RPS0VOX0tFWSB9IGZyb20gJy4vc3RhdGUuc2VydmljZSc7XG5cbmNvbnN0IEFQUF9BTElWRV9SRUNPUkQgPSAnYXBwX2FsaXZlX3JlY29yZCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhblN0b3JhZ2VUb2tlbigpIHtcbiAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oSURfVE9LRU5fS0VZKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlU3RvcmFnZVRva2VuKHRva2VuOiBzdHJpbmcpIHtcbiAgaWYgKCF0b2tlbikge1xuICAgIHJldHVybjtcbiAgfVxuICBjbGVhblN0b3JhZ2VUb2tlbigpO1xuXG4gIGxvY2FsU3RvcmFnZS5zZXRJdGVtKElEX1RPS0VOX0tFWSwgdG9rZW4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFN0b3JhZ2VUb2tlbigpOiBzdHJpbmcge1xuICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oSURfVE9LRU5fS0VZKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZnJlc2hTdG9yYWdlQWxpdmVSZWNvcmQoKSB7XG4gIGxvY2FsU3RvcmFnZS5zZXRJdGVtKEFQUF9BTElWRV9SRUNPUkQsIERhdGUubm93KCkudG9TdHJpbmcoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkU3RvcmFnZUFsaXZlUmVjb3JkKCk6IG51bWJlciB7XG4gIHJldHVybiBwYXJzZUludChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShBUFBfQUxJVkVfUkVDT1JEKSk7XG59XG4iXX0=
|
|
@@ -30,6 +30,7 @@ export class FeatureGateDirective {
|
|
|
30
30
|
this.crd = crd;
|
|
31
31
|
this.featureName = null;
|
|
32
32
|
this.cluster = null;
|
|
33
|
+
this.negate = false;
|
|
33
34
|
this.thenTemplateRef = null;
|
|
34
35
|
this.elseTemplateRef = null;
|
|
35
36
|
this.subscription = null;
|
|
@@ -40,8 +41,7 @@ export class FeatureGateDirective {
|
|
|
40
41
|
this.container.createEmbeddedView(this.thenTemplateRef);
|
|
41
42
|
return;
|
|
42
43
|
}
|
|
43
|
-
this.subscription = this.featureGate
|
|
44
|
-
.isEnabled(this.featureName, this.cluster)
|
|
44
|
+
this.subscription = this.featureGate[this.negate ? 'isNegateEnabled' : 'isEnabled'](this.featureName, this.cluster)
|
|
45
45
|
.pipe(distinctUntilChanged())
|
|
46
46
|
.subscribe(enabled => {
|
|
47
47
|
this.container.clear();
|
|
@@ -60,7 +60,7 @@ export class FeatureGateDirective {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
static { this.ɵfac = function FeatureGateDirective_Factory(t) { return new (t || FeatureGateDirective)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i1.FeatureGateService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.TemplateRef)); }; }
|
|
63
|
-
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: FeatureGateDirective, selectors: [["", "aclFeatureGate", ""]], inputs: { featureName: [0, "aclFeatureGate", "featureName"], cluster: [0, "aclFeatureGateCluster", "cluster"], then: [0, "aclFeatureGateThen", "then"], else: [0, "aclFeatureGateElse", "else"] }, standalone: true }); }
|
|
63
|
+
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: FeatureGateDirective, selectors: [["", "aclFeatureGate", ""]], inputs: { featureName: [0, "aclFeatureGate", "featureName"], cluster: [0, "aclFeatureGateCluster", "cluster"], negate: [0, "aclFeatureGateNegate", "negate"], then: [0, "aclFeatureGateThen", "then"], else: [0, "aclFeatureGateElse", "else"] }, standalone: true }); }
|
|
64
64
|
}
|
|
65
65
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureGateDirective, [{
|
|
66
66
|
type: Directive,
|
|
@@ -71,6 +71,9 @@ export class FeatureGateDirective {
|
|
|
71
71
|
}], cluster: [{
|
|
72
72
|
type: Input,
|
|
73
73
|
args: ['aclFeatureGateCluster']
|
|
74
|
+
}], negate: [{
|
|
75
|
+
type: Input,
|
|
76
|
+
args: ['aclFeatureGateNegate']
|
|
74
77
|
}], then: [{
|
|
75
78
|
type: Input,
|
|
76
79
|
args: ['aclFeatureGateThen']
|
|
@@ -84,4 +87,4 @@ function assertTemplate(property, templateRef) {
|
|
|
84
87
|
throw new Error(`${property} must be a TemplateRef, but received '${stringify(templateRef)}'.`);
|
|
85
88
|
}
|
|
86
89
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1nYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL2RpcmVjdGl2ZXMvZmVhdHVyZS1nYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEVBR0wsV0FBVyxFQUNYLGdCQUFnQjtBQUNoQiw0QkFBNEI7QUFDNUIsVUFBVSxJQUFJLFNBQVMsR0FDeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnQixvQkFBb0IsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBRXRFOzs7OztHQUtHO0FBRUgsTUFBTSxPQUFPLG9CQUFvQjtJQVUvQixJQUNJLElBQUksQ0FBQyxXQUE4QjtRQUNyQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUM7SUFDckMsQ0FBQztJQUVELElBQ0ksSUFBSSxDQUFDLFdBQThCO1FBQ3JDLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQztJQUNyQyxDQUFDO0lBT0QsWUFDbUIsU0FBMkIsRUFDM0IsV0FBK0IsRUFDL0IsR0FBc0IsRUFDdkMsV0FBOEI7UUFIYixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE1QnpDLGdCQUFXLEdBQVcsSUFBSSxDQUFDO1FBRzNCLFlBQU8sR0FBVyxJQUFJLENBQUM7UUFHdkIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQWNoQixvQkFBZSxHQUFzQixJQUFJLENBQUM7UUFDMUMsb0JBQWUsR0FBc0IsSUFBSSxDQUFDO1FBRTFDLGlCQUFZLEdBQWlCLElBQUksQ0FBQztRQVF4QyxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDeEQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQzlDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQzlCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2FBQzVCLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDMUQsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDMUQsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7cUZBN0RVLG9CQUFvQjtvRUFBcEIsb0JBQW9COztpRkFBcEIsb0JBQW9CO2NBRGhDLFNBQVM7ZUFBQyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOzRJQUczRCxXQUFXO2tCQURWLEtBQUs7bUJBQUMsZ0JBQWdCO1lBSXZCLE9BQU87a0JBRE4sS0FBSzttQkFBQyx1QkFBdUI7WUFJOUIsTUFBTTtrQkFETCxLQUFLO21CQUFDLHNCQUFzQjtZQUl6QixJQUFJO2tCQURQLEtBQUs7bUJBQUMsb0JBQW9CO1lBT3ZCLElBQUk7a0JBRFAsS0FBSzttQkFBQyxvQkFBb0I7O0FBZ0Q3QixTQUFTLGNBQWMsQ0FDckIsUUFBZ0IsRUFDaEIsV0FBb0M7SUFFcEMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUMsQ0FDNUIsQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLGtCQUFrQixDQUMvQyxDQUFDO0lBQ0YsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FDYixHQUFHLFFBQVEseUNBQXlDLFNBQVMsQ0FDM0QsV0FBVyxDQUNaLElBQUksQ0FDTixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSB1dGlsc1xuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIC8vIGNzcGVsbDogZGlzYWJsZS1uZXh0LWxpbmVcbiAgybVzdHJpbmdpZnkgYXMgc3RyaW5naWZ5LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRmVhdHVyZUdhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmVhdHVyZS1nYXRlLnNlcnZpY2UnO1xuXG4vKipcbiAqIEBleGFtcGxlXG4gKiBgYGBcbiAqIDxuZy1jb250YWluZXIgKmFjbEZlYXR1cmVHYXRlPVwiZ2F0ZS1uYW1lXCI+PC9uZy1jb250YWluZXI+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2FjbEZlYXR1cmVHYXRlXScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlR2F0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCdhY2xGZWF0dXJlR2F0ZScpXG4gIGZlYXR1cmVOYW1lOiBzdHJpbmcgPSBudWxsO1xuXG4gIEBJbnB1dCgnYWNsRmVhdHVyZUdhdGVDbHVzdGVyJylcbiAgY2x1c3Rlcjogc3RyaW5nID0gbnVsbDtcblxuICBASW5wdXQoJ2FjbEZlYXR1cmVHYXRlTmVnYXRlJylcbiAgbmVnYXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCdhY2xGZWF0dXJlR2F0ZVRoZW4nKVxuICBzZXQgdGhlbih0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dm9pZD4pIHtcbiAgICBhc3NlcnRUZW1wbGF0ZSgnYWNsRmVhdHVyZUdhdGVUaGVuJywgdGVtcGxhdGVSZWYpO1xuICAgIHRoaXMudGhlblRlbXBsYXRlUmVmID0gdGVtcGxhdGVSZWY7XG4gIH1cblxuICBASW5wdXQoJ2FjbEZlYXR1cmVHYXRlRWxzZScpXG4gIHNldCBlbHNlKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx2b2lkPikge1xuICAgIGFzc2VydFRlbXBsYXRlKCdhY2xWZXJzaW9uR2F0ZUVsc2UnLCB0ZW1wbGF0ZVJlZik7XG4gICAgdGhpcy5lbHNlVGVtcGxhdGVSZWYgPSB0ZW1wbGF0ZVJlZjtcbiAgfVxuXG4gIHByaXZhdGUgdGhlblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx2b2lkPiA9IG51bGw7XG4gIHByaXZhdGUgZWxzZVRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx2b2lkPiA9IG51bGw7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3JkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dm9pZD4sXG4gICkge1xuICAgIHRoaXMudGhlblRlbXBsYXRlUmVmID0gdGVtcGxhdGVSZWY7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuZmVhdHVyZU5hbWUpIHtcbiAgICAgIHRoaXMuY29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRoZW5UZW1wbGF0ZVJlZik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmZlYXR1cmVHYXRlW1xuICAgICAgdGhpcy5uZWdhdGUgPyAnaXNOZWdhdGVFbmFibGVkJyA6ICdpc0VuYWJsZWQnXG4gICAgXSh0aGlzLmZlYXR1cmVOYW1lLCB0aGlzLmNsdXN0ZXIpXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZShlbmFibGVkID0+IHtcbiAgICAgICAgdGhpcy5jb250YWluZXIuY2xlYXIoKTtcbiAgICAgICAgaWYgKGVuYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLmNvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50aGVuVGVtcGxhdGVSZWYpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZWxzZVRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgdGhpcy5jb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuZWxzZVRlbXBsYXRlUmVmKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNyZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRUZW1wbGF0ZShcbiAgcHJvcGVydHk6IHN0cmluZyxcbiAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsLFxuKTogdm9pZCB7XG4gIGNvbnN0IGlzVGVtcGxhdGVSZWZPck51bGwgPSAhIShcbiAgICAhdGVtcGxhdGVSZWYgfHwgdGVtcGxhdGVSZWYuY3JlYXRlRW1iZWRkZWRWaWV3XG4gICk7XG4gIGlmICghaXNUZW1wbGF0ZVJlZk9yTnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGAke3Byb3BlcnR5fSBtdXN0IGJlIGEgVGVtcGxhdGVSZWYsIGJ1dCByZWNlaXZlZCAnJHtzdHJpbmdpZnkoXG4gICAgICAgIHRlbXBsYXRlUmVmLFxuICAgICAgKX0nLmAsXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -29,13 +29,14 @@ export class FeatureGuard {
|
|
|
29
29
|
const data = {
|
|
30
30
|
featureName: '',
|
|
31
31
|
guard_url: DEFAULT_FEATURE_FORBIDDEN_URL,
|
|
32
|
+
negate: false,
|
|
32
33
|
...route.data,
|
|
33
34
|
};
|
|
34
35
|
let currentCluster;
|
|
35
36
|
if (this.getCluster) {
|
|
36
37
|
currentCluster = this.getCluster(route);
|
|
37
38
|
}
|
|
38
|
-
return this.featureGate.isEnabled(data.featureName, currentCluster).pipe(map(enabled => {
|
|
39
|
+
return this.featureGate[data.negate ? 'isNegateEnabled' : 'isEnabled'](data.featureName, currentCluster).pipe(map(enabled => {
|
|
39
40
|
if (enabled)
|
|
40
41
|
return true;
|
|
41
42
|
const errorUrl = `${data.guard_url}/${data.featureName}`;
|
|
@@ -55,4 +56,4 @@ export class FeatureGuard {
|
|
|
55
56
|
}, {
|
|
56
57
|
type: Optional
|
|
57
58
|
}] }], null); })();
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL2d1YXJkcy9mZWF0dXJlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPN0UsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7OztBQUloRixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxtQkFBbUIsQ0FBQztBQUVqRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FDbkQsOEJBQThCLENBQy9CLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQ21CLFdBQStCLEVBQy9CLGdCQUF5QyxFQUd6QyxVQUE2QjtRQUo3QixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQUd6QyxlQUFVLEdBQVYsVUFBVSxDQUFtQjtJQUM3QyxDQUFDO0lBRUosZ0JBQWdCLENBQ2QsVUFBa0MsRUFDbEMsS0FBMEI7UUFFMUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsV0FBVyxDQUNULEtBQTZCLEVBQzdCLEtBQTBCO1FBRTFCLE1BQU0sSUFBSSxHQUFHO1lBQ1gsV0FBVyxFQUFFLEVBQUU7WUFDZixTQUFTLEVBQUUsNkJBQTZCO1lBQ3hDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxLQUFLLENBQUMsSUFBSTtTQUNkLENBQUM7UUFFRixJQUFJLGNBQXNCLENBQUM7UUFFM0IsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQ3BFLElBQUksQ0FBQyxXQUFXLEVBQ2hCLGNBQWMsQ0FDZixDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDWixJQUFJLE9BQU87Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDekIsTUFBTSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUV6RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDcEQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs2RUE3Q1UsWUFBWSwyRkFJYixtQkFBbUI7dUVBSmxCLFlBQVksV0FBWixZQUFZLG1CQURDLE1BQU07O2lGQUNuQixZQUFZO2NBRHhCLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O3NCQUs3QixNQUFNO3VCQUFDLG1CQUFtQjs7c0JBQzFCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgQ2FuQWN0aXZhdGUsXG4gIENhbkFjdGl2YXRlQ2hpbGQsXG4gIFJvdXRlclN0YXRlU25hcHNob3QsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRmVhdHVyZUdhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmVhdHVyZS1nYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2lsZW50bHlOYXZpZ2F0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zaWxlbnRseS1uYXZpZ2F0ZS5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgR2V0Q3VycmVudENsdXN0ZXIgPSAocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpID0+IHN0cmluZztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRkVBVFVSRV9GT1JCSURERU5fVVJMID0gJ2ZlYXR1cmUtZm9yYmlkZGVuJztcblxuZXhwb3J0IGNvbnN0IEdFVF9DVVJSRU5UX0NMVVNURVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48R2V0Q3VycmVudENsdXN0ZXI+KFxuICAnR2V0IGN1cnJlbnQgY2x1c3RlciBmdW5jdGlvbicsXG4pO1xuXG4vKipcbiAqIGBgYHRzXG4gKiBkYXRhOiB7XG4gKiAgcGF0aDogJ2hvbWUnLFxuICogIGNhbkFjdGl2YXRlOiBbIEZlYXR1cmVHdWFyZCBdLFxuICogIGRhdGE6IHsgZmVhdHVyZU5hbWU6ICdhY2UzJywgZ3VhcmRfdXJsOiAneHh4JyAgfVxuICogfVxuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZUd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUsIENhbkFjdGl2YXRlQ2hpbGQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzaWxlbnRseU5hdmlnYXRlOiBTaWxlbnRseU5hdmlnYXRlU2VydmljZSxcbiAgICBASW5qZWN0KEdFVF9DVVJSRU5UX0NMVVNURVIpXG4gICAgQE9wdGlvbmFsKClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdldENsdXN0ZXI6IEdldEN1cnJlbnRDbHVzdGVyLFxuICApIHt9XG5cbiAgY2FuQWN0aXZhdGVDaGlsZChcbiAgICBjaGlsZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jYW5BY3RpdmF0ZShjaGlsZFJvdXRlLCBzdGF0ZSk7XG4gIH1cblxuICBjYW5BY3RpdmF0ZShcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcbiAgKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGZlYXR1cmVOYW1lOiAnJyxcbiAgICAgIGd1YXJkX3VybDogREVGQVVMVF9GRUFUVVJFX0ZPUkJJRERFTl9VUkwsXG4gICAgICBuZWdhdGU6IGZhbHNlLFxuICAgICAgLi4ucm91dGUuZGF0YSxcbiAgICB9O1xuXG4gICAgbGV0IGN1cnJlbnRDbHVzdGVyOiBzdHJpbmc7XG5cbiAgICBpZiAodGhpcy5nZXRDbHVzdGVyKSB7XG4gICAgICBjdXJyZW50Q2x1c3RlciA9IHRoaXMuZ2V0Q2x1c3Rlcihyb3V0ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZmVhdHVyZUdhdGVbZGF0YS5uZWdhdGUgPyAnaXNOZWdhdGVFbmFibGVkJyA6ICdpc0VuYWJsZWQnXShcbiAgICAgIGRhdGEuZmVhdHVyZU5hbWUsXG4gICAgICBjdXJyZW50Q2x1c3RlcixcbiAgICApLnBpcGUoXG4gICAgICBtYXAoZW5hYmxlZCA9PiB7XG4gICAgICAgIGlmIChlbmFibGVkKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY29uc3QgZXJyb3JVcmwgPSBgJHtkYXRhLmd1YXJkX3VybH0vJHtkYXRhLmZlYXR1cmVOYW1lfWA7XG5cbiAgICAgICAgdGhpcy5zaWxlbnRseU5hdmlnYXRlLm5hdmlnYXRlKHN0YXRlLnVybCwgZXJyb3JVcmwpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -6,10 +6,11 @@ export class MinimumFormatPipe {
|
|
|
6
6
|
constructor(decimal) {
|
|
7
7
|
this.decimal = decimal;
|
|
8
8
|
}
|
|
9
|
-
transform(value) {
|
|
9
|
+
transform(value, decimalPlaces = 0) {
|
|
10
|
+
const decimalFormat = `1.${decimalPlaces}-${decimalPlaces || 2}`;
|
|
10
11
|
return +value > 0 && +value < 0.01
|
|
11
12
|
? '<0.01'
|
|
12
|
-
: this.decimal.transform(value,
|
|
13
|
+
: this.decimal.transform(value, decimalFormat)?.replace(/,/g, '');
|
|
13
14
|
}
|
|
14
15
|
static { this.ɵfac = function MinimumFormatPipe_Factory(t) { return new (t || MinimumFormatPipe)(i0.ɵɵdirectiveInject(i1.DecimalPipe, 16)); }; }
|
|
15
16
|
static { this.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "aclMinimumFormat", type: MinimumFormatPipe, pure: true, standalone: true }); }
|
|
@@ -21,4 +22,4 @@ export class MinimumFormatPipe {
|
|
|
21
22
|
standalone: true,
|
|
22
23
|
}]
|
|
23
24
|
}], () => [{ type: i1.DecimalPipe }], null); })();
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaW11bS1mb3JtYXQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3BpcGVzL21pbmltdW0tZm9ybWF0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFNcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUE2QixPQUFvQjtRQUFwQixZQUFPLEdBQVAsT0FBTyxDQUFhO0lBQUcsQ0FBQztJQUVyRCxTQUFTLENBQUMsS0FBc0IsRUFBRSxhQUFhLEdBQUcsQ0FBQztRQUNqRCxNQUFNLGFBQWEsR0FBRyxLQUFLLGFBQWEsSUFBSSxhQUFhLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDakUsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSTtZQUNoQyxDQUFDLENBQUMsT0FBTztZQUNULENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO2tGQVJVLGlCQUFpQjswRkFBakIsaUJBQWlCOztpRkFBakIsaUJBQWlCO2NBSjdCLElBQUk7ZUFBQztnQkFDSixJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixVQUFVLEVBQUUsSUFBSTthQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnYWNsTWluaW11bUZvcm1hdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE1pbmltdW1Gb3JtYXRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGVjaW1hbDogRGVjaW1hbFBpcGUpIHt9XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGRlY2ltYWxQbGFjZXMgPSAwKSB7XG4gICAgY29uc3QgZGVjaW1hbEZvcm1hdCA9IGAxLiR7ZGVjaW1hbFBsYWNlc30tJHtkZWNpbWFsUGxhY2VzIHx8IDJ9YDtcbiAgICByZXR1cm4gK3ZhbHVlID4gMCAmJiArdmFsdWUgPCAwLjAxXG4gICAgICA/ICc8MC4wMSdcbiAgICAgIDogdGhpcy5kZWNpbWFsLnRyYW5zZm9ybSh2YWx1ZSwgZGVjaW1hbEZvcm1hdCk/LnJlcGxhY2UoLywvZywgJycpO1xuICB9XG59XG4iXX0=
|
|
@@ -10,13 +10,11 @@ import { API_GATEWAY } from '../constants/public-api';
|
|
|
10
10
|
import { CacheStore } from '../utils/public-api';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
import * as i1 from "@angular/common/http";
|
|
13
|
-
const GlobalCluster = Symbol('Global Cluster');
|
|
14
13
|
export class FeatureGateService {
|
|
15
14
|
constructor(http) {
|
|
16
15
|
this.http = http;
|
|
17
16
|
this.cacheStore = new CacheStore({
|
|
18
17
|
share: () => shareReplay(1),
|
|
19
|
-
idGenerator: (cluster) => cluster || GlobalCluster,
|
|
20
18
|
fetcher: (cluster) => {
|
|
21
19
|
const url = cluster
|
|
22
20
|
? `${API_GATEWAY}/fg/v1/${cluster}/featuregates`
|
|
@@ -39,6 +37,9 @@ export class FeatureGateService {
|
|
|
39
37
|
isEnabled(gateName, cluster) {
|
|
40
38
|
return this.cacheStore.fetch(cluster).pipe(map(v => !!v[gateName]), take(1));
|
|
41
39
|
}
|
|
40
|
+
isNegateEnabled(gateName, cluster) {
|
|
41
|
+
return this.cacheStore.fetch(cluster).pipe(map(v => !v[gateName]), take(1));
|
|
42
|
+
}
|
|
42
43
|
/**
|
|
43
44
|
* filter list with gate, send items without feature gate as begin push (can skip by passing `skipNoFeatureGatePush` argument with true)
|
|
44
45
|
* @param items - list need filter
|
|
@@ -70,4 +71,4 @@ export class FeatureGateService {
|
|
|
70
71
|
type: Injectable,
|
|
71
72
|
args: [{ providedIn: 'root' }]
|
|
72
73
|
}], () => [{ type: i1.HttpClient }], null); })();
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1nYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvY29yZS9zZXJ2aWNlcy9mZWF0dXJlLWdhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxJQUFJLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkQsT0FBTyxFQUVMLEVBQUUsRUFDRixVQUFVLEVBQ1YsR0FBRyxFQUNILFNBQVMsRUFDVCxXQUFXLEVBQ1gsSUFBSSxHQUNMLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBR2pELE1BQU0sT0FBTyxrQkFBa0I7SUF1QjdCLFlBQTZCLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUF0QjVCLGVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUMzQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUMzQixPQUFPLEVBQUUsQ0FBQyxPQUFnQixFQUFFLEVBQUU7Z0JBQzVCLE1BQU0sR0FBRyxHQUFHLE9BQU87b0JBQ2pCLENBQUMsQ0FBQyxHQUFHLFdBQVcsVUFBVSxPQUFPLGVBQWU7b0JBQ2hELENBQUMsQ0FBQyxHQUFHLFdBQVcscUJBQXFCLENBQUM7Z0JBRXhDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXNDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDakUsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUs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QHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIHV0aWxzXG4gKi9cblxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbHRlciBhcyBfZmlsdGVyLCBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIGNhdGNoRXJyb3IsXG4gIG1hcCxcbiAgc3RhcnRXaXRoLFxuICBzaGFyZVJlcGxheSxcbiAgdGFrZSxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFQSV9HQVRFV0FZIH0gZnJvbSAnLi4vY29uc3RhbnRzL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGUsIEt1YmVybmV0ZXNSZXNvdXJjZUxpc3QgfSBmcm9tICcuLi90eXBlcy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENhY2hlU3RvcmUgfSBmcm9tICcuLi91dGlscy9wdWJsaWMtYXBpJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlR2F0ZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlU3RvcmUgPSBuZXcgQ2FjaGVTdG9yZSh7XG4gICAgc2hhcmU6ICgpID0+IHNoYXJlUmVwbGF5KDEpLFxuICAgIGZldGNoZXI6IChjbHVzdGVyPzogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB1cmwgPSBjbHVzdGVyXG4gICAgICAgID8gYCR7QVBJX0dBVEVXQVl9L2ZnL3YxLyR7Y2x1c3Rlcn0vZmVhdHVyZWdhdGVzYFxuICAgICAgICA6IGAke0FQSV9HQVRFV0FZfS9mZy92MS9mZWF0dXJlZ2F0ZXNgO1xuXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PEZlYXR1cmVHYXRlPj4odXJsKS5waXBlKFxuICAgICAgICBtYXAoKHsgaXRlbXMgfSkgPT5cbiAgICAgICAgICBpdGVtcy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCBjdXJyKSA9PiB7XG4gICAgICAgICAgICAgIGFjY1tjdXJyLm1ldGFkYXRhLm5hbWVdID0gY3Vyci5zdGF0dXMuZW5hYmxlZDtcbiAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPixcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKHt9IGFzIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+KSksXG4gICAgICApO1xuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCkge31cblxuICBsb2FkU3RhdGUoY2x1c3Rlcj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmNhY2hlU3RvcmUuZmV0Y2hTdGF0ZShjbHVzdGVyKS5waXBlKG1hcChsb2FkID0+IGxvYWQuc3RhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBnYXRlIHN0YXR1c1xuICAgKiBAcGFyYW0gZ2F0ZSAtIHNwZWNpZmllZCBmZWF0dXJlIGdhdGVcbiAgICogQHBhcmFtIGNsdXN0ZXIgLSBjaGVjayBnYXRlIGZvciBzcGVjaWZpZWQgY2x1c3RlclxuICAgKi9cbiAgaXNFbmFibGVkKGdhdGVOYW1lOiBzdHJpbmcsIGNsdXN0ZXI/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZVN0b3JlLmZldGNoKGNsdXN0ZXIpLnBpcGUoXG4gICAgICBtYXAodiA9PiAhIXZbZ2F0ZU5hbWVdKSxcbiAgICAgIHRha2UoMSksXG4gICAgKTtcbiAgfVxuXG4gIGlzTmVnYXRlRW5hYmxlZChnYXRlTmFtZTogc3RyaW5nLCBjbHVzdGVyPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVTdG9yZS5mZXRjaChjbHVzdGVyKS5waXBlKFxuICAgICAgbWFwKHYgPT4gIXZbZ2F0ZU5hbWVdKSxcbiAgICAgIHRha2UoMSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBmaWx0ZXIgbGlzdCB3aXRoIGdhdGUsIHNlbmQgaXRlbXMgd2l0aG91dCBmZWF0dXJlIGdhdGUgYXMgYmVnaW4gcHVzaCAoY2FuIHNraXAgYnkgcGFzc2luZyBgc2tpcE5vRmVhdHVyZUdhdGVQdXNoYCBhcmd1bWVudCB3aXRoIHRydWUpXG4gICAqIEBwYXJhbSBpdGVtcyAtIGxpc3QgbmVlZCBmaWx0ZXJcbiAgICogQHBhcmFtIGdhdGVBY2Nlc3NvciAtIGhvdyB0byBnZXQgZ2F0ZSBmcm9tIGl0ZW1cbiAgICogQHBhcmFtIGNsdXN0ZXIgLSBjaGVjayBnYXRlIGZvciBzcGVjaWZpZWQgY2x1c3RlclxuICAgKiBAcGFyYW0gZmlsdGVyTWV0aG9kIC0gZmlsdGVyIG1ldGhvZCwgZGVmYXVsdCB0byBsaXN0IGZpbHRlciwgY2FuIGZpbHRlciBkZWVwIHdpdGggY3JlYXRlUmVjdXJzaXZlRmlsdGVyIG9yIHRvdGFsbHkgY3VzdG9tIG1ldGhvZC5cbiAgICogQHBhcmFtIHNraXBOb0ZlYXR1cmVHYXRlUHVzaCAtIHNraXAgYmVnaW4gcHVzaCAsIGRlZmF1bHQgZmFsc2UuXG4gICAqL1xuICBmaWx0ZXJFbmFibGVkPFQ+KFxuICAgIGl0ZW1zOiBUW10sXG4gICAgZ2F0ZUFjY2Vzc29yOiAoaXRlbTogVCkgPT4gc3RyaW5nLFxuICAgIGNsdXN0ZXI/OiBzdHJpbmcsXG4gICAgZmlsdGVyTWV0aG9kOiAoXG4gICAgICBpdGVtczogVFtdLFxuICAgICAgY29uZGl0aW9uOiAoaXRlbTogVCkgPT4gYm9vbGVhbixcbiAgICApID0+IFRbXSA9IF9maWx0ZXIsXG4gICAgc2tpcE5vRmVhdHVyZUdhdGVQdXNoID0gZmFsc2UsXG4gICk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgY29uc3QgZmlsdGVyZWQgPSB0aGlzLmNhY2hlU3RvcmUuZmV0Y2goY2x1c3RlcikucGlwZShcbiAgICAgIG1hcCh2ID0+XG4gICAgICAgIGZpbHRlck1ldGhvZChpdGVtcywgaXRlbSA9PiB7XG4gICAgICAgICAgY29uc3QgZ2F0ZSA9IGdhdGVBY2Nlc3NvcihpdGVtKTtcbiAgICAgICAgICByZXR1cm4gZ2F0ZSA/IChnZXQoaXRlbSwgJ25lZ2F0ZScpID8gIXZbZ2F0ZV0gOiAhIXZbZ2F0ZV0pIDogdHJ1ZTtcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICk7XG5cbiAgICByZXR1cm4gc2tpcE5vRmVhdHVyZUdhdGVQdXNoXG4gICAgICA/IGZpbHRlcmVkXG4gICAgICA6IGZpbHRlcmVkLnBpcGUoXG4gICAgICAgICAgc3RhcnRXaXRoKGZpbHRlck1ldGhvZChpdGVtcywgaXRlbSA9PiAhZ2F0ZUFjY2Vzc29yKGl0ZW0pKSksXG4gICAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogcmVmZXRjaCBjYWNoZWQgZmVhdHVyZSBnYXRlIHNldHRpbmdzXG4gICAqIEBwYXJhbSBjbHVzdGVyIC0gc3BlY2lmaWVkIGNsdXN0ZXIsIHJlZmV0Y2ggYWxsIGFscmVhZHkgY2FjaGVkIHNldHRpbmdzIHdoZW4gY2x1c3RlciBpcyBlbXB0eVxuICAgKi9cbiAgcmVmZXRjaENhY2hlKGNsdXN0ZXI/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmNhY2hlU3RvcmUucmVmZXRjaChjbHVzdGVyKTtcbiAgfVxufVxuIl19
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* @module types
|
|
4
4
|
*/
|
|
5
5
|
export {};
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3R5cGVzL2NvbW1vbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgdHlwZXNcbiAqL1xuXG5leHBvcnQgdHlwZSBTdHJpbmdNYXAgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50cyB7XG4gIEdMT0JBTF9OQU1FU1BBQ0U/OiBzdHJpbmc7XG4gIExBQkVMX0JBU0VfRE9NQUlOPzogc3RyaW5nO1xuICBMT0dPX1VSTD86IHN0cmluZztcbiAgSU5ORVJfUFJPSkVDVF9OU19QUkVGSVg/
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3R5cGVzL2NvbW1vbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgdHlwZXNcbiAqL1xuXG5leHBvcnQgdHlwZSBTdHJpbmdNYXAgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50cyB7XG4gIEdMT0JBTF9OQU1FU1BBQ0U/OiBzdHJpbmc7XG4gIExBQkVMX0JBU0VfRE9NQUlOPzogc3RyaW5nO1xuICBMT0dPX1VSTD86IHN0cmluZztcbiAgSU5ORVJfUFJPSkVDVF9OU19QUkVGSVg/OiBzdHJpbmc7XG4gIENQQUFTX1NFU1NJT05fU1dJVENIPzogJ29uJyB8ICdvZmYnO1xuICBDTE9TRV9CUk9XU0VSX0VORF9TRVNTSU9OPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlTGlzdFBhcmFtcyBleHRlbmRzIFN0cmluZ01hcCB7XG4gIGxpbWl0Pzogc3RyaW5nO1xuICBjb250aW51ZT86IHN0cmluZztcbiAgbGFiZWxTZWxlY3Rvcj86IHN0cmluZztcbiAgZmllbGRTZWxlY3Rvcj86IHN0cmluZztcbiAgZmllbGQ/OiBzdHJpbmc7XG4gIGtleXdvcmQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlUGFyYW1zIHtcbiAgcHJvamVjdD86IHN0cmluZztcbiAgY2x1c3Rlcj86IHN0cmluZztcbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICBzZXJ2aWNlbWVzaD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VMaXN0UGFyYW1zXG4gIGV4dGVuZHMgV29ya3NwYWNlUGFyYW1zLFxuICAgIFJlc291cmNlTGlzdFBhcmFtcyB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZURldGFpbFBhcmFtcyBleHRlbmRzIFdvcmtzcGFjZUxpc3RQYXJhbXMge1xuICBuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBLZXlWYWx1ZTxWID0gc3RyaW5nLCBUIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0PiA9IFQgJiB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZTogVjtcbn07XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRpb248VCwgTyA9IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9PiA9IHtcbiAgdG90YWw6IG51bWJlcjtcbiAgaXRlbXM6IFRbXTtcbn0gJiBPO1xuIl19
|