taxtank-core 0.30.138 → 0.30.139
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/esm2020/lib/interceptors/jwt-interceptor.mjs +4 -5
- package/esm2020/lib/services/http/bank/basiq/basiq-token.service.mjs +2 -2
- package/esm2020/lib/services/http/firm/client-invite/client-invite.service.mjs +2 -2
- package/esm2020/lib/services/http/holding/holding.service.mjs +3 -1
- package/esm2020/lib/services/http/rest/rest-old.service.mjs +19 -16
- package/esm2020/lib/services/http/rest/rest.service.mjs +16 -9
- package/esm2020/lib/services/http/vehicle/vehicle-claim.service.mjs +5 -3
- package/fesm2015/taxtank-core.mjs +3856 -3846
- package/fesm2015/taxtank-core.mjs.map +1 -1
- package/fesm2020/taxtank-core.mjs +3588 -3578
- package/fesm2020/taxtank-core.mjs.map +1 -1
- package/lib/interceptors/jwt-interceptor.d.ts +1 -2
- package/lib/services/http/holding/holding.service.d.ts +2 -0
- package/lib/services/http/rest/rest-old.service.d.ts +7 -4
- package/lib/services/http/rest/rest.service.d.ts +4 -4
- package/lib/services/http/vehicle/vehicle-claim.service.d.ts +3 -1
- package/package.json +1 -1
|
@@ -3,8 +3,7 @@ import { catchError, filter, finalize, switchMap, take } from 'rxjs/operators';
|
|
|
3
3
|
import { Inject, Injectable } from '@angular/core';
|
|
4
4
|
import { HttpErrorResponse } from '@angular/common/http';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../services
|
|
7
|
-
import * as i2 from "../services/auth/auth.service";
|
|
6
|
+
import * as i1 from "../services";
|
|
8
7
|
const MESSAGE_DEFAULT_500_ERROR = 'Unexpected error! Please try again later. You can send us via chat your questions.';
|
|
9
8
|
/**
|
|
10
9
|
* JWT Interceptor add jwt token to each request related with TaxTank API
|
|
@@ -128,12 +127,12 @@ export class JwtInterceptor {
|
|
|
128
127
|
});
|
|
129
128
|
}
|
|
130
129
|
}
|
|
131
|
-
JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: JwtInterceptor, deps: [{ token: i1.JwtService }, { token:
|
|
130
|
+
JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: JwtInterceptor, deps: [{ token: i1.JwtService }, { token: i1.AuthService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
132
131
|
JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: JwtInterceptor });
|
|
133
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: JwtInterceptor, decorators: [{
|
|
134
133
|
type: Injectable
|
|
135
|
-
}], ctorParameters: function () { return [{ type: i1.JwtService }, { type:
|
|
134
|
+
}], ctorParameters: function () { return [{ type: i1.JwtService }, { type: i1.AuthService }, { type: undefined, decorators: [{
|
|
136
135
|
type: Inject,
|
|
137
136
|
args: ['environment']
|
|
138
137
|
}] }]; } });
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LWludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2ludGVyY2VwdG9ycy9qd3QtaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxVQUFVLElBQUksb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQXdELE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFJL0csTUFBTSx5QkFBeUIsR0FBRyxvRkFBb0YsQ0FBQztBQUV2SDs7R0FFRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBSXpCLFlBQ1MsVUFBc0IsRUFDckIsV0FBd0IsRUFDRCxXQUFnQjtRQUZ4QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ0QsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFOakQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLGlCQUFZLEdBQTRCLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQyxDQUFDO0lBTXZFLENBQUM7SUFFSixRQUFRLENBQUMsR0FBcUI7UUFDNUIsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ2YsVUFBVSxFQUFFLEVBQUUsYUFBYSxFQUFFLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3JFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBeUIsRUFBRSxJQUFpQjtRQUNwRCw0QkFB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LENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDckUsU0FBUyxDQUFDLENBQUMsTUFBK0MsRUFBRSxFQUFFO1lBQzVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9CLE9BQU8sb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUVKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGlCQUFpQixDQUFDLGFBQWdDO1FBQ3hELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUNuQyxtREFBbUQ7WUFDbkQsd0JBQXdCO1lBQ3hCLE1BQU07WUFFTixPQUFPO1NBQ1I7UUFDRCxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFpQixFQUFRLEVBQUU7WUFDakUsaURBQWlEO1lBQ2pELHdCQUF3QjtZQUN4QixNQUFNO1FBQ1IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzsyR0E5SVUsY0FBYyx1RUFPZixhQUFhOytHQVBaLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVTs7MEJBUU4sTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIGFzIG9ic2VydmFibGVUaHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIGZpbmFsaXplLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSnd0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2F1dGgvand0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZSc7XG5cbmNvbnN0IE1FU1NBR0VfREVGQVVMVF81MDBfRVJST1IgPSAnVW5leHBlY3RlZCBlcnJvciEgUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4gWW91IGNhbiBzZW5kIHVzIHZpYSBjaGF0IHlvdXIgcXVlc3Rpb25zLic7XG5cbi8qKlxuICogSldUIEludGVyY2VwdG9yIGFkZCBqd3QgdG9rZW4gdG8gZWFjaCByZXF1ZXN0IHJlbGF0ZWQgd2l0aCBUYXhUYW5rIEFQSVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSnd0SW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuICBpc1JlZnJlc2hpbmdUb2tlbiA9IGZhbHNlO1xuICB0b2tlblN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBqd3RTZXJ2aWNlOiBKd3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55XG4gICkge31cblxuICBhZGRUb2tlbihyZXE6IEh0dHBSZXF1ZXN0PGFueT4pOiBIdHRwUmVxdWVzdDxhbnk+IHtcbiAgICByZXR1cm4gcmVxLmNsb25lKHtcbiAgICAgIHNldEhlYWRlcnM6IHsgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAnICsgdGhpcy5qd3RTZXJ2aWNlLmdldFRva2VuKCkgfSxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIC8vIHNraXAgdGhpcmQgcGFydHkgcmVxdWVzdHNcbiAgICBpZiAoIXJlcXVlc3QudXJsLmluY2x1ZGVzKHRoaXMuZW52aXJvbm1lbnQuYXBpX3VyaSkpIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcbiAgICB9XG5cbiAgICAvLyBhZGQgdG9rZW4gdG8gZXZlcnkgYXBpIHJlcXVlc3RcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUodGhpcy5hZGRUb2tlbihyZXF1ZXN0KSkucGlwZShcbiAgICAgIC8vIGhhbmRsZSBlcnJvcnNcbiAgICAgIGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgc3dpdGNoICgoZXJyIGFzIEh0dHBFcnJvclJlc3BvbnNlKS5zdGF0dXMpIHtcbiAgICAgICAgICAgIC8vIHVuZXhwZWN0ZWQgZXJyb3JzXG4gICAgICAgICAgICBjYXNlIDQwNTpcbiAgICAgICAgICAgIGNhc2UgNTAwOlxuICAgICAgICAgICAgICB0aGlzLmhhbmRsZTUwMEVycm9yKCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgLy8gZXhwZWN0ZWQgZXJyb3JzXG4gICAgICAgICAgICBjYXNlIDQwMTpcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlNDAxRXJyb3IocmVxdWVzdCwgbmV4dCwgZXJyKTtcbiAgICAgICAgICAgIGNhc2UgNDAwOlxuICAgICAgICAgICAgY2FzZSA0MDM6XG4gICAgICAgICAgICAvLyBAVE9ETyBpbiBtb3N0IGNhc2VzIDQwNCBpcyBub3QgYW4gZXJyb3IsIGhhbmRsZSBpbiBjb21wb25lbnRzXG4gICAgICAgICAgICAvLyBjYXNlIDQwNDpcbiAgICAgICAgICAgICAgdGhpcy5zaG93RXJyb3JNZXNzYWdlcyhlcnIpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZVRocm93RXJyb3IoZXJyKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBsb2dcbiAgICogQFRPRE8gd2FpdGluZyBmb3IgYmFja2VuZCB0byBoYW5kbGUgZXJyb3JzIGluIGEgYmV0dGVyIHdheVxuICAgKi9cbiAgaGFuZGxlNDAwRXJyb3IoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSk6IHZvaWQge1xuICAgIC8vIHRoaXMuc25hY2tCYXIub3BlbihlcnIuZXJyb3JbJ2h5ZHJhOmRlc2NyaXB0aW9uJ10sICcnLCB7XG4gICAgLy8gICBwYW5lbENsYXNzOiAnZXJyb3InXG4gICAgLy8gfSk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbG9nXG4gICAqIEBUT0RPIHdhaXRpbmcgZm9yIGJhY2tlbmQgdG8gaGFuZGxlIGVycm9ycyBpbiBhIGJldHRlciB3YXlcbiAgICovXG4gIGhhbmRsZTQwM0Vycm9yKGVycjogSHR0cEVycm9yUmVzcG9uc2UpOiB2b2lkIHtcbiAgICAvLyB0aGlzLnNuYWNrQmFyLm9wZW4oZXJyLmVycm9yWydoeWRyYTpkZXNjcmlwdGlvbiddLCAnJywge1xuICAgIC8vICAgcGFuZWxDbGFzczogJ2Vycm9yJ1xuICAgIC8vIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIGxvZ1xuICAgKi9cbiAgaGFuZGxlNTAwRXJyb3IoKTogdm9pZCB7XG4gICAgLy8gdGhpcy5zbmFja0Jhci5vcGVuKE1FU1NBR0VfREVGQVVMVF81MDBfRVJST1IsICcnLCB7XG4gICAgLy8gICBwYW5lbENsYXNzOiAnZXJyb3InXG4gICAgLy8gfSk7XG4gIH1cblxuICBoYW5kbGU0MDFFcnJvcihyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyLCBlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgLy8gc2tpcCA0MDEgZXJyb3JzIG5vdCBmcm9tIEpXVCAoYmFzaXEgbG9naW4gY2FzZSBvciBvdGhlcilcbiAgICBpZiAoIWVyci5lcnJvci5tZXNzYWdlPy5pbmNsdWRlcygnSldUIFRva2VuJykpIHtcbiAgICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcihlcnIpO1xuICAgIH1cblxuICAgIGlmIChyZXEudXJsLmluY2x1ZGVzKCd0b2tlbi9yZWZyZXNoJykgfHwgcmVxLnVybC5pbmNsdWRlcygnbG9naW4nKSkge1xuICAgICAgaWYgKHJlcS51cmwuaW5jbHVkZXMoJ3Rva2VuL3JlZnJlc2gnKSkge1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dEZyb250KCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcihlcnIpO1xuICAgIH1cblxuICAgIC8vIHJlZnJlc2hpbmcgdG9rZW4sIHdhaXQgdW50aWwgaXQncyBkb25lIGFuZCByZXRyeSB0aGUgcmVxdWVzdFxuICAgIGlmICh0aGlzLmlzUmVmcmVzaGluZ1Rva2VuKSB7XG4gICAgICByZXR1cm4gdGhpcy50b2tlblN1YmplY3QucGlwZShcbiAgICAgICAgZmlsdGVyKHRva2VuID0+IHRva2VuICE9IG51bGwpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBzd2l0Y2hNYXAodG9rZW4gPT4gbmV4dC5oYW5kbGUodGhpcy5hZGRUb2tlbihyZXEpKSlcbiAgICAgICk7XG4gICAgLy8gcmVmcmVzaCB0b2tlblxuICAgIH1cbiAgICAvLyBzdWJzZXF1ZW50IHJlcXVlc3RzIHNob3VsZCB3YWl0IHVudGlsIHJlZnJlc2ggdG9rZW4gaXMgcmVhZHlcbiAgICB0aGlzLmlzUmVmcmVzaGluZ1Rva2VuID0gdHJ1ZTtcbiAgICB0aGlzLnRva2VuU3ViamVjdC5uZXh0KG51bGwpO1xuXG4gICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UucmVmcmVzaCh0aGlzLmp3dFNlcnZpY2UuZ2V0UmVmcmVzaFRva2VuKCkpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHRva2VuczogeyB0b2tlbjogc3RyaW5nLCByZWZyZXNoVG9rZW46IHN0cmluZyB9KSA9PiB7XG4gICAgICAgIHRoaXMudG9rZW5TdWJqZWN0Lm5leHQodG9rZW5zLnRva2VuKTtcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHRoaXMuYWRkVG9rZW4ocmVxKSk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dEZyb250KCk7XG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcihlcnIpO1xuICAgICAgfSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNSZWZyZXNoaW5nVG9rZW4gPSBmYWxzZTtcbiAgICAgIH0pXG4gICAgKTtcblxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBlcnJvciBtZXNzYWdlc1xuICAgKiBAcGFyYW0gZXJyb3JSZXNwb25zZSBmcm9tIHdoaWNoIG1lc3NhZ2VzIHNob3VsZCBiZSB0YWtlblxuICAgKlxuICAgKiBAVE9ETyBtb3ZlIHRvIHNlcGFyYXRlZCBpbnRlcmNlcHRvclxuICAgKi9cbiAgcHJpdmF0ZSBzaG93RXJyb3JNZXNzYWdlcyhlcnJvclJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSk6IHZvaWQge1xuICAgIGlmICghZXJyb3JSZXNwb25zZS5lcnJvci52aW9sYXRpb25zKSB7XG4gICAgICAvLyB0aGlzLnNuYWNrQmFyLm9wZW4oJ1NvbWV0aGluZyB3ZW50IHdyb25nJywgJycsIHtcbiAgICAgIC8vICAgcGFuZWxDbGFzczogJ2Vycm9yJ1xuICAgICAgLy8gfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZXJyb3JSZXNwb25zZS5lcnJvci52aW9sYXRpb25zLmZvckVhY2goKHZpb2xhdGlvbjogb2JqZWN0KTogdm9pZCA9PiB7XG4gICAgICAvLyB0aGlzLnNuYWNrQmFyLm9wZW4odmlvbGF0aW9uWydtZXNzYWdlJ10sICcnLCB7XG4gICAgICAvLyAgIHBhbmVsQ2xhc3M6ICdlcnJvcidcbiAgICAgIC8vIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LWludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2ludGVyY2VwdG9ycy9qd3QtaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxVQUFVLElBQUksb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQXdELE1BQU0sc0JBQXNCLENBQUM7OztBQUcvRyxNQUFNLHlCQUF5QixHQUFHLG9GQUFvRixDQUFDO0FBRXZIOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFJekIsWUFDUyxVQUFzQixFQUNyQixXQUF3QixFQUNELFdBQWdCO1FBRnhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDRCxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQU5qRCxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsaUJBQVksR0FBNEIsSUFBSSxlQUFlLENBQVMsSUFBSSxDQUFDLENBQUM7SUFNdkUsQ0FBQztJQUVKLFFBQVEsQ0FBQyxHQUFxQjtRQUM1QixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDZixVQUFVLEVBQUUsRUFBRSxhQUFhLEVBQUUsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDckUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ3BELDRCQUE0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Q0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNyRSxTQUFTLENBQUMsQ0FBQyxNQUErQyxFQUFFLEVBQUU7WUFDNUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0IsT0FBTyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsRUFDRixRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBRUosQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssaUJBQWlCLENBQUMsYUFBZ0M7UUFDeEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ25DLG1EQUFtRDtZQUNuRCx3QkFBd0I7WUFDeEIsTUFBTTtZQUVOLE9BQU87U0FDUjtRQUNELGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQWlCLEVBQVEsRUFBRTtZQUNqRSxpREFBaUQ7WUFDakQsd0JBQXdCO1lBQ3hCLE1BQU07UUFDUixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzJHQTlJVSxjQUFjLHVFQU9mLGFBQWE7K0dBUFosY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVOzswQkFRTixNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIHRocm93RXJyb3IgYXMgb2JzZXJ2YWJsZVRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgZmluYWxpemUsIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBKd3RTZXJ2aWNlLCBBdXRoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcblxuY29uc3QgTUVTU0FHRV9ERUZBVUxUXzUwMF9FUlJPUiA9ICdVbmV4cGVjdGVkIGVycm9yISBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLiBZb3UgY2FuIHNlbmQgdXMgdmlhIGNoYXQgeW91ciBxdWVzdGlvbnMuJztcblxuLyoqXG4gKiBKV1QgSW50ZXJjZXB0b3IgYWRkIGp3dCB0b2tlbiB0byBlYWNoIHJlcXVlc3QgcmVsYXRlZCB3aXRoIFRheFRhbmsgQVBJXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKd3RJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIGlzUmVmcmVzaGluZ1Rva2VuID0gZmFsc2U7XG4gIHRva2VuU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGp3dFNlcnZpY2U6IEp3dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50OiBhbnlcbiAgKSB7fVxuXG4gIGFkZFRva2VuKHJlcTogSHR0cFJlcXVlc3Q8YW55Pik6IEh0dHBSZXF1ZXN0PGFueT4ge1xuICAgIHJldHVybiByZXEuY2xvbmUoe1xuICAgICAgc2V0SGVhZGVyczogeyBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyB0aGlzLmp3dFNlcnZpY2UuZ2V0VG9rZW4oKSB9LFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgLy8gc2tpcCB0aGlyZCBwYXJ0eSByZXF1ZXN0c1xuICAgIGlmICghcmVxdWVzdC51cmwuaW5jbHVkZXModGhpcy5lbnZpcm9ubWVudC5hcGlfdXJpKSkge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xuICAgIH1cblxuICAgIC8vIGFkZCB0b2tlbiB0byBldmVyeSBhcGkgcmVxdWVzdFxuICAgIHJldHVybiBuZXh0LmhhbmRsZSh0aGlzLmFkZFRva2VuKHJlcXVlc3QpKS5waXBlKFxuICAgICAgLy8gaGFuZGxlIGVycm9yc1xuICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICBzd2l0Y2ggKChlcnIgYXMgSHR0cEVycm9yUmVzcG9uc2UpLnN0YXR1cykge1xuICAgICAgICAgICAgLy8gdW5leHBlY3RlZCBlcnJvcnNcbiAgICAgICAgICAgIGNhc2UgNDA1OlxuICAgICAgICAgICAgY2FzZSA1MDA6XG4gICAgICAgICAgICAgIHRoaXMuaGFuZGxlNTAwRXJyb3IoKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAvLyBleHBlY3RlZCBlcnJvcnNcbiAgICAgICAgICAgIGNhc2UgNDAxOlxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGU0MDFFcnJvcihyZXF1ZXN0LCBuZXh0LCBlcnIpO1xuICAgICAgICAgICAgY2FzZSA0MDA6XG4gICAgICAgICAgICBjYXNlIDQwMzpcbiAgICAgICAgICAgIC8vIEBUT0RPIGluIG1vc3QgY2FzZXMgNDA0IGlzIG5vdCBhbiBlcnJvciwgaGFuZGxlIGluIGNvbXBvbmVudHNcbiAgICAgICAgICAgIC8vIGNhc2UgNDA0OlxuICAgICAgICAgICAgICB0aGlzLnNob3dFcnJvck1lc3NhZ2VzKGVycik7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcihlcnIpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIGxvZ1xuICAgKiBAVE9ETyB3YWl0aW5nIGZvciBiYWNrZW5kIHRvIGhhbmRsZSBlcnJvcnMgaW4gYSBiZXR0ZXIgd2F5XG4gICAqL1xuICBoYW5kbGU0MDBFcnJvcihlcnI6IEh0dHBFcnJvclJlc3BvbnNlKTogdm9pZCB7XG4gICAgLy8gdGhpcy5zbmFja0Jhci5vcGVuKGVyci5lcnJvclsnaHlkcmE6ZGVzY3JpcHRpb24nXSwgJycsIHtcbiAgICAvLyAgIHBhbmVsQ2xhc3M6ICdlcnJvcidcbiAgICAvLyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBsb2dcbiAgICogQFRPRE8gd2FpdGluZyBmb3IgYmFja2VuZCB0byBoYW5kbGUgZXJyb3JzIGluIGEgYmV0dGVyIHdheVxuICAgKi9cbiAgaGFuZGxlNDAzRXJyb3IoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSk6IHZvaWQge1xuICAgIC8vIHRoaXMuc25hY2tCYXIub3BlbihlcnIuZXJyb3JbJ2h5ZHJhOmRlc2NyaXB0aW9uJ10sICcnLCB7XG4gICAgLy8gICBwYW5lbENsYXNzOiAnZXJyb3InXG4gICAgLy8gfSk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbG9nXG4gICAqL1xuICBoYW5kbGU1MDBFcnJvcigpOiB2b2lkIHtcbiAgICAvLyB0aGlzLnNuYWNrQmFyLm9wZW4oTUVTU0FHRV9ERUZBVUxUXzUwMF9FUlJPUiwgJycsIHtcbiAgICAvLyAgIHBhbmVsQ2xhc3M6ICdlcnJvcidcbiAgICAvLyB9KTtcbiAgfVxuXG4gIGhhbmRsZTQwMUVycm9yKHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIsIGVycjogSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAvLyBza2lwIDQwMSBlcnJvcnMgbm90IGZyb20gSldUIChiYXNpcSBsb2dpbiBjYXNlIG9yIG90aGVyKVxuICAgIGlmICghZXJyLmVycm9yLm1lc3NhZ2U/LmluY2x1ZGVzKCdKV1QgVG9rZW4nKSkge1xuICAgICAgcmV0dXJuIG9ic2VydmFibGVUaHJvd0Vycm9yKGVycik7XG4gICAgfVxuXG4gICAgaWYgKHJlcS51cmwuaW5jbHVkZXMoJ3Rva2VuL3JlZnJlc2gnKSB8fCByZXEudXJsLmluY2x1ZGVzKCdsb2dpbicpKSB7XG4gICAgICBpZiAocmVxLnVybC5pbmNsdWRlcygndG9rZW4vcmVmcmVzaCcpKSB7XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0RnJvbnQoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9ic2VydmFibGVUaHJvd0Vycm9yKGVycik7XG4gICAgfVxuXG4gICAgLy8gcmVmcmVzaGluZyB0b2tlbiwgd2FpdCB1bnRpbCBpdCdzIGRvbmUgYW5kIHJldHJ5IHRoZSByZXF1ZXN0XG4gICAgaWYgKHRoaXMuaXNSZWZyZXNoaW5nVG9rZW4pIHtcbiAgICAgIHJldHVybiB0aGlzLnRva2VuU3ViamVjdC5waXBlKFxuICAgICAgICBmaWx0ZXIodG9rZW4gPT4gdG9rZW4gIT0gbnVsbCksXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcCh0b2tlbiA9PiBuZXh0LmhhbmRsZSh0aGlzLmFkZFRva2VuKHJlcSkpKVxuICAgICAgKTtcbiAgICAvLyByZWZyZXNoIHRva2VuXG4gICAgfVxuICAgIC8vIHN1YnNlcXVlbnQgcmVxdWVzdHMgc2hvdWxkIHdhaXQgdW50aWwgcmVmcmVzaCB0b2tlbiBpcyByZWFkeVxuICAgIHRoaXMuaXNSZWZyZXNoaW5nVG9rZW4gPSB0cnVlO1xuICAgIHRoaXMudG9rZW5TdWJqZWN0Lm5leHQobnVsbCk7XG5cbiAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5yZWZyZXNoKHRoaXMuand0U2VydmljZS5nZXRSZWZyZXNoVG9rZW4oKSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodG9rZW5zOiB7IHRva2VuOiBzdHJpbmcsIHJlZnJlc2hUb2tlbjogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgdGhpcy50b2tlblN1YmplY3QubmV4dCh0b2tlbnMudG9rZW4pO1xuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUodGhpcy5hZGRUb2tlbihyZXEpKTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0RnJvbnQoKTtcbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGVUaHJvd0Vycm9yKGVycik7XG4gICAgICB9KSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgdGhpcy5pc1JlZnJlc2hpbmdUb2tlbiA9IGZhbHNlO1xuICAgICAgfSlcbiAgICApO1xuXG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGVycm9yIG1lc3NhZ2VzXG4gICAqIEBwYXJhbSBlcnJvclJlc3BvbnNlIGZyb20gd2hpY2ggbWVzc2FnZXMgc2hvdWxkIGJlIHRha2VuXG4gICAqXG4gICAqIEBUT0RPIG1vdmUgdG8gc2VwYXJhdGVkIGludGVyY2VwdG9yXG4gICAqL1xuICBwcml2YXRlIHNob3dFcnJvck1lc3NhZ2VzKGVycm9yUmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKTogdm9pZCB7XG4gICAgaWYgKCFlcnJvclJlc3BvbnNlLmVycm9yLnZpb2xhdGlvbnMpIHtcbiAgICAgIC8vIHRoaXMuc25hY2tCYXIub3BlbignU29tZXRoaW5nIHdlbnQgd3JvbmcnLCAnJywge1xuICAgICAgLy8gICBwYW5lbENsYXNzOiAnZXJyb3InXG4gICAgICAvLyB9KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlcnJvclJlc3BvbnNlLmVycm9yLnZpb2xhdGlvbnMuZm9yRWFjaCgodmlvbGF0aW9uOiBvYmplY3QpOiB2b2lkID0+IHtcbiAgICAgIC8vIHRoaXMuc25hY2tCYXIub3Blbih2aW9sYXRpb25bJ21lc3NhZ2UnXSwgJycsIHtcbiAgICAgIC8vICAgcGFuZWxDbGFzczogJ2Vycm9yJ1xuICAgICAgLy8gfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -19,7 +19,7 @@ export class BasiqTokenService extends RestService {
|
|
|
19
19
|
*/
|
|
20
20
|
get() {
|
|
21
21
|
if (this.cache && this.cache.first.isExpired()) {
|
|
22
|
-
this.setCache(
|
|
22
|
+
this.setCache(undefined);
|
|
23
23
|
}
|
|
24
24
|
return super.get();
|
|
25
25
|
}
|
|
@@ -36,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
|
|
|
36
36
|
providedIn: 'root'
|
|
37
37
|
}]
|
|
38
38
|
}] });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEtdG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEtdG9rZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFckQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBOEQ7SUFIckc7O1FBSVksZ0JBQVcsR0FBRyxjQUFjLENBQUM7UUFDdkMsZUFBVSxHQUFzQixVQUFVLENBQUM7UUFDM0Msb0JBQWUsR0FBc0IsVUFBVSxDQUFDO1FBQ2hELG9CQUFlLEdBQWlCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztLQWlCbkc7SUFmQzs7T0FFRztJQUNILEdBQUc7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMxQjtRQUVELE9BQU8sS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFUyxtQkFBbUIsQ0FBQyxhQUE0QjtRQUN4RCxNQUFNLEdBQUcsR0FBVyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxVQUFVLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzRyxDQUFDOzs4R0FwQlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYXNpcVRva2VuIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFJlc3RNZXRob2QsIFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdCc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuXG4vKipcbiAqIEBUT0RPIEFsZXggc2hvdWxkbid0IGJlIGEgc2VwYXJhdGVkIHNlcnZpY2UsIG1vdmUgdG8gYmFzaXFTZXJ2aWNlIG9yIGludGVyY2VwdG9yXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJhc2lxVG9rZW5TZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8QWJzdHJhY3RNb2RlbCwgQmFzaXFUb2tlbiwgQ29sbGVjdGlvbjxCYXNpcVRva2VuPj4ge1xuICBwcm90ZWN0ZWQgZW5kcG9pbnRVcmkgPSAnYmFzaXEvdG9rZW5zJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIEJhc2lxVG9rZW4gPSBCYXNpcVRva2VuO1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBDb2xsZWN0aW9uID0gQ29sbGVjdGlvbjtcbiAgZGlzYWJsZWRNZXRob2RzOiBSZXN0TWV0aG9kW10gPSBbJ3Bvc3QnLCAncG9zdEJhdGNoJywgJ3B1dCcsICdwdXRCYXRjaCcsICdkZWxldGUnLCAnZGVsZXRlQmF0Y2gnXTtcblxuICAvKipcbiAgICogQWNjZXNzIHRva2VuIHRvIHVzZSBiYXNpcSBmbG93XG4gICAqL1xuICBnZXQoKTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uPEJhc2lxVG9rZW4+PiB7XG4gICAgaWYgKHRoaXMuY2FjaGUgJiYgdGhpcy5jYWNoZS5maXJzdC5pc0V4cGlyZWQoKSkge1xuICAgICAgdGhpcy5zZXRDYWNoZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlci5nZXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVNb2RlbEluc3RhbmNlKHRva2VuUmVzcG9uc2U6IEFic3RyYWN0TW9kZWwpOiBCYXNpcVRva2VuIHtcbiAgICBjb25zdCBub3c6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIHJldHVybiBuZXcgQmFzaXFUb2tlbih0b2tlblJlc3BvbnNlWydhY2Nlc3NfdG9rZW4nXSwgbmV3IERhdGUobm93ICsgdG9rZW5SZXNwb25zZVsnZXhwaXJlc19pbiddICogMTAwMCkpO1xuICB9XG59XG4iXX0=
|
|
@@ -23,7 +23,7 @@ export class ClientInviteService extends RestService {
|
|
|
23
23
|
* Get clients from the different endpoints depending on whether the current user is a client or an employee
|
|
24
24
|
*/
|
|
25
25
|
get(fromEmployee) {
|
|
26
|
-
this.http.get(`${this.environment.apiV2}/${this.url}
|
|
26
|
+
this.http.get(`${this.environment.apiV2}/${this.url}${fromEmployee ? '/all' : ''}`)
|
|
27
27
|
.pipe(map((clientInvitesBase) => plainToClass(ClientInvite, clientInvitesBase)))
|
|
28
28
|
.subscribe((clientInvites) => {
|
|
29
29
|
this.cache = clientInvites;
|
|
@@ -128,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
|
|
|
128
128
|
providedIn: 'root'
|
|
129
129
|
}]
|
|
130
130
|
}] });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWludml0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvZmlybS9jbGllbnQtaW52aXRlL2NsaWVudC1pbnZpdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEQsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUc5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7QUFLMUYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQTJDO0lBSHBGOztRQUlFLFFBQUcsR0FBRyxpQkFBaUIsQ0FBQztRQUN4QixlQUFVLEdBQXdCLFlBQVksQ0FBQztLQWlJaEQ7SUEvSEMsWUFBWTtRQUNWLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUcsQ0FBQyxZQUFzQjtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFH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QU0sU0FBUyxHQUFpQixZQUFZLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZFLHNCQUFzQjtZQUN0Qiw0QkFBNEI7WUFDNUIsTUFBTSxTQUFTLEdBQW1CLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFELFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRTtZQUMzRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEtBQUsscUJBQXFCLENBQUMsb0JBQW9CLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDckssSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ25CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztnSEFsSVUsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2xpZW50SW52aXRlIGFzIENsaWVudEludml0ZUJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9Nb2RlbHMvZmlybS9jbGllbnQtaW52aXRlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LW9sZC5zZXJ2aWNlJztcbmltcG9ydCB7IENsaWVudEludml0ZSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9jbGllbnQvY2xpZW50LWludml0ZSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9ldmVudC1saXN0ZW5lci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24nO1xuaW1wb3J0IHsgVXNlckV2ZW50VHlwZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvRW51bXMvdXNlci1ldmVudC10eXBlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBDbGllbnRJbnZpdGVDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29sbGVjdGlvbnMvY2xpZW50LWludml0ZS5jb2xsZWN0aW9uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2xpZW50SW52aXRlU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPENsaWVudEludml0ZUJhc2UsIENsaWVudEludml0ZT4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIHVybCA9ICdjbGllbnRzL2ludml0ZXMnO1xuICBtb2RlbENsYXNzOiB0eXBlb2YgQ2xpZW50SW52aXRlID0gQ2xpZW50SW52aXRlO1xuXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3Rlbk5vdGlmaWNhdGlvbnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY2xpZW50cyBmcm9tIHRoZSBkaWZmZXJlbnQgZW5kcG9pbnRzIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBjdXJyZW50IHVzZXIgaXMgYSBjbGllbnQgb3IgYW4gZW1wbG95ZWVcbiAgICovXG4gIGdldChmcm9tRW1wbG95ZWU/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxDbGllbnRJbnZpdGVbXT4ge1xuICAgIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHtmcm9tRW1wbG95ZWUgPyAnYWxsJyA6ICcnfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChjbGllbnRJbnZpdGVzQmFzZTogQ2xpZW50SW52aXRlQmFzZVtdKTogQ2xpZW50SW52aXRlW10gPT4gcGxhaW5Ub0NsYXNzKENsaWVudEludml0ZSwgY2xpZW50SW52aXRlc0Jhc2UpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoY2xpZW50SW52aXRlczogQ2xpZW50SW52aXRlW10pID0+IHtcbiAgICAgICAgdGhpcy5jYWNoZSA9IGNsaWVudEludml0ZXM7XG4gICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuY2FjaGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0VFRBZHZpc29yKCk6IE9ic2VydmFibGU8Q2xpZW50SW52aXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGludml0ZXM6IENsaWVudEludml0ZVtdKSA9PiBuZXcgQ2xpZW50SW52aXRlQ29sbGVjdGlvbihpbnZpdGVzKS5maW5kQnkoJ2VtcGxveWVlLmVtYWlsJywgdGhpcy5lbnZpcm9ubWVudC50dEFkdmlzb3IpIHx8IG51bGwpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBlbXBsb3llZXMgZm9yIGZpcm0gZnJvbSBDU1YgZmlsZVxuICAgKiBAcGFyYW0gZmlsZVxuICAgKi9cbiAgaW1wb3J0KGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPENsaWVudEludml0ZVtdPiB7XG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vaW1wb3J0YCwgZm9ybURhdGEpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChjbGllbnRJbnZpdGU6IENsaWVudEludml0ZVtdKSA9PiBjbGllbnRJbnZpdGUpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VwdCBjbGllbnQgaW52aXRhdGlvbiBmcm9tIGZpcm0gdG8gdXNlclxuICAgKiBAcGFyYW0gaW52aXRlXG4gICAqL1xuICBhY2NlcHQoaW52aXRlOiBDbGllbnRJbnZpdGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke2ludml0ZS5pZH0vYWNjZXB0YCwgbnVsbClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5DTElFTlRfSU5WSVRFX0FDQ0VQVEVELCBpbnZpdGUpKTtcbiAgICAgICAgICAvLyBzZXQgY2FjaGUgd2l0aG91dCBhY2NlcHRlZCBpbnZpdGVcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdGhpcy5jYWNoZS5maWx0ZXIoKGNsaWVudEludml0ZTogQ2xpZW50SW52aXRlKSA9PiBpbnZpdGUuaWQgIT09IGNsaWVudEludml0ZS5pZCk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWplY3QgY2xpZW50IGludml0YXRpb24gZnJvbSBmaXJtIHRvIHVzZXJcbiAgICogQHBhcmFtIGludml0ZVxuICAgKi9cbiAgcmVqZWN0KGludml0ZTogQ2xpZW50SW52aXRlKTogT2JzZXJ2YWJsZTxDbGllbnRJbnZpdGU+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHtpbnZpdGUuaWR9L3JlamVjdGAsIG51bGwpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZWplY3RlZEludml0ZTogQ2xpZW50SW52aXRlQmFzZSk6IENsaWVudEludml0ZSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZEludml0ZTogQ2xpZW50SW52aXRlID0gcGxhaW5Ub0NsYXNzKENsaWVudEludml0ZSwgcmVqZWN0ZWRJbnZpdGUpO1xuICAgICAgICAgIC8vIGF2b2lkIGNhY2hlIGNoYW5nZXNcbiAgICAgICAgICAvLyBAVE9ETyBtYWtlIGNhY2hlIHJlYWRvbmx5XG4gICAgICAgICAgY29uc3QgdGVtcENhY2hlOiBDbGllbnRJbnZpdGVbXSA9IF8uY2xvbmVEZWVwKHRoaXMuY2FjaGUpO1xuICAgICAgICAgIHJlcGxhY2UodGVtcENhY2hlLCBwbGFpblRvQ2xhc3MoQ2xpZW50SW52aXRlLCB1cGRhdGVkSW52aXRlKSk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRJbnZpdGU7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2VuZCBpbnZpdGF0aW9uIGZyb20gZmlybSB0byBjbGllbnRcbiAgICogQHBhcmFtIGludml0ZVxuICAgKi9cbiAgcmVzZW5kKGludml0ZTogQ2xpZW50SW52aXRlKTogT2JzZXJ2YWJsZTxDbGllbnRJbnZpdGU+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHtpbnZpdGUuaWR9L3Jlc2VuZGAsIG51bGwpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZWplY3RlZEludml0ZTogQ2xpZW50SW52aXRlQmFzZSk6IENsaWVudEludml0ZSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZEludml0ZTogQ2xpZW50SW52aXRlID0gcGxhaW5Ub0NsYXNzKENsaWVudEludml0ZSwgcmVqZWN0ZWRJbnZpdGUpO1xuICAgICAgICAgIC8vIGF2b2lkIGNhY2hlIGNoYW5nZXNcbiAgICAgICAgICAvLyBAVE9ETyBtYWtlIGNhY2hlIHJlYWRvbmx5XG4gICAgICAgICAgY29uc3QgdGVtcENhY2hlOiBDbGllbnRJbnZpdGVbXSA9IF8uY2xvbmVEZWVwKHRoaXMuY2FjaGUpO1xuICAgICAgICAgIHJlcGxhY2UodGVtcENhY2hlLCBwbGFpblRvQ2xhc3MoQ2xpZW50SW52aXRlLCB1cGRhdGVkSW52aXRlKSk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRJbnZpdGU7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgaW52aXRhdGlvbiBmcm9tIGNsaWVudCB0byBmaXJtXG4gICAqIEBwYXJhbSBpbnZpdGVcbiAgICovXG4gIGludml0ZUZpcm1CeVVzZXIoaW52aXRlOiBDbGllbnRJbnZpdGUpOiBPYnNlcnZhYmxlPENsaWVudEludml0ZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9maXJtcy9pbnZpdGVgLCBpbnZpdGUpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChpbnZpdGVCYXNlOiBDbGllbnRJbnZpdGVCYXNlKTogQ2xpZW50SW52aXRlID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdJbnZpdGU6IENsaWVudEludml0ZSA9IHBsYWluVG9DbGFzcyhDbGllbnRJbnZpdGUsIGludml0ZUJhc2UpO1xuICAgICAgICAgIC8vIGF2b2lkIGNhY2hlIGNoYW5nZXNcbiAgICAgICAgICAvLyBAVE9ETyBtYWtlIGNhY2hlIHJlYWRvbmx5XG4gICAgICAgICAgY29uc3QgdGVtcENhY2hlOiBDbGllbnRJbnZpdGVbXSA9IF8uY2xvbmVEZWVwKHRoaXMuY2FjaGUpO1xuICAgICAgICAgIHRlbXBDYWNoZS5wdXNoKG5ld0ludml0ZSk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIG5ld0ludml0ZTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgY2FjaGUgb24gY2xpZW50L2Zpcm0gaW52aXRlIGV2ZW50c1xuICAgKi9cbiAgbGlzdGVuTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5OT1RJRklDQVRJT05fQURERUQpLnN1YnNjcmliZSgobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHtcbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmlzUmVhZCAmJiAobm90aWZpY2F0aW9uLmV2ZW50VHlwZSA9PT0gVXNlckV2ZW50VHlwZVR5cGVFbnVtLkZJUk1fSU5WSVRFX0FDQ0VQVEVEIHx8IG5vdGlmaWNhdGlvbi5ldmVudFR5cGUgPT09IFVzZXJFdmVudFR5cGVUeXBlRW51bS5DTElFTlRfSU5WSVRFKSkge1xuICAgICAgICB0aGlzLnJlc2V0Q2FjaGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWludml0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvZmlybS9jbGllbnQtaW52aXRlL2NsaWVudC1pbnZpdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEQsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUc5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7QUFLMUYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQTJDO0lBSHBGOztRQUlFLFFBQUcsR0FBRyxpQkFBaUIsQ0FBQztRQUN4QixlQUFVLEdBQXdCLFlBQVksQ0FBQztLQWlJaEQ7SUEvSEMsWUFBWTtRQUNWLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUcsQ0FBQyxZQUFzQjtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFH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QU0sU0FBUyxHQUFpQixZQUFZLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZFLHNCQUFzQjtZQUN0Qiw0QkFBNEI7WUFDNUIsTUFBTSxTQUFTLEdBQW1CLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFELFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRTtZQUMzRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEtBQUsscUJBQXFCLENBQUMsb0JBQW9CLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDckssSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ25CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztnSEFsSVUsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2xpZW50SW52aXRlIGFzIENsaWVudEludml0ZUJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9Nb2RlbHMvZmlybS9jbGllbnQtaW52aXRlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LW9sZC5zZXJ2aWNlJztcbmltcG9ydCB7IENsaWVudEludml0ZSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9jbGllbnQvY2xpZW50LWludml0ZSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9ldmVudC1saXN0ZW5lci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24nO1xuaW1wb3J0IHsgVXNlckV2ZW50VHlwZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvRW51bXMvdXNlci1ldmVudC10eXBlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBDbGllbnRJbnZpdGVDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29sbGVjdGlvbnMvY2xpZW50LWludml0ZS5jb2xsZWN0aW9uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2xpZW50SW52aXRlU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPENsaWVudEludml0ZUJhc2UsIENsaWVudEludml0ZT4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIHVybCA9ICdjbGllbnRzL2ludml0ZXMnO1xuICBtb2RlbENsYXNzOiB0eXBlb2YgQ2xpZW50SW52aXRlID0gQ2xpZW50SW52aXRlO1xuXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3Rlbk5vdGlmaWNhdGlvbnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY2xpZW50cyBmcm9tIHRoZSBkaWZmZXJlbnQgZW5kcG9pbnRzIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBjdXJyZW50IHVzZXIgaXMgYSBjbGllbnQgb3IgYW4gZW1wbG95ZWVcbiAgICovXG4gIGdldChmcm9tRW1wbG95ZWU/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxDbGllbnRJbnZpdGVbXT4ge1xuICAgIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0ke2Zyb21FbXBsb3llZSA/ICcvYWxsJyA6ICcnfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChjbGllbnRJbnZpdGVzQmFzZTogQ2xpZW50SW52aXRlQmFzZVtdKTogQ2xpZW50SW52aXRlW10gPT4gcGxhaW5Ub0NsYXNzKENsaWVudEludml0ZSwgY2xpZW50SW52aXRlc0Jhc2UpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoY2xpZW50SW52aXRlczogQ2xpZW50SW52aXRlW10pID0+IHtcbiAgICAgICAgdGhpcy5jYWNoZSA9IGNsaWVudEludml0ZXM7XG4gICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuY2FjaGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0VFRBZHZpc29yKCk6IE9ic2VydmFibGU8Q2xpZW50SW52aXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGludml0ZXM6IENsaWVudEludml0ZVtdKSA9PiBuZXcgQ2xpZW50SW52aXRlQ29sbGVjdGlvbihpbnZpdGVzKS5maW5kQnkoJ2VtcGxveWVlLmVtYWlsJywgdGhpcy5lbnZpcm9ubWVudC50dEFkdmlzb3IpIHx8IG51bGwpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBlbXBsb3llZXMgZm9yIGZpcm0gZnJvbSBDU1YgZmlsZVxuICAgKiBAcGFyYW0gZmlsZVxuICAgKi9cbiAgaW1wb3J0KGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPENsaWVudEludml0ZVtdPiB7XG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vaW1wb3J0YCwgZm9ybURhdGEpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChjbGllbnRJbnZpdGU6IENsaWVudEludml0ZVtdKSA9PiBjbGllbnRJbnZpdGUpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VwdCBjbGllbnQgaW52aXRhdGlvbiBmcm9tIGZpcm0gdG8gdXNlclxuICAgKiBAcGFyYW0gaW52aXRlXG4gICAqL1xuICBhY2NlcHQoaW52aXRlOiBDbGllbnRJbnZpdGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke2ludml0ZS5pZH0vYWNjZXB0YCwgbnVsbClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5DTElFTlRfSU5WSVRFX0FDQ0VQVEVELCBpbnZpdGUpKTtcbiAgICAgICAgICAvLyBzZXQgY2FjaGUgd2l0aG91dCBhY2NlcHRlZCBpbnZpdGVcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdGhpcy5jYWNoZS5maWx0ZXIoKGNsaWVudEludml0ZTogQ2xpZW50SW52aXRlKSA9PiBpbnZpdGUuaWQgIT09IGNsaWVudEludml0ZS5pZCk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWplY3QgY2xpZW50IGludml0YXRpb24gZnJvbSBmaXJtIHRvIHVzZXJcbiAgICogQHBhcmFtIGludml0ZVxuICAgKi9cbiAgcmVqZWN0KGludml0ZTogQ2xpZW50SW52aXRlKTogT2JzZXJ2YWJsZTxDbGllbnRJbnZpdGU+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHtpbnZpdGUuaWR9L3JlamVjdGAsIG51bGwpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZWplY3RlZEludml0ZTogQ2xpZW50SW52aXRlQmFzZSk6IENsaWVudEludml0ZSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZEludml0ZTogQ2xpZW50SW52aXRlID0gcGxhaW5Ub0NsYXNzKENsaWVudEludml0ZSwgcmVqZWN0ZWRJbnZpdGUpO1xuICAgICAgICAgIC8vIGF2b2lkIGNhY2hlIGNoYW5nZXNcbiAgICAgICAgICAvLyBAVE9ETyBtYWtlIGNhY2hlIHJlYWRvbmx5XG4gICAgICAgICAgY29uc3QgdGVtcENhY2hlOiBDbGllbnRJbnZpdGVbXSA9IF8uY2xvbmVEZWVwKHRoaXMuY2FjaGUpO1xuICAgICAgICAgIHJlcGxhY2UodGVtcENhY2hlLCBwbGFpblRvQ2xhc3MoQ2xpZW50SW52aXRlLCB1cGRhdGVkSW52aXRlKSk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRJbnZpdGU7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2VuZCBpbnZpdGF0aW9uIGZyb20gZmlybSB0byBjbGllbnRcbiAgICogQHBhcmFtIGludml0ZVxuICAgKi9cbiAgcmVzZW5kKGludml0ZTogQ2xpZW50SW52aXRlKTogT2JzZXJ2YWJsZTxDbGllbnRJbnZpdGU+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHtpbnZpdGUuaWR9L3Jlc2VuZGAsIG51bGwpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZWplY3RlZEludml0ZTogQ2xpZW50SW52aXRlQmFzZSk6IENsaWVudEludml0ZSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZEludml0ZTogQ2xpZW50SW52aXRlID0gcGxhaW5Ub0NsYXNzKENsaWVudEludml0ZSwgcmVqZWN0ZWRJbnZpdGUpO1xuICAgICAgICAgIC8vIGF2b2lkIGNhY2hlIGNoYW5nZXNcbiAgICAgICAgICAvLyBAVE9ETyBtYWtlIGNhY2hlIHJlYWRvbmx5XG4gICAgICAgICAgY29uc3QgdGVtcENhY2hlOiBDbGllbnRJbnZpdGVbXSA9IF8uY2xvbmVEZWVwKHRoaXMuY2FjaGUpO1xuICAgICAgICAgIHJlcGxhY2UodGVtcENhY2hlLCBwbGFpblRvQ2xhc3MoQ2xpZW50SW52aXRlLCB1cGRhdGVkSW52aXRlKSk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRJbnZpdGU7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgaW52aXRhdGlvbiBmcm9tIGNsaWVudCB0byBmaXJtXG4gICAqIEBwYXJhbSBpbnZpdGVcbiAgICovXG4gIGludml0ZUZpcm1CeVVzZXIoaW52aXRlOiBDbGllbnRJbnZpdGUpOiBPYnNlcnZhYmxlPENsaWVudEludml0ZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9maXJtcy9pbnZpdGVgLCBpbnZpdGUpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChpbnZpdGVCYXNlOiBDbGllbnRJbnZpdGVCYXNlKTogQ2xpZW50SW52aXRlID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdJbnZpdGU6IENsaWVudEludml0ZSA9IHBsYWluVG9DbGFzcyhDbGllbnRJbnZpdGUsIGludml0ZUJhc2UpO1xuICAgICAgICAgIC8vIGF2b2lkIGNhY2hlIGNoYW5nZXNcbiAgICAgICAgICAvLyBAVE9ETyBtYWtlIGNhY2hlIHJlYWRvbmx5XG4gICAgICAgICAgY29uc3QgdGVtcENhY2hlOiBDbGllbnRJbnZpdGVbXSA9IF8uY2xvbmVEZWVwKHRoaXMuY2FjaGUpO1xuICAgICAgICAgIHRlbXBDYWNoZS5wdXNoKG5ld0ludml0ZSk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIG5ld0ludml0ZTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgY2FjaGUgb24gY2xpZW50L2Zpcm0gaW52aXRlIGV2ZW50c1xuICAgKi9cbiAgbGlzdGVuTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5OT1RJRklDQVRJT05fQURERUQpLnN1YnNjcmliZSgobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHtcbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmlzUmVhZCAmJiAobm90aWZpY2F0aW9uLmV2ZW50VHlwZSA9PT0gVXNlckV2ZW50VHlwZVR5cGVFbnVtLkZJUk1fSU5WSVRFX0FDQ0VQVEVEIHx8IG5vdGlmaWNhdGlvbi5ldmVudFR5cGUgPT09IFVzZXJFdmVudFR5cGVUeXBlRW51bS5DTElFTlRfSU5WSVRFKSkge1xuICAgICAgICB0aGlzLnJlc2V0Q2FjaGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -2,6 +2,7 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { Holding, HoldingSale } from '../../../models';
|
|
3
3
|
import { RestService } from '../rest';
|
|
4
4
|
import { HoldingCollection } from '../../../collections';
|
|
5
|
+
import { UserRolesEnum } from '../../../db/Enums/user-roles.enum';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export class HoldingService extends RestService {
|
|
7
8
|
constructor() {
|
|
@@ -11,6 +12,7 @@ export class HoldingService extends RestService {
|
|
|
11
12
|
this.endpointUri = 'holdings';
|
|
12
13
|
this.isApiPlatform = true;
|
|
13
14
|
this.disabledMethods = ['postBatch', 'putBatch', 'deleteBatch'];
|
|
15
|
+
this.roles = [UserRolesEnum.HOLDING_TANK];
|
|
14
16
|
}
|
|
15
17
|
listenEvents() {
|
|
16
18
|
this.listenCSE(HoldingSale, ['post', 'put', 'delete'], this.resetCache);
|
|
@@ -24,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
|
|
|
24
26
|
providedIn: 'root'
|
|
25
27
|
}]
|
|
26
28
|
}] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvaG9sZGluZy9ob2xkaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUtsRSxNQUFNLE9BQU8sY0FBZSxTQUFRLFdBQW9EO0lBSHhGOztRQUlFLGVBQVUsR0FBbUIsT0FBTyxDQUFDO1FBQ3JDLG9CQUFlLEdBQTZCLGlCQUFpQixDQUFDO1FBQzlELGdCQUFXLEdBQUcsVUFBVSxDQUFDO1FBQ3pCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLG9CQUFlLEdBQWlCLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN6RSxVQUFLLEdBQUcsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7S0FLdEM7SUFIQyxZQUFZO1FBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxRSxDQUFDOzsyR0FWVSxjQUFjOytHQUFkLGNBQWMsY0FGYixNQUFNOzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSG9sZGluZyBhcyBIb2xkaW5nQmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBIb2xkaW5nLCBIb2xkaW5nU2FsZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBSZXN0TWV0aG9kLCBSZXN0U2VydmljZSB9IGZyb20gJy4uL3Jlc3QnO1xuaW1wb3J0IHsgSG9sZGluZ0NvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL3VzZXItcm9sZXMuZW51bSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhvbGRpbmdTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8SG9sZGluZ0Jhc2UsIEhvbGRpbmcsIEhvbGRpbmdDb2xsZWN0aW9uPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgbW9kZWxDbGFzczogdHlwZW9mIEhvbGRpbmcgPSBIb2xkaW5nO1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBIb2xkaW5nQ29sbGVjdGlvbiA9IEhvbGRpbmdDb2xsZWN0aW9uO1xuICBlbmRwb2ludFVyaSA9ICdob2xkaW5ncyc7XG4gIGlzQXBpUGxhdGZvcm0gPSB0cnVlO1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFsncG9zdEJhdGNoJywgJ3B1dEJhdGNoJywgJ2RlbGV0ZUJhdGNoJ107XG4gIHJvbGVzID0gW1VzZXJSb2xlc0VudW0uSE9MRElOR19UQU5LXTtcblxuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5DU0UoSG9sZGluZ1NhbGUsIFsncG9zdCcsICdwdXQnLCAnZGVsZXRlJ10sIHRoaXMucmVzZXRDYWNoZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
1
|
+
import { inject, Inject, Injectable } from '@angular/core';
|
|
2
2
|
import { ReplaySubject } from 'rxjs';
|
|
3
3
|
import { map } from 'rxjs/operators';
|
|
4
4
|
import { replace } from '../../../functions/array';
|
|
5
5
|
import { classToPlain, plainToClass } from 'class-transformer';
|
|
6
|
+
import { JwtService } from '../../auth';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@angular/common/http";
|
|
8
9
|
import * as i2 from "../../event";
|
|
@@ -20,17 +21,32 @@ export class RestService {
|
|
|
20
21
|
this.eventDispatcherService = eventDispatcherService;
|
|
21
22
|
this.environment = environment;
|
|
22
23
|
this.toastService = toastService;
|
|
24
|
+
this.jwtService = inject(JwtService);
|
|
23
25
|
// subject for service cache
|
|
24
26
|
this.cacheSubject = new ReplaySubject(1);
|
|
27
|
+
this.roles = [];
|
|
25
28
|
this.listenEvents();
|
|
26
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* get list of base class instances directly from backend
|
|
32
|
+
*/
|
|
33
|
+
fetch() {
|
|
34
|
+
return this.http.get(`${this.environment.apiV2}/${this.url}`)
|
|
35
|
+
.pipe(map((response) => {
|
|
36
|
+
const items = (this.isHydra ? response['hydra:member'] : response)
|
|
37
|
+
.map((item) => this.createModelInstance(item));
|
|
38
|
+
this.cache = items;
|
|
39
|
+
this.updateCache();
|
|
40
|
+
return items;
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
27
43
|
/**
|
|
28
44
|
* get cached list of all instances
|
|
29
45
|
*/
|
|
30
46
|
get() {
|
|
31
47
|
if (!this.cache) {
|
|
32
48
|
this.cache = [];
|
|
33
|
-
this.
|
|
49
|
+
this.jwtService.getUser().hasRoles(this.roles) ? this.resetCache() : this.updateCache();
|
|
34
50
|
}
|
|
35
51
|
return this.cacheSubject.asObservable();
|
|
36
52
|
}
|
|
@@ -175,19 +191,6 @@ export class RestService {
|
|
|
175
191
|
resetCache() {
|
|
176
192
|
this.fetch().subscribe();
|
|
177
193
|
}
|
|
178
|
-
/**
|
|
179
|
-
* get list of base class instances directly from backend
|
|
180
|
-
*/
|
|
181
|
-
fetch() {
|
|
182
|
-
return this.http.get(`${this.environment.apiV2}/${this.url}`)
|
|
183
|
-
.pipe(map((response) => {
|
|
184
|
-
const items = (this.isHydra ? response['hydra:member'] : response)
|
|
185
|
-
.map((item) => this.createModelInstance(item));
|
|
186
|
-
this.cache = items;
|
|
187
|
-
this.updateCache();
|
|
188
|
-
return items;
|
|
189
|
-
}));
|
|
190
|
-
}
|
|
191
194
|
/**
|
|
192
195
|
* Update cache subject with current cache array value
|
|
193
196
|
*/
|
|
@@ -218,4 +221,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
|
|
|
218
221
|
type: Inject,
|
|
219
222
|
args: ['environment']
|
|
220
223
|
}] }, { type: i3.ToastService }]; } });
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1vbGQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Jlc3QvcmVzdC1vbGQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFJL0Q7Ozs7OztHQU1HO0FBSUgsTUFBTSxPQUFnQixXQUFXO0lBbUIvQixZQUNZLElBQWdCLEVBQ2hCLHNCQUE4QyxFQUN2QixXQUFnQixFQUN2QyxZQUEwQjtRQUgxQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFDdkMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFmdEMsNEJBQTRCO1FBQ2xCLGlCQUFZLEdBQTJCLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO1FBZ0I3RSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQzFCO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVks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LENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDMUQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQXFCLEVBQVcsRUFBRTtZQUNyQyxNQUFNLEtBQUssR0FBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO2lCQUN4RSxHQUFHLENBQUMsQ0FBQyxJQUFlLEVBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ25FLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDTyxXQUFXO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLG1CQUFtQixDQUFDLEtBQXlCO1FBQ3JELE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsZUFBZSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksS0FBVSxDQUFDOzt3R0E3UEgsV0FBVyxrRkFzQnJCLGFBQWE7NEdBdEJILFdBQVcsY0FGbkIsTUFBTTsyRkFFRSxXQUFXO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBdUJJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgcmVwbGFjZSB9IGZyb20gJy4uLy4uLy4uL2Z1bmN0aW9ucy9hcnJheSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2V2ZW50JztcbmltcG9ydCB7IGNsYXNzVG9QbGFpbiwgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3QnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcblxuLyoqXG4gKiBBYnN0cmFjdCBiYXNlIHNlcnZpY2UgdGhhdCBpbXBsZW1lbnRzIGNvbW1vbiBzZXJ2aWNlcyBmdW5jdGlvbmFsaXR5XG4gKiBhbmQgZGVzY3JpYmUgYWJzdHJhY3QgbWV0aG9kcy9wcm9wZXJ0aWVzIHRoYXQgaGF2ZSB0byBiZSBpbXBsZW1lbnRlZCBpbiBjaGlsZCBzZXJ2aWNlc1xuICogTW9kZWwgLSBlbnRpdHkgc2VydmljZSBpcyB3b3JraW5nIHdpdGhcbiAqIEJhc2VNb2RlbCAtIGJhc2UgZW50aXR5IG1vZGVsIHRoYXQgZXh0ZW5kcyBieSBNb2RlbFxuICogQFRPRE8gVFQtMTc3NyBBbGV4OiByZW1vdmUgd2hlbiBhbGwgc2VydmljZXMgcmVmYWN0b3JlZFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXN0U2VydmljZTxCYXNlTW9kZWwsIE1vZGVsIGV4dGVuZHMgQmFzZU1vZGVsPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgLy8gdXJsIHBhcnQgZm9yIHNlcnZpY2UgZW50aXR5IEFQSS4gSGF2ZSB0byBiZSBkZWZpbmVkIGluIGV4dGVuZGVkIGNsYXNzZXNcbiAgYWJzdHJhY3QgdXJsOiBzdHJpbmc7XG4gIC8vIE1vZGVsIGNsYXNzIGZvciBpbnN0YW5jZXMgY3JlYXRpbmdcbiAgYWJzdHJhY3QgbW9kZWxDbGFzcztcbiAgLy8gQFRPRE8gTWFrZSBjYWNoZSBSZWFkb25seVxuICAvLyBjYWNoZWQgYXJyYXkgb2Ygc2VydmljZSBjbGFzcyBpbnN0YW5jZXNcbiAgcHJvdGVjdGVkIGNhY2hlOiBNb2RlbFtdO1xuICAvLyBzdWJqZWN0IGZvciBzZXJ2aWNlIGNhY2hlXG4gIHByb3RlY3RlZCBjYWNoZVN1YmplY3Q6IFJlcGxheVN1YmplY3Q8TW9kZWxbXT4gPSBuZXcgUmVwbGF5U3ViamVjdDxNb2RlbFtdPigxKTtcbiAgLy8gZmxhZyBmb3Igd29yayB3aXRoIEFQSSBwbGF0Zm9ybVxuICBwcm90ZWN0ZWQgaXNIeWRyYTogYm9vbGVhbjtcbiAgbWVzc2FnZUNyZWF0ZWQ6IHN0cmluZztcbiAgbWVzc2FnZUNyZWF0ZWRCYXRjaDogc3RyaW5nO1xuICBtZXNzYWdlVXBkYXRlZDogc3RyaW5nO1xuICBtZXNzYWdlVXBkYXRlZEJhdGNoOiBzdHJpbmc7XG4gIG1lc3NhZ2VEZWxldGVkOiBzdHJpbmc7XG4gIG1lc3NhZ2VEZWxldGVkQmF0Y2g6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55LFxuICAgIHByb3RlY3RlZCB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZVxuICApIHtcbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBjYWNoZWQgbGlzdCBvZiBhbGwgaW5zdGFuY2VzXG4gICAqL1xuICBnZXQoKTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgaWYgKCF0aGlzLmNhY2hlKSB7XG4gICAgICB0aGlzLmNhY2hlID0gW107XG4gICAgICB0aGlzLmZldGNoKCkuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2FjaGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBpbnN0YW5jZSBieSBpZCBmcm9tIGNhY2hlXG4gICAqIEBwYXJhbSBpZCBJRCBvZiByZXF1aXJlZCBpdGVtXG4gICAqL1xuICBmaW5kQnlJZChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChpdGVtczogTW9kZWxbXSkgPT4gaXRlbXMuZmluZCgoaXRlbTogTW9kZWwpID0+IGl0ZW1bJ2lkJ10gPT09IGlkKSlcbiAgICAgICk7XG4gIH1cblxuICBmaW5kKGlkOiBudW1iZXIpOiBNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuZmluZCgoaXRlbTogTW9kZWwpID0+IGl0ZW1bJ2lkJ10gPT09IGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZGQgbmV3IGluc3RhbmNlIGFuZCB1cGRhdGUgY2FjaGVcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlKGRhdGE6IG9iamVjdCwgc2hvdWxkVXBkYXRlQ2FjaGUgPSB0cnVlKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGNsYXNzVG9QbGFpbihkYXRhKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKG5ld0l0ZW06IEJhc2VNb2RlbCkgPT4ge1xuICAgICAgICAgIGlmICghc2hvdWxkVXBkYXRlQ2FjaGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbmV3SW5zdGFuY2U6IE1vZGVsID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKG5ld0l0ZW0pO1xuICAgICAgICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnB1c2gobmV3SW5zdGFuY2UpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VDcmVhdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMubWVzc2FnZUNyZWF0ZWQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXdJbnN0YW5jZTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gQWxleCBUVC0xNzc3IHJlbmFtZSB0byBwb3N0XG4gICAqL1xuICBhZGQobW9kZWw6IE1vZGVsLCBzaG91bGRVcGRhdGVDYWNoZSA9IHRydWUpOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKGNsYXNzVG9QbGFpbihtb2RlbCksIHNob3VsZFVwZGF0ZUNhY2hlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBBbGV4IFRULTE3NzcgcmVuYW1lIHRvIHVwbG9hZFxuICAgKi9cbiAgcG9zdEZvcm0oZmlsZTogRmlsZSwgcGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge30pOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gcGFyYW1zKSB7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCBwYXJhbXNba2V5XSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKGZvcm1EYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgc2V2ZXJhbCBuZXcgaXRlbXNcbiAgICogQHBhcmFtIG1vZGVscyBBcnJheSBvZiBuZXcgaXRlbXMgZm9yIHNhdmluZ1xuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgcXVlcnkgcGFyYW1ldGVycyBmb3IgcmVxdWVzdFxuICAgKiBAVE9ETyBBbGV4IFRULTE3NzcgcmVuYW1lIHRvIHBvc3RCYXRjaFxuICAgKi9cbiAgYWRkQmF0Y2gobW9kZWxzOiBNb2RlbFtdLCBxdWVyeVBhcmFtczogb2JqZWN0ID0ge30pOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH1gLCBjbGFzc1RvUGxhaW4obW9kZWxzKSwgcXVlcnlQYXJhbXMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChuZXdJdGVtczogQmFzZU1vZGVsW10pID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdJbnN0YW5jZXM6IE1vZGVsW10gPSBuZXdJdGVtcy5tYXAoKGl0ZW06IEJhc2VNb2RlbCkgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKGl0ZW0pKTtcbiAgICAgICAgICBpZiAodGhpcy5jYWNoZSkge1xuICAgICAgICAgICAgdGhpcy5jYWNoZS5wdXNoKC4uLm5ld0luc3RhbmNlcyk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZUNyZWF0ZWRCYXRjaCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VDcmVhdGVkQmF0Y2gpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXdJbnN0YW5jZXM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBpdGVtXG4gICAqIEBwYXJhbSBtb2RlbCBFeGlzdGluZyBpbnN0YW5jZSBmb3IgdXBkYXRpbmdcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHJlcXVlc3RcbiAgICogQFRPRE8gQWxleCBUVC0xNzc3IHJlbmFtZSB0byBwdXRcbiAgICovXG4gIHVwZGF0ZShtb2RlbDogTW9kZWwsIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke21vZGVsWydpZCddfWAsIGNsYXNzVG9QbGFpbihtb2RlbCksIHF1ZXJ5UGFyYW1zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZEl0ZW06IEJhc2VNb2RlbCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRJbnN0YW5jZTogTW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UodXBkYXRlZEl0ZW0pO1xuICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgdXBkYXRlZEluc3RhbmNlKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG5cbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlVXBkYXRlZCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VVcGRhdGVkKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdXBkYXRlZEluc3RhbmNlO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgc2V2ZXJhbCBpdGVtc1xuICAgKiBAcGFyYW0gbW9kZWxzIEFycmF5IG9mIGl0ZW1zIGZvciB1cGRhdGluZ1xuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgcXVlcnkgcGFyYW1ldGVycyBmb3IgcmVxdWVzdFxuICAgKiBUT0RPIEFsZXggVFQtMTc3NyByZW5hbWUgdG8gcHV0QmF0Y2hcbiAgICovXG4gIHVwZGF0ZUJhdGNoKG1vZGVsczogTW9kZWxbXSwgcXVlcnlQYXJhbXM6IG9iamVjdCA9IHt9KTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH1gLCBjbGFzc1RvUGxhaW4obW9kZWxzKSwgcXVlcnlQYXJhbXMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1cGRhdGVkSXRlbXM6IEJhc2VNb2RlbFtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZEluc3RhbmNlczogTW9kZWxbXSA9IHVwZGF0ZWRJdGVtcy5tYXAoKGl0ZW06IEJhc2VNb2RlbCkgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKGl0ZW0pKTtcbiAgICAgICAgICB1cGRhdGVkSW5zdGFuY2VzLmZvckVhY2goKGluc3RhbmNlOiBNb2RlbCkgPT4ge1xuICAgICAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCBpbnN0YW5jZSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlVXBkYXRlZEJhdGNoKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMubWVzc2FnZVVwZGF0ZWRCYXRjaCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIHJldHVybiB1cGRhdGVkSW5zdGFuY2VzO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWxldGUgaW5zdGFuY2Ugb2YgY2xhc3NcbiAgICogQHBhcmFtIG1vZGVsIENsYXNzIGluc3RhbmNlIGZvciBkZWxldGluZ1xuICAgKi9cbiAgZGVsZXRlKG1vZGVsOiBNb2RlbCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9LyR7bW9kZWxbJ2lkJ119YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSB0aGlzLmNhY2hlLmZpbHRlcigoaXRlbTogTW9kZWwpID0+IGl0ZW1bJ2lkJ10gIT09IG1vZGVsWydpZCddKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG5cbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlRGVsZXRlZCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VEZWxldGVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgY2xhc3NcbiAgICogQHBhcmFtIG1vZGVscyBDbGFzcyBpbnN0YW5jZXMgYXJyYXkgZm9yIGRlbGV0aW5nXG4gICAqL1xuICBkZWxldGVCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vZGVsZXRlYCwgY2xhc3NUb1BsYWluKG1vZGVscykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBpZHM6IG51bWJlcltdID0gbW9kZWxzLm1hcCgobW9kZWw6IE1vZGVsKTogbnVtYmVyID0+IG1vZGVsWydpZCddKTtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdGhpcy5jYWNoZS5maWx0ZXIoKGl0ZW06IE1vZGVsKSA9PiAhaWRzLmluY2x1ZGVzKGl0ZW1bJ2lkJ10pKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG5cbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlRGVsZXRlZEJhdGNoKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMubWVzc2FnZURlbGV0ZWRCYXRjaCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjbGVhciBzZXJ2aWNlIGNhY2hlXG4gICAqL1xuICByZXNldENhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMuZmV0Y2goKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgbGlzdCBvZiBiYXNlIGNsYXNzIGluc3RhbmNlcyBkaXJlY3RseSBmcm9tIGJhY2tlbmRcbiAgICovXG4gIHByb3RlY3RlZCBmZXRjaCgpOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogQmFzZU1vZGVsW10pOiBNb2RlbFtdID0+IHtcbiAgICAgICAgICBjb25zdCBpdGVtczogTW9kZWxbXSA9ICh0aGlzLmlzSHlkcmEgPyByZXNwb25zZVsnaHlkcmE6bWVtYmVyJ10gOiByZXNwb25zZSlcbiAgICAgICAgICAgIC5tYXAoKGl0ZW06IEJhc2VNb2RlbCk6IE1vZGVsID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IGl0ZW1zO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSBzdWJqZWN0IHdpdGggY3VycmVudCBjYWNoZSBhcnJheSB2YWx1ZVxuICAgKi9cbiAgcHJvdGVjdGVkIHVwZGF0ZUNhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZS5zbGljZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyB1c2UgZXhjbHVkZUV4dHJhbmVvdXNWYWx1ZXMgd2hlbiBhbGwgbW9kZWxzIHJlZmFjdG9yZWQgKGV4cG9zZWQgYWxsIG5lZWRlZCBwcm9wZXJ0aWVzKVxuICAgKiBDcmVhdGUgbmV3IGluc3RhbmNlIG9mIGNsYXNzXG4gICAqIEBwYXJhbSBtb2RlbCBpbnN0YW5jZSB0aGF0IHdlIHdpbGwgdXNlIGFzIGNvbnN0cnVjdG9yIG9wdGlvbnNcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVNb2RlbEluc3RhbmNlKG1vZGVsOiBCYXNlTW9kZWwgfCBvYmplY3QpOiBNb2RlbCB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzcyh0aGlzLm1vZGVsQ2xhc3MsIG1vZGVsLCB7IGV4Y2x1ZGVQcmVmaXhlczogWydAJ10gfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHRoYXQgY2FsbCBhbGwgbGlzdGVuZXJzLiBFbXB0eSBieSBkZWZhdWx0LiBTaG91bGQgYmUgcmVkZWZpbmVkIGJ5IGNoaWxkIHNlcnZpY2VzIGlmIHJlcXVpcmVkXG4gICAqL1xuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7fVxufVxuIl19
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1vbGQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Jlc3QvcmVzdC1vbGQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7QUFHeEM7Ozs7OztHQU1HO0FBSUgsTUFBTSxPQUFnQixXQUFXO0lBcUIvQixZQUNZLElBQWdCLEVBQ2hCLHNCQUE4QyxFQUN2QixXQUFnQixFQUN2QyxZQUEwQjtRQUgxQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFDdkMsaUJBQVksR0FBWixZQUFZLENBQWM7UUF4QjlCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFReEMsNEJBQTRCO1FBQ2xCLGlCQUFZLEdBQTJCLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO1FBUy9FLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBUTFCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDTyxLQUFLO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FB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VSxDQUFDOzt3R0EvUEgsV0FBVyxrRkF3QnJCLGFBQWE7NEdBeEJILFdBQVcsY0FGbkIsTUFBTTsyRkFFRSxXQUFXO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBeUJJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyByZXBsYWNlIH0gZnJvbSAnLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZXZlbnQnO1xuaW1wb3J0IHsgY2xhc3NUb1BsYWluLCBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b2FzdCc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSnd0U2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGgnO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL3VzZXItcm9sZXMuZW51bSc7XG5cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBzZXJ2aWNlIHRoYXQgaW1wbGVtZW50cyBjb21tb24gc2VydmljZXMgZnVuY3Rpb25hbGl0eVxuICogYW5kIGRlc2NyaWJlIGFic3RyYWN0IG1ldGhvZHMvcHJvcGVydGllcyB0aGF0IGhhdmUgdG8gYmUgaW1wbGVtZW50ZWQgaW4gY2hpbGQgc2VydmljZXNcbiAqIE1vZGVsIC0gZW50aXR5IHNlcnZpY2UgaXMgd29ya2luZyB3aXRoXG4gKiBCYXNlTW9kZWwgLSBiYXNlIGVudGl0eSBtb2RlbCB0aGF0IGV4dGVuZHMgYnkgTW9kZWxcbiAqIEBUT0RPIFRULTE3NzcgQWxleDogcmVtb3ZlIHdoZW4gYWxsIHNlcnZpY2VzIHJlZmFjdG9yZWRcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzdFNlcnZpY2U8QmFzZU1vZGVsLCBNb2RlbCBleHRlbmRzIEJhc2VNb2RlbD4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIHByaXZhdGUgand0U2VydmljZSA9IGluamVjdChKd3RTZXJ2aWNlKTtcbiAgLy8gdXJsIHBhcnQgZm9yIHNlcnZpY2UgZW50aXR5IEFQSS4gSGF2ZSB0byBiZSBkZWZpbmVkIGluIGV4dGVuZGVkIGNsYXNzZXNcbiAgYWJzdHJhY3QgdXJsOiBzdHJpbmc7XG4gIC8vIE1vZGVsIGNsYXNzIGZvciBpbnN0YW5jZXMgY3JlYXRpbmdcbiAgYWJzdHJhY3QgbW9kZWxDbGFzcztcbiAgLy8gQFRPRE8gTWFrZSBjYWNoZSBSZWFkb25seVxuICAvLyBjYWNoZWQgYXJyYXkgb2Ygc2VydmljZSBjbGFzcyBpbnN0YW5jZXNcbiAgcHJvdGVjdGVkIGNhY2hlOiBNb2RlbFtdO1xuICAvLyBzdWJqZWN0IGZvciBzZXJ2aWNlIGNhY2hlXG4gIHByb3RlY3RlZCBjYWNoZVN1YmplY3Q6IFJlcGxheVN1YmplY3Q8TW9kZWxbXT4gPSBuZXcgUmVwbGF5U3ViamVjdDxNb2RlbFtdPigxKTtcbiAgLy8gZmxhZyBmb3Igd29yayB3aXRoIEFQSSBwbGF0Zm9ybVxuICBwcm90ZWN0ZWQgaXNIeWRyYTogYm9vbGVhbjtcbiAgbWVzc2FnZUNyZWF0ZWQ6IHN0cmluZztcbiAgbWVzc2FnZUNyZWF0ZWRCYXRjaDogc3RyaW5nO1xuICBtZXNzYWdlVXBkYXRlZDogc3RyaW5nO1xuICBtZXNzYWdlVXBkYXRlZEJhdGNoOiBzdHJpbmc7XG4gIG1lc3NhZ2VEZWxldGVkOiBzdHJpbmc7XG4gIG1lc3NhZ2VEZWxldGVkQmF0Y2g6IHN0cmluZztcbiAgcm9sZXM6IFVzZXJSb2xlc0VudW1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnksXG4gICAgcHJvdGVjdGVkIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgYmFzZSBjbGFzcyBpbnN0YW5jZXMgZGlyZWN0bHkgZnJvbSBiYWNrZW5kXG4gICAqL1xuICBwcm90ZWN0ZWQgZmV0Y2goKTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH1gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IEJhc2VNb2RlbFtdKTogTW9kZWxbXSA9PiB7XG4gICAgICAgICAgY29uc3QgaXRlbXM6IE1vZGVsW10gPSAodGhpcy5pc0h5ZHJhID8gcmVzcG9uc2VbJ2h5ZHJhOm1lbWJlciddIDogcmVzcG9uc2UpXG4gICAgICAgICAgICAubWFwKChpdGVtOiBCYXNlTW9kZWwpOiBNb2RlbCA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpO1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSBpdGVtcztcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgY2FjaGVkIGxpc3Qgb2YgYWxsIGluc3RhbmNlc1xuICAgKi9cbiAgZ2V0KCk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgdGhpcy5jYWNoZSA9IFtdO1xuICAgICAgdGhpcy5qd3RTZXJ2aWNlLmdldFVzZXIoKS5oYXNSb2xlcyh0aGlzLnJvbGVzKSA/IHRoaXMucmVzZXRDYWNoZSgpIDogdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNhY2hlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgaW5zdGFuY2UgYnkgaWQgZnJvbSBjYWNoZVxuICAgKiBAcGFyYW0gaWQgSUQgb2YgcmVxdWlyZWQgaXRlbVxuICAgKi9cbiAgZmluZEJ5SWQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoaXRlbXM6IE1vZGVsW10pID0+IGl0ZW1zLmZpbmQoKGl0ZW06IE1vZGVsKSA9PiBpdGVtWydpZCddID09PSBpZCkpXG4gICAgICApO1xuICB9XG5cbiAgZmluZChpZDogbnVtYmVyKTogTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmNhY2hlLmZpbmQoKGl0ZW06IE1vZGVsKSA9PiBpdGVtWydpZCddID09PSBpZCk7XG4gIH1cblxuICAvKipcbiAgICogYWRkIG5ldyBpbnN0YW5jZSBhbmQgdXBkYXRlIGNhY2hlXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZShkYXRhOiBvYmplY3QsIHNob3VsZFVwZGF0ZUNhY2hlID0gdHJ1ZSk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH1gLCBjbGFzc1RvUGxhaW4oZGF0YSkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChuZXdJdGVtOiBCYXNlTW9kZWwpID0+IHtcbiAgICAgICAgICBpZiAoIXNob3VsZFVwZGF0ZUNhY2hlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG5ld0luc3RhbmNlOiBNb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShuZXdJdGVtKTtcbiAgICAgICAgICBpZiAodGhpcy5jYWNoZSkge1xuICAgICAgICAgICAgdGhpcy5jYWNoZS5wdXNoKG5ld0luc3RhbmNlKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlQ3JlYXRlZCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VDcmVhdGVkKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmV3SW5zdGFuY2U7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIEFsZXggVFQtMTc3NyByZW5hbWUgdG8gcG9zdFxuICAgKi9cbiAgYWRkKG1vZGVsOiBNb2RlbCwgc2hvdWxkVXBkYXRlQ2FjaGUgPSB0cnVlKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZShjbGFzc1RvUGxhaW4obW9kZWwpLCBzaG91bGRVcGRhdGVDYWNoZSk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gQWxleCBUVC0xNzc3IHJlbmFtZSB0byB1cGxvYWRcbiAgICovXG4gIHBvc3RGb3JtKGZpbGU6IEZpbGUsIHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9KTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuICAgIGZvciAoY29uc3Qga2V5IGluIHBhcmFtcykge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKGtleSwgcGFyYW1zW2tleV0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZShmb3JtRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHNldmVyYWwgbmV3IGl0ZW1zXG4gICAqIEBwYXJhbSBtb2RlbHMgQXJyYXkgb2YgbmV3IGl0ZW1zIGZvciBzYXZpbmdcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHJlcXVlc3RcbiAgICogQFRPRE8gQWxleCBUVC0xNzc3IHJlbmFtZSB0byBwb3N0QmF0Y2hcbiAgICovXG4gIGFkZEJhdGNoKG1vZGVsczogTW9kZWxbXSwgcXVlcnlQYXJhbXM6IG9iamVjdCA9IHt9KTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgY2xhc3NUb1BsYWluKG1vZGVscyksIHF1ZXJ5UGFyYW1zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgobmV3SXRlbXM6IEJhc2VNb2RlbFtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3SW5zdGFuY2VzOiBNb2RlbFtdID0gbmV3SXRlbXMubWFwKChpdGVtOiBCYXNlTW9kZWwpID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG4gICAgICAgICAgaWYgKHRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUucHVzaCguLi5uZXdJbnN0YW5jZXMpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VDcmVhdGVkQmF0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlQ3JlYXRlZEJhdGNoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmV3SW5zdGFuY2VzO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgaXRlbVxuICAgKiBAcGFyYW0gbW9kZWwgRXhpc3RpbmcgaW5zdGFuY2UgZm9yIHVwZGF0aW5nXG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyBxdWVyeSBwYXJhbWV0ZXJzIGZvciByZXF1ZXN0XG4gICAqIEBUT0RPIEFsZXggVFQtMTc3NyByZW5hbWUgdG8gcHV0XG4gICAqL1xuICB1cGRhdGUobW9kZWw6IE1vZGVsLCBxdWVyeVBhcmFtczogb2JqZWN0ID0ge30pOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHttb2RlbFsnaWQnXX1gLCBjbGFzc1RvUGxhaW4obW9kZWwpLCBxdWVyeVBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVwZGF0ZWRJdGVtOiBCYXNlTW9kZWwpID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkSW5zdGFuY2U6IE1vZGVsID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHVwZGF0ZWRJdGVtKTtcbiAgICAgICAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHVwZGF0ZWRJbnN0YW5jZSk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZVVwZGF0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlVXBkYXRlZCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRJbnN0YW5jZTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHNldmVyYWwgaXRlbXNcbiAgICogQHBhcmFtIG1vZGVscyBBcnJheSBvZiBpdGVtcyBmb3IgdXBkYXRpbmdcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHJlcXVlc3RcbiAgICogVE9ETyBBbGV4IFRULTE3NzcgcmVuYW1lIHRvIHB1dEJhdGNoXG4gICAqL1xuICB1cGRhdGVCYXRjaChtb2RlbHM6IE1vZGVsW10sIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgY2xhc3NUb1BsYWluKG1vZGVscyksIHF1ZXJ5UGFyYW1zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZEl0ZW1zOiBCYXNlTW9kZWxbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRJbnN0YW5jZXM6IE1vZGVsW10gPSB1cGRhdGVkSXRlbXMubWFwKChpdGVtOiBCYXNlTW9kZWwpID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG4gICAgICAgICAgdXBkYXRlZEluc3RhbmNlcy5mb3JFYWNoKChpbnN0YW5jZTogTW9kZWwpID0+IHtcbiAgICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgaW5zdGFuY2UpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZVVwZGF0ZWRCYXRjaCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VVcGRhdGVkQmF0Y2gpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZEluc3RhbmNlcztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZGVsZXRlIGluc3RhbmNlIG9mIGNsYXNzXG4gICAqIEBwYXJhbSBtb2RlbCBDbGFzcyBpbnN0YW5jZSBmb3IgZGVsZXRpbmdcbiAgICovXG4gIGRlbGV0ZShtb2RlbDogTW9kZWwpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke21vZGVsWydpZCddfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdGhpcy5jYWNoZS5maWx0ZXIoKGl0ZW06IE1vZGVsKSA9PiBpdGVtWydpZCddICE9PSBtb2RlbFsnaWQnXSk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZURlbGV0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlRGVsZXRlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWxldGUgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIGNsYXNzXG4gICAqIEBwYXJhbSBtb2RlbHMgQ2xhc3MgaW5zdGFuY2VzIGFycmF5IGZvciBkZWxldGluZ1xuICAgKi9cbiAgZGVsZXRlQmF0Y2gobW9kZWxzOiBNb2RlbFtdKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9L2RlbGV0ZWAsIGNsYXNzVG9QbGFpbihtb2RlbHMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaWRzOiBudW1iZXJbXSA9IG1vZGVscy5tYXAoKG1vZGVsOiBNb2RlbCk6IG51bWJlciA9PiBtb2RlbFsnaWQnXSk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRoaXMuY2FjaGUuZmlsdGVyKChpdGVtOiBNb2RlbCkgPT4gIWlkcy5pbmNsdWRlcyhpdGVtWydpZCddKSk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZURlbGV0ZWRCYXRjaCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VEZWxldGVkQmF0Y2gpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogY2xlYXIgc2VydmljZSBjYWNoZVxuICAgKi9cbiAgcmVzZXRDYWNoZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZldGNoKCkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNhY2hlIHN1YmplY3Qgd2l0aCBjdXJyZW50IGNhY2hlIGFycmF5IHZhbHVlXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlLnNsaWNlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHVzZSBleGNsdWRlRXh0cmFuZW91c1ZhbHVlcyB3aGVuIGFsbCBtb2RlbHMgcmVmYWN0b3JlZCAoZXhwb3NlZCBhbGwgbmVlZGVkIHByb3BlcnRpZXMpXG4gICAqIENyZWF0ZSBuZXcgaW5zdGFuY2Ugb2YgY2xhc3NcbiAgICogQHBhcmFtIG1vZGVsIGluc3RhbmNlIHRoYXQgd2Ugd2lsbCB1c2UgYXMgY29uc3RydWN0b3Igb3B0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZU1vZGVsSW5zdGFuY2UobW9kZWw6IEJhc2VNb2RlbCB8IG9iamVjdCk6IE1vZGVsIHtcbiAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKHRoaXMubW9kZWxDbGFzcywgbW9kZWwsIHsgZXhjbHVkZVByZWZpeGVzOiBbJ0AnXSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdGhhdCBjYWxsIGFsbCBsaXN0ZW5lcnMuIEVtcHR5IGJ5IGRlZmF1bHQuIFNob3VsZCBiZSByZWRlZmluZWQgYnkgY2hpbGQgc2VydmljZXMgaWYgcmVxdWlyZWRcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHt9XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
1
|
+
import { inject, Inject, Injectable } from '@angular/core';
|
|
2
2
|
import { ReplaySubject } from 'rxjs';
|
|
3
3
|
import { first, map } from 'rxjs/operators';
|
|
4
4
|
import { classToPlain } from 'class-transformer';
|
|
@@ -6,6 +6,7 @@ import { ObservableModel } from '../../../db/Models';
|
|
|
6
6
|
import { AppEvent2 } from '../../../models';
|
|
7
7
|
import { toArray } from '../../../functions/array';
|
|
8
8
|
import { DataService } from '../../data.service';
|
|
9
|
+
import { JwtService } from '../../auth';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
import * as i1 from "@angular/common/http";
|
|
11
12
|
import * as i2 from "../../event";
|
|
@@ -22,6 +23,7 @@ export class RestService extends DataService {
|
|
|
22
23
|
this.http = http;
|
|
23
24
|
this.eventDispatcherService = eventDispatcherService;
|
|
24
25
|
this.environment = environment;
|
|
26
|
+
this.jwtService = inject(JwtService);
|
|
25
27
|
/**
|
|
26
28
|
* Subject for service cache
|
|
27
29
|
*/
|
|
@@ -32,6 +34,7 @@ export class RestService extends DataService {
|
|
|
32
34
|
* @TODO Alex: disable batch by default
|
|
33
35
|
*/
|
|
34
36
|
this.disabledMethods = [];
|
|
37
|
+
this.roles = [];
|
|
35
38
|
// @TODO Alex remove, bad idea to call empty method overrided in child (because it will be called with parent context)
|
|
36
39
|
this.listenEvents();
|
|
37
40
|
}
|
|
@@ -40,12 +43,10 @@ export class RestService extends DataService {
|
|
|
40
43
|
}
|
|
41
44
|
get() {
|
|
42
45
|
this.handleAccessError('get');
|
|
43
|
-
if (!this.cache
|
|
44
|
-
// prevent multiple requests in case we have several parallel get calls
|
|
45
|
-
this.isPending = true;
|
|
46
|
+
if (!this.cache) {
|
|
46
47
|
// Set cache as empty collection to avoid multiple requests before cache filled
|
|
47
|
-
this.setCache([]);
|
|
48
|
-
this.
|
|
48
|
+
this.setCache([], false);
|
|
49
|
+
this.jwtService.getUser().hasRoles(this.roles) ? this.resetCache() : this.setCache([]);
|
|
49
50
|
}
|
|
50
51
|
return this.cacheSubject.asObservable();
|
|
51
52
|
}
|
|
@@ -137,8 +138,6 @@ export class RestService extends DataService {
|
|
|
137
138
|
return this.http.get(this.apiUrl)
|
|
138
139
|
.pipe(map((response) => this.isApiPlatform ? response['hydra:member'] : toArray(response)), map((response) => {
|
|
139
140
|
this.setCache(response);
|
|
140
|
-
this.cacheSubject.next(this.cache);
|
|
141
|
-
this.isPending = false;
|
|
142
141
|
return this.cache;
|
|
143
142
|
}));
|
|
144
143
|
}
|
|
@@ -163,6 +162,7 @@ export class RestService extends DataService {
|
|
|
163
162
|
this.cache = this.cache.push(...items);
|
|
164
163
|
break;
|
|
165
164
|
case 'put':
|
|
165
|
+
// @TODO Alex old instance
|
|
166
166
|
items.forEach((item) => {
|
|
167
167
|
this.cache = this.cache.replaceBy('id', item.id, item);
|
|
168
168
|
});
|
|
@@ -173,6 +173,7 @@ export class RestService extends DataService {
|
|
|
173
173
|
case 'get':
|
|
174
174
|
this.cache = this.createCollectionInstance(this.collectionClass, items);
|
|
175
175
|
}
|
|
176
|
+
// @TODO Alex replace with setCache
|
|
176
177
|
this.cacheSubject.next(this.cache);
|
|
177
178
|
}
|
|
178
179
|
/**
|
|
@@ -207,6 +208,12 @@ export class RestService extends DataService {
|
|
|
207
208
|
});
|
|
208
209
|
});
|
|
209
210
|
}
|
|
211
|
+
setCache(data, next = true) {
|
|
212
|
+
super.setCache(data);
|
|
213
|
+
if (next) {
|
|
214
|
+
this.cacheSubject.next(this.cache);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
210
217
|
/**
|
|
211
218
|
* // @TODO Alex remove
|
|
212
219
|
* Method that call all listeners. Empty by default. Should be redefined by child services if required
|
|
@@ -224,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
|
|
|
224
231
|
type: Inject,
|
|
225
232
|
args: ['environment']
|
|
226
233
|
}] }]; } });
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvcmVzdC9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdqRCxPQUFPLEVBQWlCLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHbkQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7O0FBRS9DOzs7Ozs7R0FNRztBQUlILE1BQU0sT0FBZ0IsV0FDcEIsU0FBUSxXQUE4QztJQTRCdEQsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0I7UUFFakQsS0FBSyxFQUFFLENBQUM7UUFKRSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUF6Qm5EOztXQUVHO1FBQ08saUJBQVksR0FBbUMsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFPOUU7Ozs7V0FJRztRQUNILG9CQUFlLEdBQWlCLEVBQUUsQ0FBQztRQWFqQyxzSEFBc0g7UUFDdEgsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFjLE1B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O29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBaUNJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZXZlbnQnO1xuaW1wb3J0IHsgY2xhc3NUb1BsYWluIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBBYnN0cmFjdE1vZGVsLCBPYnNlcnZhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IHsgQXBwRXZlbnQyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IHRvQXJyYXkgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgUmVzdE1ldGhvZCB9IGZyb20gJy4vcmVzdC1tZXRob2QudHlwZSc7XG5pbXBvcnQgeyBIdHRwTWV0aG9kIH0gZnJvbSAnLi9odHRwLW1ldGhvZC50eXBlJztcbmltcG9ydCB7RGF0YVNlcnZpY2V9IGZyb20gJy4uLy4uL2RhdGEuc2VydmljZSc7XG5cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBzZXJ2aWNlIHRoYXQgaW1wbGVtZW50cyBjb21tb24gc2VydmljZXMgZnVuY3Rpb25hbGl0eVxuICogYW5kIGRlc2NyaWJlIGFic3RyYWN0IG1ldGhvZHMvcHJvcGVydGllcyB0aGF0IGhhdmUgdG8gYmUgaW1wbGVtZW50ZWQgaW4gY2hpbGQgc2VydmljZXNcbiAqIE1vZGVsIC0gZW50aXR5IHNlcnZpY2UgaXMgd29ya2luZyB3aXRoXG4gKiBCYXNlTW9kZWwgLSBiYXNlIGVudGl0eSBtb2RlbCB0aGF0IGV4dGVuZHMgYnkgTW9kZWxcbiAqIENvbGxlY3Rpb25Nb2RlbCAtIGVudGl0eSBjb2xsZWN0aW9uIGNsYXNzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlc3RTZXJ2aWNlPEJhc2VNb2RlbCwgTW9kZWwgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsLCBDb2xsZWN0aW9uTW9kZWwgZXh0ZW5kcyBDb2xsZWN0aW9uPE1vZGVsPj5cbiAgZXh0ZW5kcyBEYXRhU2VydmljZTxCYXNlTW9kZWwsIE1vZGVsLCBDb2xsZWN0aW9uTW9kZWw+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICAvKipcbiAgICogVXJsIHBhcnQgZm9yIHNlcnZpY2UgZW50aXR5IEFQSVxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGVuZHBvaW50VXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN1YmplY3QgZm9yIHNlcnZpY2UgY2FjaGVcbiAgICovXG4gIHByb3RlY3RlZCBjYWNoZVN1YmplY3Q6IFJlcGxheVN1YmplY3Q8Q29sbGVjdGlvbk1vZGVsPiA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xuXG4gIC8qKlxuICAgKiBGbGFnIGZvciB3b3JrIHdpdGggQVBJIHBsYXRmb3JtXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNBcGlQbGF0Zm9ybTogYm9vbGVhbjtcblxuICAvKipcbiAgICogTGlzdCBvZiBtZXRob2RzIHVuYXZhaWxhYmxlIGZvciBjdXJyZW50IEFQSVxuICAgKiBAVE9ETyBBbGV4OiBhZGQgYW5kIGhhbmRsZSBlbmFibGVkIG1ldGhvZHMgdG9vXG4gICAqIEBUT0RPIEFsZXg6IGRpc2FibGUgYmF0Y2ggYnkgZGVmYXVsdFxuICAgKi9cbiAgZGlzYWJsZWRNZXRob2RzOiBSZXN0TWV0aG9kW10gPSBbXTtcblxuICAvKipcbiAgICogRmxhZyBzaG93IGRhdGEgaXMgZmV0Y2hpbmcgZnJvbSBiYWNrZW5kXG4gICAqL1xuICBpc1BlbmRpbmc6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIC8vIEBUT0RPIEFsZXggcmVtb3ZlLCBiYWQgaWRlYSB0byBjYWxsIGVtcHR5IG1ldGhvZCBvdmVycmlkZWQgaW4gY2hpbGQgKGJlY2F1c2UgaXQgd2lsbCBiZSBjYWxsZWQgd2l0aCBwYXJlbnQgY29udGV4dClcbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBhcGlVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLmVuZHBvaW50VXJpfWA7XG4gIH1cblxuICBnZXQoKTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uTW9kZWw+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdnZXQnKTtcblxuXG4gICAgaWYgKCF0aGlzLmNhY2hlICYmICF0aGlzLmlzUGVuZGluZykge1xuICAgICAgLy8gcHJldmVudCBtdWx0aXBsZSByZXF1ZXN0cyBpbiBjYXNlIHdlIGhhdmUgc2V2ZXJhbCBwYXJhbGxlbCBnZXQgY2FsbHNcbiAgICAgIHRoaXMuaXNQZW5kaW5nID0gdHJ1ZTtcbiAgICAgIC8vIFNldCBjYWNoZSBhcyBlbXB0eSBjb2xsZWN0aW9uIHRvIGF2b2lkIG11bHRpcGxlIHJlcXVlc3RzIGJlZm9yZSBjYWNoZSBmaWxsZWRcbiAgICAgIHRoaXMuc2V0Q2FjaGUoW10pO1xuICAgICAgdGhpcy5mZXRjaCgpLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2FjaGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0U2luZ2xlKCk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdnZXQnKTtcblxuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUoXG4gICAgICBtYXAoKGNvbGxlY3Rpb246IENvbGxlY3Rpb25Nb2RlbCkgPT4gY29sbGVjdGlvbi5maXJzdClcbiAgICApO1xuICB9XG5cbiAgZ2V0QXJyYXkoKTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCkucGlwZShtYXAoKGNvbGxlY3Rpb246IENvbGxlY3Rpb25Nb2RlbCkgPT4gY29sbGVjdGlvbi50b0FycmF5KCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgTW9kZWwgaW5zdGFuY2UgaW4gZGF0YWJhc2VcbiAgICovXG4gIHBvc3QobW9kZWw6IE1vZGVsKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ3Bvc3QnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmFwaVVybCwgY2xhc3NUb1BsYWluKG1vZGVsKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBCYXNlTW9kZWwpID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHJlc3BvbnNlKTtcbiAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtyZXN1bHRdLCAncG9zdCcpO1xuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIG11bHRpcGxlIG5ldyBNb2RlbCBpbnN0YW5jZXMgaW4gZGF0YWJhc2VcbiAgICovXG4gIHBvc3RCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdwb3N0QmF0Y2gnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmFwaVVybCwgY2xhc3NUb1BsYWluKG1vZGVscykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogQmFzZU1vZGVsW10pID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsW10gPSByZXNwb25zZS5tYXAoKGl0ZW06IEJhc2VNb2RlbCk6IE1vZGVsID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG4gICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShyZXN1bHQsICdwb3N0Jyk7XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgYW4gZXhpc3RpbmcgTW9kZWwgaW5zdGFuY2UgaW4gZGF0YWJhc2VcbiAgICovXG4gIHB1dChtb2RlbDogTW9kZWwsIHBhdGg6IHN0cmluZyA9IGAke3RoaXMuYXBpVXJsfS8ke21vZGVsLmlkfWApOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcigncHV0Jyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChwYXRoLCBjbGFzc1RvUGxhaW4obW9kZWwpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IEJhc2VNb2RlbCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogTW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UocmVzcG9uc2UpO1xuICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW3Jlc3VsdF0sICdwdXQnKTtcblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBtdWx0aXBsZSBleGlzdGluZyBNb2RlbCBpbnN0YW5jZXMgaW4gZGF0YWJhc2VcbiAgICovXG4gIHB1dEJhdGNoKG1vZGVsczogTW9kZWxbXSk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ3B1dEJhdGNoJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLmFwaVVybCwgY2xhc3NUb1BsYWluKG1vZGVscykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogQmFzZU1vZGVsW10pID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsW10gPSByZXNwb25zZS5tYXAoKGl0ZW06IEJhc2VNb2RlbCk6IE1vZGVsID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG4gICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShyZXN1bHQsICdwdXQnKTtcblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIE1vZGVsIGluc3RhbmNlIGZyb20gZGF0YWJhc2VcbiAgICovXG4gIGRlbGV0ZShtb2RlbDogTW9kZWwpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdkZWxldGUnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuYXBpVXJsfS8ke21vZGVsLmlkfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFttb2RlbF0sICdkZWxldGUnKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIG11bHRpcGxlIE1vZGVsIGluc3RhbmNlcyBmcm9tIGRhdGFiYXNlXG4gICAqL1xuICBkZWxldGVCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdkZWxldGVCYXRjaCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXBpVXJsfS9kZWxldGVgLCBjbGFzc1RvUGxhaW4obW9kZWxzKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UobW9kZWxzLCAnZGVsZXRlJyk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggY2FjaGUgd2l0aCBhY3R1YWwgYmFja2VuZCBkYXRhXG4gICAqL1xuICByZXNldENhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMuZmV0Y2goKS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBkYXRhIGZyb20gYmFja2VuZCBhbmQgZmlsbCB0aGUgY2FjaGVcbiAgICovXG4gIHByb3RlY3RlZCBmZXRjaCgpOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25Nb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuYXBpVXJsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4gdGhpcy5pc0FwaVBsYXRmb3JtID8gcmVzcG9uc2VbJ2h5ZHJhOm1lbWJlciddIDogdG9BcnJheShyZXNwb25zZSkpLFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBCYXNlTW9kZWxbXSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0Q2FjaGUocmVzcG9uc2UpO1xuICAgICAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgICAgICAgdGhpcy5pc1BlbmRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgIHJldHVybiB0aGlzLmNhY2hlO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgcmVzcG9uc2UgZGF0YSAtIHVwZGF0ZSBjYWNoZSBhbmQgZGlzcGF0Y2ggZXZlbnQgaWYgaXQgaXMgbmVlZGVkXG4gICAqL1xuICBoYW5kbGVSZXNwb25zZShyZXNwb25zZTogTW9kZWxbXSwgbWV0aG9kOiBIdHRwTWV0aG9kKSB7XG4gICAgaWYgKHRoaXMuZ2V0Q2FjaGUoKSkge1xuICAgICAgdGhpcy51cGRhdGVDYWNoZShyZXNwb25zZSwgbWV0aG9kKTtcbiAgICB9XG5cbiAgICAvLyBkaXNwYXRjaCBldmVudCBmb3IgaW50ZXJlc3RlZCBzZXJ2aWNlc1xuICAgIGlmIChyZXNwb25zZVswXSBpbnN0YW5jZW9mIE9ic2VydmFibGVNb2RlbCkge1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG1ldGhvZCwgcmVzcG9uc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgY2FjaGUgd2l0aCBwYXNzZWQgaXRlbXMuIEFkZC9VcGRhdGUgZGV0ZWN0cyBhdXRvbWF0aWNhbGx5LCBEZWxldGUgdmlhIG9wdGlvbmFsIGZsYWdcbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVDYWNoZShpdGVtczogTW9kZWxbXSwgbWV0aG9kOiBIdHRwTWV0aG9kKTogdm9pZCB7XG4gICAgc3dpdGNoIChtZXRob2QpIHtcbiAgICAgIGNhc2UgJ3Bvc3QnOlxuICAgICAgICB0aGlzLmNhY2hlID0gdGhpcy5jYWNoZS5wdXNoKC4uLml0ZW1zKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3B1dCc6XG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW06IE1vZGVsKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRoaXMuY2FjaGUucmVwbGFjZUJ5KCdpZCcsIGl0ZW0uaWQsIGl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIHRoaXMuY2FjaGUgPSB0aGlzLmNhY2hlLnJlbW92ZUJ5KCdpZCcsIGl0ZW1zLm1hcCgoaXRlbTogTW9kZWwpID0+IGl0ZW0uaWQpKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2dldCc6XG4gICAgICAgIHRoaXMuY2FjaGUgPSB0aGlzLmNyZWF0ZUNvbGxlY3Rpb25JbnN0YW5jZSh0aGlzLmNvbGxlY3Rpb25DbGFzcywgaXRlbXMpO1xuICAgIH1cblxuICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYW5kIGRpc3BhdGNoIHJlc3QgZXZlbnRcbiAgICovXG4gIHByb3RlY3RlZCBkaXNwYXRjaEV2ZW50KG1ldGhvZDogSHR0cE1ldGhvZCwgaXRlbXM6IE1vZGVsW10pOiB2b2lkIHtcbiAgICBjb25zdCBldmVudE5hbWU6IHN0cmluZyA9ICh0aGlzLm1vZGVsQ2xhc3MgYXMgdHlwZW9mIE9ic2VydmFibGVNb2RlbCkuZ2V0RXZlbnROYW1lKG1ldGhvZCk7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoMihuZXcgQXBwRXZlbnQyKGV2ZW50TmFtZSwgaXRlbXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBtZXRob2QgaXMgbm90IGRpc2FibGVkLiBUaHJvdyBleGNlcHRpb24gb3RoZXJ3aXNlLlxuICAgKiBTb21lIGVudGl0aWVzIGRvZXMgbm90IGhhdmUgZW5kcG9pbnRzIGZvciBhbGwgbWV0aG9kcy5cbiAgICovXG4gIHByaXZhdGUgaGFuZGxlQWNjZXNzRXJyb3IobWV0aG9kOiBSZXN0TWV0aG9kKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkTWV0aG9kcy5pbmNsdWRlcyhtZXRob2QpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBNZXRob2QgJHttZXRob2R9KCkgaXMgbm90IGFsbG93ZWQgZm9yICR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBodHRwIGV2ZW50cyBhbmQgcnVuIGNhbGxiYWNrLlxuICAgKiBDU0UgLSBDbGVpbnQgU2VudCBFdmVudHNcbiAgICogQHBhcmFtIG1vZGVsQ2xhc3NcbiAgICogQHBhcmFtIG1ldGhvZHMgVGhlIGxpc3Qgb2YgaHR0cCBtZXRob2RzIHNob3VsZCBiZSBsaXN0ZW5lZCBmb3JcbiAgICogQHBhcmFtIGNhbGxiYWNrIFRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiBldmVudCB0cmlnZ2VyZWRcbiAgICovXG4gIHByb3RlY3RlZCBsaXN0ZW5DU0UobW9kZWxDbGFzczogdHlwZW9mIE9ic2VydmFibGVNb2RlbCwgbWV0aG9kczogSHR0cE1ldGhvZFtdLCBjYWxsYmFjazogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICBjYWxsYmFjayA9IGNhbGxiYWNrLmJpbmQodGhpcyk7XG5cbiAgICBtZXRob2RzLmZvckVhY2goKG1ldGhvZDogSHR0cE1ldGhvZCkgPT4ge1xuICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uMihtb2RlbENsYXNzLmdldEV2ZW50TmFtZShtZXRob2QpKS5zdWJzY3JpYmUoKGRhdGE6IE9ic2VydmFibGVNb2RlbFtdKSA9PiB7XG4gICAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgICAgfSk7XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiAvLyBAVE9ETyBBbGV4IHJlbW92ZVxuICAgKiBNZXRob2QgdGhhdCBjYWxsIGFsbCBsaXN0ZW5lcnMuIEVtcHR5IGJ5IGRlZmF1bHQuIFNob3VsZCBiZSByZWRlZmluZWQgYnkgY2hpbGQgc2VydmljZXMgaWYgcmVxdWlyZWRcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHt9XG59XG4iXX0=
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvcmVzdC9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHakQsT0FBTyxFQUFpQixlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR25ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7O0FBR3hDOzs7Ozs7R0FNRztBQUlILE1BQU0sT0FBZ0IsV0FDcEIsU0FBUSxXQUE4QztJQXNCdEQsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0I7UUFFakQsS0FBSyxFQUFFLENBQUM7UUFKRSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUF4QjNDLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFLeEM7O1dBRUc7UUFDTyxpQkFBWSxHQUFtQyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUs5RTs7OztXQUlHO1FBQ0gsb0JBQWUsR0FBaUIsRUFBRSxDQUFDO1FBQ25DLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBUTFCLHNIQUFzSDtRQUN0SCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQWMsTUFBTTtRQUNsQixPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRCxHQUFHO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsK0VBQStFO1lBQy9FLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3hGO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlCLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDcEIsR0FBRyxDQUFDLENBQUMsVUFBMkIsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUN2RCxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBMkIsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLENBQUMsS0FBWTtRQUNmLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFtQixFQUFFLEVBQUU7WUFDMUIsTUFBTSxNQUFNLEdBQVUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUV0QyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLE1BQWU7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDckQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQXFCLEVBQUUsRUFBRTtZQUM1QixNQUFNLE1BQU0sR0FBWSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBZSxFQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNqRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUVwQyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLEtBQVksRUFBRSxPQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQzNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDNUMsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQW1CLEVBQUUsRUFBRTtZQUMxQixNQUFNLE1BQU0sR0FBVSxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXJDLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsTUFBZTtRQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNwRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBcUIsRUFBRSxFQUFFO1lBQzVCLE1BQU0sTUFBTSxHQUFZLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFlLEVBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2pHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRW5DLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsS0FBWTtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDO2FBQ2xELElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXLENBQUMsTUFBZTtRQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLFNBQVMsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDakUsSUFBSSxDQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDTyxLQUFLO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQzlCLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUM1RixHQUFHLENBQUMsQ0FBQyxRQUFxQixFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxRQUFpQixFQUFFLE1BQWtCO1FBQ2xELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3BDO1FBRUQseUNBQXlDO1FBQ3pDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLGVBQWUsRUFBRTtZQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNPLFdBQVcsQ0FBQyxLQUFjLEVBQUUsTUFBa0I7UUFDdEQsUUFBUSxNQUFNLEVBQUU7WUFDZCxLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO2dCQUN2QyxNQUFNO1lBRVIsS0FBSyxLQUFLO2dCQUNSLDBCQUEwQjtnQkFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVcsRUFBRSxFQUFFO29CQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN6RCxDQUFDLENBQUMsQ0FBQztnQkFDSCxNQUFNO1lBRVIsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM1RSxNQUFNO1lBRVIsS0FBSyxLQUFLO2dCQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDM0U7UUFFRCxtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNPLGFBQWEsQ0FBQyxNQUFrQixFQUFFLEtBQWM7UUFDeEQsTUFBTSxTQUFTLEdBQVksSUFBSSxDQUFDLFVBQXFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGlCQUFpQixDQUFDLE1BQWtCO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMxQyxPQUFPO1NBQ1I7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsTUFBTSx5QkFBeUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxTQUFTLENBQUMsVUFBa0MsRUFBRSxPQUFxQixFQUFFLFFBQWtCO1FBQy9GLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9CLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFrQixFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBdUIsRUFBRSxFQUFFO2dCQUNyRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBVyxFQUFFLElBQUksR0FBRyxJQUFJO1FBQy9CLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckIsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxLQUFVLENBQUM7O3dHQTlRSCxXQUFXLGtGQTBCckIsYUFBYTs0R0ExQkgsV0FBVyxjQUZuQixNQUFNOzJGQUVFLFdBQVc7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkEyQkksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0LCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2V2ZW50JztcbmltcG9ydCB7IGNsYXNzVG9QbGFpbiB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RNb2RlbCwgT2JzZXJ2YWJsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IEFwcEV2ZW50MiB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IFJlc3RNZXRob2QgfSBmcm9tICcuL3Jlc3QtbWV0aG9kLnR5cGUnO1xuaW1wb3J0IHsgSHR0cE1ldGhvZCB9IGZyb20gJy4vaHR0cC1tZXRob2QudHlwZSc7XG5pbXBvcnQge0RhdGFTZXJ2aWNlfSBmcm9tICcuLi8uLi9kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgSnd0U2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGgnO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL3VzZXItcm9sZXMuZW51bSc7XG5cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBzZXJ2aWNlIHRoYXQgaW1wbGVtZW50cyBjb21tb24gc2VydmljZXMgZnVuY3Rpb25hbGl0eVxuICogYW5kIGRlc2NyaWJlIGFic3RyYWN0IG1ldGhvZHMvcHJvcGVydGllcyB0aGF0IGhhdmUgdG8gYmUgaW1wbGVtZW50ZWQgaW4gY2hpbGQgc2VydmljZXNcbiAqIE1vZGVsIC0gZW50aXR5IHNlcnZpY2UgaXMgd29ya2luZyB3aXRoXG4gKiBCYXNlTW9kZWwgLSBiYXNlIGVudGl0eSBtb2RlbCB0aGF0IGV4dGVuZHMgYnkgTW9kZWxcbiAqIENvbGxlY3Rpb25Nb2RlbCAtIGVudGl0eSBjb2xsZWN0aW9uIGNsYXNzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlc3RTZXJ2aWNlPEJhc2VNb2RlbCwgTW9kZWwgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsLCBDb2xsZWN0aW9uTW9kZWwgZXh0ZW5kcyBDb2xsZWN0aW9uPE1vZGVsPj5cbiAgZXh0ZW5kcyBEYXRhU2VydmljZTxCYXNlTW9kZWwsIE1vZGVsLCBDb2xsZWN0aW9uTW9kZWw+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBwcml2YXRlIGp3dFNlcnZpY2UgPSBpbmplY3QoSnd0U2VydmljZSk7XG4gIC8qKlxuICAgKiBVcmwgcGFydCBmb3Igc2VydmljZSBlbnRpdHkgQVBJXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZW5kcG9pbnRVcmk6IHN0cmluZztcbiAgLyoqXG4gICAqIFN1YmplY3QgZm9yIHNlcnZpY2UgY2FjaGVcbiAgICovXG4gIHByb3RlY3RlZCBjYWNoZVN1YmplY3Q6IFJlcGxheVN1YmplY3Q8Q29sbGVjdGlvbk1vZGVsPiA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xuICAvKipcbiAgICogRmxhZyBmb3Igd29yayB3aXRoIEFQSSBwbGF0Zm9ybVxuICAgKi9cbiAgcHJvdGVjdGVkIGlzQXBpUGxhdGZvcm06IGJvb2xlYW47XG4gIC8qKlxuICAgKiBMaXN0IG9mIG1ldGhvZHMgdW5hdmFpbGFibGUgZm9yIGN1cnJlbnQgQVBJXG4gICAqIEBUT0RPIEFsZXg6IGFkZCBhbmQgaGFuZGxlIGVuYWJsZWQgbWV0aG9kcyB0b29cbiAgICogQFRPRE8gQWxleDogZGlzYWJsZSBiYXRjaCBieSBkZWZhdWx0XG4gICAqL1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFtdO1xuICByb2xlczogVXNlclJvbGVzRW51bVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIC8vIEBUT0RPIEFsZXggcmVtb3ZlLCBiYWQgaWRlYSB0byBjYWxsIGVtcHR5IG1ldGhvZCBvdmVycmlkZWQgaW4gY2hpbGQgKGJlY2F1c2UgaXQgd2lsbCBiZSBjYWxsZWQgd2l0aCBwYXJlbnQgY29udGV4dClcbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBhcGlVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLmVuZHBvaW50VXJpfWA7XG4gIH1cblxuICBnZXQoKTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uTW9kZWw+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdnZXQnKTtcblxuICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgLy8gU2V0IGNhY2hlIGFzIGVtcHR5IGNvbGxlY3Rpb24gdG8gYXZvaWQgbXVsdGlwbGUgcmVxdWVzdHMgYmVmb3JlIGNhY2hlIGZpbGxlZFxuICAgICAgdGhpcy5zZXRDYWNoZShbXSwgZmFsc2UpO1xuICAgICAgdGhpcy5qd3RTZXJ2aWNlLmdldFVzZXIoKS5oYXNSb2xlcyh0aGlzLnJvbGVzKSA/IHRoaXMucmVzZXRDYWNoZSgpIDogdGhpcy5zZXRDYWNoZShbXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2FjaGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0U2luZ2xlKCk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdnZXQnKTtcblxuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUoXG4gICAgICBtYXAoKGNvbGxlY3Rpb246IENvbGxlY3Rpb25Nb2RlbCkgPT4gY29sbGVjdGlvbi5maXJzdClcbiAgICApO1xuICB9XG5cbiAgZ2V0QXJyYXkoKTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCkucGlwZShtYXAoKGNvbGxlY3Rpb246IENvbGxlY3Rpb25Nb2RlbCkgPT4gY29sbGVjdGlvbi50b0FycmF5KCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgTW9kZWwgaW5zdGFuY2UgaW4gZGF0YWJhc2VcbiAgICovXG4gIHBvc3QobW9kZWw6IE1vZGVsKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ3Bvc3QnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmFwaVVybCwgY2xhc3NUb1BsYWluKG1vZGVsKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBCYXNlTW9kZWwpID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHJlc3BvbnNlKTtcbiAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtyZXN1bHRdLCAncG9zdCcpO1xuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIG11bHRpcGxlIG5ldyBNb2RlbCBpbnN0YW5jZXMgaW4gZGF0YWJhc2VcbiAgICovXG4gIHBvc3RCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdwb3N0QmF0Y2gnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmFwaVVybCwgY2xhc3NUb1BsYWluKG1vZGVscykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogQmFzZU1vZGVsW10pID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsW10gPSByZXNwb25zZS5tYXAoKGl0ZW06IEJhc2VNb2RlbCk6IE1vZGVsID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG4gICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShyZXN1bHQsICdwb3N0Jyk7XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgYW4gZXhpc3RpbmcgTW9kZWwgaW5zdGFuY2UgaW4gZGF0YWJhc2VcbiAgICovXG4gIHB1dChtb2RlbDogTW9kZWwsIHBhdGg6IHN0cmluZyA9IGAke3RoaXMuYXBpVXJsfS8ke21vZGVsLmlkfWApOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcigncHV0Jyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChwYXRoLCBjbGFzc1RvUGxhaW4obW9kZWwpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IEJhc2VNb2RlbCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogTW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UocmVzcG9uc2UpO1xuICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW3Jlc3VsdF0sICdwdXQnKTtcblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBtdWx0aXBsZSBleGlzdGluZyBNb2RlbCBpbnN0YW5jZXMgaW4gZGF0YWJhc2VcbiAgICovXG4gIHB1dEJhdGNoKG1vZGVsczogTW9kZWxbXSk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ3B1dEJhdGNoJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLmFwaVVybCwgY2xhc3NUb1BsYWluKG1vZGVscykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogQmFzZU1vZGVsW10pID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsW10gPSByZXNwb25zZS5tYXAoKGl0ZW06IEJhc2VNb2RlbCk6IE1vZGVsID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG4gICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShyZXN1bHQsICdwdXQnKTtcblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIE1vZGVsIGluc3RhbmNlIGZyb20gZGF0YWJhc2VcbiAgICovXG4gIGRlbGV0ZShtb2RlbDogTW9kZWwpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdkZWxldGUnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuYXBpVXJsfS8ke21vZGVsLmlkfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFttb2RlbF0sICdkZWxldGUnKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIG11bHRpcGxlIE1vZGVsIGluc3RhbmNlcyBmcm9tIGRhdGFiYXNlXG4gICAqL1xuICBkZWxldGVCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdkZWxldGVCYXRjaCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXBpVXJsfS9kZWxldGVgLCBjbGFzc1RvUGxhaW4obW9kZWxzKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UobW9kZWxzLCAnZGVsZXRlJyk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggY2FjaGUgd2l0aCBhY3R1YWwgYmFja2VuZCBkYXRhXG4gICAqL1xuICByZXNldENhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMuZmV0Y2goKS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBkYXRhIGZyb20gYmFja2VuZCBhbmQgZmlsbCB0aGUgY2FjaGVcbiAgICovXG4gIHByb3RlY3RlZCBmZXRjaCgpOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25Nb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuYXBpVXJsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4gdGhpcy5pc0FwaVBsYXRmb3JtID8gcmVzcG9uc2VbJ2h5ZHJhOm1lbWJlciddIDogdG9BcnJheShyZXNwb25zZSkpLFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBCYXNlTW9kZWxbXSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0Q2FjaGUocmVzcG9uc2UpO1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGU7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSByZXNwb25zZSBkYXRhIC0gdXBkYXRlIGNhY2hlIGFuZCBkaXNwYXRjaCBldmVudCBpZiBpdCBpcyBuZWVkZWRcbiAgICovXG4gIGhhbmRsZVJlc3BvbnNlKHJlc3BvbnNlOiBNb2RlbFtdLCBtZXRob2Q6IEh0dHBNZXRob2QpIHtcbiAgICBpZiAodGhpcy5nZXRDYWNoZSgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNhY2hlKHJlc3BvbnNlLCBtZXRob2QpO1xuICAgIH1cblxuICAgIC8vIGRpc3BhdGNoIGV2ZW50IGZvciBpbnRlcmVzdGVkIHNlcnZpY2VzXG4gICAgaWYgKHJlc3BvbnNlWzBdIGluc3RhbmNlb2YgT2JzZXJ2YWJsZU1vZGVsKSB7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobWV0aG9kLCByZXNwb25zZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSB3aXRoIHBhc3NlZCBpdGVtcy4gQWRkL1VwZGF0ZSBkZXRlY3RzIGF1dG9tYXRpY2FsbHksIERlbGV0ZSB2aWEgb3B0aW9uYWwgZmxhZ1xuICAgKi9cbiAgcHJvdGVjdGVkIHVwZGF0ZUNhY2hlKGl0ZW1zOiBNb2RlbFtdLCBtZXRob2Q6IEh0dHBNZXRob2QpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKG1ldGhvZCkge1xuICAgICAgY2FzZSAncG9zdCc6XG4gICAgICAgIHRoaXMuY2FjaGUgPSB0aGlzLmNhY2hlLnB1c2goLi4uaXRlbXMpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncHV0JzpcbiAgICAgICAgLy8gQFRPRE8gQWxleCBvbGQgaW5zdGFuY2VcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbTogTW9kZWwpID0+IHtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdGhpcy5jYWNoZS5yZXBsYWNlQnkoJ2lkJywgaXRlbS5pZCwgaXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgdGhpcy5jYWNoZSA9IHRoaXMuY2FjaGUucmVtb3ZlQnkoJ2lkJywgaXRlbXMubWFwKChpdGVtOiBNb2RlbCkgPT4gaXRlbS5pZCkpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnZ2V0JzpcbiAgICAgICAgdGhpcy5jYWNoZSA9IHRoaXMuY3JlYXRlQ29sbGVjdGlvbkluc3RhbmNlKHRoaXMuY29sbGVjdGlvbkNsYXNzLCBpdGVtcyk7XG4gICAgfVxuXG4gICAgLy8gQFRPRE8gQWxleCByZXBsYWNlIHdpdGggc2V0Q2FjaGVcbiAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGFuZCBkaXNwYXRjaCByZXN0IGV2ZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgZGlzcGF0Y2hFdmVudChtZXRob2Q6IEh0dHBNZXRob2QsIGl0ZW1zOiBNb2RlbFtdKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnROYW1lOiBzdHJpbmcgPSAodGhpcy5tb2RlbENsYXNzIGFzIHR5cGVvZiBPYnNlcnZhYmxlTW9kZWwpLmdldEV2ZW50TmFtZShtZXRob2QpO1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaDIobmV3IEFwcEV2ZW50MihldmVudE5hbWUsIGl0ZW1zKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgbWV0aG9kIGlzIG5vdCBkaXNhYmxlZC4gVGhyb3cgZXhjZXB0aW9uIG90aGVyd2lzZS5cbiAgICogU29tZSBlbnRpdGllcyBkb2VzIG5vdCBoYXZlIGVuZHBvaW50cyBmb3IgYWxsIG1ldGhvZHMuXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUFjY2Vzc0Vycm9yKG1ldGhvZDogUmVzdE1ldGhvZCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZE1ldGhvZHMuaW5jbHVkZXMobWV0aG9kKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgTWV0aG9kICR7bWV0aG9kfSgpIGlzIG5vdCBhbGxvd2VkIGZvciAke3RoaXMuY29uc3RydWN0b3IubmFtZX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gaHR0cCBldmVudHMgYW5kIHJ1biBjYWxsYmFjay5cbiAgICogQ1NFIC0gQ2xlaW50IFNlbnQgRXZlbnRzXG4gICAqIEBwYXJhbSBtb2RlbENsYXNzXG4gICAqIEBwYXJhbSBtZXRob2RzIFRoZSBsaXN0IG9mIGh0dHAgbWV0aG9kcyBzaG91bGQgYmUgbGlzdGVuZWQgZm9yXG4gICAqIEBwYXJhbSBjYWxsYmFjayBUaGUgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gZXZlbnQgdHJpZ2dlcmVkXG4gICAqL1xuICBwcm90ZWN0ZWQgbGlzdGVuQ1NFKG1vZGVsQ2xhc3M6IHR5cGVvZiBPYnNlcnZhYmxlTW9kZWwsIG1ldGhvZHM6IEh0dHBNZXRob2RbXSwgY2FsbGJhY2s6IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgY2FsbGJhY2sgPSBjYWxsYmFjay5iaW5kKHRoaXMpO1xuXG4gICAgbWV0aG9kcy5mb3JFYWNoKChtZXRob2Q6IEh0dHBNZXRob2QpID0+IHtcbiAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbjIobW9kZWxDbGFzcy5nZXRFdmVudE5hbWUobWV0aG9kKSkuc3Vic2NyaWJlKChkYXRhOiBPYnNlcnZhYmxlTW9kZWxbXSkgPT4ge1xuICAgICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICAgIH0pO1xuICAgIH0pXG4gIH1cblxuICBzZXRDYWNoZShkYXRhOiBhbnlbXSwgbmV4dCA9IHRydWUpOiB2b2lkIHtcbiAgICBzdXBlci5zZXRDYWNoZShkYXRhKTtcblxuICAgIGlmIChuZXh0KSB7XG4gICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAvLyBAVE9ETyBBbGV4IHJlbW92ZVxuICAgKiBNZXRob2QgdGhhdCBjYWxsIGFsbCBsaXN0ZW5lcnMuIEVtcHR5IGJ5IGRlZmF1bHQuIFNob3VsZCBiZSByZWRlZmluZWQgYnkgY2hpbGQgc2VydmljZXMgaWYgcmVxdWlyZWRcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHt9XG59XG4iXX0=
|