@sambath999/localize-token 12.3.4 → 12.3.5

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.
@@ -15,9 +15,10 @@ export class LocalizeApiService {
15
15
  this.httpClient = httpClient;
16
16
  this.localizeTokenService = localizeTokenService;
17
17
  this.destroy$ = new Subject();
18
+ this.configSubject = new BehaviorSubject({});
18
19
  this.isRequestingSubject = new BehaviorSubject(false);
19
20
  this.isResolvingStartupSubject = new BehaviorSubject(false);
20
- this.config = {
21
+ this.defaultConfig = {
21
22
  waitEachRequest: { milliseconds: 0 },
22
23
  enableRequestCancellation: true,
23
24
  retryOptions: {
@@ -47,14 +48,17 @@ export class LocalizeApiService {
47
48
  set accessToken(value) { this.localizeTokenService.accessToken = value; }
48
49
  get refreshToken() { return this.localizeTokenService.refreshToken; }
49
50
  get tenantToken() { return this.localizeTokenService.tenantToken(this.config.tenantTokenName); }
51
+ get config() {
52
+ this.validateConfig(this.config);
53
+ return this.configSubject.value;
54
+ }
50
55
  /**
51
56
  * Initialize the API service.
52
57
  * @param apiConfigs - The API configurations.
53
58
  */
54
59
  init(apiConfigs) {
55
- console.warn('LocalizeApiService is initialized.');
56
- this.config = Object.assign(Object.assign({}, this.config), apiConfigs);
57
- this.validateConfig(this.config);
60
+ console.log('LocalizeApiService is initialized.');
61
+ this.configSubject.next(Object.assign(Object.assign({}, this.defaultConfig), apiConfigs));
58
62
  }
59
63
  cancelPendingRequests() {
60
64
  this.config.enableRequestCancellation
@@ -63,6 +67,9 @@ export class LocalizeApiService {
63
67
  ngOnDestroy() {
64
68
  this.destroy$.next();
65
69
  this.destroy$.complete();
70
+ // this.isResolvingStartupSubject.complete();
71
+ // this.isRequestingSubject.complete();
72
+ // this.configSubject.complete();
66
73
  }
67
74
  request(baseUrl, path, method = EMethod.GET, reqBody = null, reqHeaders) {
68
75
  return __awaiter(this, void 0, void 0, function* () {
@@ -204,4 +211,4 @@ LocalizeApiService.ctorParameters = () => [
204
211
  { type: HttpClient },
205
212
  { type: LocalizeTokenService }
206
213
  ];
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbG9jYWxpemUtdG9rZW4vbG9jYWxpemUuYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBcUIsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFvQyxPQUFPLEVBQVcsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBRXpDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7QUFLMUMsTUFBTSxPQUFPLGtCQUFrQjtJQW1DN0IsWUFBcUIsVUFBc0IsRUFDeEIsb0JBQTBDO1FBRHhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDeEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQW5DNUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDdkMsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDMUQsOEJBQXlCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFlakUsV0FBTSxHQUFpQztZQUM3QyxlQUFlLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFO1lBQ3BDLHlCQUF5QixFQUFFLElBQUk7WUFFL0IsWUFBWSxFQUFFO2dCQUNaLFVBQVUsRUFBRSxJQUFJO2dC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QUFvQixDQUFDLENBQUM7YUFDOUQ7UUFFSCxDQUFDO0tBQUE7SUFFYSxvQkFBb0I7O1lBRWhDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxrRkFBa0YsQ0FBQyxDQUFDO2dCQUNqRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDN0MsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUN0Qiw0REFBNEQ7Z0JBQzVELE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQzthQUNsRTtZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUFBO0lBRUQsY0FBYyxDQUFDLE1BQTJCOztRQUN4QyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxlQUFlLDBDQUFFLElBQUksR0FBRyxNQUFNLENBQUEsRUFBRTtZQUN6RixNQUFNLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO1NBQy9FO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRTtZQUNsRSxNQUFNLEtBQUssQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO1NBQ2pGO0lBQ0gsQ0FBQzs7OztZQWxRRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVZRLFVBQVU7WUFEVixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZVRva2VuU2VydmljZSB9IGZyb20gXCIuL2xvY2FsaXplLnRva2VuLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IExvY2FsaXplVG9rZW4sIHdhaXRGb3IsIHdhaXRVbnRpbCB9IGZyb20gXCIuL2xvY2FsaXplLnRva2VuXCI7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IElMb2NhbGl6ZUFwaUNvbmZpZ3MsIElBcGlPcHRpb25zLCBFTWV0aG9kLCBJSGVhZGVyIH0gZnJvbSBcIi4vaGVscGVycy9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IEFwaUhlbHBlciB9IGZyb20gXCIuL3B1YmxpYy1hcGlcIjtcclxuXHJcbmNvbnN0IFNDSEVNRVMgPSBMb2NhbGl6ZVRva2VuLmh0dHBIZWFkZXJzO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemVBcGlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICByZWFkb25seSBpc1JlcXVlc3RpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgcmVhZG9ubHkgaXNSZXNvbHZpbmdTdGFydHVwU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGdldCBpc1Jlc29sdmluZ1N0YXJ0dXAoKSB7IHJldHVybiB0aGlzLmlzUmVzb2x2aW5nU3RhcnR1cFN1YmplY3QudmFsdWU7IH1cclxuXHJcbiAgZ2V0IG5lZWRUZW5hbnQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmxvY2FsaXplVG9rZW5TZXJ2aWNlLmNvbmZpZy5uZWVkVGVuYW50OyB9XHJcblxyXG4gIGdldCBpc1JlcXVlc3RpbmcoKSB7IHJldHVybiB0aGlzLmlzUmVxdWVzdGluZ1N1YmplY3QudmFsdWU7IH1cclxuICBnZXQgaXNSZXZva2luZ1Rva2VuKCkgeyByZXR1cm4gdGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5pc1Jldm9raW5nVG9rZW47IH1cclxuICBzZXQgaXNSZXZva2luZ1Rva2VuKHZhbHVlOiBib29sZWFuKSB7IHRoaXMubG9jYWxpemVUb2tlblNlcnZpY2UuaXNSZXZva2luZ1Rva2VuID0gdmFsdWU7IH1cclxuXHJcbiAgZ2V0IGFjY2Vzc1Rva2VuKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLmxvY2FsaXplVG9rZW5TZXJ2aWNlLmFjY2Vzc1Rva2VuOyB9XHJcbiAgc2V0IGFjY2Vzc1Rva2VuKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHsgdGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5hY2Nlc3NUb2tlbiA9IHZhbHVlOyB9XHJcblxyXG4gIGdldCByZWZyZXNoVG9rZW4oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMubG9jYWxpemVUb2tlblNlcnZpY2UucmVmcmVzaFRva2VuOyB9XHJcbiAgZ2V0IHRlbmFudFRva2VuKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLmxvY2FsaXplVG9rZW5TZXJ2aWNlLnRlbmFudFRva2VuKHRoaXMuY29uZmlnLnRlbmFudFRva2VuTmFtZSk7IH1cclxuXHJcbiAgcHJpdmF0ZSBjb25maWc6IFBhcnRpYWw8SUxvY2FsaXplQXBpQ29uZmlncz4gPSB7XHJcbiAgICB3YWl0RWFjaFJlcXVlc3Q6IHsgbWlsbGlzZWNvbmRzOiAwIH0sXHJcbiAgICBlbmFibGVSZXF1ZXN0Q2FuY2VsbGF0aW9uOiB0cnVlLFxyXG5cclxuICAgIHJldHJ5T3B0aW9uczoge1xyXG4gICAgICBtYXhSZXRyaWVzOiAxMDAwLFxyXG4gICAgICBkZWxheTogMTAwMCxcclxuICAgICAgcmV0cnlGdW5jdGlvbjogQXBpSGVscGVyLmRlZmF1bHRSZXRyeUZ1bmN0aW9uLmJpbmQodGhpcyksXHJcbiAgICB9LFxyXG5cclxuICB9O1xyXG5cclxuICBwcml2YXRlIGFwaU9wdGlvbnM6IFBhcnRpYWw8SUFwaU9wdGlvbnM+ID0ge1xyXG4gICAgbWV0aG9kOiBFTWV0aG9kLkdFVCxcclxuICAgIHJlcXVlc3RCb2R5OiBudWxsLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsaXplVG9rZW5TZXJ2aWNlOiBMb2NhbGl6ZVRva2VuU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIEFQSSBzZXJ2aWNlLlxyXG4gICAqIEBwYXJhbSBhcGlDb25maWdzIC0gVGhlIEFQSSBjb25maWd1cmF0aW9ucy5cclxuICAgKi9cclxuICBpbml0KGFwaUNvbmZpZ3M6IElMb2NhbGl6ZUFwaUNvbmZpZ3MpIHtcclxuICAgIGNvbnNvbGUud2FybignTG9jYWxpemVBcGlTZXJ2aWNlIGlzIGluaXRpYWxpemVkLicpO1xyXG4gICAgdGhpcy5jb25maWcgPSB7IC4uLnRoaXMuY29uZmlnLCAuLi5hcGlDb25maWdzIH07XHJcbiAgICB0aGlzLnZhbGlkYXRlQ29uZmlnKHRoaXMuY29uZmlnKTtcclxuICB9XHJcblxyXG4gIGNhbmNlbFBlbmRpbmdSZXF1ZXN0cygpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlnLmVuYWJsZVJlcXVlc3RDYW5jZWxsYXRpb25cclxuICAgICAgJiYgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQSBoaWdoZXItb3JkZXIgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgY3VycmllZCBmdW5jdGlvbiBmb3IgbWFraW5nIEFQSSByZXF1ZXN0cy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBiYXNlVXJsIC0gVGhlIGJhc2UgVVJMIG9mIHRoZSBBUEkuXHJcbiAgICogQHJldHVybnMgQSBjdXJyaWVkIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQgdG8gbWFrZSBBUEkgcmVxdWVzdHMuXHJcbiAgICovXHJcbiAgZnVuYyA9IChiYXNlVXJsOiBzdHJpbmcpID0+XHJcbiAgICA8VCA9IGFueT4ocGF0aDogc3RyaW5nLCBtZXRob2Q6IEVNZXRob2QgPSBFTWV0aG9kLkdFVCwgcmVxQm9keTogYW55ID0gbnVsbCwgcmVxSGVhZGVycz86IElIZWFkZXIpID0+XHJcbiAgICAgIHRoaXMucmVxdWVzdDxUPihiYXNlVXJsLCBwYXRoLCBtZXRob2QsIHJlcUJvZHksIHJlcUhlYWRlcnMpXHJcblxyXG4gIHB1YmxpYyBhc3luYyByZXF1ZXN0PFQgPSBhbnk+KGJhc2VVcmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIG1ldGhvZDogRU1ldGhvZCA9IEVNZXRob2QuR0VULFxyXG4gICAgcmVxQm9keTogYW55ID0gbnVsbCxcclxuICAgIHJlcUhlYWRlcnM/OiBJSGVhZGVyKTogUHJvbWlzZTxUPiB7XHJcblxyXG4gICAgYXdhaXQgd2FpdFVudGlsKCgpID0+ICF0aGlzLmlzUmVzb2x2aW5nU3RhcnR1cCwgNTAwKTtcclxuXHJcbiAgICBhd2FpdCBBcGlIZWxwZXIuaW52b2tlSG9vayh0aGlzLmNvbmZpZy5vblByZXBhcmVSZXF1ZXN0KTtcclxuXHJcbiAgICBjb25zdCBhcGlPcHRpb25zID0gdGhpcy5idWlsZEFwaU9wdGlvbnMoYmFzZVVybCwgcGF0aCwgbWV0aG9kLCByZXFCb2R5LCByZXFIZWFkZXJzKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBhd2FpdCB0aGlzLnRvV2FpdEZvclByZXZpb3VzUmVxdWVzdCgpO1xyXG5cclxuICAgICAgcmV0dXJuIGF3YWl0IEFwaUhlbHBlci5wZXJmb3JtUmVxdWVzdFdpdGhSZXRyeTxUPihcclxuICAgICAgICBhcGlPcHRpb25zLFxyXG4gICAgICAgIHRoaXMuY29uZmlnLFxyXG4gICAgICAgIHRoaXMucGVyZm9ybVJlcXVlc3QuYmluZCh0aGlzKVxyXG4gICAgICApO1xyXG5cclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcjogYW55KSB7XHJcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZU9uUmVxdWVzdEVycm9yKGVycm9yLCBhcGlPcHRpb25zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlT25SZXF1ZXN0RXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLCBvcHRpb25zOiBJQXBpT3B0aW9ucyk6IFByb21pc2U8YW55PiB7XHJcbiAgICBpZiAoZXJyb3Iuc3RhdHVzICE9PSA0MDEpXHJcbiAgICAgIHRocm93IGVycm9yO1xyXG5cclxuICAgIGF3YWl0IHdhaXRVbnRpbCgoKSA9PiAhdGhpcy5pc1Jlc29sdmluZ1N0YXJ0dXAsIDUwMCk7XHJcblxyXG4gICAgcmV0dXJuIGF3YWl0IEFwaUhlbHBlci5wZXJmb3JtUmV0cnkoe1xyXG4gICAgICBtYXhSZXRyaWVzOiAoKSA9PiAxMDAwLFxyXG4gICAgICBkZWxheTogNTAwLFxyXG4gICAgICByZXRyeVVubGVzczogKGVycm9yKSA9PiBlcnJvci5zdGF0dXMgPT09IDQwMSB8fCBBcGlIZWxwZXIuaXNDb25uZWN0aW9uRXJyb3IoZXJyb3IpLFxyXG4gICAgICBjYWxsYmFjazogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIC8vIE9ubHkgaGFuZGxlIDQwMSBVbmF1dGhvcml6ZWQgZXJyb3JzXHJcbiAgICAgICAgYXdhaXQgdGhpcy5yZXZva2VUb2tlbigpO1xyXG5cclxuICAgICAgICAvLyBSZXRyeSB0aGUgcmVxdWVzdCB3aXRoIHRoZSBuZXcgYWNjZXNzIHRva2VuXHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucGVyZm9ybVJlcXVlc3Qob3B0aW9ucyk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBwZXJmb3JtUmVxdWVzdDxUID0gYW55PihvcHRpb25zOiBJQXBpT3B0aW9ucyk6IFByb21pc2U8VD4ge1xyXG5cclxuICAgIC8vIEJ1aWxkIHRoZSByZXF1ZXN0IG9wdGlvbnNcclxuICAgIGNvbnN0IGJ1aWxkT3B0aW9ucyA9IHsgaGVhZGVyczogdGhpcy5idWlsZEhlYWRlck9wdGlvbnMob3B0aW9ucykgfTtcclxuXHJcbiAgICAvLyBDcmVhdGUgdGhlIHJlcXVlc3Qgb2JzZXJ2YWJsZVxyXG4gICAgY29uc3QgcmVxdWVzdCQgPSBBcGlIZWxwZXIuY3JlYXRlUmVxdWVzdDxUPih7XHJcbiAgICAgIGNsaWVudDogdGhpcy5odHRwQ2xpZW50LFxyXG4gICAgICBkZXN0cm95JDogKCkgPT4gdGhpcy5kZXN0cm95JFxyXG4gICAgfSwgb3B0aW9ucy5tZXRob2QsIG9wdGlvbnMucmVxdWVzdFVybCwgb3B0aW9ucy5yZXF1ZXN0Qm9keSwgYnVpbGRPcHRpb25zKTtcclxuXHJcbiAgICAvLyBTZXQgdGhlIGlzUmVxdWVzdGluZyBzdGF0ZSB0byB0cnVlIGJlZm9yZSBtYWtpbmcgdGhlIHJlcXVlc3RcclxuICAgIHRoaXMuaXNSZXF1ZXN0aW5nU3ViamVjdC5uZXh0KHRydWUpO1xyXG5cclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PlxyXG4gICAgICByZXF1ZXN0JC5zdWJzY3JpYmUoeyBuZXh0OiAocmVzKSA9PiByZXNvbHZlKHJlcy5ib2R5KSwgZXJyb3I6IHJlamVjdCB9KSk7XHJcblxyXG4gICAgLy8gUmVzZXQgdGhlIGlzUmVxdWVzdGluZyBzdGF0ZSBhZnRlciB0aGUgcmVxdWVzdCBjb21wbGV0ZXNcclxuICAgIHRoaXMuaXNSZXF1ZXN0aW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcclxuXHJcbiAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHJldm9rZVRva2VuKCk6IFByb21pc2U8dm9pZD4ge1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGlmIChhd2FpdCB0aGlzLmludGVyY2VwdFJldm9rZVRva2VuKCkpXHJcbiAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgdGhpcy5pc1Jldm9raW5nVG9rZW4gPSB0cnVlO1xyXG5cclxuICAgICAgY29uc3QgYXBpT3B0aW9uczogSUFwaU9wdGlvbnMgPSB7XHJcbiAgICAgICAgLi4udGhpcy5idWlsZEFwaU9wdGlvbnModGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5jb25maWcucmV2b2tlVG9rZW5VcmwpLFxyXG4gICAgICAgIHJlZnJlc2hUb2tlbjogdHJ1ZSxcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gY29uc3QgcmV2b2tlVG9rZW4gPSBhd2FpdCB0aGlzLnBlcmZvcm1SZXF1ZXN0KGFwaU9wdGlvbnMpO1xyXG4gICAgICBjb25zdCByZXZva2VUb2tlbiA9IGF3YWl0IEFwaUhlbHBlci5wZXJmb3JtUmVxdWVzdFdpdGhSZXRyeShcclxuICAgICAgICBhcGlPcHRpb25zLFxyXG4gICAgICAgIHRoaXMuY29uZmlnLFxyXG4gICAgICAgIHRoaXMucGVyZm9ybVJlcXVlc3QuYmluZCh0aGlzKVxyXG4gICAgICApO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5oYW5kbGVPblRva2VuUmV2b2tlZChyZXZva2VUb2tlbik7XHJcblxyXG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAvLyBIYW5kbGUgdGhlIGVycm9yLCBsb2cgaXRcclxuICAgICAgYXdhaXQgQXBpSGVscGVyLmludm9rZUhvb2sodGhpcy5jb25maWcub25BdXRvTG9nb3V0KTtcclxuXHJcbiAgICB9IGZpbmFsbHkge1xyXG4gICAgICAvLyBSZXNldCB0aGUgcmV2b2tpbmcgdG9rZW4gc3RhdGVcclxuICAgICAgdGhpcy5pc1Jldm9raW5nVG9rZW4gPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBkZWZhdWx0IGh0dHAgcmVxdWVzdCBvcHRpb25zICovXHJcbiAgcHJpdmF0ZSBidWlsZEhlYWRlck9wdGlvbnMob3B0aW9uczogSUFwaU9wdGlvbnMpOiBIdHRwSGVhZGVycyB7XHJcblxyXG4gICAgbGV0IGhlYWRlcnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgICAgIC4uLihvcHRpb25zLnJlZnJlc2hUb2tlbiAmJiB7IFtTQ0hFTUVTLlhfUkVGUkVTSF9UT0tFTl06IGAke3RoaXMucmVmcmVzaFRva2VufWAgfSksXHJcbiAgICAgIC4uLighb3B0aW9ucy5pc0Zvcm1EYXRhICYmIHsgW1NDSEVNRVMuQ09OVEVOVF9UWVBFXTogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICghb3B0aW9ucy5yZWZyZXNoVG9rZW4pIHtcclxuICAgICAgaGVhZGVycyA9IHtcclxuICAgICAgICAuLi5oZWFkZXJzLFxyXG4gICAgICAgIFtTQ0hFTUVTLkFVVEhPUklaQVRJT05dOiBgQmVhcmVyICR7dGhpcy5hY2Nlc3NUb2tlbn1gLFxyXG4gICAgICAgIC4uLih0aGlzLm5lZWRUZW5hbnQgJiYgeyBbU0NIRU1FUy5YX1RFTkFOVF06IGAke3RoaXMudGVuYW50VG9rZW59YCB9KVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoeyAuLi5oZWFkZXJzLCAuLi5vcHRpb25zLmhlYWRlcnMgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkQXBpT3B0aW9ucyhcclxuICAgIGJhc2VVcmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyA9ICcnLFxyXG4gICAgbWV0aG9kOiBFTWV0aG9kID0gRU1ldGhvZC5HRVQsXHJcbiAgICByZXF1ZXN0Qm9keTogYW55ID0gbnVsbCxcclxuICAgIGhlYWRlcnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XHJcbiAgKTogSUFwaU9wdGlvbnMge1xyXG5cclxuICAgIGNvbnN0IHJlcXVlc3RVcmwgPSBBcGlIZWxwZXIuYnVpbGRVcmwoYmFzZVVybCwgcGF0aCk7XHJcbiAgICBjb25zdCBpc0Zvcm1EYXRhID0gcmVxdWVzdEJvZHkgJiYgcmVxdWVzdEJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnRoaXMuYXBpT3B0aW9ucyxcclxuICAgICAgLi4ueyBoZWFkZXJzLCBtZXRob2QsIHJlcXVlc3RVcmwsIHJlcXVlc3RCb2R5LCBpc0Zvcm1EYXRhIH1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyB0b1dhaXRGb3JQcmV2aW91c1JlcXVlc3QoKSB7XHJcbiAgICB0aGlzLmlzUmV2b2tpbmdUb2tlbiAmJlxyXG4gICAgICAoYXdhaXQgd2FpdFVudGlsKCgpID0+ICF0aGlzLmlzUmV2b2tpbmdUb2tlbikpO1xyXG5cclxuICAgIC8vIHRvIHdhaXQgZm9yIGVhY2ggcmVxdWVzdCBpbiA1MG1zLCBldmVuIGlmIHRoZSByZXF1ZXN0IGlzIG5vdCBjb21wbGV0ZWRcclxuICAgIHRoaXMuY29uZmlnLndhaXRFYWNoUmVxdWVzdD8ubWlsbGlzZWNvbmRzICYmXHJcbiAgICAgIChhd2FpdCB3YWl0Rm9yKHRoaXMuY29uZmlnLndhaXRFYWNoUmVxdWVzdC5taWxsaXNlY29uZHMsIHRoaXMuaXNSZXF1ZXN0aW5nKSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVPblRva2VuUmV2b2tlZChyZXNwb25zZTogYW55KTogUHJvbWlzZTx2b2lkPiB7XHJcblxyXG4gICAgaWYgKHJlc3BvbnNlPy5zdGF0dXMpIHtcclxuICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGlzIHN1Y2Nlc3NmdWwsIHVwZGF0ZSB0aGUgYWNjZXNzIHRva2VuXHJcbiAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSByZXNwb25zZS5tZXNzYWdlO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIElmIHRoZSByZXNwb25zZSBpbmRpY2F0ZXMgYW4gZXJyb3IsIGludm9rZSB0aGUgb25SZXZva2VVbmF1dGhvcml6ZWQgaG9va1xyXG4gICAgICBjb25zb2xlLndhcm4oJ1Rva2VuIHJldm9jYXRpb24gZmFpbGVkLCByZWZyZXNoIHRva2VuIGlzIGV4cGlyZWQuJywgcmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIGF3YWl0IEFwaUhlbHBlci5pbnZva2VIb29rKHRoaXMuY29uZmlnLm9uUmV2b2tlVW5hdXRob3JpemVkKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGludGVyY2VwdFJldm9rZVRva2VuKCkge1xyXG5cclxuICAgIGlmICh0aGlzLmlzUmV2b2tpbmdUb2tlbikge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ1Rva2VuIGlzIGFscmVhZHkgYmVpbmcgcmV2b2tlZC4gV2FpdGluZyBmb3IgdGhlIGN1cnJlbnQgb3BlcmF0aW9uIHRvIGNvbXBsZXRlLi4uJyk7XHJcbiAgICAgIGF3YWl0IHdhaXRVbnRpbCgoKSA9PiAhdGhpcy5pc1Jldm9raW5nVG9rZW4pO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMucmVmcmVzaFRva2VuKSB7XHJcbiAgICAgIC8vIGF3YWl0IEFwaUhlbHBlci5pbnZva2VIb29rKHRoaXMuYXBpQ29uZmlncy5vbkF1dG9Mb2dvdXQpO1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlZnJlc2ggdG9rZW4gaXMgbWlzc2luZy4gUGxlYXNlIGxvZ2luIGFnYWluLicpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVDb25maWcoY29uZmlnOiBJTG9jYWxpemVBcGlDb25maWdzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5jb25maWcubmVlZFRlbmFudCAmJiAhY29uZmlnLnRlbmFudFRva2VuTmFtZT8udHJpbSgpLmxlbmd0aCkge1xyXG4gICAgICB0aHJvdyBFcnJvcignVGVuYW50IHRva2VuIGlzIHJlcXVpcmVkIGJ1dCB0ZW5hbnRUb2tlbk5hbWUgaXMgbm90IGNvbmZpZ3VyZWQnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMubG9jYWxpemVUb2tlblNlcnZpY2UuY29uZmlnLnJldm9rZVRva2VuVXJsLnRyaW0oKS5sZW5ndGgpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ1Jldm9rZSB0b2tlbiBVUkwgaXMgbm90IGNvbmZpZ3VyZWQgLSB0b2tlbiByZWZyZXNoIHdpbGwgbm90IHdvcmsnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbG9jYWxpemUtdG9rZW4vbG9jYWxpemUuYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBcUIsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFvQyxPQUFPLEVBQVcsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBRXpDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7QUFLMUMsTUFBTSxPQUFPLGtCQUFrQjtJQXlDN0IsWUFBcUIsVUFBc0IsRUFDeEIsb0JBQTBDO1FBRHhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDeEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQXpDNUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0Isa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBK0IsRUFBRSxDQUFDLENBQUM7UUFDOUUsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDMUQsOEJBQXlCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFlakUsa0JBQWEsR0FBaUM7WUFDcEQsZUFBZSxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRTtZQUNwQyx5QkFBeUIs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QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IExvY2FsaXplVG9rZW5TZXJ2aWNlIH0gZnJvbSBcIi4vbG9jYWxpemUudG9rZW4uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgTG9jYWxpemVUb2tlbiwgd2FpdEZvciwgd2FpdFVudGlsIH0gZnJvbSBcIi4vbG9jYWxpemUudG9rZW5cIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgSUxvY2FsaXplQXBpQ29uZmlncywgSUFwaU9wdGlvbnMsIEVNZXRob2QsIElIZWFkZXIgfSBmcm9tIFwiLi9oZWxwZXJzL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHsgQXBpSGVscGVyIH0gZnJvbSBcIi4vcHVibGljLWFwaVwiO1xyXG5cclxuY29uc3QgU0NIRU1FUyA9IExvY2FsaXplVG9rZW4uaHR0cEhlYWRlcnM7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbGl6ZUFwaVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFydGlhbDxJTG9jYWxpemVBcGlDb25maWdzPj4oe30pO1xyXG4gIHJlYWRvbmx5IGlzUmVxdWVzdGluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICByZWFkb25seSBpc1Jlc29sdmluZ1N0YXJ0dXBTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgZ2V0IGlzUmVzb2x2aW5nU3RhcnR1cCgpIHsgcmV0dXJuIHRoaXMuaXNSZXNvbHZpbmdTdGFydHVwU3ViamVjdC52YWx1ZTsgfVxyXG5cclxuICBnZXQgbmVlZFRlbmFudCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMubG9jYWxpemVUb2tlblNlcnZpY2UuY29uZmlnLm5lZWRUZW5hbnQ7IH1cclxuXHJcbiAgZ2V0IGlzUmVxdWVzdGluZygpIHsgcmV0dXJuIHRoaXMuaXNSZXF1ZXN0aW5nU3ViamVjdC52YWx1ZTsgfVxyXG4gIGdldCBpc1Jldm9raW5nVG9rZW4oKSB7IHJldHVybiB0aGlzLmxvY2FsaXplVG9rZW5TZXJ2aWNlLmlzUmV2b2tpbmdUb2tlbjsgfVxyXG4gIHNldCBpc1Jldm9raW5nVG9rZW4odmFsdWU6IGJvb2xlYW4pIHsgdGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5pc1Jldm9raW5nVG9rZW4gPSB2YWx1ZTsgfVxyXG5cclxuICBnZXQgYWNjZXNzVG9rZW4oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMubG9jYWxpemVUb2tlblNlcnZpY2UuYWNjZXNzVG9rZW47IH1cclxuICBzZXQgYWNjZXNzVG9rZW4odmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgeyB0aGlzLmxvY2FsaXplVG9rZW5TZXJ2aWNlLmFjY2Vzc1Rva2VuID0gdmFsdWU7IH1cclxuXHJcbiAgZ2V0IHJlZnJlc2hUb2tlbigpOiBzdHJpbmcgfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5yZWZyZXNoVG9rZW47IH1cclxuICBnZXQgdGVuYW50VG9rZW4oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMubG9jYWxpemVUb2tlblNlcnZpY2UudGVuYW50VG9rZW4odGhpcy5jb25maWcudGVuYW50VG9rZW5OYW1lKTsgfVxyXG5cclxuICBwcml2YXRlIGRlZmF1bHRDb25maWc6IFBhcnRpYWw8SUxvY2FsaXplQXBpQ29uZmlncz4gPSB7XHJcbiAgICB3YWl0RWFjaFJlcXVlc3Q6IHsgbWlsbGlzZWNvbmRzOiAwIH0sXHJcbiAgICBlbmFibGVSZXF1ZXN0Q2FuY2VsbGF0aW9uOiB0cnVlLFxyXG5cclxuICAgIHJldHJ5T3B0aW9uczoge1xyXG4gICAgICBtYXhSZXRyaWVzOiAxMDAwLFxyXG4gICAgICBkZWxheTogMTAwMCxcclxuICAgICAgcmV0cnlGdW5jdGlvbjogQXBpSGVscGVyLmRlZmF1bHRSZXRyeUZ1bmN0aW9uLmJpbmQodGhpcyksXHJcbiAgICB9LFxyXG5cclxuICB9O1xyXG5cclxuICBwcml2YXRlIGdldCBjb25maWcoKTogUGFydGlhbDxJTG9jYWxpemVBcGlDb25maWdzPiB7XHJcbiAgICB0aGlzLnZhbGlkYXRlQ29uZmlnKHRoaXMuY29uZmlnKTtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1N1YmplY3QudmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwaU9wdGlvbnM6IFBhcnRpYWw8SUFwaU9wdGlvbnM+ID0ge1xyXG4gICAgbWV0aG9kOiBFTWV0aG9kLkdFVCxcclxuICAgIHJlcXVlc3RCb2R5OiBudWxsLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsaXplVG9rZW5TZXJ2aWNlOiBMb2NhbGl6ZVRva2VuU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIEFQSSBzZXJ2aWNlLlxyXG4gICAqIEBwYXJhbSBhcGlDb25maWdzIC0gVGhlIEFQSSBjb25maWd1cmF0aW9ucy5cclxuICAgKi9cclxuICBpbml0KGFwaUNvbmZpZ3M6IElMb2NhbGl6ZUFwaUNvbmZpZ3MpIHtcclxuICAgIGNvbnNvbGUubG9nKCdMb2NhbGl6ZUFwaVNlcnZpY2UgaXMgaW5pdGlhbGl6ZWQuJyk7XHJcbiAgICB0aGlzLmNvbmZpZ1N1YmplY3QubmV4dCh7IC4uLnRoaXMuZGVmYXVsdENvbmZpZywgLi4uYXBpQ29uZmlncyB9KTtcclxuICB9XHJcblxyXG4gIGNhbmNlbFBlbmRpbmdSZXF1ZXN0cygpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlnLmVuYWJsZVJlcXVlc3RDYW5jZWxsYXRpb25cclxuICAgICAgJiYgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgLy8gdGhpcy5pc1Jlc29sdmluZ1N0YXJ0dXBTdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgICAvLyB0aGlzLmlzUmVxdWVzdGluZ1N1YmplY3QuY29tcGxldGUoKTtcclxuICAgIC8vIHRoaXMuY29uZmlnU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQSBoaWdoZXItb3JkZXIgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgY3VycmllZCBmdW5jdGlvbiBmb3IgbWFraW5nIEFQSSByZXF1ZXN0cy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBiYXNlVXJsIC0gVGhlIGJhc2UgVVJMIG9mIHRoZSBBUEkuXHJcbiAgICogQHJldHVybnMgQSBjdXJyaWVkIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQgdG8gbWFrZSBBUEkgcmVxdWVzdHMuXHJcbiAgICovXHJcbiAgZnVuYyA9IChiYXNlVXJsOiBzdHJpbmcpID0+XHJcbiAgICA8VCA9IGFueT4ocGF0aDogc3RyaW5nLCBtZXRob2Q6IEVNZXRob2QgPSBFTWV0aG9kLkdFVCwgcmVxQm9keTogYW55ID0gbnVsbCwgcmVxSGVhZGVycz86IElIZWFkZXIpID0+XHJcbiAgICAgIHRoaXMucmVxdWVzdDxUPihiYXNlVXJsLCBwYXRoLCBtZXRob2QsIHJlcUJvZHksIHJlcUhlYWRlcnMpXHJcblxyXG4gIHB1YmxpYyBhc3luYyByZXF1ZXN0PFQgPSBhbnk+KGJhc2VVcmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIG1ldGhvZDogRU1ldGhvZCA9IEVNZXRob2QuR0VULFxyXG4gICAgcmVxQm9keTogYW55ID0gbnVsbCxcclxuICAgIHJlcUhlYWRlcnM/OiBJSGVhZGVyKTogUHJvbWlzZTxUPiB7XHJcblxyXG4gICAgYXdhaXQgd2FpdFVudGlsKCgpID0+ICF0aGlzLmlzUmVzb2x2aW5nU3RhcnR1cCwgNTAwKTtcclxuXHJcbiAgICBhd2FpdCBBcGlIZWxwZXIuaW52b2tlSG9vayh0aGlzLmNvbmZpZy5vblByZXBhcmVSZXF1ZXN0KTtcclxuXHJcbiAgICBjb25zdCBhcGlPcHRpb25zID0gdGhpcy5idWlsZEFwaU9wdGlvbnMoYmFzZVVybCwgcGF0aCwgbWV0aG9kLCByZXFCb2R5LCByZXFIZWFkZXJzKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBhd2FpdCB0aGlzLnRvV2FpdEZvclByZXZpb3VzUmVxdWVzdCgpO1xyXG5cclxuICAgICAgcmV0dXJuIGF3YWl0IEFwaUhlbHBlci5wZXJmb3JtUmVxdWVzdFdpdGhSZXRyeTxUPihcclxuICAgICAgICBhcGlPcHRpb25zLFxyXG4gICAgICAgIHRoaXMuY29uZmlnLFxyXG4gICAgICAgIHRoaXMucGVyZm9ybVJlcXVlc3QuYmluZCh0aGlzKVxyXG4gICAgICApO1xyXG5cclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcjogYW55KSB7XHJcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZU9uUmVxdWVzdEVycm9yKGVycm9yLCBhcGlPcHRpb25zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlT25SZXF1ZXN0RXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLCBvcHRpb25zOiBJQXBpT3B0aW9ucyk6IFByb21pc2U8YW55PiB7XHJcbiAgICBpZiAoZXJyb3Iuc3RhdHVzICE9PSA0MDEpXHJcbiAgICAgIHRocm93IGVycm9yO1xyXG5cclxuICAgIGF3YWl0IHdhaXRVbnRpbCgoKSA9PiAhdGhpcy5pc1Jlc29sdmluZ1N0YXJ0dXAsIDUwMCk7XHJcblxyXG4gICAgcmV0dXJuIGF3YWl0IEFwaUhlbHBlci5wZXJmb3JtUmV0cnkoe1xyXG4gICAgICBtYXhSZXRyaWVzOiAoKSA9PiAxMDAwLFxyXG4gICAgICBkZWxheTogNTAwLFxyXG4gICAgICByZXRyeVVubGVzczogKGVycm9yKSA9PiBlcnJvci5zdGF0dXMgPT09IDQwMSB8fCBBcGlIZWxwZXIuaXNDb25uZWN0aW9uRXJyb3IoZXJyb3IpLFxyXG4gICAgICBjYWxsYmFjazogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIC8vIE9ubHkgaGFuZGxlIDQwMSBVbmF1dGhvcml6ZWQgZXJyb3JzXHJcbiAgICAgICAgYXdhaXQgdGhpcy5yZXZva2VUb2tlbigpO1xyXG5cclxuICAgICAgICAvLyBSZXRyeSB0aGUgcmVxdWVzdCB3aXRoIHRoZSBuZXcgYWNjZXNzIHRva2VuXHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucGVyZm9ybVJlcXVlc3Qob3B0aW9ucyk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBwZXJmb3JtUmVxdWVzdDxUID0gYW55PihvcHRpb25zOiBJQXBpT3B0aW9ucyk6IFByb21pc2U8VD4ge1xyXG5cclxuICAgIC8vIEJ1aWxkIHRoZSByZXF1ZXN0IG9wdGlvbnNcclxuICAgIGNvbnN0IGJ1aWxkT3B0aW9ucyA9IHsgaGVhZGVyczogdGhpcy5idWlsZEhlYWRlck9wdGlvbnMob3B0aW9ucykgfTtcclxuXHJcbiAgICAvLyBDcmVhdGUgdGhlIHJlcXVlc3Qgb2JzZXJ2YWJsZVxyXG4gICAgY29uc3QgcmVxdWVzdCQgPSBBcGlIZWxwZXIuY3JlYXRlUmVxdWVzdDxUPih7XHJcbiAgICAgIGNsaWVudDogdGhpcy5odHRwQ2xpZW50LFxyXG4gICAgICBkZXN0cm95JDogKCkgPT4gdGhpcy5kZXN0cm95JFxyXG4gICAgfSwgb3B0aW9ucy5tZXRob2QsIG9wdGlvbnMucmVxdWVzdFVybCwgb3B0aW9ucy5yZXF1ZXN0Qm9keSwgYnVpbGRPcHRpb25zKTtcclxuXHJcbiAgICAvLyBTZXQgdGhlIGlzUmVxdWVzdGluZyBzdGF0ZSB0byB0cnVlIGJlZm9yZSBtYWtpbmcgdGhlIHJlcXVlc3RcclxuICAgIHRoaXMuaXNSZXF1ZXN0aW5nU3ViamVjdC5uZXh0KHRydWUpO1xyXG5cclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PlxyXG4gICAgICByZXF1ZXN0JC5zdWJzY3JpYmUoeyBuZXh0OiAocmVzKSA9PiByZXNvbHZlKHJlcy5ib2R5KSwgZXJyb3I6IHJlamVjdCB9KSk7XHJcblxyXG4gICAgLy8gUmVzZXQgdGhlIGlzUmVxdWVzdGluZyBzdGF0ZSBhZnRlciB0aGUgcmVxdWVzdCBjb21wbGV0ZXNcclxuICAgIHRoaXMuaXNSZXF1ZXN0aW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcclxuXHJcbiAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHJldm9rZVRva2VuKCk6IFByb21pc2U8dm9pZD4ge1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGlmIChhd2FpdCB0aGlzLmludGVyY2VwdFJldm9rZVRva2VuKCkpXHJcbiAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgdGhpcy5pc1Jldm9raW5nVG9rZW4gPSB0cnVlO1xyXG5cclxuICAgICAgY29uc3QgYXBpT3B0aW9uczogSUFwaU9wdGlvbnMgPSB7XHJcbiAgICAgICAgLi4udGhpcy5idWlsZEFwaU9wdGlvbnModGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5jb25maWcucmV2b2tlVG9rZW5VcmwpLFxyXG4gICAgICAgIHJlZnJlc2hUb2tlbjogdHJ1ZSxcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gY29uc3QgcmV2b2tlVG9rZW4gPSBhd2FpdCB0aGlzLnBlcmZvcm1SZXF1ZXN0KGFwaU9wdGlvbnMpO1xyXG4gICAgICBjb25zdCByZXZva2VUb2tlbiA9IGF3YWl0IEFwaUhlbHBlci5wZXJmb3JtUmVxdWVzdFdpdGhSZXRyeShcclxuICAgICAgICBhcGlPcHRpb25zLFxyXG4gICAgICAgIHRoaXMuY29uZmlnLFxyXG4gICAgICAgIHRoaXMucGVyZm9ybVJlcXVlc3QuYmluZCh0aGlzKVxyXG4gICAgICApO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5oYW5kbGVPblRva2VuUmV2b2tlZChyZXZva2VUb2tlbik7XHJcblxyXG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAvLyBIYW5kbGUgdGhlIGVycm9yLCBsb2cgaXRcclxuICAgICAgYXdhaXQgQXBpSGVscGVyLmludm9rZUhvb2sodGhpcy5jb25maWcub25BdXRvTG9nb3V0KTtcclxuXHJcbiAgICB9IGZpbmFsbHkge1xyXG4gICAgICAvLyBSZXNldCB0aGUgcmV2b2tpbmcgdG9rZW4gc3RhdGVcclxuICAgICAgdGhpcy5pc1Jldm9raW5nVG9rZW4gPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBkZWZhdWx0IGh0dHAgcmVxdWVzdCBvcHRpb25zICovXHJcbiAgcHJpdmF0ZSBidWlsZEhlYWRlck9wdGlvbnMob3B0aW9uczogSUFwaU9wdGlvbnMpOiBIdHRwSGVhZGVycyB7XHJcblxyXG4gICAgbGV0IGhlYWRlcnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgICAgIC4uLihvcHRpb25zLnJlZnJlc2hUb2tlbiAmJiB7IFtTQ0hFTUVTLlhfUkVGUkVTSF9UT0tFTl06IGAke3RoaXMucmVmcmVzaFRva2VufWAgfSksXHJcbiAgICAgIC4uLighb3B0aW9ucy5pc0Zvcm1EYXRhICYmIHsgW1NDSEVNRVMuQ09OVEVOVF9UWVBFXTogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICghb3B0aW9ucy5yZWZyZXNoVG9rZW4pIHtcclxuICAgICAgaGVhZGVycyA9IHtcclxuICAgICAgICAuLi5oZWFkZXJzLFxyXG4gICAgICAgIFtTQ0hFTUVTLkFVVEhPUklaQVRJT05dOiBgQmVhcmVyICR7dGhpcy5hY2Nlc3NUb2tlbn1gLFxyXG4gICAgICAgIC4uLih0aGlzLm5lZWRUZW5hbnQgJiYgeyBbU0NIRU1FUy5YX1RFTkFOVF06IGAke3RoaXMudGVuYW50VG9rZW59YCB9KVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoeyAuLi5oZWFkZXJzLCAuLi5vcHRpb25zLmhlYWRlcnMgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkQXBpT3B0aW9ucyhcclxuICAgIGJhc2VVcmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyA9ICcnLFxyXG4gICAgbWV0aG9kOiBFTWV0aG9kID0gRU1ldGhvZC5HRVQsXHJcbiAgICByZXF1ZXN0Qm9keTogYW55ID0gbnVsbCxcclxuICAgIGhlYWRlcnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XHJcbiAgKTogSUFwaU9wdGlvbnMge1xyXG5cclxuICAgIGNvbnN0IHJlcXVlc3RVcmwgPSBBcGlIZWxwZXIuYnVpbGRVcmwoYmFzZVVybCwgcGF0aCk7XHJcbiAgICBjb25zdCBpc0Zvcm1EYXRhID0gcmVxdWVzdEJvZHkgJiYgcmVxdWVzdEJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnRoaXMuYXBpT3B0aW9ucyxcclxuICAgICAgLi4ueyBoZWFkZXJzLCBtZXRob2QsIHJlcXVlc3RVcmwsIHJlcXVlc3RCb2R5LCBpc0Zvcm1EYXRhIH1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyB0b1dhaXRGb3JQcmV2aW91c1JlcXVlc3QoKSB7XHJcbiAgICB0aGlzLmlzUmV2b2tpbmdUb2tlbiAmJlxyXG4gICAgICAoYXdhaXQgd2FpdFVudGlsKCgpID0+ICF0aGlzLmlzUmV2b2tpbmdUb2tlbikpO1xyXG5cclxuICAgIC8vIHRvIHdhaXQgZm9yIGVhY2ggcmVxdWVzdCBpbiA1MG1zLCBldmVuIGlmIHRoZSByZXF1ZXN0IGlzIG5vdCBjb21wbGV0ZWRcclxuICAgIHRoaXMuY29uZmlnLndhaXRFYWNoUmVxdWVzdD8ubWlsbGlzZWNvbmRzICYmXHJcbiAgICAgIChhd2FpdCB3YWl0Rm9yKHRoaXMuY29uZmlnLndhaXRFYWNoUmVxdWVzdC5taWxsaXNlY29uZHMsIHRoaXMuaXNSZXF1ZXN0aW5nKSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVPblRva2VuUmV2b2tlZChyZXNwb25zZTogYW55KTogUHJvbWlzZTx2b2lkPiB7XHJcblxyXG4gICAgaWYgKHJlc3BvbnNlPy5zdGF0dXMpIHtcclxuICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGlzIHN1Y2Nlc3NmdWwsIHVwZGF0ZSB0aGUgYWNjZXNzIHRva2VuXHJcbiAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSByZXNwb25zZS5tZXNzYWdlO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIElmIHRoZSByZXNwb25zZSBpbmRpY2F0ZXMgYW4gZXJyb3IsIGludm9rZSB0aGUgb25SZXZva2VVbmF1dGhvcml6ZWQgaG9va1xyXG4gICAgICBjb25zb2xlLndhcm4oJ1Rva2VuIHJldm9jYXRpb24gZmFpbGVkLCByZWZyZXNoIHRva2VuIGlzIGV4cGlyZWQuJywgcmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIGF3YWl0IEFwaUhlbHBlci5pbnZva2VIb29rKHRoaXMuY29uZmlnLm9uUmV2b2tlVW5hdXRob3JpemVkKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGludGVyY2VwdFJldm9rZVRva2VuKCkge1xyXG5cclxuICAgIGlmICh0aGlzLmlzUmV2b2tpbmdUb2tlbikge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ1Rva2VuIGlzIGFscmVhZHkgYmVpbmcgcmV2b2tlZC4gV2FpdGluZyBmb3IgdGhlIGN1cnJlbnQgb3BlcmF0aW9uIHRvIGNvbXBsZXRlLi4uJyk7XHJcbiAgICAgIGF3YWl0IHdhaXRVbnRpbCgoKSA9PiAhdGhpcy5pc1Jldm9raW5nVG9rZW4pO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMucmVmcmVzaFRva2VuKSB7XHJcbiAgICAgIC8vIGF3YWl0IEFwaUhlbHBlci5pbnZva2VIb29rKHRoaXMuYXBpQ29uZmlncy5vbkF1dG9Mb2dvdXQpO1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlZnJlc2ggdG9rZW4gaXMgbWlzc2luZy4gUGxlYXNlIGxvZ2luIGFnYWluLicpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVDb25maWcoY29uZmlnOiBJTG9jYWxpemVBcGlDb25maWdzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5jb25maWcubmVlZFRlbmFudCAmJiAhY29uZmlnLnRlbmFudFRva2VuTmFtZT8udHJpbSgpLmxlbmd0aCkge1xyXG4gICAgICB0aHJvdyBFcnJvcignVGVuYW50IHRva2VuIGlzIHJlcXVpcmVkIGJ1dCB0ZW5hbnRUb2tlbk5hbWUgaXMgbm90IGNvbmZpZ3VyZWQnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMubG9jYWxpemVUb2tlblNlcnZpY2UuY29uZmlnLnJldm9rZVRva2VuVXJsLnRyaW0oKS5sZW5ndGgpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ1Jldm9rZSB0b2tlbiBVUkwgaXMgbm90IGNvbmZpZ3VyZWQgLSB0b2tlbiByZWZyZXNoIHdpbGwgbm90IHdvcmsnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -5,25 +5,29 @@ import * as jwt_decode from 'jwt-decode';
5
5
  import * as i0 from "@angular/core";
6
6
  export class LocalizeTokenService {
7
7
  constructor() {
8
+ this.configSubject = new BehaviorSubject({});
8
9
  this.isRevokingTokenSubject = new BehaviorSubject(false);
9
10
  this.defaultConfig = {
10
11
  mainDomain: extractMainDomain(),
11
12
  authTokenName: 'auth-token',
12
13
  refreshTokenName: '_lze_rftkp_',
13
14
  };
14
- this._config = Object.assign({}, this.defaultConfig);
15
15
  this.isInitialized = false;
16
16
  this.decodeToken = (token) => jwt_decode.jwtDecode(token);
17
17
  }
18
18
  get config() {
19
19
  this.throwIfNotInitialized();
20
- return this._config;
20
+ return this.configSubject.value;
21
21
  }
22
22
  init(config) {
23
- console.warn('LocalizeTokenService is initialized.');
24
- this._config = Object.assign(Object.assign({}, this.defaultConfig), config);
23
+ console.log('LocalizeTokenService is initialized.');
24
+ this.configSubject.next(Object.assign(Object.assign({}, this.defaultConfig), config));
25
25
  this.isInitialized = true;
26
26
  }
27
+ ngOnDestroy() {
28
+ // this.configSubject.complete();
29
+ // this.isRevokingTokenSubject.complete();
30
+ }
27
31
  get authToken() { return this.storageGet(); }
28
32
  set authToken(value) {
29
33
  value
@@ -78,4 +82,4 @@ LocalizeTokenService.ɵprov = i0.ɵɵdefineInjectable({ factory: function Locali
78
82
  LocalizeTokenService.decorators = [
79
83
  { type: Injectable, args: [{ providedIn: 'root' },] }
80
84
  ];
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUudG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sb2NhbGl6ZS10b2tlbi9sb2NhbGl6ZS50b2tlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDOztBQWlCekMsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQUVhLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3JELGtCQUFhLEdBQWtDO1lBQzVELFVBQVUsRUFBRSxpQkFBaUIsRUFBRTtZQUMvQixhQUFhLEVBQUUsWUFBWTtZQUMzQixnQkFBZ0IsRUFBRSxhQUFhO1NBQ2xDLENBQUE7UUFFTyxZQUFPLHFCQUF1QyxJQUFJLENBQUMsYUFBYSxFQUFHO1FBT25FLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBc0Q5QixnQkFBVyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFhLEtBQUssQ0FBQyxDQUFDO0tBWTVFO0lBdkVHLElBQUksTUFBTTtRQUNOLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE9BQStCLENBQUM7SUFDaEQsQ0FBQztJQUlELElBQUksQ0FBQyxNQUE0QjtRQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sbUNBQVEsSUFBSSxDQUFDLGFBQWEsR0FBSyxNQUFNLENBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsYUFBYSxHQUFHLElB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QUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLHFCQUFxQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLDhFQUE4RSxDQUFDLENBQUM7U0FDbkc7SUFDTCxDQUFDOzs7O1lBaEZKLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGV4dHJhY3RNYWluRG9tYWluLCBJTG9jYWxpemVUb2tlbkNvbmZpZywgTG9jYWxpemVUb2tlbiB9IGZyb20gJy4vbG9jYWxpemUudG9rZW4nO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgand0X2RlY29kZSBmcm9tICdqd3QtZGVjb2RlJztcclxuZXhwb3J0IGludGVyZmFjZSBKd3RQYXlsb2FkIGV4dGVuZHMgand0X2RlY29kZS5Kd3RQYXlsb2FkIHtcclxuICAgIC8vIERlZmluZSB0aGUgc3RydWN0dXJlIG9mIHlvdXIgSldUIHBheWxvYWQgaGVyZVxyXG4gICAgZW1haWw6IHN0cmluZztcclxuICAgIHN1Yjogc3RyaW5nO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgaWF0OiBudW1iZXI7XHJcbiAgICBleHA6IG51bWJlcjtcclxuICAgIC8vIEFkZCBvdGhlciBmaWVsZHMgYXMgbmVlZGVkXHJcbn1cclxuXHJcbmludGVyZmFjZSBJQXV0aFRva2VuIHtcclxuICAgIHRva2VuOiBzdHJpbmc7XHJcbiAgICByZXZva2U6IGJvb2xlYW47XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbGl6ZVRva2VuU2VydmljZSB7XHJcbiAgICByZWFkb25seSBpc1Jldm9raW5nVG9rZW5TdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRDb25maWc6IFBhcnRpYWw8SUxvY2FsaXplVG9rZW5Db25maWc+ID0ge1xyXG4gICAgICAgIG1haW5Eb21haW46IGV4dHJhY3RNYWluRG9tYWluKCksXHJcbiAgICAgICAgYXV0aFRva2VuTmFtZTogJ2F1dGgtdG9rZW4nLFxyXG4gICAgICAgIHJlZnJlc2hUb2tlbk5hbWU6ICdfbHplX3JmdGtwXycsXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY29uZmlnOiBQYXJ0aWFsPElMb2NhbGl6ZVRva2VuQ29uZmlnPiA9IHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnIH07XHJcblxyXG4gICAgZ2V0IGNvbmZpZygpOiBJTG9jYWxpemVUb2tlbkNvbmZpZyB7XHJcbiAgICAgICAgdGhpcy50aHJvd0lmTm90SW5pdGlhbGl6ZWQoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnIGFzIElMb2NhbGl6ZVRva2VuQ29uZmlnO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNJbml0aWFsaXplZCA9IGZhbHNlO1xyXG5cclxuICAgIGluaXQoY29uZmlnOiBJTG9jYWxpemVUb2tlbkNvbmZpZykge1xyXG4gICAgICAgIGNvbnNvbGUud2FybignTG9jYWxpemVUb2tlblNlcnZpY2UgaXMgaW5pdGlhbGl6ZWQuJyk7XHJcbiAgICAgICAgdGhpcy5fY29uZmlnID0geyAuLi50aGlzLmRlZmF1bHRDb25maWcsIC4uLmNvbmZpZyB9O1xyXG4gICAgICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgYXV0aFRva2VuKCkgeyByZXR1cm4gdGhpcy5zdG9yYWdlR2V0KCkgfVxyXG4gICAgcHJpdmF0ZSBzZXQgYXV0aFRva2VuKHZhbHVlOiBJQXV0aFRva2VuIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgPyB0aGlzLnN0b3JhZ2VTZXQodmFsdWUpXHJcbiAgICAgICAgICAgIDogTG9jYWxpemVUb2tlbi5zdG9yYWdlLmRlbGV0ZSh0aGlzLmNvbmZpZy5hdXRoVG9rZW5OYW1lISk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHJlZnJlc2hUb2tlbigpIHsgcmV0dXJuIExvY2FsaXplVG9rZW4uc3RvcmFnZS5nZXQodGhpcy5jb25maWcucmVmcmVzaFRva2VuTmFtZSEpIH1cclxuICAgIGdldCBhY2Nlc3NUb2tlbigpIHsgcmV0dXJuIHRoaXMuYXV0aFRva2VuPy50b2tlbiB9XHJcblxyXG4gICAgc2V0IGFjY2Vzc1Rva2VuKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB2YWx1ZSAmJiAodGhpcy5hdXRoVG9rZW4gPSB7IHRva2VuOiB2YWx1ZSwgcmV2b2tlOiBmYWxzZSB9KVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc1Jldm9raW5nVG9rZW4oKSB7IHJldHVybiB0aGlzLmlzUmV2b2tpbmdUb2tlblN1YmplY3QudmFsdWUgLyogdGhpcy5hdXRoVG9rZW4/LnJldm9rZSA/PyBmYWxzZSAqLyB9XHJcblxyXG4gICAgc2V0IGlzUmV2b2tpbmdUb2tlbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuaXNSZXZva2luZ1Rva2VuU3ViamVjdC5uZXh0KHZhbHVlKTtcclxuICAgICAgICB0aGlzLmF1dGhUb2tlbiAmJiAodGhpcy5hdXRoVG9rZW4gPSB7IC4uLnRoaXMuYXV0aFRva2VuLCByZXZva2U6IHZhbHVlIH0pXHJcbiAgICB9XHJcblxyXG4gICAgdGVuYW50VG9rZW4obmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgaWYgKCFuYW1lKSByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIHJldHVybiBMb2NhbGl6ZVRva2VuLnN0b3JhZ2UuZ2V0KG5hbWUpXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlR2V0KCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVuY29kZWQgPSBMb2NhbGl6ZVRva2VuLnN0b3JhZ2UuZ2V0KHRoaXMuY29uZmlnLmF1dGhUb2tlbk5hbWUhKTtcclxuICAgICAgICAgICAgY29uc3QgZGVjb2RlZCA9IGF0b2IoZW5jb2RlZCB8fCAnJyk7XHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGRlY29kZWQpIGFzIElBdXRoVG9rZW47XHJcbiAgICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2V0KHZhbHVlOiBJQXV0aFRva2VuKSB7XHJcbiAgICAgICAgY29uc3QgYmFzZTY0ID0gYnRvYShKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xyXG4gICAgICAgIExvY2FsaXplVG9rZW4uc3RvcmFnZS5zZXQodGhpcy5jb25maWcuYXV0aFRva2VuTmFtZSEsIGJhc2U2NCk7XHJcbiAgICB9XHJcblxyXG4gICAgdG9rZW5zVmFsaWQodGVuYW50VG9rZW5OYW1lPzogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5yZWZyZXNoVG9rZW4/Lmxlbmd0aFxyXG4gICAgICAgICAgICAmJiAoIXRoaXMuY29uZmlnLm5lZWRUZW5hbnQgfHwgISF0aGlzLnRlbmFudFRva2VuKHRlbmFudFRva2VuTmFtZSk/Lmxlbmd0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVjb2RlVG9rZW4gPSAodG9rZW46IHN0cmluZykgPT4gand0X2RlY29kZS5qd3REZWNvZGU8Snd0UGF5bG9hZD4odG9rZW4pO1xyXG4gICAgZ2V0IGRlY29kZVJlZnJlc2hUb2tlbigpIHtcclxuICAgICAgICBjb25zdCB0b2tlbiA9IExvY2FsaXplVG9rZW4uc3RvcmFnZS5nZXQodGhpcy5jb25maWcucmVmcmVzaFRva2VuTmFtZSEpO1xyXG4gICAgICAgIHJldHVybiAhdG9rZW4gPyBudWxsIDogdGhpcy5kZWNvZGVUb2tlbih0b2tlbik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB0aHJvd0lmTm90SW5pdGlhbGl6ZWQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzSW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdMb2NhbGl6ZVRva2VuU2VydmljZSBpcyBub3QgaW5pdGlhbGl6ZWQuIENhbGwgaW5pdCgpIG1ldGhvZCBiZWZvcmUgdXNpbmcgaXQuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUudG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sb2NhbGl6ZS10b2tlbi9sb2NhbGl6ZS50b2tlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDOztBQWlCekMsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQUVxQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFnQyxFQUFFLENBQUMsQ0FBQztRQUMvRSwyQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNyRCxrQkFBYSxHQUFrQztZQUM1RCxVQUFVLEVBQUUsaUJBQWlCLEVBQUU7WUFDL0IsYUFBYSxFQUFFLFlBQVk7WUFDM0IsZ0JBQWdCLEVBQUUsYUFBYTtTQUNsQyxDQUFBO1FBT08sa0JBQWEsR0FBRyxLQUFLLENBQUM7UUEyRDlCLGdCQUFXLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQWEsS0FBSyxDQUFDLENBQUM7S0FZNUU7SUE1RUcsSUFBSSxNQUFNO1FBQ04sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQTZCLENBQUM7SUFDNUQsQ0FBQztJQUlELElBQUksQ0FBQyxNQUE0QjtRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLGlDQUFNLElBQUksQ0FBQyxhQUFhLEdBQUssTUFBTSxFQUFHLENB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QUFDO1FBQ3ZFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEVBQThFLENBQUMsQ0FBQztTQUNuRztJQUNMLENBQUM7Ozs7WUFwRkosVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBleHRyYWN0TWFpbkRvbWFpbiwgSUxvY2FsaXplVG9rZW5Db25maWcsIExvY2FsaXplVG9rZW4gfSBmcm9tICcuL2xvY2FsaXplLnRva2VuJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIGp3dF9kZWNvZGUgZnJvbSAnand0LWRlY29kZSc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgSnd0UGF5bG9hZCBleHRlbmRzIGp3dF9kZWNvZGUuSnd0UGF5bG9hZCB7XHJcbiAgICAvLyBEZWZpbmUgdGhlIHN0cnVjdHVyZSBvZiB5b3VyIEpXVCBwYXlsb2FkIGhlcmVcclxuICAgIGVtYWlsOiBzdHJpbmc7XHJcbiAgICBzdWI6IHN0cmluZztcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGlhdDogbnVtYmVyO1xyXG4gICAgZXhwOiBudW1iZXI7XHJcbiAgICAvLyBBZGQgb3RoZXIgZmllbGRzIGFzIG5lZWRlZFxyXG59XHJcblxyXG5pbnRlcmZhY2UgSUF1dGhUb2tlbiB7XHJcbiAgICB0b2tlbjogc3RyaW5nO1xyXG4gICAgcmV2b2tlOiBib29sZWFuO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemVUb2tlblNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPElMb2NhbGl6ZVRva2VuQ29uZmlnPj4oe30pO1xyXG4gICAgcmVhZG9ubHkgaXNSZXZva2luZ1Rva2VuU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPElMb2NhbGl6ZVRva2VuQ29uZmlnPiA9IHtcclxuICAgICAgICBtYWluRG9tYWluOiBleHRyYWN0TWFpbkRvbWFpbigpLFxyXG4gICAgICAgIGF1dGhUb2tlbk5hbWU6ICdhdXRoLXRva2VuJyxcclxuICAgICAgICByZWZyZXNoVG9rZW5OYW1lOiAnX2x6ZV9yZnRrcF8nLFxyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb25maWcoKTogSUxvY2FsaXplVG9rZW5Db25maWcge1xyXG4gICAgICAgIHRoaXMudGhyb3dJZk5vdEluaXRpYWxpemVkKCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnU3ViamVjdC52YWx1ZSBhcyBJTG9jYWxpemVUb2tlbkNvbmZpZztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpbml0KGNvbmZpZzogSUxvY2FsaXplVG9rZW5Db25maWcpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnTG9jYWxpemVUb2tlblNlcnZpY2UgaXMgaW5pdGlhbGl6ZWQuJyk7XHJcbiAgICAgICAgdGhpcy5jb25maWdTdWJqZWN0Lm5leHQoeyAuLi50aGlzLmRlZmF1bHRDb25maWcsIC4uLmNvbmZpZyB9KTtcclxuICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMuY29uZmlnU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gICAgICAgIC8vIHRoaXMuaXNSZXZva2luZ1Rva2VuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0IGF1dGhUb2tlbigpIHsgcmV0dXJuIHRoaXMuc3RvcmFnZUdldCgpIH1cclxuICAgIHByaXZhdGUgc2V0IGF1dGhUb2tlbih2YWx1ZTogSUF1dGhUb2tlbiB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgID8gdGhpcy5zdG9yYWdlU2V0KHZhbHVlKVxyXG4gICAgICAgICAgICA6IExvY2FsaXplVG9rZW4uc3RvcmFnZS5kZWxldGUodGhpcy5jb25maWcuYXV0aFRva2VuTmFtZSEpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCByZWZyZXNoVG9rZW4oKSB7IHJldHVybiBMb2NhbGl6ZVRva2VuLnN0b3JhZ2UuZ2V0KHRoaXMuY29uZmlnLnJlZnJlc2hUb2tlbk5hbWUhKSB9XHJcbiAgICBnZXQgYWNjZXNzVG9rZW4oKSB7IHJldHVybiB0aGlzLmF1dGhUb2tlbj8udG9rZW4gfVxyXG5cclxuICAgIHNldCBhY2Nlc3NUb2tlbih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdmFsdWUgJiYgKHRoaXMuYXV0aFRva2VuID0geyB0b2tlbjogdmFsdWUsIHJldm9rZTogZmFsc2UgfSlcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNSZXZva2luZ1Rva2VuKCkgeyByZXR1cm4gdGhpcy5pc1Jldm9raW5nVG9rZW5TdWJqZWN0LnZhbHVlIC8qIHRoaXMuYXV0aFRva2VuPy5yZXZva2UgPz8gZmFsc2UgKi8gfVxyXG5cclxuICAgIHNldCBpc1Jldm9raW5nVG9rZW4odmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmlzUmV2b2tpbmdUb2tlblN1YmplY3QubmV4dCh2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5hdXRoVG9rZW4gJiYgKHRoaXMuYXV0aFRva2VuID0geyAuLi50aGlzLmF1dGhUb2tlbiwgcmV2b2tlOiB2YWx1ZSB9KVxyXG4gICAgfVxyXG5cclxuICAgIHRlbmFudFRva2VuKG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmICghbmFtZSkgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICByZXR1cm4gTG9jYWxpemVUb2tlbi5zdG9yYWdlLmdldChuYW1lKVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RvcmFnZUdldCgpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBlbmNvZGVkID0gTG9jYWxpemVUb2tlbi5zdG9yYWdlLmdldCh0aGlzLmNvbmZpZy5hdXRoVG9rZW5OYW1lISk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWQgPSBhdG9iKGVuY29kZWQgfHwgJycpO1xyXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVkKSBhcyBJQXV0aFRva2VuO1xyXG4gICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RvcmFnZVNldCh2YWx1ZTogSUF1dGhUb2tlbikge1xyXG4gICAgICAgIGNvbnN0IGJhc2U2NCA9IGJ0b2EoSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcclxuICAgICAgICBMb2NhbGl6ZVRva2VuLnN0b3JhZ2Uuc2V0KHRoaXMuY29uZmlnLmF1dGhUb2tlbk5hbWUhLCBiYXNlNjQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRva2Vuc1ZhbGlkKHRlbmFudFRva2VuTmFtZT86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMucmVmcmVzaFRva2VuPy5sZW5ndGhcclxuICAgICAgICAgICAgJiYgKCF0aGlzLmNvbmZpZy5uZWVkVGVuYW50IHx8ICEhdGhpcy50ZW5hbnRUb2tlbih0ZW5hbnRUb2tlbk5hbWUpPy5sZW5ndGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlY29kZVRva2VuID0gKHRva2VuOiBzdHJpbmcpID0+IGp3dF9kZWNvZGUuand0RGVjb2RlPEp3dFBheWxvYWQ+KHRva2VuKTtcclxuICAgIGdldCBkZWNvZGVSZWZyZXNoVG9rZW4oKSB7XHJcbiAgICAgICAgY29uc3QgdG9rZW4gPSBMb2NhbGl6ZVRva2VuLnN0b3JhZ2UuZ2V0KHRoaXMuY29uZmlnLnJlZnJlc2hUb2tlbk5hbWUhKTtcclxuICAgICAgICByZXR1cm4gIXRva2VuID8gbnVsbCA6IHRoaXMuZGVjb2RlVG9rZW4odG9rZW4pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdGhyb3dJZk5vdEluaXRpYWxpemVkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0luaXRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTG9jYWxpemVUb2tlblNlcnZpY2UgaXMgbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXQoKSBtZXRob2QgYmVmb3JlIHVzaW5nIGl0LicpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIl19
@@ -169,25 +169,29 @@ function extractMainDomain(subdomain) {
169
169
 
170
170
  class LocalizeTokenService {
171
171
  constructor() {
172
+ this.configSubject = new BehaviorSubject({});
172
173
  this.isRevokingTokenSubject = new BehaviorSubject(false);
173
174
  this.defaultConfig = {
174
175
  mainDomain: extractMainDomain(),
175
176
  authTokenName: 'auth-token',
176
177
  refreshTokenName: '_lze_rftkp_',
177
178
  };
178
- this._config = Object.assign({}, this.defaultConfig);
179
179
  this.isInitialized = false;
180
180
  this.decodeToken = (token) => jwt_decode.jwtDecode(token);
181
181
  }
182
182
  get config() {
183
183
  this.throwIfNotInitialized();
184
- return this._config;
184
+ return this.configSubject.value;
185
185
  }
186
186
  init(config) {
187
- console.warn('LocalizeTokenService is initialized.');
188
- this._config = Object.assign(Object.assign({}, this.defaultConfig), config);
187
+ console.log('LocalizeTokenService is initialized.');
188
+ this.configSubject.next(Object.assign(Object.assign({}, this.defaultConfig), config));
189
189
  this.isInitialized = true;
190
190
  }
191
+ ngOnDestroy() {
192
+ // this.configSubject.complete();
193
+ // this.isRevokingTokenSubject.complete();
194
+ }
191
195
  get authToken() { return this.storageGet(); }
192
196
  set authToken(value) {
193
197
  value
@@ -518,9 +522,10 @@ class LocalizeApiService {
518
522
  this.httpClient = httpClient;
519
523
  this.localizeTokenService = localizeTokenService;
520
524
  this.destroy$ = new Subject();
525
+ this.configSubject = new BehaviorSubject({});
521
526
  this.isRequestingSubject = new BehaviorSubject(false);
522
527
  this.isResolvingStartupSubject = new BehaviorSubject(false);
523
- this.config = {
528
+ this.defaultConfig = {
524
529
  waitEachRequest: { milliseconds: 0 },
525
530
  enableRequestCancellation: true,
526
531
  retryOptions: {
@@ -550,14 +555,17 @@ class LocalizeApiService {
550
555
  set accessToken(value) { this.localizeTokenService.accessToken = value; }
551
556
  get refreshToken() { return this.localizeTokenService.refreshToken; }
552
557
  get tenantToken() { return this.localizeTokenService.tenantToken(this.config.tenantTokenName); }
558
+ get config() {
559
+ this.validateConfig(this.config);
560
+ return this.configSubject.value;
561
+ }
553
562
  /**
554
563
  * Initialize the API service.
555
564
  * @param apiConfigs - The API configurations.
556
565
  */
557
566
  init(apiConfigs) {
558
- console.warn('LocalizeApiService is initialized.');
559
- this.config = Object.assign(Object.assign({}, this.config), apiConfigs);
560
- this.validateConfig(this.config);
567
+ console.log('LocalizeApiService is initialized.');
568
+ this.configSubject.next(Object.assign(Object.assign({}, this.defaultConfig), apiConfigs));
561
569
  }
562
570
  cancelPendingRequests() {
563
571
  this.config.enableRequestCancellation
@@ -566,6 +574,9 @@ class LocalizeApiService {
566
574
  ngOnDestroy() {
567
575
  this.destroy$.next();
568
576
  this.destroy$.complete();
577
+ // this.isResolvingStartupSubject.complete();
578
+ // this.isRequestingSubject.complete();
579
+ // this.configSubject.complete();
569
580
  }
570
581
  request(baseUrl, path, method = EMethod.GET, reqBody = null, reqHeaders) {
571
582
  return __awaiter(this, void 0, void 0, function* () {