@quadrel-enterprise-ui/framework 18.27.0 → 18.27.2

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.
@@ -40,6 +40,7 @@ export class QdPushEventsService {
40
40
  _heartbeatReconnectDelayTime = 100;
41
41
  _accessTokenSub;
42
42
  _options;
43
+ _isUnauthorized = false;
43
44
  constructor(authenticationService) {
44
45
  this.authenticationService = authenticationService;
45
46
  }
@@ -163,6 +164,7 @@ export class QdPushEventsService {
163
164
  this._eventSource.onerror = (err) => {
164
165
  const status = err?.status || err?.target?.status;
165
166
  if (status === 401) {
167
+ this._isUnauthorized = true;
166
168
  this.logError('SSE connection unauthorized (401):', err);
167
169
  this._eventSource.close();
168
170
  return;
@@ -172,6 +174,8 @@ export class QdPushEventsService {
172
174
  this.logError('SSE connection error:', err);
173
175
  };
174
176
  this._eventSource.addEventListener('HEARTBEAT', (message) => {
177
+ if (this._isUnauthorized)
178
+ return;
175
179
  if (this._heartbeatTimeout)
176
180
  clearTimeout(this._heartbeatTimeout);
177
181
  const interval = JSON.parse(message.data).interval;
@@ -194,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
194
198
  type: Inject,
195
199
  args: ['QdAuthenticationService']
196
200
  }] }] });
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVzaC1ldmVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3B1c2gtZXZlbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7QUFJaEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUlILE1BQU0sT0FBTyxtQkFBbUI7SUFVOEM7SUFUcEUsWUFBWSxDQUFlO0lBQzNCLDBCQUEwQixHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO0lBQ3RFLFVBQVUsR0FBZ0QsRUFBRSxDQUFDO0lBQzdELGlCQUFpQixDQUFpQztJQUNsRCxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDNUIsNEJBQTRCLEdBQUcsR0FBRyxDQUFDO0lBQ25DLGVBQWUsQ0FBZ0I7SUFDL0IsUUFBUSxDQUFpRTtJQUVqRixZQUE0RSxxQkFBMEI7UUFBMUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFLO0lBQUcsQ0FBQztJQUUxRzs7Ozs7OztPQU9HO0lBQ0gsT0FBTyxDQUFDLEdBQVcsRUFBRSxPQUE0QztRQUMvRCxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUFFLE9BQU87UUFFM0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FDWCwySUFBMkksQ0FDNUksQ0FBQztnQkFFRixPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUks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WSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQXFCLEVBQUUsRUFBRTtZQUN4RSxJQUFJLElBQUksQ0FBQyxpQkFBaUI7Z0JBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBRWpFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUNuRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDNUcsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUV0RixJQUFJLENBQUMseUNBQXlDLEVBQUUsQ0FBQztJQUNuRCxDQUFDO3VHQTlMVSxtQkFBbUIsa0JBVUUseUJBQXlCOzJHQVY5QyxtQkFBbUIsY0FGbEIsTUFBTTs7MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBV2MsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdmVudFNvdXJjZVBvbHlmaWxsIH0gZnJvbSAnZXZlbnQtc291cmNlLXBvbHlmaWxsJztcbmltcG9ydCB7IE5FVkVSLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgRXZlbnROYW1lID0gJ1JFU09VUkNFX0NSRUFURUQnIHwgJ1JFU09VUkNFX1VQREFURUQnIHwgJ1JFU09VUkNFX0RFTEVURUQnO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIGhhbmRsaW5nIHJlYWwtdGltZSBzZXJ2ZXItc2VudCBldmVudHMuXG4gKlxuICogIyMjIEJlbmVmaXRzXG4gKlxuICogLSAqKlJlYWwtVGltZSBJbnRlcmFjdGlvbioqOiBFbmFibGVzIGxpdmUgdXBkYXRlcyB3aXRob3V0IHVzZXIgYWN0aW9ucyBvciBwb2xsaW5nLlxuICogLSAqKlNjYWxhYmxlIGFuZCBGbGV4aWJsZSoqOiBUaGUgc3lzdGVtIGlzIGZsZXhpYmxlIGFuZCBlYXNpbHkgZXhwYW5kYWJsZSB0byBoYW5kbGUgbmV3IGV2ZW50cy5cbiAqIC0gKipDb25zaXN0ZW5jeSoqOiBFbnN1cmVzIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIHNlcnZlciBhbmQgY2xpZW50IHN0YXRlcyBmb3IgYSBjb25zaXN0ZW50IHVzZXIgZXhwZXJpZW5jZS5cbiAqIC0gKipBdXRob3JpemF0aW9uKio6IEl0IHVzZXMgdGhlIHVzZXIncyBhdXRoZW50aWNhdGlvbiAoUWRBdXRoKSB0byBzZWN1cmUgdGhlIGNvbm5lY3Rpb24gYWdhaW5zdCB0aGUgYmFja2VuZCBvdXQtb2YtdGhlLWJveC4gVGhpcyByZXF1aXJlcyBhIHByb3BlciBRZEF1dGggc2V0dXAuIFlvdSBjYW4gZGlzYWJsZSB0aGlzIGZlYXR1cmUgd2hlbiBzdGFydGluZyB0aGUgY29ubmVjdGlvbi5cbiAqXG4gKiAjIyMgVXNhZ2VcbiAqXG4gKiBgYGB0c1xuICogLy8gU3RhcnQgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIGV2ZW50c1xuICogcHVzaEV2ZW50c1NlcnZpY2UuY29ubmVjdCgnaHR0cDovL3NlcnZpY2UtZW5kcGludC9ldmVudHMnKTtcbiAqIC8vIG9yIHN0YXJ0IHdpdGhvdXQgYXV0aGVudGljYXRpb24gaW4gY2FzZSB5b3UgZG9uJ3QgbmVlZDpcbiAqIHB1c2hFdmVudHNTZXJ2aWNlLmNvbm5lY3QoJ2h0dHA6Ly9zZXJ2aWNlLWVuZHBpbnQvZXZlbnRzJywgeyBkaXNhYmxlQXV0aGVudGljYXRpb246IHRydWUgfSk7XG4gKlxuICogLy8gU3Vic2NyaWJlIHRvIHRoZSBldmVudCAoU2lkZSBFZmZlY3QpXG4gKiBjb25zdCBzdWJzY3JpcHRpb24gPSBwdXNoRXZlbnRzU2VydmljZS5vYnNlcnZlKCdSRVNPVVJDRV9VUERBVEVEJykuc3Vic2NyaWJlKGV2ZW50ID0+IGhhbmRsZUV2ZW50KGV2ZW50KSk7XG4gKlxuICogLy8gVW5zdWJzY3JpYmUgdG8gcHJldmVudCBtZW1vcnkgbGVha3NcbiAqIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICpcbiAqIC8vIERpc2Nvbm5lY3QgdGhlIGNvbm5lY3Rpb25cbiAqIHB1c2hFdmVudHNTZXJ2aWNlLmRpc2Nvbm5lY3QoKTtcbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBRZFB1c2hFdmVudHNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfZXZlbnRTb3VyY2UhOiBFdmVudFNvdXJjZTtcbiAgcHJpdmF0ZSBfZXZlbnRTdWJzY3JpcHRpb25TdWJqZWN0cyA9IG5ldyBNYXA8c3RyaW5nLCBTdWJqZWN0PE1lc3NhZ2VFdmVudD4+KCk7XG4gIHByaXZhdGUgX2xpc3RlbmVyczogW3N0cmluZywgKG1lc3NhZ2U6IE1lc3NhZ2VFdmVudCkgPT4gdm9pZF1bXSA9IFtdO1xuICBwcml2YXRlIF9oZWFydGJlYXRUaW1lb3V0ITogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX3JlY29ubmVjdERlbGF5VGltZSA9IDEwMDAwO1xuICBwcml2YXRlIF9oZWFydGJlYXRSZWNvbm5lY3REZWxheVRpbWUgPSAxMDA7XG4gIHByaXZhdGUgX2FjY2Vzc1Rva2VuU3ViPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIF9vcHRpb25zITogeyB1cmw6IHN0cmluZzsgb3B0aW9ucz86IHsgZGlzYWJsZUF1dGhlbnRpY2F0aW9uOiBib29sZWFuIH0gfTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KCdRZEF1dGhlbnRpY2F0aW9uU2VydmljZScpIHByaXZhdGUgcmVhZG9ubHkgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBhbnkpIHt9XG5cbiAgLyoqXG4gICAqIEVzdGFibGlzaGVzIGFuIEV2ZW50U291cmNlIGNvbm5lY3Rpb24gdG8gdGhlIGdpdmVuIFVSTC5cbiAgICogQXV0b21hdGljYWxseSByZWNvbm5lY3RzIGlmIGhlYXJ0YmVhdCBmYWlscyBvciBpcyBkZWxheWVkLlxuICAgKiBTdWJzY3JpYmVycyBhcmUgcmV0YWluZWQgYWNyb3NzIHJlY29ubmVjdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB1cmwgVGhlIGJhY2tlbmQgVVJMIGZvciB0aGUgZXZlbnQgc3RyZWFtLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGZvciB0aGUgY29ubmVjdGlvblxuICAgKi9cbiAgY29ubmVjdCh1cmw6IHN0cmluZywgb3B0aW9ucz86IHsgZGlzYWJsZUF1dGhlbnRpY2F0aW9uOiBib29sZWFuIH0pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZE9yQ29ubmVjdGluZygpKSByZXR1cm47XG5cbiAgICBpZiAoIW9wdGlvbnM/LmRpc2FibGVBdXRoZW50aWNhdGlvbikge1xuICAgICAgaWYgKCF0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZSkge1xuICAgICAgICB0aGlzLmxvZ0Vycm9yKFxuICAgICAgICAgIFwiQ2FuJ3QgY29ubmVjdCB0byBTU0Ugd2l0aG91dCBRZEF1dGggYXMgdGhlIGNvbm5lY3Rpb24gaGFzIHRvIGJlIHNlY3VyZWQuIFBsZWFzZSBpbnN0YWxsIFFkQXV0aCBvciBkaXNhYmxlIGF1dGhlbnRpY2F0aW9uIHdoZW4gY29ubmVjdGluZy5cIlxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2FjY2Vzc1Rva2VuU3ViKSB0aGlzLl9hY2Nlc3NUb2tlblN1Yi51bnN1YnNjcmliZSgpO1xuXG4gICAgICB0aGlzLl9hY2Nlc3NUb2tlblN1YiA9IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmFjY2Vzc1Rva2VuJC5zdWJzY3JpYmUoKHRva2VuOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHsgdXJsLCBvcHRpb25zIH07XG4gICAgICAgIHRoaXMuY29ubmVjdEV2ZW50U291cmNlKFxuICAgICAgICAgIHVybCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vcHRpb25zID0geyB1cmwsIG9wdGlvbnMgfTtcbiAgICAgIHRoaXMuY29ubmVjdEV2ZW50U291cmNlKHVybCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgRXZlbnRTb3VyY2UgY29ubmVjdGlvbiBhbmQgY2xlYXJzIGFsbCBsaXN0ZW5lcnMuXG4gICAqIFN1YnNjcmliZXJzIGFyZSBwcmVzZXJ2ZWQgZm9yIHJlY29ubmVjdGlvbi5cbiAgICovXG4gIGRpc2Nvbm5lY3QoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9ldmVudFNvdXJjZSkge1xuICAgICAgdGhpcy5sb2dXYXJuKCdObyBhY3RpdmUgY29ubmVjdGlvbiB0byBkaXNjb25uZWN0LicpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdmVBbGxFdmVudExpc3RlbmVyc0Zyb21FdmVudFNvdXJjZSgpO1xuXG4gICAgdGhpcy5fZXZlbnRTb3VyY2UuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIE9ic2VydmFibGUgZm9yIHRoZSBzcGVjaWZpZWQgZXZlbnQgbmFtZS5cbiAgICogSWYgbm90IGNvbm5lY3RlZCwgcmV0dXJucyBgTkVWRVJgIGFuZCBsb2dzIGFuIGVycm9yLlxuICAgKiBBdXRvbWF0aWNhbGx5IGFkZHMgYSBsaXN0ZW5lciBmb3IgdGhlIGV2ZW50IGlmIG5lZWRlZC5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50TmFtZSBUaGUgZXZlbnQgdHlwZSAoJ1JFU09VUkNFX0NSRUFURUQnLCAnUkVTT1VSQ0VfVVBEQVRFRCcsICdSRVNPVVJDRV9ERUxFVEVEJykuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8TWVzc2FnZUV2ZW50PiBUaGUgZXZlbnQgc3RyZWFtLlxuICAgKi9cbiAgb2JzZXJ2ZShldmVudE5hbWU6IEV2ZW50TmFtZSk6IE9ic2VydmFibGU8TWVzc2FnZUV2ZW50PiB7XG4gICAgaWYgKCF0aGlzLl9ldmVudFNvdXJjZSkge1xuICAgICAgdGhpcy5sb2dFcnJvcignQ2Fubm90IG9ic2VydmUgZXZlbnRzIHdpdGhvdXQgYSBjb25uZWN0aW9uLiBDYWxsIGNvbm5lY3QoKSBmaXJzdC4nKTtcblxuICAgICAgcmV0dXJuIE5FVkVSO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5fZXZlbnRTdWJzY3JpcHRpb25TdWJqZWN0cy5oYXMoZXZlbnROYW1lKSkge1xuICAgICAgdGhpcy5fZXZlbnRTdWJzY3JpcHRpb25TdWJqZWN0cy5zZXQoZXZlbnROYW1lLCBuZXcgU3ViamVjdDxNZXNzYWdlRXZlbnQ+KCkpO1xuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXJGb3JFdmVudE5hbWUoZXZlbnROYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZXZlbnRTdWJzY3JpcHRpb25TdWJqZWN0cy5nZXQoZXZlbnROYW1lKSEuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhbGwgbGlzdGVuZXJzIGFuZCBjbGVhcnMgYWxsIHN1YnNjcmlwdGlvbnMuXG4gICAqIFRoZSBFdmVudFNvdXJjZSBjb25uZWN0aW9uIHJlbWFpbnMgb3Blbi5cbiAgICovXG4gIHVub2JzZXJ2ZUFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzRnJvbUV2ZW50U291cmNlKCk7XG4gICAgdGhpcy5fZXZlbnRTdWJzY3JpcHRpb25TdWJqZWN0cy5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgRXZlbnRTb3VyY2UgaXMgY29ubmVjdGVkIG9yIGluIHRoZSBwcm9jZXNzIG9mIGNvbm5lY3RpbmcuXG4gICAqL1xuICBpc0Nvbm5lY3RlZE9yQ29ubmVjdGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fZXZlbnRTb3VyY2UgJiZcbiAgICAgICh0aGlzLl9ldmVudFNvdXJjZS5yZWFkeVN0YXRlID09PSBFdmVudFNvdXJjZS5PUEVOIHx8IHRoaXMuX2V2ZW50U291cmNlLnJlYWR5U3RhdGUgPT09IEV2ZW50U291cmNlLkNPTk5FQ1RJTkcpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVjb25uZWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkT3JDb25uZWN0aW5nKCkpIHJldHVybjtcblxuICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuY29ubmVjdCh0aGlzLl9vcHRpb25zLnVybCwgdGhpcy5fb3B0aW9ucy5vcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRXZlbnRMaXN0ZW5lckZvckV2ZW50TmFtZShldmVudE5hbWU6IEV2ZW50TmFtZSk6IHZvaWQge1xuICAgIGNvbnN0IGNhbGxiYWNrID0gKG1lc3NhZ2VFdmVudDogTWVzc2FnZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gdGhpcy5fZXZlbnRTdWJzY3JpcHRpb25TdWJqZWN0cy5nZXQoZXZlbnROYW1lKTtcblxuICAgICAgaWYgKHN1YmplY3QpIHN1YmplY3QubmV4dChtZXNzYWdlRXZlbnQpO1xuICAgIH07XG5cbiAgICB0aGlzLl9ldmVudFNvdXJjZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgY2FsbGJhY2spO1xuICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKFtldmVudE5hbWUsIGNhbGxiYWNrXSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEV2ZW50TGlzdGVuZXJzRm9yRXhpc3RpbmdTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuX2V2ZW50U3Vic2NyaXB0aW9uU3ViamVjdHMuZm9yRWFjaCgoc3ViamVjdCwgZXZlbnROYW1lKSA9PlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyVG9FdmVudFNvdXJjZShldmVudE5hbWUgYXMgRXZlbnROYW1lLCAobWVzc2FnZUV2ZW50OiBNZXNzYWdlRXZlbnQpID0+XG4gICAgICAgIHN1YmplY3QubmV4dChtZXNzYWdlRXZlbnQpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRXZlbnRMaXN0ZW5lclRvRXZlbnRTb3VyY2UoZXZlbnROYW1lOiBFdmVudE5hbWUsIGNhbGxiYWNrOiAobWVzc2FnZUV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9ldmVudFNvdXJjZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgY2FsbGJhY2spO1xuICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKFtldmVudE5hbWUsIGNhbGxiYWNrXSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzRnJvbUV2ZW50U291cmNlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZXZlbnRTb3VyY2UpIHtcbiAgICAgIHRoaXMubG9nV2FybignQ2Fubm90IHJlbW92ZSBsaXN0ZW5lcnM6IE5vIGFjdGl2ZSBjb25uZWN0aW9uLicpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fbGlzdGVuZXJzLmZvckVhY2goKFtldmVudE5hbWUsIGNhbGxiYWNrXSkgPT4gdGhpcy5fZXZlbnRTb3VyY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGNhbGxiYWNrKSk7XG4gICAgdGhpcy5fbGlzdGVuZXJzID0gW107XG4gIH1cblxuICBwcml2YXRlIGxvZ1dhcm4obWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc29sZS53YXJuKGBRRC1VSSB8IFFkUHVzaEV2ZW50c1NlcnZpY2UgLSAke21lc3NhZ2V9YCk7XG4gIH1cblxuICBwcml2YXRlIGxvZ0Vycm9yKG1lc3NhZ2U6IHN0cmluZywgZXJyPzogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zb2xlLmVycm9yKGBRRC1VSSB8IFFkUHVzaEV2ZW50c1NlcnZpY2UgLSAke21lc3NhZ2V9YCwgZXJyKTtcbiAgfVxuXG4gIHByaXZhdGUgY29ubmVjdEV2ZW50U291cmNlKHVybDogc3RyaW5nLCBvcHRpb25zOiB1bmtub3duID0ge30sIHJlY29ubmVjdD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZXZlbnRTb3VyY2UgJiYgdGhpcy5fZXZlbnRTb3VyY2UucmVhZHlTdGF0ZSAhPT0gRXZlbnRTb3VyY2UuQ0xPU0VEKSB0aGlzLl9ldmVudFNvdXJjZS5jbG9zZSgpO1xuXG4gICAgaWYgKCF0aGlzLl9ldmVudFNvdXJjZSB8fCB0aGlzLl9ldmVudFNvdXJjZS5yZWFkeVN0YXRlID09PSBFdmVudFNvdXJjZS5DTE9TRUQgfHwgcmVjb25uZWN0KVxuICAgICAgdGhpcy5fZXZlbnRTb3VyY2UgPSBuZXcgRXZlbnRTb3VyY2VQb2x5ZmlsbCh1cmwsIG9wdGlvbnMpO1xuXG4gICAgdGhpcy5fZXZlbnRTb3VyY2Uub25lcnJvciA9IChlcnI6IGFueSk6IHZvaWQgPT4ge1xuICAgICAgY29uc3Qgc3RhdHVzID0gZXJyPy5zdGF0dXMgfHwgZXJyPy50YXJnZXQ/LnN0YXR1cztcblxuICAgICAgaWYgKHN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgIHRoaXMubG9nRXJyb3IoJ1NTRSBjb25uZWN0aW9uIHVuYXV0aG9yaXplZCAoNDAxKTonLCBlcnIpO1xuICAgICAgICB0aGlzLl9ldmVudFNvdXJjZS5jbG9zZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2V2ZW50U291cmNlLnJlYWR5U3RhdGUgPT09IEV2ZW50U291cmNlLkNMT1NFRCkgdGhpcy5yZWNvbm5lY3QoKTtcblxuICAgICAgdGhpcy5sb2dFcnJvcignU1NFIGNvbm5lY3Rpb24gZXJyb3I6JywgZXJyKTtcbiAgICB9O1xuXG4gICAgdGhpcy5fZXZlbnRTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcignSEVBUlRCRUFUJywgKG1lc3NhZ2U6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2hlYXJ0YmVhdFRpbWVvdXQpIGNsZWFyVGltZW91dCh0aGlzLl9oZWFydGJlYXRUaW1lb3V0KTtcblxuICAgICAgY29uc3QgaW50ZXJ2YWwgPSBKU09OLnBhcnNlKG1lc3NhZ2UuZGF0YSkuaW50ZXJ2YWw7XG4gICAgICB0aGlzLl9oZWFydGJlYXRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlY29ubmVjdCgpLCBpbnRlcnZhbCArIHRoaXMuX2hlYXJ0YmVhdFJlY29ubmVjdERlbGF5VGltZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9oZWFydGJlYXRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlY29ubmVjdCgpLCB0aGlzLl9yZWNvbm5lY3REZWxheVRpbWUpO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyc0ZvckV4aXN0aW5nU3Vic2NyaXB0aW9ucygpO1xuICB9XG59XG4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVzaC1ldmVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3B1c2gtZXZlbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7QUFJaEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUlILE1BQU0sT0FBTyxtQkFBbUI7SUFXOEM7SUFWcEUsWUFBWSxDQUFlO0lBQzNCLDBCQUEwQixHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO0lBQ3RFLFVBQVUsR0FBZ0QsRUFBRSxDQUFDO0lBQzdELGlCQUFpQixDQUFpQztJQUNsRCxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDNUIsNEJBQTRCLEdBQUcsR0FBRyxDQUFDO0lBQ25DLGVBQWUsQ0FBZ0I7SUFDL0IsUUFBUSxDQUFpRTtJQUN6RSxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBRWhDLFlBQTRFLHFCQUEwQjtRQUExQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQUs7SUFBRyxDQUFDO0lBRTFHOzs7Ozs7O09BT0c7SUFDSCxPQUFPLENBQUMsR0FBVyxFQUFFLE9BQTRDO1FBQy9ELElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQUUsT0FBTztRQUUzQyxJQUFJLENBQUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsUUFBUSxDQUNYLDJJQUEySSxDQUM1SSxDQUFDO2dCQUVG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Qyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQXFCLEVBQUUsRUFBRTtZQUN4RSxJQUFJLElBQUksQ0FBQyxlQUFlO2dCQUFFLE9BQU87WUFFakMsSUFBSSxJQUFJLENBQUMsaUJBQWlCO2dCQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUVqRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDbkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQzVHLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFdEYsSUFBSSxDQUFDLHlDQUF5QyxFQUFFLENBQUM7SUFDbkQsQ0FBQzt1R0FsTVUsbUJBQW1CLGtCQVdFLHlCQUF5QjsyR0FYOUMsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVljLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXZlbnRTb3VyY2VQb2x5ZmlsbCB9IGZyb20gJ2V2ZW50LXNvdXJjZS1wb2x5ZmlsbCc7XG5pbXBvcnQgeyBORVZFUiwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEV2ZW50TmFtZSA9ICdSRVNPVVJDRV9DUkVBVEVEJyB8ICdSRVNPVVJDRV9VUERBVEVEJyB8ICdSRVNPVVJDRV9ERUxFVEVEJztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciBoYW5kbGluZyByZWFsLXRpbWUgc2VydmVyLXNlbnQgZXZlbnRzLlxuICpcbiAqICMjIyBCZW5lZml0c1xuICpcbiAqIC0gKipSZWFsLVRpbWUgSW50ZXJhY3Rpb24qKjogRW5hYmxlcyBsaXZlIHVwZGF0ZXMgd2l0aG91dCB1c2VyIGFjdGlvbnMgb3IgcG9sbGluZy5cbiAqIC0gKipTY2FsYWJsZSBhbmQgRmxleGlibGUqKjogVGhlIHN5c3RlbSBpcyBmbGV4aWJsZSBhbmQgZWFzaWx5IGV4cGFuZGFibGUgdG8gaGFuZGxlIG5ldyBldmVudHMuXG4gKiAtICoqQ29uc2lzdGVuY3kqKjogRW5zdXJlcyBzeW5jaHJvbml6YXRpb24gYmV0d2VlbiBzZXJ2ZXIgYW5kIGNsaWVudCBzdGF0ZXMgZm9yIGEgY29uc2lzdGVudCB1c2VyIGV4cGVyaWVuY2UuXG4gKiAtICoqQXV0aG9yaXphdGlvbioqOiBJdCB1c2VzIHRoZSB1c2VyJ3MgYXV0aGVudGljYXRpb24gKFFkQXV0aCkgdG8gc2VjdXJlIHRoZSBjb25uZWN0aW9uIGFnYWluc3QgdGhlIGJhY2tlbmQgb3V0LW9mLXRoZS1ib3guIFRoaXMgcmVxdWlyZXMgYSBwcm9wZXIgUWRBdXRoIHNldHVwLiBZb3UgY2FuIGRpc2FibGUgdGhpcyBmZWF0dXJlIHdoZW4gc3RhcnRpbmcgdGhlIGNvbm5lY3Rpb24uXG4gKlxuICogIyMjIFVzYWdlXG4gKlxuICogYGBgdHNcbiAqIC8vIFN0YXJ0IHRoZSBjb25uZWN0aW9uIHRvIHRoZSBldmVudHNcbiAqIHB1c2hFdmVudHNTZXJ2aWNlLmNvbm5lY3QoJ2h0dHA6Ly9zZXJ2aWNlLWVuZHBpbnQvZXZlbnRzJyk7XG4gKiAvLyBvciBzdGFydCB3aXRob3V0IGF1dGhlbnRpY2F0aW9uIGluIGNhc2UgeW91IGRvbid0IG5lZWQ6XG4gKiBwdXNoRXZlbnRzU2VydmljZS5jb25uZWN0KCdodHRwOi8vc2VydmljZS1lbmRwaW50L2V2ZW50cycsIHsgZGlzYWJsZUF1dGhlbnRpY2F0aW9uOiB0cnVlIH0pO1xuICpcbiAqIC8vIFN1YnNjcmliZSB0byB0aGUgZXZlbnQgKFNpZGUgRWZmZWN0KVxuICogY29uc3Qgc3Vic2NyaXB0aW9uID0gcHVzaEV2ZW50c1NlcnZpY2Uub2JzZXJ2ZSgnUkVTT1VSQ0VfVVBEQVRFRCcpLnN1YnNjcmliZShldmVudCA9PiBoYW5kbGVFdmVudChldmVudCkpO1xuICpcbiAqIC8vIFVuc3Vic2NyaWJlIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzXG4gKiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAqXG4gKiAvLyBEaXNjb25uZWN0IHRoZSBjb25uZWN0aW9uXG4gKiBwdXNoRXZlbnRzU2VydmljZS5kaXNjb25uZWN0KCk7XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUWRQdXNoRXZlbnRzU2VydmljZSB7XG4gIHByaXZhdGUgX2V2ZW50U291cmNlITogRXZlbnRTb3VyY2U7XG4gIHByaXZhdGUgX2V2ZW50U3Vic2NyaXB0aW9uU3ViamVjdHMgPSBuZXcgTWFwPHN0cmluZywgU3ViamVjdDxNZXNzYWdlRXZlbnQ+PigpO1xuICBwcml2YXRlIF9saXN0ZW5lcnM6IFtzdHJpbmcsIChtZXNzYWdlOiBNZXNzYWdlRXZlbnQpID0+IHZvaWRdW10gPSBbXTtcbiAgcHJpdmF0ZSBfaGVhcnRiZWF0VGltZW91dCE6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuICBwcml2YXRlIF9yZWNvbm5lY3REZWxheVRpbWUgPSAxMDAwMDtcbiAgcHJpdmF0ZSBfaGVhcnRiZWF0UmVjb25uZWN0RGVsYXlUaW1lID0gMTAwO1xuICBwcml2YXRlIF9hY2Nlc3NUb2tlblN1Yj86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfb3B0aW9ucyE6IHsgdXJsOiBzdHJpbmc7IG9wdGlvbnM/OiB7IGRpc2FibGVBdXRoZW50aWNhdGlvbjogYm9vbGVhbiB9IH07XG4gIHByaXZhdGUgX2lzVW5hdXRob3JpemVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdCgnUWRBdXRoZW50aWNhdGlvblNlcnZpY2UnKSBwcml2YXRlIHJlYWRvbmx5IGF1dGhlbnRpY2F0aW9uU2VydmljZTogYW55KSB7fVxuXG4gIC8qKlxuICAgKiBFc3RhYmxpc2hlcyBhbiBFdmVudFNvdXJjZSBjb25uZWN0aW9uIHRvIHRoZSBnaXZlbiBVUkwuXG4gICAqIEF1dG9tYXRpY2FsbHkgcmVjb25uZWN0cyBpZiBoZWFydGJlYXQgZmFpbHMgb3IgaXMgZGVsYXllZC5cbiAgICogU3Vic2NyaWJlcnMgYXJlIHJldGFpbmVkIGFjcm9zcyByZWNvbm5lY3Rpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gdXJsIFRoZSBiYWNrZW5kIFVSTCBmb3IgdGhlIGV2ZW50IHN0cmVhbS5cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgdGhlIGNvbm5lY3Rpb25cbiAgICovXG4gIGNvbm5lY3QodXJsOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGRpc2FibGVBdXRoZW50aWNhdGlvbjogYm9vbGVhbiB9KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNDb25uZWN0ZWRPckNvbm5lY3RpbmcoKSkgcmV0dXJuO1xuXG4gICAgaWYgKCFvcHRpb25zPy5kaXNhYmxlQXV0aGVudGljYXRpb24pIHtcbiAgICAgIGlmICghdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5sb2dFcnJvcihcbiAgICAgICAgICBcIkNhbid0IGNvbm5lY3QgdG8gU1NFIHdpdGhvdXQgUWRBdXRoIGFzIHRoZSBjb25uZWN0aW9uIGhhcyB0byBiZSBzZWN1cmVkLiBQbGVhc2UgaW5zdGFsbCBRZEF1dGggb3IgZGlzYWJsZSBhdXRoZW50aWNhdGlvbiB3aGVuIGNvbm5lY3RpbmcuXCJcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl9hY2Nlc3NUb2tlblN1YikgdGhpcy5fYWNjZXNzVG9rZW5TdWIudW5zdWJzY3JpYmUoKTtcblxuICAgICAgdGhpcy5fYWNjZXNzVG9rZW5TdWIgPSB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5hY2Nlc3NUb2tlbiQuc3Vic2NyaWJlKCh0b2tlbjogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSB7IHVybCwgb3B0aW9ucyB9O1xuICAgICAgICB0aGlzLmNvbm5lY3RFdmVudFNvdXJjZShcbiAgICAgICAgICB1cmwsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaGVhZGVyczogeyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YCB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IHsgdXJsLCBvcHRpb25zIH07XG4gICAgICB0aGlzLmNvbm5lY3RFdmVudFNvdXJjZSh1cmwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIEV2ZW50U291cmNlIGNvbm5lY3Rpb24gYW5kIGNsZWFycyBhbGwgbGlzdGVuZXJzLlxuICAgKiBTdWJzY3JpYmVycyBhcmUgcHJlc2VydmVkIGZvciByZWNvbm5lY3Rpb24uXG4gICAqL1xuICBkaXNjb25uZWN0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZXZlbnRTb3VyY2UpIHtcbiAgICAgIHRoaXMubG9nV2FybignTm8gYWN0aXZlIGNvbm5lY3Rpb24gdG8gZGlzY29ubmVjdC4nKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnNGcm9tRXZlbnRTb3VyY2UoKTtcblxuICAgIHRoaXMuX2V2ZW50U291cmNlLmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIGZvciB0aGUgc3BlY2lmaWVkIGV2ZW50IG5hbWUuXG4gICAqIElmIG5vdCBjb25uZWN0ZWQsIHJldHVybnMgYE5FVkVSYCBhbmQgbG9ncyBhbiBlcnJvci5cbiAgICogQXV0b21hdGljYWxseSBhZGRzIGEgbGlzdGVuZXIgZm9yIHRoZSBldmVudCBpZiBuZWVkZWQuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudE5hbWUgVGhlIGV2ZW50IHR5cGUgKCdSRVNPVVJDRV9DUkVBVEVEJywgJ1JFU09VUkNFX1VQREFURUQnLCAnUkVTT1VSQ0VfREVMRVRFRCcpLlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPE1lc3NhZ2VFdmVudD4gVGhlIGV2ZW50IHN0cmVhbS5cbiAgICovXG4gIG9ic2VydmUoZXZlbnROYW1lOiBFdmVudE5hbWUpOiBPYnNlcnZhYmxlPE1lc3NhZ2VFdmVudD4ge1xuICAgIGlmICghdGhpcy5fZXZlbnRTb3VyY2UpIHtcbiAgICAgIHRoaXMubG9nRXJyb3IoJ0Nhbm5vdCBvYnNlcnZlIGV2ZW50cyB3aXRob3V0IGEgY29ubmVjdGlvbi4gQ2FsbCBjb25uZWN0KCkgZmlyc3QuJyk7XG5cbiAgICAgIHJldHVybiBORVZFUjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX2V2ZW50U3Vic2NyaXB0aW9uU3ViamVjdHMuaGFzKGV2ZW50TmFtZSkpIHtcbiAgICAgIHRoaXMuX2V2ZW50U3Vic2NyaXB0aW9uU3ViamVjdHMuc2V0KGV2ZW50TmFtZSwgbmV3IFN1YmplY3Q8TWVzc2FnZUV2ZW50PigpKTtcblxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyRm9yRXZlbnROYW1lKGV2ZW50TmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2V2ZW50U3Vic2NyaXB0aW9uU3ViamVjdHMuZ2V0KGV2ZW50TmFtZSkhLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYWxsIGxpc3RlbmVycyBhbmQgY2xlYXJzIGFsbCBzdWJzY3JpcHRpb25zLlxuICAgKiBUaGUgRXZlbnRTb3VyY2UgY29ubmVjdGlvbiByZW1haW5zIG9wZW4uXG4gICAqL1xuICB1bm9ic2VydmVBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVBbGxFdmVudExpc3RlbmVyc0Zyb21FdmVudFNvdXJjZSgpO1xuICAgIHRoaXMuX2V2ZW50U3Vic2NyaXB0aW9uU3ViamVjdHMuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIEV2ZW50U291cmNlIGlzIGNvbm5lY3RlZCBvciBpbiB0aGUgcHJvY2VzcyBvZiBjb25uZWN0aW5nLlxuICAgKi9cbiAgaXNDb25uZWN0ZWRPckNvbm5lY3RpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX2V2ZW50U291cmNlICYmXG4gICAgICAodGhpcy5fZXZlbnRTb3VyY2UucmVhZHlTdGF0ZSA9PT0gRXZlbnRTb3VyY2UuT1BFTiB8fCB0aGlzLl9ldmVudFNvdXJjZS5yZWFkeVN0YXRlID09PSBFdmVudFNvdXJjZS5DT05ORUNUSU5HKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlY29ubmVjdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZE9yQ29ubmVjdGluZygpKSByZXR1cm47XG5cbiAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmNvbm5lY3QodGhpcy5fb3B0aW9ucy51cmwsIHRoaXMuX29wdGlvbnMub3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGFkZEV2ZW50TGlzdGVuZXJGb3JFdmVudE5hbWUoZXZlbnROYW1lOiBFdmVudE5hbWUpOiB2b2lkIHtcbiAgICBjb25zdCBjYWxsYmFjayA9IChtZXNzYWdlRXZlbnQ6IE1lc3NhZ2VFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgY29uc3Qgc3ViamVjdCA9IHRoaXMuX2V2ZW50U3Vic2NyaXB0aW9uU3ViamVjdHMuZ2V0KGV2ZW50TmFtZSk7XG5cbiAgICAgIGlmIChzdWJqZWN0KSBzdWJqZWN0Lm5leHQobWVzc2FnZUV2ZW50KTtcbiAgICB9O1xuXG4gICAgdGhpcy5fZXZlbnRTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGNhbGxiYWNrKTtcbiAgICB0aGlzLl9saXN0ZW5lcnMucHVzaChbZXZlbnROYW1lLCBjYWxsYmFja10pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRFdmVudExpc3RlbmVyc0ZvckV4aXN0aW5nU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLl9ldmVudFN1YnNjcmlwdGlvblN1YmplY3RzLmZvckVhY2goKHN1YmplY3QsIGV2ZW50TmFtZSkgPT5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lclRvRXZlbnRTb3VyY2UoZXZlbnROYW1lIGFzIEV2ZW50TmFtZSwgKG1lc3NhZ2VFdmVudDogTWVzc2FnZUV2ZW50KSA9PlxuICAgICAgICBzdWJqZWN0Lm5leHQobWVzc2FnZUV2ZW50KVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFkZEV2ZW50TGlzdGVuZXJUb0V2ZW50U291cmNlKGV2ZW50TmFtZTogRXZlbnROYW1lLCBjYWxsYmFjazogKG1lc3NhZ2VFdmVudDogTWVzc2FnZUV2ZW50KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fZXZlbnRTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGNhbGxiYWNrKTtcbiAgICB0aGlzLl9saXN0ZW5lcnMucHVzaChbZXZlbnROYW1lLCBjYWxsYmFja10pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVBbGxFdmVudExpc3RlbmVyc0Zyb21FdmVudFNvdXJjZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2V2ZW50U291cmNlKSB7XG4gICAgICB0aGlzLmxvZ1dhcm4oJ0Nhbm5vdCByZW1vdmUgbGlzdGVuZXJzOiBObyBhY3RpdmUgY29ubmVjdGlvbi4nKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2xpc3RlbmVycy5mb3JFYWNoKChbZXZlbnROYW1lLCBjYWxsYmFja10pID0+IHRoaXMuX2V2ZW50U291cmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBjYWxsYmFjaykpO1xuICAgIHRoaXMuX2xpc3RlbmVycyA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2dXYXJuKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnNvbGUud2FybihgUUQtVUkgfCBRZFB1c2hFdmVudHNTZXJ2aWNlIC0gJHttZXNzYWdlfWApO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2dFcnJvcihtZXNzYWdlOiBzdHJpbmcsIGVycj86IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc29sZS5lcnJvcihgUUQtVUkgfCBRZFB1c2hFdmVudHNTZXJ2aWNlIC0gJHttZXNzYWdlfWAsIGVycik7XG4gIH1cblxuICBwcml2YXRlIGNvbm5lY3RFdmVudFNvdXJjZSh1cmw6IHN0cmluZywgb3B0aW9uczogdW5rbm93biA9IHt9LCByZWNvbm5lY3Q/OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2V2ZW50U291cmNlICYmIHRoaXMuX2V2ZW50U291cmNlLnJlYWR5U3RhdGUgIT09IEV2ZW50U291cmNlLkNMT1NFRCkgdGhpcy5fZXZlbnRTb3VyY2UuY2xvc2UoKTtcblxuICAgIGlmICghdGhpcy5fZXZlbnRTb3VyY2UgfHwgdGhpcy5fZXZlbnRTb3VyY2UucmVhZHlTdGF0ZSA9PT0gRXZlbnRTb3VyY2UuQ0xPU0VEIHx8IHJlY29ubmVjdClcbiAgICAgIHRoaXMuX2V2ZW50U291cmNlID0gbmV3IEV2ZW50U291cmNlUG9seWZpbGwodXJsLCBvcHRpb25zKTtcblxuICAgIHRoaXMuX2V2ZW50U291cmNlLm9uZXJyb3IgPSAoZXJyOiBhbnkpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHN0YXR1cyA9IGVycj8uc3RhdHVzIHx8IGVycj8udGFyZ2V0Py5zdGF0dXM7XG5cbiAgICAgIGlmIChzdGF0dXMgPT09IDQwMSkge1xuICAgICAgICB0aGlzLl9pc1VuYXV0aG9yaXplZCA9IHRydWU7XG4gICAgICAgIHRoaXMubG9nRXJyb3IoJ1NTRSBjb25uZWN0aW9uIHVuYXV0aG9yaXplZCAoNDAxKTonLCBlcnIpO1xuICAgICAgICB0aGlzLl9ldmVudFNvdXJjZS5jbG9zZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2V2ZW50U291cmNlLnJlYWR5U3RhdGUgPT09IEV2ZW50U291cmNlLkNMT1NFRCkgdGhpcy5yZWNvbm5lY3QoKTtcblxuICAgICAgdGhpcy5sb2dFcnJvcignU1NFIGNvbm5lY3Rpb24gZXJyb3I6JywgZXJyKTtcbiAgICB9O1xuXG4gICAgdGhpcy5fZXZlbnRTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcignSEVBUlRCRUFUJywgKG1lc3NhZ2U6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2lzVW5hdXRob3JpemVkKSByZXR1cm47XG5cbiAgICAgIGlmICh0aGlzLl9oZWFydGJlYXRUaW1lb3V0KSBjbGVhclRpbWVvdXQodGhpcy5faGVhcnRiZWF0VGltZW91dCk7XG5cbiAgICAgIGNvbnN0IGludGVydmFsID0gSlNPTi5wYXJzZShtZXNzYWdlLmRhdGEpLmludGVydmFsO1xuICAgICAgdGhpcy5faGVhcnRiZWF0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWNvbm5lY3QoKSwgaW50ZXJ2YWwgKyB0aGlzLl9oZWFydGJlYXRSZWNvbm5lY3REZWxheVRpbWUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5faGVhcnRiZWF0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWNvbm5lY3QoKSwgdGhpcy5fcmVjb25uZWN0RGVsYXlUaW1lKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnNGb3JFeGlzdGluZ1N1YnNjcmlwdGlvbnMoKTtcbiAgfVxufVxuIl19
@@ -8147,6 +8147,7 @@ class QdPushEventsService {
8147
8147
  _heartbeatReconnectDelayTime = 100;
8148
8148
  _accessTokenSub;
8149
8149
  _options;
8150
+ _isUnauthorized = false;
8150
8151
  constructor(authenticationService) {
8151
8152
  this.authenticationService = authenticationService;
8152
8153
  }
@@ -8270,6 +8271,7 @@ class QdPushEventsService {
8270
8271
  this._eventSource.onerror = (err) => {
8271
8272
  const status = err?.status || err?.target?.status;
8272
8273
  if (status === 401) {
8274
+ this._isUnauthorized = true;
8273
8275
  this.logError('SSE connection unauthorized (401):', err);
8274
8276
  this._eventSource.close();
8275
8277
  return;
@@ -8279,6 +8281,8 @@ class QdPushEventsService {
8279
8281
  this.logError('SSE connection error:', err);
8280
8282
  };
8281
8283
  this._eventSource.addEventListener('HEARTBEAT', (message) => {
8284
+ if (this._isUnauthorized)
8285
+ return;
8282
8286
  if (this._heartbeatTimeout)
8283
8287
  clearTimeout(this._heartbeatTimeout);
8284
8288
  const interval = JSON.parse(message.data).interval;