@delon/auth 13.4.2 → 13.5.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.
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class DelonAuthModule {
4
4
  }
5
- DelonAuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DelonAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6
- DelonAuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DelonAuthModule });
7
- DelonAuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DelonAuthModule });
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DelonAuthModule, decorators: [{
5
+ DelonAuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DelonAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6
+ DelonAuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DelonAuthModule });
7
+ DelonAuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DelonAuthModule });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DelonAuthModule, decorators: [{
9
9
  type: NgModule,
10
10
  args: [{}]
11
11
  }] });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUd6QyxNQUFNLE9BQU8sZUFBZTs7NEdBQWYsZUFBZTs2R0FBZixlQUFlOzZHQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsUUFBUTttQkFBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQE5nTW9kdWxlKHt9KVxuZXhwb3J0IGNsYXNzIERlbG9uQXV0aE1vZHVsZSB7fVxuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUd6QyxNQUFNLE9BQU8sZUFBZTs7NkdBQWYsZUFBZTs4R0FBZixlQUFlOzhHQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFEM0IsUUFBUTttQkFBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQE5nTW9kdWxlKHt9KVxuZXhwb3J0IGNsYXNzIERlbG9uQXV0aE1vZHVsZSB7fVxuIl19
@@ -91,9 +91,9 @@ export class SocialService {
91
91
  this._winTime = null;
92
92
  }
93
93
  }
94
- SocialService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SocialService, deps: [{ token: DA_SERVICE_TOKEN }, { token: DOCUMENT }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
95
- SocialService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SocialService });
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SocialService, decorators: [{
94
+ SocialService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SocialService, deps: [{ token: DA_SERVICE_TOKEN }, { token: DOCUMENT }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
95
+ SocialService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SocialService });
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SocialService, decorators: [{
97
97
  type: Injectable
98
98
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
99
99
  type: Inject,
@@ -102,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
102
102
  type: Inject,
103
103
  args: [DOCUMENT]
104
104
  }] }, { type: i1.Router }]; } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9zb2NpYWwvc29jaWFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxNQUFNLENBQUM7QUFJNUMsT0FBTyxFQUFFLGdCQUFnQixFQUE4QixNQUFNLG9CQUFvQixDQUFDOzs7QUFFbEYsTUFBTSxRQUFRLEdBQUcsc0JBQXNCLENBQUM7QUFDeEMsTUFBTSxZQUFZLEdBQUcsZ0NBQWdDLENBQUM7QUFLdEQsTUFBTSxPQUFPLGFBQWE7SUFLeEIsWUFDb0MsWUFBMkIsRUFDbkMsR0FBYyxFQUNoQyxNQUFjO1FBRlksaUJBQVksR0FBWixZQUFZLENBQWU7UUFDbkMsUUFBRyxHQUFILEdBQUcsQ0FBVztRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBUGhCLFNBQUksR0FBa0IsSUFBSSxDQUFDO0lBUWhDLENBQUM7SUFnQ0o7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FDSCxHQUFXLEVBQ1gsV0FBbUIsR0FBRyxFQUN0QixVQUdJLEVBQUU7UUFFTixPQUFPLEdBQUc7WUFDUixJQUFJLEVBQUUsUUFBUTtZQUNkLGNBQWMsRUFBRSw2REFBNkQ7WUFDN0UsR0FBRyxPQUFPO1NBQ1gsQ0FBQztRQUNGLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxJQUFLLENBQUMsQ0FBQztRQUM5QyxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM3QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQzNCLElBQUksQ0FBQyxH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UUFBUSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQzs7MEdBaklVLGFBQWEsa0JBTWQsZ0JBQWdCLGFBQ2hCLFFBQVE7OEdBUFAsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixVQUFVOzswQkFPTixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ3ZCLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHR5cGUgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuXG5pbXBvcnQgeyBEQV9TRVJWSUNFX1RPS0VOLCBJVG9rZW5Nb2RlbCwgSVRva2VuU2VydmljZSB9IGZyb20gJy4uL3Rva2VuL2ludGVyZmFjZSc7XG5cbmNvbnN0IE9QRU5UWVBFID0gJ19kZWxvbkF1dGhTb2NpYWxUeXBlJztcbmNvbnN0IEhSRUZDQUxMQkFDSyA9ICdfZGVsb25BdXRoU29jaWFsQ2FsbGJhY2tCeUhyZWYnO1xuXG5leHBvcnQgdHlwZSBTb2NpYWxPcGVuVHlwZSA9ICdocmVmJyB8ICd3aW5kb3cnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU29jaWFsU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3dpbjogV2luZG93IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3dpblRpbWU6IE56U2FmZUFueTtcbiAgcHJpdmF0ZSBvYnNlcnZlciE6IE9ic2VydmVyPElUb2tlbk1vZGVsIHwgbnVsbD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChEQV9TRVJWSUNFX1RPS0VOKSBwcml2YXRlIHRva2VuU2VydmljZTogSVRva2VuU2VydmljZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvYzogTnpTYWZlQW55LFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiDkvb/nlKjnqpfkvZPmiZPlvIDmjojmnYPpobXvvIzov5Tlm57lgLzmmK8gYE9ic2VydmFibGU8SVRva2VuTW9kZWw+YCDnlKjkuo7orqLpmIXmjojmnYPlkI7ov5Tlm57nmoTnu5PmnpxcbiAgICpcbiAgICogQHBhcmFtIHVybCDojrflj5bmjojmnYPlnLDlnYBcbiAgICogQHBhcmFtIGNhbGxiYWNrIOWbnuiwg+i3r+eUseWcsOWdgFxuICAgKiBAcGFyYW0gb3B0aW9ucy53aW5kb3dGZWF0dXJlcyDnrYnlkIwgYHdpbmRvdy5vcGVuYCDnmoQgYGZlYXR1cmVzYCDlj4LmlbDlgLxcbiAgICovXG4gIGxvZ2luKFxuICAgIHVybDogc3RyaW5nLFxuICAgIGNhbGxiYWNrPzogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICB0eXBlPzogJ3dpbmRvdyc7XG4gICAgICB3aW5kb3dGZWF0dXJlcz86IHN0cmluZztcbiAgICB9XG4gICk6IE9ic2VydmFibGU8SVRva2VuTW9kZWw+O1xuXG4gIC8qKlxuICAgKiDot7Povazoh7PmjojmnYPpobVcbiAgICpcbiAgICogQHBhcmFtIHVybCDojrflj5bmjojmnYPlnLDlnYBcbiAgICogQHBhcmFtIGNhbGxiYWNrIOWbnuiwg+i3r+eUseWcsOWdgFxuICAgKi9cbiAgbG9naW4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgY2FsbGJhY2s/OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIHR5cGU/OiAnaHJlZic7XG4gICAgfVxuICApOiB2b2lkO1xuXG4gIC8qKlxuICAgKiDot7Povazoh7PnmbvlvZXpobXvvIzoi6XkuLogYHR5cGU9d2luZG93YCDml7bvvIzov5Tlm57lgLzmmK8gYE9ic2VydmFibGU8SVRva2VuTW9kZWw+YFxuICAgKlxuICAgKiBAcGFyYW0gdXJsIOiOt+WPluaOiOadg+WcsOWdgFxuICAgKiBAcGFyYW0gY2FsbGJhY2sg5b2TIGB0eXBlPWhyZWZgIOaIkOWKn+aXtueahOWbnuiwg+i3r+eUseWcsOWdgFxuICAgKiBAcGFyYW0gb3B0aW9ucy50eXBlIOaJk+W8gOaWueW8j++8jOm7mOiupCBgd2luZG93YFxuICAgKiBAcGFyYW0gb3B0aW9ucy53aW5kb3dGZWF0dXJlcyDnrYnlkIwgYHdpbmRvdy5vcGVuYCDnmoQgYGZlYXR1cmVzYCDlj4LmlbDlgLxcbiAgICovXG4gIGxvZ2luKFxuICAgIHVybDogc3RyaW5nLFxuICAgIGNhbGxiYWNrOiBzdHJpbmcgPSAnLycsXG4gICAgb3B0aW9uczoge1xuICAgICAgdHlwZT86IFNvY2lhbE9wZW5UeXBlO1xuICAgICAgd2luZG93RmVhdHVyZXM/OiBzdHJpbmc7XG4gICAgfSA9IHt9XG4gICk6IE9ic2VydmFibGU8SVRva2VuTW9kZWwgfCBudWxsPiB8IHZvaWQge1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICB0eXBlOiAnd2luZG93JyxcbiAgICAgIHdpbmRvd0ZlYXR1cmVzOiAnbG9jYXRpb249eWVzLGhlaWdodD01NzAsd2lkdGg9NTIwLHNjcm9sbGJhcnM9eWVzLHN0YXR1cz15ZXMnLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH07XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oT1BFTlRZUEUsIG9wdGlvbnMudHlwZSEpO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKEhSRUZDQUxMQkFDSywgY2FsbGJhY2spO1xuICAgIGlmIChvcHRpb25zLnR5cGUgPT09ICdocmVmJykge1xuICAgICAgdGhpcy5kb2MubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl93aW4gPSB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnLCBvcHRpb25zLndpbmRvd0ZlYXR1cmVzKTtcbiAgICB0aGlzLl93aW5UaW1lID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX3dpbiAmJiB0aGlzLl93aW4uY2xvc2VkKSB7XG4gICAgICAgIHRoaXMubmdPbkRlc3Ryb3koKTtcblxuICAgICAgICBsZXQgbW9kZWwgPSB0aGlzLnRva2VuU2VydmljZS5nZXQoKTtcbiAgICAgICAgaWYgKG1vZGVsICYmICFtb2RlbC50b2tlbikgbW9kZWwgPSBudWxsO1xuXG4gICAgICAgIC8vIOinpuWPkeWPmOabtOmAmuefpVxuICAgICAgICBpZiAobW9kZWwpIHtcbiAgICAgICAgICB0aGlzLnRva2VuU2VydmljZS5zZXQobW9kZWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG1vZGVsKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgfVxuICAgIH0sIDEwMCk7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8SVRva2VuTW9kZWwgfCBudWxsPikgPT4ge1xuICAgICAgdGhpcy5vYnNlcnZlciA9IG9ic2VydmVyO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIOaOiOadg+aIkOWKn+WQjueahOWbnuiwg+WkhOeQhlxuICAgKlxuICAgKiBAcGFyYW0gcmF3RGF0YSDmjIflrprlm57osIPorqTor4Hkv6Hmga/vvIzkuLrnqbrml7bku47moLnmja7lvZPliY1VUkzop6PmnpBcbiAgICovXG4gIGNhbGxiYWNrKHJhd0RhdGE/OiBJVG9rZW5Nb2RlbCB8IHN0cmluZyB8IG51bGwpOiBJVG9rZW5Nb2RlbCB7XG4gICAgLy8gZnJvbSB1cmlcbiAgICBpZiAoIXJhd0RhdGEgJiYgdGhpcy5yb3V0ZXIudXJsLmluZGV4T2YoJz8nKSA9PT0gLTEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdXJsIG11c2UgY29udGFpbiBhID9gKTtcbiAgICB9XG4gICAgLy8gcGFyc2VcbiAgICBsZXQgZGF0YTogSVRva2VuTW9kZWwgPSB7IHRva2VuOiBgYCB9O1xuICAgIGlmICh0eXBlb2YgcmF3RGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHJpZ2h0VXJsID0gcmF3RGF0YS5zcGxpdCgnPycpWzFdLnNwbGl0KCcjJylbMF07XG4gICAgICBkYXRhID0gdGhpcy5yb3V0ZXIucGFyc2VVcmwoYC4vPyR7cmlnaHRVcmx9YCkucXVlcnlQYXJhbXMgYXMgSVRva2VuTW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGEgPSByYXdEYXRhIGFzIElUb2tlbk1vZGVsO1xuICAgIH1cblxuICAgIGlmICghZGF0YSB8fCAhZGF0YS50b2tlbikgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkZSB0b2tlbiBkYXRhYCk7XG4gICAgdGhpcy50b2tlblNlcnZpY2Uuc2V0KGRhdGEpO1xuXG4gICAgY29uc3QgdXJsID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oSFJFRkNBTExCQUNLKSB8fCAnLyc7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oSFJFRkNBTExCQUNLKTtcbiAgICBjb25zdCB0eXBlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oT1BFTlRZUEUpO1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKE9QRU5UWVBFKTtcbiAgICBpZiAodHlwZSA9PT0gJ3dpbmRvdycpIHtcbiAgICAgIHdpbmRvdy5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMuX3dpblRpbWUpO1xuICAgIHRoaXMuX3dpblRpbWUgPSBudWxsO1xuICB9XG59XG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9zb2NpYWwvc29jaWFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxNQUFNLENBQUM7QUFJNUMsT0FBTyxFQUFFLGdCQUFnQixFQUE4QixNQUFNLG9CQUFvQixDQUFDOzs7QUFFbEYsTUFBTSxRQUFRLEdBQUcsc0JBQXNCLENBQUM7QUFDeEMsTUFBTSxZQUFZLEdBQUcsZ0NBQWdDLENBQUM7QUFLdEQsTUFBTSxPQUFPLGFBQWE7SUFLeEIsWUFDb0MsWUFBMkIsRUFDbkMsR0FBYyxFQUNoQyxNQUFjO1FBRlksaUJBQVksR0FBWixZQUFZLENBQWU7UUFDbkMsUUFBRyxHQUFILEdBQUcsQ0FBVztRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBUGhCLFNBQUksR0FBa0IsSUFBSSxDQUFDO0lBUWhDLENBQUM7SUFnQ0o7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FDSCxHQUFXLEVBQ1gsV0FBbUIsR0FBRyxFQUN0QixVQUdJLEVBQUU7UUFFTixPQUFPLEdBQUc7WUFDUixJQUFJLEVBQUUsUUFBUTtZQUNkLGNBQWMsRUFBRSw2REFBNkQ7WUFDN0UsR0FBRyxPQUFPO1NBQ1gsQ0FBQztRQUNGLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxJQUFLLENBQUMsQ0FBQztRQUM5QyxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM3QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQzNCLElBQUksQ0FBQyxH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UUFBUSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQzs7MkdBaklVLGFBQWEsa0JBTWQsZ0JBQWdCLGFBQ2hCLFFBQVE7K0dBUFAsYUFBYTs0RkFBYixhQUFhO2tCQUR6QixVQUFVOzswQkFPTixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ3ZCLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHR5cGUgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuXG5pbXBvcnQgeyBEQV9TRVJWSUNFX1RPS0VOLCBJVG9rZW5Nb2RlbCwgSVRva2VuU2VydmljZSB9IGZyb20gJy4uL3Rva2VuL2ludGVyZmFjZSc7XG5cbmNvbnN0IE9QRU5UWVBFID0gJ19kZWxvbkF1dGhTb2NpYWxUeXBlJztcbmNvbnN0IEhSRUZDQUxMQkFDSyA9ICdfZGVsb25BdXRoU29jaWFsQ2FsbGJhY2tCeUhyZWYnO1xuXG5leHBvcnQgdHlwZSBTb2NpYWxPcGVuVHlwZSA9ICdocmVmJyB8ICd3aW5kb3cnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU29jaWFsU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3dpbjogV2luZG93IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3dpblRpbWU6IE56U2FmZUFueTtcbiAgcHJpdmF0ZSBvYnNlcnZlciE6IE9ic2VydmVyPElUb2tlbk1vZGVsIHwgbnVsbD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChEQV9TRVJWSUNFX1RPS0VOKSBwcml2YXRlIHRva2VuU2VydmljZTogSVRva2VuU2VydmljZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvYzogTnpTYWZlQW55LFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiDkvb/nlKjnqpfkvZPmiZPlvIDmjojmnYPpobXvvIzov5Tlm57lgLzmmK8gYE9ic2VydmFibGU8SVRva2VuTW9kZWw+YCDnlKjkuo7orqLpmIXmjojmnYPlkI7ov5Tlm57nmoTnu5PmnpxcbiAgICpcbiAgICogQHBhcmFtIHVybCDojrflj5bmjojmnYPlnLDlnYBcbiAgICogQHBhcmFtIGNhbGxiYWNrIOWbnuiwg+i3r+eUseWcsOWdgFxuICAgKiBAcGFyYW0gb3B0aW9ucy53aW5kb3dGZWF0dXJlcyDnrYnlkIwgYHdpbmRvdy5vcGVuYCDnmoQgYGZlYXR1cmVzYCDlj4LmlbDlgLxcbiAgICovXG4gIGxvZ2luKFxuICAgIHVybDogc3RyaW5nLFxuICAgIGNhbGxiYWNrPzogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICB0eXBlPzogJ3dpbmRvdyc7XG4gICAgICB3aW5kb3dGZWF0dXJlcz86IHN0cmluZztcbiAgICB9XG4gICk6IE9ic2VydmFibGU8SVRva2VuTW9kZWw+O1xuXG4gIC8qKlxuICAgKiDot7Povazoh7PmjojmnYPpobVcbiAgICpcbiAgICogQHBhcmFtIHVybCDojrflj5bmjojmnYPlnLDlnYBcbiAgICogQHBhcmFtIGNhbGxiYWNrIOWbnuiwg+i3r+eUseWcsOWdgFxuICAgKi9cbiAgbG9naW4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgY2FsbGJhY2s/OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIHR5cGU/OiAnaHJlZic7XG4gICAgfVxuICApOiB2b2lkO1xuXG4gIC8qKlxuICAgKiDot7Povazoh7PnmbvlvZXpobXvvIzoi6XkuLogYHR5cGU9d2luZG93YCDml7bvvIzov5Tlm57lgLzmmK8gYE9ic2VydmFibGU8SVRva2VuTW9kZWw+YFxuICAgKlxuICAgKiBAcGFyYW0gdXJsIOiOt+WPluaOiOadg+WcsOWdgFxuICAgKiBAcGFyYW0gY2FsbGJhY2sg5b2TIGB0eXBlPWhyZWZgIOaIkOWKn+aXtueahOWbnuiwg+i3r+eUseWcsOWdgFxuICAgKiBAcGFyYW0gb3B0aW9ucy50eXBlIOaJk+W8gOaWueW8j++8jOm7mOiupCBgd2luZG93YFxuICAgKiBAcGFyYW0gb3B0aW9ucy53aW5kb3dGZWF0dXJlcyDnrYnlkIwgYHdpbmRvdy5vcGVuYCDnmoQgYGZlYXR1cmVzYCDlj4LmlbDlgLxcbiAgICovXG4gIGxvZ2luKFxuICAgIHVybDogc3RyaW5nLFxuICAgIGNhbGxiYWNrOiBzdHJpbmcgPSAnLycsXG4gICAgb3B0aW9uczoge1xuICAgICAgdHlwZT86IFNvY2lhbE9wZW5UeXBlO1xuICAgICAgd2luZG93RmVhdHVyZXM/OiBzdHJpbmc7XG4gICAgfSA9IHt9XG4gICk6IE9ic2VydmFibGU8SVRva2VuTW9kZWwgfCBudWxsPiB8IHZvaWQge1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICB0eXBlOiAnd2luZG93JyxcbiAgICAgIHdpbmRvd0ZlYXR1cmVzOiAnbG9jYXRpb249eWVzLGhlaWdodD01NzAsd2lkdGg9NTIwLHNjcm9sbGJhcnM9eWVzLHN0YXR1cz15ZXMnLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH07XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oT1BFTlRZUEUsIG9wdGlvbnMudHlwZSEpO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKEhSRUZDQUxMQkFDSywgY2FsbGJhY2spO1xuICAgIGlmIChvcHRpb25zLnR5cGUgPT09ICdocmVmJykge1xuICAgICAgdGhpcy5kb2MubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl93aW4gPSB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnLCBvcHRpb25zLndpbmRvd0ZlYXR1cmVzKTtcbiAgICB0aGlzLl93aW5UaW1lID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX3dpbiAmJiB0aGlzLl93aW4uY2xvc2VkKSB7XG4gICAgICAgIHRoaXMubmdPbkRlc3Ryb3koKTtcblxuICAgICAgICBsZXQgbW9kZWwgPSB0aGlzLnRva2VuU2VydmljZS5nZXQoKTtcbiAgICAgICAgaWYgKG1vZGVsICYmICFtb2RlbC50b2tlbikgbW9kZWwgPSBudWxsO1xuXG4gICAgICAgIC8vIOinpuWPkeWPmOabtOmAmuefpVxuICAgICAgICBpZiAobW9kZWwpIHtcbiAgICAgICAgICB0aGlzLnRva2VuU2VydmljZS5zZXQobW9kZWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG1vZGVsKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgfVxuICAgIH0sIDEwMCk7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8SVRva2VuTW9kZWwgfCBudWxsPikgPT4ge1xuICAgICAgdGhpcy5vYnNlcnZlciA9IG9ic2VydmVyO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIOaOiOadg+aIkOWKn+WQjueahOWbnuiwg+WkhOeQhlxuICAgKlxuICAgKiBAcGFyYW0gcmF3RGF0YSDmjIflrprlm57osIPorqTor4Hkv6Hmga/vvIzkuLrnqbrml7bku47moLnmja7lvZPliY1VUkzop6PmnpBcbiAgICovXG4gIGNhbGxiYWNrKHJhd0RhdGE/OiBJVG9rZW5Nb2RlbCB8IHN0cmluZyB8IG51bGwpOiBJVG9rZW5Nb2RlbCB7XG4gICAgLy8gZnJvbSB1cmlcbiAgICBpZiAoIXJhd0RhdGEgJiYgdGhpcy5yb3V0ZXIudXJsLmluZGV4T2YoJz8nKSA9PT0gLTEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdXJsIG11c2UgY29udGFpbiBhID9gKTtcbiAgICB9XG4gICAgLy8gcGFyc2VcbiAgICBsZXQgZGF0YTogSVRva2VuTW9kZWwgPSB7IHRva2VuOiBgYCB9O1xuICAgIGlmICh0eXBlb2YgcmF3RGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHJpZ2h0VXJsID0gcmF3RGF0YS5zcGxpdCgnPycpWzFdLnNwbGl0KCcjJylbMF07XG4gICAgICBkYXRhID0gdGhpcy5yb3V0ZXIucGFyc2VVcmwoYC4vPyR7cmlnaHRVcmx9YCkucXVlcnlQYXJhbXMgYXMgSVRva2VuTW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGEgPSByYXdEYXRhIGFzIElUb2tlbk1vZGVsO1xuICAgIH1cblxuICAgIGlmICghZGF0YSB8fCAhZGF0YS50b2tlbikgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkZSB0b2tlbiBkYXRhYCk7XG4gICAgdGhpcy50b2tlblNlcnZpY2Uuc2V0KGRhdGEpO1xuXG4gICAgY29uc3QgdXJsID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oSFJFRkNBTExCQUNLKSB8fCAnLyc7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oSFJFRkNBTExCQUNLKTtcbiAgICBjb25zdCB0eXBlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oT1BFTlRZUEUpO1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKE9QRU5UWVBFKTtcbiAgICBpZiAodHlwZSA9PT0gJ3dpbmRvdycpIHtcbiAgICAgIHdpbmRvdy5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMuX3dpblRpbWUpO1xuICAgIHRoaXMuX3dpblRpbWUgPSBudWxsO1xuICB9XG59XG4iXX0=
@@ -76,11 +76,11 @@ export class BaseInterceptor {
76
76
  return next.handle(req);
77
77
  }
78
78
  }
79
- BaseInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: BaseInterceptor, deps: [{ token: i0.Injector, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
80
- BaseInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: BaseInterceptor });
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: BaseInterceptor, decorators: [{
79
+ BaseInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseInterceptor, deps: [{ token: i0.Injector, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
80
+ BaseInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseInterceptor });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseInterceptor, decorators: [{
82
82
  type: Injectable
83
83
  }], ctorParameters: function () { return [{ type: i0.Injector, decorators: [{
84
84
  type: Optional
85
85
  }] }]; } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL3Rva2VuL2Jhc2UuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUlqQixVQUFVLEVBRVYsaUJBQWlCLEVBQ2xCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBWSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQW1CLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR25DLE1BQU0sMEJBQTBCO0lBQzlCLFlBQW9CLElBQWlCLEVBQVUsV0FBNEI7UUFBdkQsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtJQUFHLENBQUM7SUFFL0UsTUFBTSxDQUFDLEdBQTJCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUFHRCxNQUFNLE9BQWdCLGVBQWU7SUFDbkMsWUFBa0MsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUFHLENBQUM7SUFReEQsU0FBUyxDQUFDLEdBQTJCLEVBQUUsSUFBaUI7UUFDdEQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUNuRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxD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Qy9CLE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FDeEMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLDBCQUEwQixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsRUFDNUU7d0JBQ0UsTUFBTSxFQUFFLENBQUMsQ0FBeUIsRUFBRSxFQUFFLENBQUMsSUFBSTtxQkFDNUMsQ0FDRixDQUFDO29CQUNGLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDMUI7YUFDRjtZQUNELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7NEdBcEVtQixlQUFlO2dIQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFEcEMsVUFBVTs7MEJBRUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEh0dHBFcnJvclJlc3BvbnNlLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwSW50ZXJjZXB0b3IsXG4gIEh0dHBQYXJhbXMsXG4gIEh0dHBSZXF1ZXN0LFxuICBIVFRQX0lOVEVSQ0VQVE9SU1xufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIE9ic2VydmVyIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFsYWluQXV0aENvbmZpZywgQWxhaW5Db25maWdTZXJ2aWNlIH0gZnJvbSAnQGRlbG9uL3V0aWwvY29uZmlnJztcbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHsgbWVyZ2VDb25maWcgfSBmcm9tICcuLi9hdXRoLmNvbmZpZyc7XG5pbXBvcnQgeyBUb0xvZ2luIH0gZnJvbSAnLi9oZWxwZXInO1xuaW1wb3J0IHsgSVRva2VuTW9kZWwgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5cbmNsYXNzIEh0dHBBdXRoSW50ZXJjZXB0b3JIYW5kbGVyIGltcGxlbWVudHMgSHR0cEhhbmRsZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5leHQ6IEh0dHBIYW5kbGVyLCBwcml2YXRlIGludGVyY2VwdG9yOiBIdHRwSW50ZXJjZXB0b3IpIHt9XG5cbiAgaGFuZGxlKHJlcTogSHR0cFJlcXVlc3Q8TnpTYWZlQW55Pik6IE9ic2VydmFibGU8SHR0cEV2ZW50PE56U2FmZUFueT4+IHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcmNlcHRvci5pbnRlcmNlcHQocmVxLCB0aGlzLm5leHQpO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIHByb3RlY3RlZCBtb2RlbCE6IElUb2tlbk1vZGVsO1xuXG4gIGFic3RyYWN0IGlzQXV0aChvcHRpb25zOiBBbGFpbkF1dGhDb25maWcpOiBib29sZWFuO1xuXG4gIGFic3RyYWN0IHNldFJlcShyZXE6IEh0dHBSZXF1ZXN0PE56U2FmZUFueT4sIG9wdGlvbnM6IEFsYWluQXV0aENvbmZpZyk6IEh0dHBSZXF1ZXN0PE56U2FmZUFueT47XG5cbiAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8TnpTYWZlQW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxOelNhZmVBbnk+PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IG1lcmdlQ29uZmlnKHRoaXMuaW5qZWN0b3IuZ2V0KEFsYWluQ29uZmlnU2VydmljZSkpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMuaWdub3JlcykpIHtcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBvcHRpb25zLmlnbm9yZXMpIHtcbiAgICAgICAgaWYgKGl0ZW0udGVzdChyZXEudXJsKSkgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaW5nb3JlS2V5ID0gb3B0aW9ucy5hbGxvd19hbm9ueW1vdXNfa2V5ITtcbiAgICBsZXQgaW5nb3JlZCA9IGZhbHNlO1xuICAgIGxldCBwYXJhbXMgPSByZXEucGFyYW1zO1xuICAgIGxldCB1cmwgPSByZXEudXJsO1xuICAgIGlmIChyZXEucGFyYW1zLmhhcyhpbmdvcmVLZXkpKSB7XG4gICAgICBwYXJhbXMgPSByZXEucGFyYW1zLmRlbGV0ZShpbmdvcmVLZXkpO1xuICAgICAgaW5nb3JlZCA9IHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHVybEFyciA9IHJlcS51cmwuc3BsaXQoJz8nKTtcbiAgICBpZiAodXJsQXJyLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoeyBmcm9tU3RyaW5nOiB1cmxBcnJbMV0gfSk7XG4gICAgICBpZiAocXVlcnlTdHJpbmdQYXJhbXMuaGFzKGluZ29yZUtleSkpIHtcbiAgICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBxdWVyeVN0cmluZ1BhcmFtcy5kZWxldGUoaW5nb3JlS2V5KS50b1N0cmluZygpO1xuICAgICAgICB1cmwgPSBxdWVyeVN0cmluZy5sZW5ndGggPiAwID8gYCR7dXJsQXJyWzBdfT8ke3F1ZXJ5U3RyaW5nfWAgOiB1cmxBcnJbMF07XG4gICAgICAgIGluZ29yZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaW5nb3JlZCkge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcS5jbG9uZSh7IHBhcmFtcywgdXJsIH0pKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0F1dGgob3B0aW9ucykpIHtcbiAgICAgIHJlcSA9IHRoaXMuc2V0UmVxKHJlcSwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFRvTG9naW4ob3B0aW9ucywgdGhpcy5pbmplY3Rvcik7XG4gICAgICAvLyBJbnRlcnJ1cHQgSHR0cCByZXF1ZXN0LCBzbyBuZWVkIHRvIGdlbmVyYXRlIGEgbmV3IE9ic2VydmFibGVcbiAgICAgIGNvbnN0IGVyciQgPSBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IE9ic2VydmVyPEh0dHBFdmVudDxOelNhZmVBbnk+PikgPT4ge1xuICAgICAgICBjb25zdCByZXMgPSBuZXcgSHR0cEVycm9yUmVzcG9uc2Uoe1xuICAgICAgICAgIHVybDogcmVxLnVybCxcbiAgICAgICAgICBoZWFkZXJzOiByZXEuaGVhZGVycyxcbiAgICAgICAgICBzdGF0dXM6IDQwMSxcbiAgICAgICAgICBzdGF0dXNUZXh0OiBg5p2l6IeqIEBkZWxvbi9hdXRoIOeahOaLpuaIqu+8jOaJgOivt+axglVSTOacquaOiOadg++8jOiLpeaYr+eZu+W9lUFQSeWPr+WKoOWFpSBbdXJsP19hbGxvd19hbm9ueW1vdXM9dHJ1ZV0g5p2l6KGo56S65b+955Wl5qCh6aqM77yM5pu05aSa5pa55rOV6K+35Y+C6ICD77yaIGh0dHBzOi8vbmctYWxhaW4uY29tL2F1dGgvZ2V0dGluZy1zdGFydGVkI0FsYWluQXV0aENvbmZpZ1xcblRoZSBpbnRlcmNlcHRpb24gZnJvbSBAZGVsb24vYXV0aCwgdGhlIHJlcXVlc3RlZCBVUkwgaXMgbm90IGF1dGhvcml6ZWQuIElmIHRoZSBsb2dpbiBBUEkgY2FuIGFkZCBbdXJsP19hbGxvd19hbm9ueW1vdXM9dHJ1ZV0gdG8gaWdub3JlIHRoZSBjaGVjaywgcGxlYXNlIHJlZmVyIHRvOiBodHRwczovL25nLWFsYWluLmNvbS9hdXRoL2dldHRpbmctc3RhcnRlZCNBbGFpbkF1dGhDb25maWdgXG4gICAgICAgIH0pO1xuICAgICAgICBvYnNlcnZlci5lcnJvcihyZXMpO1xuICAgICAgfSk7XG4gICAgICBpZiAob3B0aW9ucy5leGVjdXRlT3RoZXJJbnRlcmNlcHRvcnMpIHtcbiAgICAgICAgY29uc3QgaW50ZXJjZXB0b3JzID0gdGhpcy5pbmplY3Rvci5nZXQoSFRUUF9JTlRFUkNFUFRPUlMsIFtdKTtcbiAgICAgICAgY29uc3QgbGFzdEludGVyY2VwdG9ycyA9IGludGVyY2VwdG9ycy5zbGljZShpbnRlcmNlcHRvcnMuaW5kZXhPZih0aGlzKSArIDEpO1xuICAgICAgICBpZiAobGFzdEludGVyY2VwdG9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgY2hhaW4gPSBsYXN0SW50ZXJjZXB0b3JzLnJlZHVjZVJpZ2h0KFxuICAgICAgICAgICAgKF9uZXh0LCBfaW50ZXJjZXB0b3IpID0+IG5ldyBIdHRwQXV0aEludGVyY2VwdG9ySGFuZGxlcihfbmV4dCwgX2ludGVyY2VwdG9yKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaGFuZGxlOiAoXzogSHR0cFJlcXVlc3Q8TnpTYWZlQW55PikgPT4gZXJyJFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGNoYWluLmhhbmRsZShyZXEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZXJyJDtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gIH1cbn1cbiJdfQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL3Rva2VuL2Jhc2UuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUlqQixVQUFVLEVBRVYsaUJBQWlCLEVBQ2xCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBWSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQW1CLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR25DLE1BQU0sMEJBQTBCO0lBQzlCLFlBQW9CLElBQWlCLEVBQVUsV0FBNEI7UUFBdkQsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtJQUFHLENBQUM7SUFFL0UsTUFBTSxDQUFDLEdBQTJCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUFHRCxNQUFNLE9BQWdCLGVBQWU7SUFDbkMsWUFBa0MsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUFHLENBQUM7SUFReEQsU0FBUyxDQUFDLEdBQTJCLEVBQUUsSUFBaUI7UUFDdEQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUNuRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxD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Qy9CLE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FDeEMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLDBCQUEwQixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsRUFDNUU7d0JBQ0UsTUFBTSxFQUFFLENBQUMsQ0FBeUIsRUFBRSxFQUFFLENBQUMsSUFBSTtxQkFDNUMsQ0FDRixDQUFDO29CQUNGLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDMUI7YUFDRjtZQUNELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7NkdBcEVtQixlQUFlO2lIQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFEcEMsVUFBVTs7MEJBRUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEh0dHBFcnJvclJlc3BvbnNlLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwSW50ZXJjZXB0b3IsXG4gIEh0dHBQYXJhbXMsXG4gIEh0dHBSZXF1ZXN0LFxuICBIVFRQX0lOVEVSQ0VQVE9SU1xufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIE9ic2VydmVyIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFsYWluQXV0aENvbmZpZywgQWxhaW5Db25maWdTZXJ2aWNlIH0gZnJvbSAnQGRlbG9uL3V0aWwvY29uZmlnJztcbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHsgbWVyZ2VDb25maWcgfSBmcm9tICcuLi9hdXRoLmNvbmZpZyc7XG5pbXBvcnQgeyBUb0xvZ2luIH0gZnJvbSAnLi9oZWxwZXInO1xuaW1wb3J0IHsgSVRva2VuTW9kZWwgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5cbmNsYXNzIEh0dHBBdXRoSW50ZXJjZXB0b3JIYW5kbGVyIGltcGxlbWVudHMgSHR0cEhhbmRsZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5leHQ6IEh0dHBIYW5kbGVyLCBwcml2YXRlIGludGVyY2VwdG9yOiBIdHRwSW50ZXJjZXB0b3IpIHt9XG5cbiAgaGFuZGxlKHJlcTogSHR0cFJlcXVlc3Q8TnpTYWZlQW55Pik6IE9ic2VydmFibGU8SHR0cEV2ZW50PE56U2FmZUFueT4+IHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcmNlcHRvci5pbnRlcmNlcHQocmVxLCB0aGlzLm5leHQpO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIHByb3RlY3RlZCBtb2RlbCE6IElUb2tlbk1vZGVsO1xuXG4gIGFic3RyYWN0IGlzQXV0aChvcHRpb25zOiBBbGFpbkF1dGhDb25maWcpOiBib29sZWFuO1xuXG4gIGFic3RyYWN0IHNldFJlcShyZXE6IEh0dHBSZXF1ZXN0PE56U2FmZUFueT4sIG9wdGlvbnM6IEFsYWluQXV0aENvbmZpZyk6IEh0dHBSZXF1ZXN0PE56U2FmZUFueT47XG5cbiAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8TnpTYWZlQW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxOelNhZmVBbnk+PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IG1lcmdlQ29uZmlnKHRoaXMuaW5qZWN0b3IuZ2V0KEFsYWluQ29uZmlnU2VydmljZSkpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMuaWdub3JlcykpIHtcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBvcHRpb25zLmlnbm9yZXMpIHtcbiAgICAgICAgaWYgKGl0ZW0udGVzdChyZXEudXJsKSkgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaW5nb3JlS2V5ID0gb3B0aW9ucy5hbGxvd19hbm9ueW1vdXNfa2V5ITtcbiAgICBsZXQgaW5nb3JlZCA9IGZhbHNlO1xuICAgIGxldCBwYXJhbXMgPSByZXEucGFyYW1zO1xuICAgIGxldCB1cmwgPSByZXEudXJsO1xuICAgIGlmIChyZXEucGFyYW1zLmhhcyhpbmdvcmVLZXkpKSB7XG4gICAgICBwYXJhbXMgPSByZXEucGFyYW1zLmRlbGV0ZShpbmdvcmVLZXkpO1xuICAgICAgaW5nb3JlZCA9IHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHVybEFyciA9IHJlcS51cmwuc3BsaXQoJz8nKTtcbiAgICBpZiAodXJsQXJyLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoeyBmcm9tU3RyaW5nOiB1cmxBcnJbMV0gfSk7XG4gICAgICBpZiAocXVlcnlTdHJpbmdQYXJhbXMuaGFzKGluZ29yZUtleSkpIHtcbiAgICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBxdWVyeVN0cmluZ1BhcmFtcy5kZWxldGUoaW5nb3JlS2V5KS50b1N0cmluZygpO1xuICAgICAgICB1cmwgPSBxdWVyeVN0cmluZy5sZW5ndGggPiAwID8gYCR7dXJsQXJyWzBdfT8ke3F1ZXJ5U3RyaW5nfWAgOiB1cmxBcnJbMF07XG4gICAgICAgIGluZ29yZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaW5nb3JlZCkge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcS5jbG9uZSh7IHBhcmFtcywgdXJsIH0pKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0F1dGgob3B0aW9ucykpIHtcbiAgICAgIHJlcSA9IHRoaXMuc2V0UmVxKHJlcSwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFRvTG9naW4ob3B0aW9ucywgdGhpcy5pbmplY3Rvcik7XG4gICAgICAvLyBJbnRlcnJ1cHQgSHR0cCByZXF1ZXN0LCBzbyBuZWVkIHRvIGdlbmVyYXRlIGEgbmV3IE9ic2VydmFibGVcbiAgICAgIGNvbnN0IGVyciQgPSBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IE9ic2VydmVyPEh0dHBFdmVudDxOelNhZmVBbnk+PikgPT4ge1xuICAgICAgICBjb25zdCByZXMgPSBuZXcgSHR0cEVycm9yUmVzcG9uc2Uoe1xuICAgICAgICAgIHVybDogcmVxLnVybCxcbiAgICAgICAgICBoZWFkZXJzOiByZXEuaGVhZGVycyxcbiAgICAgICAgICBzdGF0dXM6IDQwMSxcbiAgICAgICAgICBzdGF0dXNUZXh0OiBg5p2l6IeqIEBkZWxvbi9hdXRoIOeahOaLpuaIqu+8jOaJgOivt+axglVSTOacquaOiOadg++8jOiLpeaYr+eZu+W9lUFQSeWPr+WKoOWFpSBbdXJsP19hbGxvd19hbm9ueW1vdXM9dHJ1ZV0g5p2l6KGo56S65b+955Wl5qCh6aqM77yM5pu05aSa5pa55rOV6K+35Y+C6ICD77yaIGh0dHBzOi8vbmctYWxhaW4uY29tL2F1dGgvZ2V0dGluZy1zdGFydGVkI0FsYWluQXV0aENvbmZpZ1xcblRoZSBpbnRlcmNlcHRpb24gZnJvbSBAZGVsb24vYXV0aCwgdGhlIHJlcXVlc3RlZCBVUkwgaXMgbm90IGF1dGhvcml6ZWQuIElmIHRoZSBsb2dpbiBBUEkgY2FuIGFkZCBbdXJsP19hbGxvd19hbm9ueW1vdXM9dHJ1ZV0gdG8gaWdub3JlIHRoZSBjaGVjaywgcGxlYXNlIHJlZmVyIHRvOiBodHRwczovL25nLWFsYWluLmNvbS9hdXRoL2dldHRpbmctc3RhcnRlZCNBbGFpbkF1dGhDb25maWdgXG4gICAgICAgIH0pO1xuICAgICAgICBvYnNlcnZlci5lcnJvcihyZXMpO1xuICAgICAgfSk7XG4gICAgICBpZiAob3B0aW9ucy5leGVjdXRlT3RoZXJJbnRlcmNlcHRvcnMpIHtcbiAgICAgICAgY29uc3QgaW50ZXJjZXB0b3JzID0gdGhpcy5pbmplY3Rvci5nZXQoSFRUUF9JTlRFUkNFUFRPUlMsIFtdKTtcbiAgICAgICAgY29uc3QgbGFzdEludGVyY2VwdG9ycyA9IGludGVyY2VwdG9ycy5zbGljZShpbnRlcmNlcHRvcnMuaW5kZXhPZih0aGlzKSArIDEpO1xuICAgICAgICBpZiAobGFzdEludGVyY2VwdG9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgY2hhaW4gPSBsYXN0SW50ZXJjZXB0b3JzLnJlZHVjZVJpZ2h0KFxuICAgICAgICAgICAgKF9uZXh0LCBfaW50ZXJjZXB0b3IpID0+IG5ldyBIdHRwQXV0aEludGVyY2VwdG9ySGFuZGxlcihfbmV4dCwgX2ludGVyY2VwdG9yKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaGFuZGxlOiAoXzogSHR0cFJlcXVlc3Q8TnpTYWZlQW55PikgPT4gZXJyJFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGNoYWluLmhhbmRsZShyZXEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZXJyJDtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gIH1cbn1cbiJdfQ==
@@ -51,13 +51,13 @@ export class JWTGuard {
51
51
  return this.process();
52
52
  }
53
53
  }
54
- JWTGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTGuard, deps: [{ token: DA_SERVICE_TOKEN }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
55
- JWTGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTGuard, providedIn: 'root' });
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTGuard, decorators: [{
54
+ JWTGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTGuard, deps: [{ token: DA_SERVICE_TOKEN }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
55
+ JWTGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTGuard, providedIn: 'root' });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTGuard, decorators: [{
57
57
  type: Injectable,
58
58
  args: [{ providedIn: 'root' }]
59
59
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
60
60
  type: Inject,
61
61
  args: [DA_SERVICE_TOKEN]
62
62
  }] }, { type: i0.Injector }]; } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0Lmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvdG9rZW4vand0L2p3dC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQWE3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQWlCLE1BQU0sY0FBYyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRTVDOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBRUgsTUFBTSxPQUFPLFFBQVE7SUFPbkIsWUFBOEMsR0FBa0IsRUFBVSxRQUFrQjtRQUE5QyxRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUFHLENBQUM7SUFKaEcsSUFBWSxHQUFHO1FBQ2IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBSU8sT0FBTztRQUNiLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBZ0IsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBaUIsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELGVBQWU7SUFDZixPQUFPLENBQUMsS0FBWSxFQUFFLFNBQXVCO1FBQzNDLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBQ0QscUJBQXFCO0lBQ3JCLGdCQUFnQixDQUFDLFdBQW1DLEVBQUUsS0FBMEI7UUFDOUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxRQUFRO0lBQ1IsV0FBVyxDQUFDLE1BQThCLEVBQUUsS0FBMEI7UUFDcEUsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7O3FHQS9CVSxRQUFRLGtCQU9DLGdCQUFnQjt5R0FQekIsUUFBUSxjQURLLE1BQU07MkZBQ25CLFFBQVE7a0JBRHBCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFRbkIsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBDYW5BY3RpdmF0ZSxcbiAgQ2FuQWN0aXZhdGVDaGlsZCxcbiAgQ2FuTG9hZCxcbiAgUm91dGUsXG4gIFJvdXRlclN0YXRlU25hcHNob3QsXG4gIFVybFNlZ21lbnRcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQWxhaW5BdXRoQ29uZmlnIH0gZnJvbSAnQGRlbG9uL3V0aWwvY29uZmlnJztcblxuaW1wb3J0IHsgQ2hlY2tKd3QsIFRvTG9naW4gfSBmcm9tICcuLi9oZWxwZXInO1xuaW1wb3J0IHsgREFfU0VSVklDRV9UT0tFTiwgSVRva2VuU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBKV1RUb2tlbk1vZGVsIH0gZnJvbSAnLi9qd3QubW9kZWwnO1xuXG4vKipcbiAqIEpXVCDot6/nlLHlrojljassIFtBQ0wgRG9jdW1lbnRdKGh0dHBzOi8vbmctYWxhaW4uY29tL2F1dGgvZ3VhcmQpLlxuICpcbiAqIGBgYHRzXG4gKiBkYXRhOiB7XG4gKiAgcGF0aDogJ2hvbWUnLFxuICogIGNhbkFjdGl2YXRlOiBbIEpXVEd1YXJkIF1cbiAqIH0sXG4gKiB7XG4gKiAgIHBhdGg6ICdteScsXG4gKiAgIGNhbkFjdGl2YXRlQ2hpbGQ6IFtKV1RHdWFyZF0sXG4gKiAgIGNoaWxkcmVuOiBbXG4gKiAgICAgeyBwYXRoOiAncHJvZmlsZScsIGNvbXBvbmVudDogTW9ja0NvbXBvbmVudCB9XG4gKiAgIF0sXG4gKiB9LFxuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSldUR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCwgQ2FuTG9hZCB7XG4gIHByaXZhdGUgdXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBnZXQgY29nKCk6IEFsYWluQXV0aENvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuc3J2Lm9wdGlvbnM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KERBX1NFUlZJQ0VfVE9LRU4pIHByaXZhdGUgc3J2OiBJVG9rZW5TZXJ2aWNlLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cblxuICBwcml2YXRlIHByb2Nlc3MoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVzID0gQ2hlY2tKd3QodGhpcy5zcnYuZ2V0PEpXVFRva2VuTW9kZWw+KEpXVFRva2VuTW9kZWwpLCB0aGlzLmNvZy50b2tlbl9leHBfb2Zmc2V0ISk7XG4gICAgaWYgKCFyZXMpIHtcbiAgICAgIFRvTG9naW4odGhpcy5jb2csIHRoaXMuaW5qZWN0b3IsIHRoaXMudXJsKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIC8vIGxhenkgbG9hZGluZ1xuICBjYW5Mb2FkKHJvdXRlOiBSb3V0ZSwgX3NlZ21lbnRzOiBVcmxTZWdtZW50W10pOiBib29sZWFuIHtcbiAgICB0aGlzLnVybCA9IHJvdXRlLnBhdGg7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VzcygpO1xuICB9XG4gIC8vIGFsbCBjaGlsZHJlbiByb3V0ZVxuICBjYW5BY3RpdmF0ZUNoaWxkKF9jaGlsZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xuICAgIHRoaXMudXJsID0gc3RhdGUudXJsO1xuICAgIHJldHVybiB0aGlzLnByb2Nlc3MoKTtcbiAgfVxuICAvLyByb3V0ZVxuICBjYW5BY3RpdmF0ZShfcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogYm9vbGVhbiB7XG4gICAgdGhpcy51cmwgPSBzdGF0ZS51cmw7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VzcygpO1xuICB9XG59XG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0Lmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvdG9rZW4vand0L2p3dC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQWE3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQWlCLE1BQU0sY0FBYyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRTVDOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBRUgsTUFBTSxPQUFPLFFBQVE7SUFPbkIsWUFBOEMsR0FBa0IsRUFBVSxRQUFrQjtRQUE5QyxRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUFHLENBQUM7SUFKaEcsSUFBWSxHQUFHO1FBQ2IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBSU8sT0FBTztRQUNiLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBZ0IsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBaUIsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELGVBQWU7SUFDZixPQUFPLENBQUMsS0FBWSxFQUFFLFNBQXVCO1FBQzNDLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBQ0QscUJBQXFCO0lBQ3JCLGdCQUFnQixDQUFDLFdBQW1DLEVBQUUsS0FBMEI7UUFDOUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxRQUFRO0lBQ1IsV0FBVyxDQUFDLE1BQThCLEVBQUUsS0FBMEI7UUFDcEUsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7O3NHQS9CVSxRQUFRLGtCQU9DLGdCQUFnQjswR0FQekIsUUFBUSxjQURLLE1BQU07NEZBQ25CLFFBQVE7a0JBRHBCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFRbkIsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBDYW5BY3RpdmF0ZSxcbiAgQ2FuQWN0aXZhdGVDaGlsZCxcbiAgQ2FuTG9hZCxcbiAgUm91dGUsXG4gIFJvdXRlclN0YXRlU25hcHNob3QsXG4gIFVybFNlZ21lbnRcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQWxhaW5BdXRoQ29uZmlnIH0gZnJvbSAnQGRlbG9uL3V0aWwvY29uZmlnJztcblxuaW1wb3J0IHsgQ2hlY2tKd3QsIFRvTG9naW4gfSBmcm9tICcuLi9oZWxwZXInO1xuaW1wb3J0IHsgREFfU0VSVklDRV9UT0tFTiwgSVRva2VuU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBKV1RUb2tlbk1vZGVsIH0gZnJvbSAnLi9qd3QubW9kZWwnO1xuXG4vKipcbiAqIEpXVCDot6/nlLHlrojljassIFtBQ0wgRG9jdW1lbnRdKGh0dHBzOi8vbmctYWxhaW4uY29tL2F1dGgvZ3VhcmQpLlxuICpcbiAqIGBgYHRzXG4gKiBkYXRhOiB7XG4gKiAgcGF0aDogJ2hvbWUnLFxuICogIGNhbkFjdGl2YXRlOiBbIEpXVEd1YXJkIF1cbiAqIH0sXG4gKiB7XG4gKiAgIHBhdGg6ICdteScsXG4gKiAgIGNhbkFjdGl2YXRlQ2hpbGQ6IFtKV1RHdWFyZF0sXG4gKiAgIGNoaWxkcmVuOiBbXG4gKiAgICAgeyBwYXRoOiAncHJvZmlsZScsIGNvbXBvbmVudDogTW9ja0NvbXBvbmVudCB9XG4gKiAgIF0sXG4gKiB9LFxuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSldUR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCwgQ2FuTG9hZCB7XG4gIHByaXZhdGUgdXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBnZXQgY29nKCk6IEFsYWluQXV0aENvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuc3J2Lm9wdGlvbnM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KERBX1NFUlZJQ0VfVE9LRU4pIHByaXZhdGUgc3J2OiBJVG9rZW5TZXJ2aWNlLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cblxuICBwcml2YXRlIHByb2Nlc3MoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVzID0gQ2hlY2tKd3QodGhpcy5zcnYuZ2V0PEpXVFRva2VuTW9kZWw+KEpXVFRva2VuTW9kZWwpLCB0aGlzLmNvZy50b2tlbl9leHBfb2Zmc2V0ISk7XG4gICAgaWYgKCFyZXMpIHtcbiAgICAgIFRvTG9naW4odGhpcy5jb2csIHRoaXMuaW5qZWN0b3IsIHRoaXMudXJsKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIC8vIGxhenkgbG9hZGluZ1xuICBjYW5Mb2FkKHJvdXRlOiBSb3V0ZSwgX3NlZ21lbnRzOiBVcmxTZWdtZW50W10pOiBib29sZWFuIHtcbiAgICB0aGlzLnVybCA9IHJvdXRlLnBhdGg7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VzcygpO1xuICB9XG4gIC8vIGFsbCBjaGlsZHJlbiByb3V0ZVxuICBjYW5BY3RpdmF0ZUNoaWxkKF9jaGlsZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xuICAgIHRoaXMudXJsID0gc3RhdGUudXJsO1xuICAgIHJldHVybiB0aGlzLnByb2Nlc3MoKTtcbiAgfVxuICAvLyByb3V0ZVxuICBjYW5BY3RpdmF0ZShfcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogYm9vbGVhbiB7XG4gICAgdGhpcy51cmwgPSBzdGF0ZS51cmw7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VzcygpO1xuICB9XG59XG4iXX0=
@@ -25,9 +25,9 @@ export class JWTInterceptor extends BaseInterceptor {
25
25
  });
26
26
  }
27
27
  }
28
- JWTInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTInterceptor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
29
- JWTInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTInterceptor });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTInterceptor, decorators: [{
28
+ JWTInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTInterceptor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
29
+ JWTInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTInterceptor });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTInterceptor, decorators: [{
31
31
  type: Injectable
32
32
  }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvdG9rZW4vand0L2p3dC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUU1Qzs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFPLGNBQWUsU0FBUSxlQUFlO0lBQ2pELE1BQU0sQ0FBQyxPQUF3QjtRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRyxDQUFnQixhQUFhLENBQUMsQ0FBQztRQUNuRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBc0IsRUFBRSxPQUFPLENBQUMsZ0JBQWlCLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQTJCLEVBQUUsUUFBeUI7UUFDM0QsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ2YsVUFBVSxFQUFFO2dCQUNWLGFBQWEsRUFBRSxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO2FBQzVDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MkdBWlUsY0FBYzsrR0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWxhaW5BdXRoQ29uZmlnIH0gZnJvbSAnQGRlbG9uL3V0aWwvY29uZmlnJztcbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHsgQmFzZUludGVyY2VwdG9yIH0gZnJvbSAnLi4vYmFzZS5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBDaGVja0p3dCB9IGZyb20gJy4uL2hlbHBlcic7XG5pbXBvcnQgeyBEQV9TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi4vaW50ZXJmYWNlJztcbmltcG9ydCB7IEpXVFRva2VuTW9kZWwgfSBmcm9tICcuL2p3dC5tb2RlbCc7XG5cbi8qKlxuICogSldUIOaLpuaIquWZqFxuICpcbiAqIGBgYFxuICogLy8gYXBwLm1vZHVsZS50c1xuICogeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IEpXVEludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZX1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSldUSW50ZXJjZXB0b3IgZXh0ZW5kcyBCYXNlSW50ZXJjZXB0b3Ige1xuICBpc0F1dGgob3B0aW9uczogQWxhaW5BdXRoQ29uZmlnKTogYm9vbGVhbiB7XG4gICAgdGhpcy5tb2RlbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KERBX1NFUlZJQ0VfVE9LRU4pLmdldDxKV1RUb2tlbk1vZGVsPihKV1RUb2tlbk1vZGVsKTtcbiAgICByZXR1cm4gQ2hlY2tKd3QodGhpcy5tb2RlbCBhcyBKV1RUb2tlbk1vZGVsLCBvcHRpb25zLnRva2VuX2V4cF9vZmZzZXQhKTtcbiAgfVxuXG4gIHNldFJlcShyZXE6IEh0dHBSZXF1ZXN0PE56U2FmZUFueT4sIF9vcHRpb25zOiBBbGFpbkF1dGhDb25maWcpOiBIdHRwUmVxdWVzdDxOelNhZmVBbnk+IHtcbiAgICByZXR1cm4gcmVxLmNsb25lKHtcbiAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMubW9kZWwudG9rZW59YFxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvdG9rZW4vand0L2p3dC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUU1Qzs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFPLGNBQWUsU0FBUSxlQUFlO0lBQ2pELE1BQU0sQ0FBQyxPQUF3QjtRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRyxDQUFnQixhQUFhLENBQUMsQ0FBQztRQUNuRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBc0IsRUFBRSxPQUFPLENBQUMsZ0JBQWlCLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQTJCLEVBQUUsUUFBeUI7UUFDM0QsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ2YsVUFBVSxFQUFFO2dCQUNWLGFBQWEsRUFBRSxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO2FBQzVDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7NEdBWlUsY0FBYztnSEFBZCxjQUFjOzRGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWxhaW5BdXRoQ29uZmlnIH0gZnJvbSAnQGRlbG9uL3V0aWwvY29uZmlnJztcbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHsgQmFzZUludGVyY2VwdG9yIH0gZnJvbSAnLi4vYmFzZS5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBDaGVja0p3dCB9IGZyb20gJy4uL2hlbHBlcic7XG5pbXBvcnQgeyBEQV9TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi4vaW50ZXJmYWNlJztcbmltcG9ydCB7IEpXVFRva2VuTW9kZWwgfSBmcm9tICcuL2p3dC5tb2RlbCc7XG5cbi8qKlxuICogSldUIOaLpuaIquWZqFxuICpcbiAqIGBgYFxuICogLy8gYXBwLm1vZHVsZS50c1xuICogeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IEpXVEludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZX1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSldUSW50ZXJjZXB0b3IgZXh0ZW5kcyBCYXNlSW50ZXJjZXB0b3Ige1xuICBpc0F1dGgob3B0aW9uczogQWxhaW5BdXRoQ29uZmlnKTogYm9vbGVhbiB7XG4gICAgdGhpcy5tb2RlbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KERBX1NFUlZJQ0VfVE9LRU4pLmdldDxKV1RUb2tlbk1vZGVsPihKV1RUb2tlbk1vZGVsKTtcbiAgICByZXR1cm4gQ2hlY2tKd3QodGhpcy5tb2RlbCBhcyBKV1RUb2tlbk1vZGVsLCBvcHRpb25zLnRva2VuX2V4cF9vZmZzZXQhKTtcbiAgfVxuXG4gIHNldFJlcShyZXE6IEh0dHBSZXF1ZXN0PE56U2FmZUFueT4sIF9vcHRpb25zOiBBbGFpbkF1dGhDb25maWcpOiBIdHRwUmVxdWVzdDxOelNhZmVBbnk+IHtcbiAgICByZXR1cm4gcmVxLmNsb25lKHtcbiAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMubW9kZWwudG9rZW59YFxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -50,13 +50,13 @@ export class SimpleGuard {
50
50
  return this.process();
51
51
  }
52
52
  }
53
- SimpleGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleGuard, deps: [{ token: DA_SERVICE_TOKEN }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
54
- SimpleGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleGuard, providedIn: 'root' });
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleGuard, decorators: [{
53
+ SimpleGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleGuard, deps: [{ token: DA_SERVICE_TOKEN }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
54
+ SimpleGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleGuard, providedIn: 'root' });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleGuard, decorators: [{
56
56
  type: Injectable,
57
57
  args: [{ providedIn: 'root' }]
58
58
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
59
59
  type: Inject,
60
60
  args: [DA_SERVICE_TOKEN]
61
61
  }] }, { type: i0.Injector }]; } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvdG9rZW4vc2ltcGxlL3NpbXBsZS5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQWE3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWlCLE1BQU0sY0FBYyxDQUFDOztBQUcvRDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUVILE1BQU0sT0FBTyxXQUFXO0lBT3RCLFlBQThDLEdBQWtCLEVBQVUsUUFBa0I7UUFBOUMsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBSmhHLElBQVksR0FBRztRQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUlPLE9BQU87UUFDYixNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQXNCLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDNUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxlQUFlO0lBQ2YsT0FBTyxDQUFDLEtBQVksRUFBRSxTQUF1QjtRQUMzQyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELHFCQUFxQjtJQUNyQixnQkFBZ0IsQ0FBQyxXQUFtQyxFQUFFLEtBQTBCO1FBQzlFLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBQ0QsUUFBUTtJQUNSLFdBQVcsQ0FBQyxNQUE4QixFQUFFLEtBQTBCO1FBQ3BFLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDOzt3R0EvQlUsV0FBVyxrQkFPRixnQkFBZ0I7NEdBUHpCLFdBQVcsY0FERSxNQUFNOzJGQUNuQixXQUFXO2tCQUR2QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBUW5CLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgQ2FuQWN0aXZhdGUsXG4gIENhbkFjdGl2YXRlQ2hpbGQsXG4gIENhbkxvYWQsXG4gIFJvdXRlLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICBVcmxTZWdtZW50XG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEFsYWluQXV0aENvbmZpZyB9IGZyb20gJ0BkZWxvbi91dGlsL2NvbmZpZyc7XG5cbmltcG9ydCB7IENoZWNrU2ltcGxlLCBUb0xvZ2luIH0gZnJvbSAnLi4vaGVscGVyJztcbmltcG9ydCB7IERBX1NFUlZJQ0VfVE9LRU4sIElUb2tlblNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2ltcGxlVG9rZW5Nb2RlbCB9IGZyb20gJy4vc2ltcGxlLm1vZGVsJztcblxuLyoqXG4gKiBTaW1wbGUg6Lev55Sx5a6I5Y2rLCBbQUNMIERvY3VtZW50XShodHRwczovL25nLWFsYWluLmNvbS9hdXRoL2d1YXJkKS5cbiAqXG4gKiBgYGB0c1xuICogZGF0YToge1xuICogIHBhdGg6ICdob21lJyxcbiAqICBjYW5BY3RpdmF0ZTogWyBTaW1wbGVHdWFyZCBdXG4gKiB9LFxuICoge1xuICogICBwYXRoOiAnbXknLFxuICogICBjYW5BY3RpdmF0ZUNoaWxkOiBbU2ltcGxlR3VhcmRdLFxuICogICBjaGlsZHJlbjogW1xuICogICAgIHsgcGF0aDogJ3Byb2ZpbGUnLCBjb21wb25lbnQ6IE1vY2tDb21wb25lbnQgfVxuICogICBdLFxuICogfSxcbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNpbXBsZUd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUsIENhbkFjdGl2YXRlQ2hpbGQsIENhbkxvYWQge1xuICBwcml2YXRlIHVybD86IHN0cmluZztcblxuICBwcml2YXRlIGdldCBjb2coKTogQWxhaW5BdXRoQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5zcnYub3B0aW9ucztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoREFfU0VSVklDRV9UT0tFTikgcHJpdmF0ZSBzcnY6IElUb2tlblNlcnZpY2UsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIHByaXZhdGUgcHJvY2VzcygpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXMgPSBDaGVja1NpbXBsZSh0aGlzLnNydi5nZXQoKSBhcyBTaW1wbGVUb2tlbk1vZGVsKTtcbiAgICBpZiAoIXJlcykge1xuICAgICAgVG9Mb2dpbih0aGlzLmNvZywgdGhpcy5pbmplY3RvciwgdGhpcy51cmwpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgLy8gbGF6eSBsb2FkaW5nXG4gIGNhbkxvYWQocm91dGU6IFJvdXRlLCBfc2VnbWVudHM6IFVybFNlZ21lbnRbXSk6IGJvb2xlYW4ge1xuICAgIHRoaXMudXJsID0gcm91dGUucGF0aDtcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzKCk7XG4gIH1cbiAgLy8gYWxsIGNoaWxkcmVuIHJvdXRlXG4gIGNhbkFjdGl2YXRlQ2hpbGQoX2NoaWxkUm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogYm9vbGVhbiB7XG4gICAgdGhpcy51cmwgPSBzdGF0ZS51cmw7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VzcygpO1xuICB9XG4gIC8vIHJvdXRlXG4gIGNhbkFjdGl2YXRlKF9yb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBib29sZWFuIHtcbiAgICB0aGlzLnVybCA9IHN0YXRlLnVybDtcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzKCk7XG4gIH1cbn1cbiJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvdG9rZW4vc2ltcGxlL3NpbXBsZS5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQWE3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWlCLE1BQU0sY0FBYyxDQUFDOztBQUcvRDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUVILE1BQU0sT0FBTyxXQUFXO0lBT3RCLFlBQThDLEdBQWtCLEVBQVUsUUFBa0I7UUFBOUMsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBSmhHLElBQVksR0FBRztRQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUlPLE9BQU87UUFDYixNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQXNCLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDNUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxlQUFlO0lBQ2YsT0FBTyxDQUFDLEtBQVksRUFBRSxTQUF1QjtRQUMzQyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELHFCQUFxQjtJQUNyQixnQkFBZ0IsQ0FBQyxXQUFtQyxFQUFFLEtBQTBCO1FBQzlFLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBQ0QsUUFBUTtJQUNSLFdBQVcsQ0FBQyxNQUE4QixFQUFFLEtBQTBCO1FBQ3BFLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDOzt5R0EvQlUsV0FBVyxrQkFPRixnQkFBZ0I7NkdBUHpCLFdBQVcsY0FERSxNQUFNOzRGQUNuQixXQUFXO2tCQUR2QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBUW5CLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgQ2FuQWN0aXZhdGUsXG4gIENhbkFjdGl2YXRlQ2hpbGQsXG4gIENhbkxvYWQsXG4gIFJvdXRlLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICBVcmxTZWdtZW50XG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEFsYWluQXV0aENvbmZpZyB9IGZyb20gJ0BkZWxvbi91dGlsL2NvbmZpZyc7XG5cbmltcG9ydCB7IENoZWNrU2ltcGxlLCBUb0xvZ2luIH0gZnJvbSAnLi4vaGVscGVyJztcbmltcG9ydCB7IERBX1NFUlZJQ0VfVE9LRU4sIElUb2tlblNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2ltcGxlVG9rZW5Nb2RlbCB9IGZyb20gJy4vc2ltcGxlLm1vZGVsJztcblxuLyoqXG4gKiBTaW1wbGUg6Lev55Sx5a6I5Y2rLCBbQUNMIERvY3VtZW50XShodHRwczovL25nLWFsYWluLmNvbS9hdXRoL2d1YXJkKS5cbiAqXG4gKiBgYGB0c1xuICogZGF0YToge1xuICogIHBhdGg6ICdob21lJyxcbiAqICBjYW5BY3RpdmF0ZTogWyBTaW1wbGVHdWFyZCBdXG4gKiB9LFxuICoge1xuICogICBwYXRoOiAnbXknLFxuICogICBjYW5BY3RpdmF0ZUNoaWxkOiBbU2ltcGxlR3VhcmRdLFxuICogICBjaGlsZHJlbjogW1xuICogICAgIHsgcGF0aDogJ3Byb2ZpbGUnLCBjb21wb25lbnQ6IE1vY2tDb21wb25lbnQgfVxuICogICBdLFxuICogfSxcbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNpbXBsZUd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUsIENhbkFjdGl2YXRlQ2hpbGQsIENhbkxvYWQge1xuICBwcml2YXRlIHVybD86IHN0cmluZztcblxuICBwcml2YXRlIGdldCBjb2coKTogQWxhaW5BdXRoQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5zcnYub3B0aW9ucztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoREFfU0VSVklDRV9UT0tFTikgcHJpdmF0ZSBzcnY6IElUb2tlblNlcnZpY2UsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIHByaXZhdGUgcHJvY2VzcygpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXMgPSBDaGVja1NpbXBsZSh0aGlzLnNydi5nZXQoKSBhcyBTaW1wbGVUb2tlbk1vZGVsKTtcbiAgICBpZiAoIXJlcykge1xuICAgICAgVG9Mb2dpbih0aGlzLmNvZywgdGhpcy5pbmplY3RvciwgdGhpcy51cmwpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgLy8gbGF6eSBsb2FkaW5nXG4gIGNhbkxvYWQocm91dGU6IFJvdXRlLCBfc2VnbWVudHM6IFVybFNlZ21lbnRbXSk6IGJvb2xlYW4ge1xuICAgIHRoaXMudXJsID0gcm91dGUucGF0aDtcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzKCk7XG4gIH1cbiAgLy8gYWxsIGNoaWxkcmVuIHJvdXRlXG4gIGNhbkFjdGl2YXRlQ2hpbGQoX2NoaWxkUm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogYm9vbGVhbiB7XG4gICAgdGhpcy51cmwgPSBzdGF0ZS51cmw7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VzcygpO1xuICB9XG4gIC8vIHJvdXRlXG4gIGNhbkFjdGl2YXRlKF9yb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBib29sZWFuIHtcbiAgICB0aGlzLnVybCA9IHN0YXRlLnVybDtcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzKCk7XG4gIH1cbn1cbiJdfQ==
@@ -43,9 +43,9 @@ export class SimpleInterceptor extends BaseInterceptor {
43
43
  return req;
44
44
  }
45
45
  }
46
- SimpleInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleInterceptor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
47
- SimpleInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleInterceptor });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleInterceptor, decorators: [{
46
+ SimpleInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleInterceptor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
47
+ SimpleInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleInterceptor });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleInterceptor, decorators: [{
49
49
  type: Injectable
50
50
  }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvdG9rZW4vc2ltcGxlL3NpbXBsZS5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFHaEQ7Ozs7Ozs7R0FPRztBQUVILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUFlO0lBQ3BELE1BQU0sQ0FBQyxRQUF5QjtRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRyxFQUFzQixDQUFDO1FBQzNFLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxLQUF5QixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUEyQixFQUFFLE9BQXdCO1FBQzFELE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDeEQsTUFBTSxLQUFLLEdBQUcsbUJBQW9CLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlGLFFBQVEsT0FBTyxDQUFDLGdCQUFnQixFQUFFO1lBQ2hDLEtBQUssUUFBUTtnQkFDWCxNQUFNLEdBQUcsR0FBYyxFQUFFLENBQUM7Z0JBQzFCLEdBQUcsQ0FBQyxjQUFlLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQzdCLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO29CQUNkLFVBQVUsRUFBRSxHQUFHO2lCQUNoQixDQUFDLENBQUM7Z0JBQ0gsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGNBQWUsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDOUIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7b0JBQ2QsSUFBSTtpQkFDTCxDQUFDLENBQUM7Z0JBQ0gsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUixHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztvQkFDZCxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBZSxFQUFFLEtBQUssQ0FBQztpQkFDbEQsQ0FBQyxDQUFDO2dCQUNILE1BQU07U0FDVDtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7OEdBL0JVLGlCQUFpQjtrSEFBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWxhaW5BdXRoQ29uZmlnIH0gZnJvbSAnQGRlbG9uL3V0aWwvY29uZmlnJztcbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHsgQmFzZUludGVyY2VwdG9yIH0gZnJvbSAnLi4vYmFzZS5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBDaGVja1NpbXBsZSB9IGZyb20gJy4uL2hlbHBlcic7XG5pbXBvcnQgeyBEQV9TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi4vaW50ZXJmYWNlJztcbmltcG9ydCB7IFNpbXBsZVRva2VuTW9kZWwgfSBmcm9tICcuL3NpbXBsZS5tb2RlbCc7XG5cbi8qKlxuICogU2ltcGxlIOaLpuaIquWZqFxuICpcbiAqIGBgYFxuICogLy8gYXBwLm1vZHVsZS50c1xuICogeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IFNpbXBsZUludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZX1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2ltcGxlSW50ZXJjZXB0b3IgZXh0ZW5kcyBCYXNlSW50ZXJjZXB0b3Ige1xuICBpc0F1dGgoX29wdGlvbnM6IEFsYWluQXV0aENvbmZpZyk6IGJvb2xlYW4ge1xuICAgIHRoaXMubW9kZWwgPSB0aGlzLmluamVjdG9yLmdldChEQV9TRVJWSUNFX1RPS0VOKS5nZXQoKSBhcyBTaW1wbGVUb2tlbk1vZGVsO1xuICAgIHJldHVybiBDaGVja1NpbXBsZSh0aGlzLm1vZGVsIGFzIFNpbXBsZVRva2VuTW9kZWwpO1xuICB9XG5cbiAgc2V0UmVxKHJlcTogSHR0cFJlcXVlc3Q8TnpTYWZlQW55Piwgb3B0aW9uczogQWxhaW5BdXRoQ29uZmlnKTogSHR0cFJlcXVlc3Q8TnpTYWZlQW55PiB7XG4gICAgY29uc3QgeyB0b2tlbl9zZW5kX3RlbXBsYXRlLCB0b2tlbl9zZW5kX2tleSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB0b2tlbiA9IHRva2VuX3NlbmRfdGVtcGxhdGUhLnJlcGxhY2UoL1xcJFxceyhbXFx3XSspXFx9L2csIChfOiBzdHJpbmcsIGcpID0+IHRoaXMubW9kZWxbZ10pO1xuICAgIHN3aXRjaCAob3B0aW9ucy50b2tlbl9zZW5kX3BsYWNlKSB7XG4gICAgICBjYXNlICdoZWFkZXInOlxuICAgICAgICBjb25zdCBvYmo6IE56U2FmZUFueSA9IHt9O1xuICAgICAgICBvYmpbdG9rZW5fc2VuZF9rZXkhXSA9IHRva2VuO1xuICAgICAgICByZXEgPSByZXEuY2xvbmUoe1xuICAgICAgICAgIHNldEhlYWRlcnM6IG9ialxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib2R5JzpcbiAgICAgICAgY29uc3QgYm9keSA9IHJlcS5ib2R5IHx8IHt9O1xuICAgICAgICBib2R5W3Rva2VuX3NlbmRfa2V5IV0gPSB0b2tlbjtcbiAgICAgICAgcmVxID0gcmVxLmNsb25lKHtcbiAgICAgICAgICBib2R5XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3VybCc6XG4gICAgICAgIHJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgICAgcGFyYW1zOiByZXEucGFyYW1zLmFwcGVuZCh0b2tlbl9zZW5kX2tleSEsIHRva2VuKVxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiByZXE7XG4gIH1cbn1cbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvdG9rZW4vc2ltcGxlL3NpbXBsZS5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFHaEQ7Ozs7Ozs7R0FPRztBQUVILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUFlO0lBQ3BELE1BQU0sQ0FBQyxRQUF5QjtRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRyxFQUFzQixDQUFDO1FBQzNFLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxLQUF5QixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUEyQixFQUFFLE9BQXdCO1FBQzFELE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDeEQsTUFBTSxLQUFLLEdBQUcsbUJBQW9CLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlGLFFBQVEsT0FBTyxDQUFDLGdCQUFnQixFQUFFO1lBQ2hDLEtBQUssUUFBUTtnQkFDWCxNQUFNLEdBQUcsR0FBYyxFQUFFLENBQUM7Z0JBQzFCLEdBQUcsQ0FBQyxjQUFlLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQzdCLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO29CQUNkLFVBQVUsRUFBRSxHQUFHO2lCQUNoQixDQUFDLENBQUM7Z0JBQ0gsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGNBQWUsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDOUIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7b0JBQ2QsSUFBSTtpQkFDTCxDQUFDLENBQUM7Z0JBQ0gsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUixHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztvQkFDZCxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBZSxFQUFFLEtBQUssQ0FBQztpQkFDbEQsQ0FBQyxDQUFDO2dCQUNILE1BQU07U0FDVDtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7K0dBL0JVLGlCQUFpQjttSEFBakIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWxhaW5BdXRoQ29uZmlnIH0gZnJvbSAnQGRlbG9uL3V0aWwvY29uZmlnJztcbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHsgQmFzZUludGVyY2VwdG9yIH0gZnJvbSAnLi4vYmFzZS5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBDaGVja1NpbXBsZSB9IGZyb20gJy4uL2hlbHBlcic7XG5pbXBvcnQgeyBEQV9TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi4vaW50ZXJmYWNlJztcbmltcG9ydCB7IFNpbXBsZVRva2VuTW9kZWwgfSBmcm9tICcuL3NpbXBsZS5tb2RlbCc7XG5cbi8qKlxuICogU2ltcGxlIOaLpuaIquWZqFxuICpcbiAqIGBgYFxuICogLy8gYXBwLm1vZHVsZS50c1xuICogeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IFNpbXBsZUludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZX1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2ltcGxlSW50ZXJjZXB0b3IgZXh0ZW5kcyBCYXNlSW50ZXJjZXB0b3Ige1xuICBpc0F1dGgoX29wdGlvbnM6IEFsYWluQXV0aENvbmZpZyk6IGJvb2xlYW4ge1xuICAgIHRoaXMubW9kZWwgPSB0aGlzLmluamVjdG9yLmdldChEQV9TRVJWSUNFX1RPS0VOKS5nZXQoKSBhcyBTaW1wbGVUb2tlbk1vZGVsO1xuICAgIHJldHVybiBDaGVja1NpbXBsZSh0aGlzLm1vZGVsIGFzIFNpbXBsZVRva2VuTW9kZWwpO1xuICB9XG5cbiAgc2V0UmVxKHJlcTogSHR0cFJlcXVlc3Q8TnpTYWZlQW55Piwgb3B0aW9uczogQWxhaW5BdXRoQ29uZmlnKTogSHR0cFJlcXVlc3Q8TnpTYWZlQW55PiB7XG4gICAgY29uc3QgeyB0b2tlbl9zZW5kX3RlbXBsYXRlLCB0b2tlbl9zZW5kX2tleSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB0b2tlbiA9IHRva2VuX3NlbmRfdGVtcGxhdGUhLnJlcGxhY2UoL1xcJFxceyhbXFx3XSspXFx9L2csIChfOiBzdHJpbmcsIGcpID0+IHRoaXMubW9kZWxbZ10pO1xuICAgIHN3aXRjaCAob3B0aW9ucy50b2tlbl9zZW5kX3BsYWNlKSB7XG4gICAgICBjYXNlICdoZWFkZXInOlxuICAgICAgICBjb25zdCBvYmo6IE56U2FmZUFueSA9IHt9O1xuICAgICAgICBvYmpbdG9rZW5fc2VuZF9rZXkhXSA9IHRva2VuO1xuICAgICAgICByZXEgPSByZXEuY2xvbmUoe1xuICAgICAgICAgIHNldEhlYWRlcnM6IG9ialxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib2R5JzpcbiAgICAgICAgY29uc3QgYm9keSA9IHJlcS5ib2R5IHx8IHt9O1xuICAgICAgICBib2R5W3Rva2VuX3NlbmRfa2V5IV0gPSB0b2tlbjtcbiAgICAgICAgcmVxID0gcmVxLmNsb25lKHtcbiAgICAgICAgICBib2R5XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3VybCc6XG4gICAgICAgIHJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgICAgcGFyYW1zOiByZXEucGFyYW1zLmFwcGVuZCh0b2tlbl9zZW5kX2tleSEsIHRva2VuKVxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiByZXE7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,5 @@
1
1
  import { inject, Inject, Injectable } from '@angular/core';
2
- import { BehaviorSubject, interval, Subject } from 'rxjs';
3
- import { filter, map, share } from 'rxjs/operators';
2
+ import { BehaviorSubject, interval, Subject, filter, map, share } from 'rxjs';
4
3
  import { AlainConfigService } from '@delon/util/config';
5
4
  import { mergeConfig } from '../auth.config';
6
5
  import { DA_STORE_TOKEN } from '../store/interface';
@@ -81,12 +80,12 @@ export class TokenService {
81
80
  this.cleanRefresh();
82
81
  }
83
82
  }
84
- TokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: TokenService, deps: [{ token: i1.AlainConfigService }, { token: DA_STORE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
85
- TokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: TokenService });
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: TokenService, decorators: [{
83
+ TokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TokenService, deps: [{ token: i1.AlainConfigService }, { token: DA_STORE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
84
+ TokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TokenService });
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TokenService, decorators: [{
87
86
  type: Injectable
88
87
  }], ctorParameters: function () { return [{ type: i1.AlainConfigService }, { type: undefined, decorators: [{
89
88
  type: Inject,
90
89
  args: [DA_STORE_TOKEN]
91
90
  }] }]; } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL3Rva2VuL3Rva2VuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sb0JBQW9CLENBQUM7OztBQUc1RCxNQUFNLFVBQVUsd0JBQXdCO0lBQ3RDLE9BQU8sSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFBWSxTQUE2QixFQUFrQyxLQUFhO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQU5oRixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQWUsQ0FBQztRQUN0QyxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQXFCLElBQUksQ0FBQyxDQUFDO1FBRXhELGNBQVMsR0FBaUIsRUFBRSxDQUFDO1FBSW5DLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsT0FBTyxJ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TyxZQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDOzt5R0FyRlUsWUFBWSxvREFPNEIsY0FBYzs2R0FQdEQsWUFBWTsyRkFBWixZQUFZO2tCQUR4QixVQUFVOzswQkFRbUMsTUFBTTsyQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBpbnRlcnZhbCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc2hhcmUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFsYWluQXV0aENvbmZpZywgQWxhaW5Db25maWdTZXJ2aWNlIH0gZnJvbSAnQGRlbG9uL3V0aWwvY29uZmlnJztcbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHsgbWVyZ2VDb25maWcgfSBmcm9tICcuLi9hdXRoLmNvbmZpZyc7XG5pbXBvcnQgeyBEQV9TVE9SRV9UT0tFTiwgSVN0b3JlIH0gZnJvbSAnLi4vc3RvcmUvaW50ZXJmYWNlJztcbmltcG9ydCB7IEF1dGhSZWZlcnJlciwgSVRva2VuTW9kZWwsIElUb2tlblNlcnZpY2UgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBEQV9TRVJWSUNFX1RPS0VOX0ZBQ1RPUlkoKTogSVRva2VuU2VydmljZSB7XG4gIHJldHVybiBuZXcgVG9rZW5TZXJ2aWNlKGluamVjdChBbGFpbkNvbmZpZ1NlcnZpY2UpLCBpbmplY3QoREFfU1RPUkVfVE9LRU4pKTtcbn1cblxuLyoqXG4gKiDnu7TmiqRUb2tlbuS/oeaBr+acjeWKoe+8jFvlnKjnur/mlofmoaNdKGh0dHBzOi8vbmctYWxhaW4uY29tL2F1dGgpXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUb2tlblNlcnZpY2UgaW1wbGVtZW50cyBJVG9rZW5TZXJ2aWNlLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlZnJlc2gkID0gbmV3IFN1YmplY3Q8SVRva2VuTW9kZWw+KCk7XG4gIHByaXZhdGUgY2hhbmdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SVRva2VuTW9kZWwgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSBpbnRlcnZhbCQ/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgX3JlZmVycmVyOiBBdXRoUmVmZXJyZXIgPSB7fTtcbiAgcHJpdmF0ZSBfb3B0aW9uczogQWxhaW5BdXRoQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZ1NydjogQWxhaW5Db25maWdTZXJ2aWNlLCBASW5qZWN0KERBX1NUT1JFX1RPS0VOKSBwcml2YXRlIHN0b3JlOiBJU3RvcmUpIHtcbiAgICB0aGlzLl9vcHRpb25zID0gbWVyZ2VDb25maWcoY29uZmlnU3J2KTtcbiAgfVxuXG4gIGdldCByZWZyZXNoKCk6IE9ic2VydmFibGU8SVRva2VuTW9kZWw+IHtcbiAgICB0aGlzLmJ1aWxkZXJSZWZyZXNoKCk7XG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaCQucGlwZShzaGFyZSgpKTtcbiAgfVxuXG4gIGdldCBsb2dpbl91cmwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5sb2dpbl91cmw7XG4gIH1cblxuICBnZXQgcmVmZXJyZXIoKTogQXV0aFJlZmVycmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcmVmZXJyZXI7XG4gIH1cblxuICBnZXQgb3B0aW9ucygpOiBBbGFpbkF1dGhDb25maWcge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgc2V0KGRhdGE6IElUb2tlbk1vZGVsKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5zdG9yZS5zZXQodGhpcy5fb3B0aW9ucy5zdG9yZV9rZXkhLCBkYXRhKTtcbiAgICB0aGlzLmNoYW5nZSQubmV4dChkYXRhKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgZ2V0KHR5cGU/OiBOelNhZmVBbnkpOiBOelNhZmVBbnk7XG4gIGdldDxUIGV4dGVuZHMgSVRva2VuTW9kZWw+KHR5cGU/OiBuZXcgKCkgPT4gVCk6IFQ7XG4gIGdldDxUIGV4dGVuZHMgSVRva2VuTW9kZWw+KHR5cGU/OiBuZXcgKCkgPT4gVCk6IFQge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnN0b3JlLmdldCh0aGlzLl9vcHRpb25zLnN0b3JlX2tleSEpO1xuICAgIHJldHVybiB0eXBlID8gKE9iamVjdC5hc3NpZ24obmV3IHR5cGUoKSwgZGF0YSkgYXMgVCkgOiAoZGF0YSBhcyBUKTtcbiAgfVxuXG4gIGNsZWFyKG9wdGlvbnM6IHsgb25seVRva2VuOiBib29sZWFuIH0gPSB7IG9ubHlUb2tlbjogZmFsc2UgfSk6IHZvaWQge1xuICAgIGxldCBkYXRhOiBJVG9rZW5Nb2RlbCB8IG51bGwgPSBudWxsO1xuICAgIGlmIChvcHRpb25zLm9ubHlUb2tlbiA9PT0gdHJ1ZSkge1xuICAgICAgZGF0YSA9IHRoaXMuZ2V0KCkgYXMgSVRva2VuTW9kZWw7XG4gICAgICBkYXRhLnRva2VuID0gYGA7XG4gICAgICB0aGlzLnNldChkYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9yZS5yZW1vdmUodGhpcy5fb3B0aW9ucy5zdG9yZV9rZXkhKTtcbiAgICB9XG4gICAgdGhpcy5jaGFuZ2UkLm5leHQoZGF0YSk7XG4gIH1cblxuICBjaGFuZ2UoKTogT2JzZXJ2YWJsZTxJVG9rZW5Nb2RlbCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2UkLnBpcGUoc2hhcmUoKSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkZXJSZWZyZXNoKCk6IHZvaWQge1xuICAgIGNvbnN0IHsgcmVmcmVzaFRpbWUsIHJlZnJlc2hPZmZzZXQgfSA9IHRoaXMuX29wdGlvbnM7XG4gICAgdGhpcy5jbGVhblJlZnJlc2goKTtcbiAgICB0aGlzLmludGVydmFsJCA9IGludGVydmFsKHJlZnJlc2hUaW1lKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0KCkgYXMgSVRva2VuTW9kZWw7XG4gICAgICAgICAgY29uc3QgZXhwaXJlZCA9IGl0ZW0uZXhwaXJlZCB8fCBpdGVtLmV4cCB8fCAwO1xuICAgICAgICAgIGlmIChleHBpcmVkIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGN1clRpbWUgPSBuZXcgRGF0ZSgpLnZhbHVlT2YoKSArIHJlZnJlc2hPZmZzZXQhO1xuICAgICAgICAgIHJldHVybiBleHBpcmVkIDw9IGN1clRpbWUgPyBpdGVtIDogbnVsbDtcbiAgICAgICAgfSksXG4gICAgICAgIGZpbHRlcih2ID0+IHYgIT0gbnVsbClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHRoaXMucmVmcmVzaCQubmV4dChyZXMhKSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFuUmVmcmVzaCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnRlcnZhbCQgJiYgIXRoaXMuaW50ZXJ2YWwkLmNsb3NlZCkge1xuICAgICAgdGhpcy5pbnRlcnZhbCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFuUmVmcmVzaCgpO1xuICB9XG59XG4iXX0=
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL3Rva2VuL3Rva2VuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFeEcsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sb0JBQW9CLENBQUM7OztBQUc1RCxNQUFNLFVBQVUsd0JBQXdCO0lBQ3RDLE9BQU8sSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFBWSxTQUE2QixFQUFrQyxLQUFhO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQU5oRixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQWUsQ0FBQztRQUN0QyxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQXFCLElBQUksQ0FBQyxDQUFDO1FBRXhELGNBQVMsR0FBaUIsRUFBRSxDQUFDO1FBSW5DLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFL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SUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDOzswR0FyRlUsWUFBWSxvREFPNEIsY0FBYzs4R0FQdEQsWUFBWTs0RkFBWixZQUFZO2tCQUR4QixVQUFVOzswQkFRbUMsTUFBTTsyQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBpbnRlcnZhbCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBmaWx0ZXIsIG1hcCwgc2hhcmUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQWxhaW5BdXRoQ29uZmlnLCBBbGFpbkNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAZGVsb24vdXRpbC9jb25maWcnO1xuaW1wb3J0IHR5cGUgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuXG5pbXBvcnQgeyBtZXJnZUNvbmZpZyB9IGZyb20gJy4uL2F1dGguY29uZmlnJztcbmltcG9ydCB7IERBX1NUT1JFX1RPS0VOLCBJU3RvcmUgfSBmcm9tICcuLi9zdG9yZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXV0aFJlZmVycmVyLCBJVG9rZW5Nb2RlbCwgSVRva2VuU2VydmljZSB9IGZyb20gJy4vaW50ZXJmYWNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIERBX1NFUlZJQ0VfVE9LRU5fRkFDVE9SWSgpOiBJVG9rZW5TZXJ2aWNlIHtcbiAgcmV0dXJuIG5ldyBUb2tlblNlcnZpY2UoaW5qZWN0KEFsYWluQ29uZmlnU2VydmljZSksIGluamVjdChEQV9TVE9SRV9UT0tFTikpO1xufVxuXG4vKipcbiAqIOe7tOaKpFRva2Vu5L+h5oGv5pyN5Yqh77yMW+WcqOe6v+aWh+aho10oaHR0cHM6Ly9uZy1hbGFpbi5jb20vYXV0aClcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRva2VuU2VydmljZSBpbXBsZW1lbnRzIElUb2tlblNlcnZpY2UsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVmcmVzaCQgPSBuZXcgU3ViamVjdDxJVG9rZW5Nb2RlbD4oKTtcbiAgcHJpdmF0ZSBjaGFuZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJVG9rZW5Nb2RlbCB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIGludGVydmFsJD86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfcmVmZXJyZXI6IEF1dGhSZWZlcnJlciA9IHt9O1xuICBwcml2YXRlIF9vcHRpb25zOiBBbGFpbkF1dGhDb25maWc7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnU3J2OiBBbGFpbkNvbmZpZ1NlcnZpY2UsIEBJbmplY3QoREFfU1RPUkVfVE9LRU4pIHByaXZhdGUgc3RvcmU6IElTdG9yZSkge1xuICAgIHRoaXMuX29wdGlvbnMgPSBtZXJnZUNvbmZpZyhjb25maWdTcnYpO1xuICB9XG5cbiAgZ2V0IHJlZnJlc2goKTogT2JzZXJ2YWJsZTxJVG9rZW5Nb2RlbD4ge1xuICAgIHRoaXMuYnVpbGRlclJlZnJlc2goKTtcbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoJC5waXBlKHNoYXJlKCkpO1xuICB9XG5cbiAgZ2V0IGxvZ2luX3VybCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmxvZ2luX3VybDtcbiAgfVxuXG4gIGdldCByZWZlcnJlcigpOiBBdXRoUmVmZXJyZXIge1xuICAgIHJldHVybiB0aGlzLl9yZWZlcnJlcjtcbiAgfVxuXG4gIGdldCBvcHRpb25zKCk6IEFsYWluQXV0aENvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICBzZXQoZGF0YTogSVRva2VuTW9kZWwpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXMgPSB0aGlzLnN0b3JlLnNldCh0aGlzLl9vcHRpb25zLnN0b3JlX2tleSEsIGRhdGEpO1xuICAgIHRoaXMuY2hhbmdlJC5uZXh0KGRhdGEpO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBnZXQodHlwZT86IE56U2FmZUFueSk6IE56U2FmZUFueTtcbiAgZ2V0PFQgZXh0ZW5kcyBJVG9rZW5Nb2RlbD4odHlwZT86IG5ldyAoKSA9PiBUKTogVDtcbiAgZ2V0PFQgZXh0ZW5kcyBJVG9rZW5Nb2RlbD4odHlwZT86IG5ldyAoKSA9PiBUKTogVCB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuc3RvcmUuZ2V0KHRoaXMuX29wdGlvbnMuc3RvcmVfa2V5ISk7XG4gICAgcmV0dXJuIHR5cGUgPyAoT2JqZWN0LmFzc2lnbihuZXcgdHlwZSgpLCBkYXRhKSBhcyBUKSA6IChkYXRhIGFzIFQpO1xuICB9XG5cbiAgY2xlYXIob3B0aW9uczogeyBvbmx5VG9rZW46IGJvb2xlYW4gfSA9IHsgb25seVRva2VuOiBmYWxzZSB9KTogdm9pZCB7XG4gICAgbGV0IGRhdGE6IElUb2tlbk1vZGVsIHwgbnVsbCA9IG51bGw7XG4gICAgaWYgKG9wdGlvbnMub25seVRva2VuID09PSB0cnVlKSB7XG4gICAgICBkYXRhID0gdGhpcy5nZXQoKSBhcyBJVG9rZW5Nb2RlbDtcbiAgICAgIGRhdGEudG9rZW4gPSBgYDtcbiAgICAgIHRoaXMuc2V0KGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0b3JlLnJlbW92ZSh0aGlzLl9vcHRpb25zLnN0b3JlX2tleSEpO1xuICAgIH1cbiAgICB0aGlzLmNoYW5nZSQubmV4dChkYXRhKTtcbiAgfVxuXG4gIGNoYW5nZSgpOiBPYnNlcnZhYmxlPElUb2tlbk1vZGVsIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmNoYW5nZSQucGlwZShzaGFyZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRlclJlZnJlc2goKTogdm9pZCB7XG4gICAgY29uc3QgeyByZWZyZXNoVGltZSwgcmVmcmVzaE9mZnNldCB9ID0gdGhpcy5fb3B0aW9ucztcbiAgICB0aGlzLmNsZWFuUmVmcmVzaCgpO1xuICAgIHRoaXMuaW50ZXJ2YWwkID0gaW50ZXJ2YWwocmVmcmVzaFRpbWUpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5nZXQoKSBhcyBJVG9rZW5Nb2RlbDtcbiAgICAgICAgICBjb25zdCBleHBpcmVkID0gaXRlbS5leHBpcmVkIHx8IGl0ZW0uZXhwIHx8IDA7XG4gICAgICAgICAgaWYgKGV4cGlyZWQgPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgY3VyVGltZSA9IG5ldyBEYXRlKCkudmFsdWVPZigpICsgcmVmcmVzaE9mZnNldCE7XG4gICAgICAgICAgcmV0dXJuIGV4cGlyZWQgPD0gY3VyVGltZSA/IGl0ZW0gOiBudWxsO1xuICAgICAgICB9KSxcbiAgICAgICAgZmlsdGVyKHYgPT4gdiAhPSBudWxsKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4gdGhpcy5yZWZyZXNoJC5uZXh0KHJlcyEpKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW5SZWZyZXNoKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmludGVydmFsJCAmJiAhdGhpcy5pbnRlcnZhbCQuY2xvc2VkKSB7XG4gICAgICB0aGlzLmludGVydmFsJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYW5SZWZyZXNoKCk7XG4gIH1cbn1cbiJdfQ==
package/fesm2015/auth.mjs CHANGED
@@ -1,8 +1,7 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
3
  import { InjectionToken, inject, Injectable, Inject, Optional, NgModule } from '@angular/core';
4
- import { Subject, BehaviorSubject, interval, Observable } from 'rxjs';
5
- import { share, map, filter } from 'rxjs/operators';
4
+ import { Subject, BehaviorSubject, share, interval, map, filter, Observable } from 'rxjs';
6
5
  import * as i1 from '@delon/util/config';
7
6
  import { AlainConfigService } from '@delon/util/config';
8
7
  import * as i1$1 from '@angular/router';
@@ -131,9 +130,9 @@ class TokenService {
131
130
  this.cleanRefresh();
132
131
  }
133
132
  }
134
- TokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: TokenService, deps: [{ token: i1.AlainConfigService }, { token: DA_STORE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
135
- TokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: TokenService });
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: TokenService, decorators: [{
133
+ TokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TokenService, deps: [{ token: i1.AlainConfigService }, { token: DA_STORE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
134
+ TokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TokenService });
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TokenService, decorators: [{
137
136
  type: Injectable
138
137
  }], ctorParameters: function () {
139
138
  return [{ type: i1.AlainConfigService }, { type: undefined, decorators: [{
@@ -230,9 +229,9 @@ class SocialService {
230
229
  this._winTime = null;
231
230
  }
232
231
  }
233
- SocialService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SocialService, deps: [{ token: DA_SERVICE_TOKEN }, { token: DOCUMENT }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
234
- SocialService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SocialService });
235
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SocialService, decorators: [{
232
+ SocialService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SocialService, deps: [{ token: DA_SERVICE_TOKEN }, { token: DOCUMENT }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
233
+ SocialService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SocialService });
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SocialService, decorators: [{
236
235
  type: Injectable
237
236
  }], ctorParameters: function () {
238
237
  return [{ type: undefined, decorators: [{
@@ -421,9 +420,9 @@ class BaseInterceptor {
421
420
  return next.handle(req);
422
421
  }
423
422
  }
424
- BaseInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: BaseInterceptor, deps: [{ token: i0.Injector, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
425
- BaseInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: BaseInterceptor });
426
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: BaseInterceptor, decorators: [{
423
+ BaseInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseInterceptor, deps: [{ token: i0.Injector, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
424
+ BaseInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseInterceptor });
425
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseInterceptor, decorators: [{
427
426
  type: Injectable
428
427
  }], ctorParameters: function () {
429
428
  return [{ type: i0.Injector, decorators: [{
@@ -538,9 +537,9 @@ class JWTInterceptor extends BaseInterceptor {
538
537
  });
539
538
  }
540
539
  }
541
- JWTInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTInterceptor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
542
- JWTInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTInterceptor });
543
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTInterceptor, decorators: [{
540
+ JWTInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTInterceptor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
541
+ JWTInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTInterceptor });
542
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTInterceptor, decorators: [{
544
543
  type: Injectable
545
544
  }] });
546
545
 
@@ -592,9 +591,9 @@ class JWTGuard {
592
591
  return this.process();
593
592
  }
594
593
  }
595
- JWTGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTGuard, deps: [{ token: DA_SERVICE_TOKEN }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
596
- JWTGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTGuard, providedIn: 'root' });
597
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTGuard, decorators: [{
594
+ JWTGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTGuard, deps: [{ token: DA_SERVICE_TOKEN }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
595
+ JWTGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTGuard, providedIn: 'root' });
596
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTGuard, decorators: [{
598
597
  type: Injectable,
599
598
  args: [{ providedIn: 'root' }]
600
599
  }], ctorParameters: function () {
@@ -647,9 +646,9 @@ class SimpleInterceptor extends BaseInterceptor {
647
646
  return req;
648
647
  }
649
648
  }
650
- SimpleInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleInterceptor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
651
- SimpleInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleInterceptor });
652
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleInterceptor, decorators: [{
649
+ SimpleInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleInterceptor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
650
+ SimpleInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleInterceptor });
651
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleInterceptor, decorators: [{
653
652
  type: Injectable
654
653
  }] });
655
654
 
@@ -701,9 +700,9 @@ class SimpleGuard {
701
700
  return this.process();
702
701
  }
703
702
  }
704
- SimpleGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleGuard, deps: [{ token: DA_SERVICE_TOKEN }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
705
- SimpleGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleGuard, providedIn: 'root' });
706
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleGuard, decorators: [{
703
+ SimpleGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleGuard, deps: [{ token: DA_SERVICE_TOKEN }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
704
+ SimpleGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleGuard, providedIn: 'root' });
705
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleGuard, decorators: [{
707
706
  type: Injectable,
708
707
  args: [{ providedIn: 'root' }]
709
708
  }], ctorParameters: function () {
@@ -715,10 +714,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
715
714
 
716
715
  class DelonAuthModule {
717
716
  }
718
- DelonAuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DelonAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
719
- DelonAuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DelonAuthModule });
720
- DelonAuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DelonAuthModule });
721
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DelonAuthModule, decorators: [{
717
+ DelonAuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DelonAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
718
+ DelonAuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DelonAuthModule });
719
+ DelonAuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DelonAuthModule });
720
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DelonAuthModule, decorators: [{
722
721
  type: NgModule,
723
722
  args: [{}]
724
723
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"auth.mjs","sources":["../../../../packages/auth/src/auth.config.ts","../../../../packages/auth/src/store/local-storage.service.ts","../../../../packages/auth/src/store/interface.ts","../../../../packages/auth/src/token/token.service.ts","../../../../packages/auth/src/token/interface.ts","../../../../packages/auth/src/social/social.service.ts","../../../../packages/auth/src/store/memory.service.ts","../../../../packages/auth/src/store/session-storage.service.ts","../../../../packages/auth/src/store/cookie-storage.service.ts","../../../../packages/auth/src/token/helper.ts","../../../../packages/auth/src/token/base.interceptor.ts","../../../../packages/auth/src/token/jwt/jwt.helper.ts","../../../../packages/auth/src/token/jwt/jwt.model.ts","../../../../packages/auth/src/token/jwt/jwt.interceptor.ts","../../../../packages/auth/src/token/jwt/jwt.guard.ts","../../../../packages/auth/src/token/simple/simple.model.ts","../../../../packages/auth/src/token/simple/simple.interceptor.ts","../../../../packages/auth/src/token/simple/simple.guard.ts","../../../../packages/auth/src/auth.module.ts","../../../../packages/auth/auth.ts"],"sourcesContent":["import { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\n\nexport const AUTH_DEFAULT_CONFIG: AlainAuthConfig = {\n store_key: `_token`,\n token_invalid_redirect: true,\n token_exp_offset: 10,\n token_send_key: `token`,\n token_send_template: '${token}',\n token_send_place: 'header',\n login_url: '/login',\n ignores: [/\\/login/, /assets\\//, /passport\\//],\n allow_anonymous_key: `_allow_anonymous`,\n executeOtherInterceptors: true,\n refreshTime: 3000,\n refreshOffset: 6000\n};\n\nexport function mergeConfig(srv: AlainConfigService): AlainAuthConfig {\n return srv.merge('auth', AUTH_DEFAULT_CONFIG)!;\n}\n","import { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\nexport function DA_STORE_TOKEN_LOCAL_FACTORY(): IStore {\n return new LocalStorageStore();\n}\n\n/**\n * `localStorage` storage, **not lost after closing the browser**.\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: LocalStorageStore }\n * ```\n */\nexport class LocalStorageStore implements IStore {\n get(key: string): ITokenModel {\n return JSON.parse(localStorage.getItem(key) || '{}') || {};\n }\n\n set(key: string, value: ITokenModel | null): boolean {\n localStorage.setItem(key, JSON.stringify(value));\n return true;\n }\n\n remove(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { ITokenModel } from '../token/interface';\nimport { DA_STORE_TOKEN_LOCAL_FACTORY } from './local-storage.service';\n\nexport const DA_STORE_TOKEN = new InjectionToken<IStore>('AUTH_STORE_TOKEN', {\n providedIn: 'root',\n factory: DA_STORE_TOKEN_LOCAL_FACTORY\n});\n\nexport interface IStore {\n get(key: string): ITokenModel;\n\n set(key: string, value: ITokenModel): boolean;\n\n remove(key: string): void;\n}\n","import { inject, Inject, Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, interval, Observable, Subject, Subscription } from 'rxjs';\nimport { filter, map, share } from 'rxjs/operators';\n\nimport { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { mergeConfig } from '../auth.config';\nimport { DA_STORE_TOKEN, IStore } from '../store/interface';\nimport { AuthReferrer, ITokenModel, ITokenService } from './interface';\n\nexport function DA_SERVICE_TOKEN_FACTORY(): ITokenService {\n return new TokenService(inject(AlainConfigService), inject(DA_STORE_TOKEN));\n}\n\n/**\n * 维护Token信息服务,[在线文档](https://ng-alain.com/auth)\n */\n@Injectable()\nexport class TokenService implements ITokenService, OnDestroy {\n private refresh$ = new Subject<ITokenModel>();\n private change$ = new BehaviorSubject<ITokenModel | null>(null);\n private interval$?: Subscription;\n private _referrer: AuthReferrer = {};\n private _options: AlainAuthConfig;\n\n constructor(configSrv: AlainConfigService, @Inject(DA_STORE_TOKEN) private store: IStore) {\n this._options = mergeConfig(configSrv);\n }\n\n get refresh(): Observable<ITokenModel> {\n this.builderRefresh();\n return this.refresh$.pipe(share());\n }\n\n get login_url(): string | undefined {\n return this._options.login_url;\n }\n\n get referrer(): AuthReferrer {\n return this._referrer;\n }\n\n get options(): AlainAuthConfig {\n return this._options;\n }\n\n set(data: ITokenModel): boolean {\n const res = this.store.set(this._options.store_key!, data);\n this.change$.next(data);\n return res;\n }\n\n get(type?: NzSafeAny): NzSafeAny;\n get<T extends ITokenModel>(type?: new () => T): T;\n get<T extends ITokenModel>(type?: new () => T): T {\n const data = this.store.get(this._options.store_key!);\n return type ? (Object.assign(new type(), data) as T) : (data as T);\n }\n\n clear(options: { onlyToken: boolean } = { onlyToken: false }): void {\n let data: ITokenModel | null = null;\n if (options.onlyToken === true) {\n data = this.get() as ITokenModel;\n data.token = ``;\n this.set(data);\n } else {\n this.store.remove(this._options.store_key!);\n }\n this.change$.next(data);\n }\n\n change(): Observable<ITokenModel | null> {\n return this.change$.pipe(share());\n }\n\n private builderRefresh(): void {\n const { refreshTime, refreshOffset } = this._options;\n this.cleanRefresh();\n this.interval$ = interval(refreshTime)\n .pipe(\n map(() => {\n const item = this.get() as ITokenModel;\n const expired = item.expired || item.exp || 0;\n if (expired <= 0) {\n return null;\n }\n\n const curTime = new Date().valueOf() + refreshOffset!;\n return expired <= curTime ? item : null;\n }),\n filter(v => v != null)\n )\n .subscribe(res => this.refresh$.next(res!));\n }\n\n private cleanRefresh(): void {\n if (this.interval$ && !this.interval$.closed) {\n this.interval$.unsubscribe();\n }\n }\n\n ngOnDestroy(): void {\n this.cleanRefresh();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { DA_SERVICE_TOKEN_FACTORY } from './token.service';\n\nexport const DA_SERVICE_TOKEN = new InjectionToken<ITokenService>('DA_SERVICE_TOKEN', {\n providedIn: 'root',\n factory: DA_SERVICE_TOKEN_FACTORY\n});\n\nexport interface ITokenModel {\n [key: string]: NzSafeAny;\n\n token: string | null | undefined;\n\n /**\n * 过期时间,单位:ms\n * - 不管Simple、JWT模式都必须指定\n */\n expired?: number;\n}\n\nexport interface AuthReferrer {\n url?: string | null | undefined;\n}\n\nexport interface ITokenService {\n /**\n * 授权失败后跳转路由路径(支持外部链接地址),通过设置[全局配置](https://ng-alain.com/docs/global-config)来改变\n */\n readonly login_url: string | undefined;\n\n /**\n * 当前请求页面的来源页面的地址\n */\n readonly referrer?: AuthReferrer;\n\n readonly options: AlainAuthConfig;\n\n /**\n * 订阅刷新,订阅时会自动产生一个定时器,每隔一段时间进行一些校验\n * - **注意** 会多次触发,请务必做好业务判断\n */\n readonly refresh: Observable<ITokenModel>;\n\n /**\n * 设置 Token 信息,当用户 Token 发生变动时都需要调用此方法重新刷新\n * - 如果需要监听过期,需要传递 `expired` 值\n */\n set(data: ITokenModel | null): boolean;\n\n /**\n * 获取Token,形式包括:\n * - `get()` 获取 Simple Token\n * - `get<JWTTokenModel>(JWTTokenModel)` 获取 JWT Token\n */\n get(type?: NzSafeAny): ITokenModel | null;\n\n /**\n * 获取Token,形式包括:\n * - `get()` 获取 Simple Token\n * - `get<JWTTokenModel>(JWTTokenModel)` 获取 JWT Token\n */\n get<T extends ITokenModel>(type?: NzSafeAny): T;\n\n /**\n * 清除 Token 信息,当用户退出登录时调用。\n * ```\n * // 清除所有 Token 信息\n * tokenService.clear();\n * // 只清除 token 字段\n * tokenService.clear({ onlyToken: true });\n * ```\n */\n clear(options?: { onlyToken: boolean }): void;\n\n /**\n * 订阅 Token 对象变更通知\n */\n change(): Observable<ITokenModel | null>;\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable, Observer } from 'rxjs';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { DA_SERVICE_TOKEN, ITokenModel, ITokenService } from '../token/interface';\n\nconst OPENTYPE = '_delonAuthSocialType';\nconst HREFCALLBACK = '_delonAuthSocialCallbackByHref';\n\nexport type SocialOpenType = 'href' | 'window';\n\n@Injectable()\nexport class SocialService implements OnDestroy {\n private _win: Window | null = null;\n private _winTime: NzSafeAny;\n private observer!: Observer<ITokenModel | null>;\n\n constructor(\n @Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService,\n @Inject(DOCUMENT) private doc: NzSafeAny,\n private router: Router\n ) {}\n\n /**\n * 使用窗体打开授权页,返回值是 `Observable<ITokenModel>` 用于订阅授权后返回的结果\n *\n * @param url 获取授权地址\n * @param callback 回调路由地址\n * @param options.windowFeatures 等同 `window.open` 的 `features` 参数值\n */\n login(\n url: string,\n callback?: string,\n options?: {\n type?: 'window';\n windowFeatures?: string;\n }\n ): Observable<ITokenModel>;\n\n /**\n * 跳转至授权页\n *\n * @param url 获取授权地址\n * @param callback 回调路由地址\n */\n login(\n url: string,\n callback?: string,\n options?: {\n type?: 'href';\n }\n ): void;\n\n /**\n * 跳转至登录页,若为 `type=window` 时,返回值是 `Observable<ITokenModel>`\n *\n * @param url 获取授权地址\n * @param callback 当 `type=href` 成功时的回调路由地址\n * @param options.type 打开方式,默认 `window`\n * @param options.windowFeatures 等同 `window.open` 的 `features` 参数值\n */\n login(\n url: string,\n callback: string = '/',\n options: {\n type?: SocialOpenType;\n windowFeatures?: string;\n } = {}\n ): Observable<ITokenModel | null> | void {\n options = {\n type: 'window',\n windowFeatures: 'location=yes,height=570,width=520,scrollbars=yes,status=yes',\n ...options\n };\n localStorage.setItem(OPENTYPE, options.type!);\n localStorage.setItem(HREFCALLBACK, callback);\n if (options.type === 'href') {\n this.doc.location.href = url;\n return;\n }\n\n this._win = window.open(url, '_blank', options.windowFeatures);\n this._winTime = setInterval(() => {\n if (this._win && this._win.closed) {\n this.ngOnDestroy();\n\n let model = this.tokenService.get();\n if (model && !model.token) model = null;\n\n // 触发变更通知\n if (model) {\n this.tokenService.set(model);\n }\n\n this.observer.next(model);\n this.observer.complete();\n }\n }, 100);\n return new Observable((observer: Observer<ITokenModel | null>) => {\n this.observer = observer;\n });\n }\n\n /**\n * 授权成功后的回调处理\n *\n * @param rawData 指定回调认证信息,为空时从根据当前URL解析\n */\n callback(rawData?: ITokenModel | string | null): ITokenModel {\n // from uri\n if (!rawData && this.router.url.indexOf('?') === -1) {\n throw new Error(`url muse contain a ?`);\n }\n // parse\n let data: ITokenModel = { token: `` };\n if (typeof rawData === 'string') {\n const rightUrl = rawData.split('?')[1].split('#')[0];\n data = this.router.parseUrl(`./?${rightUrl}`).queryParams as ITokenModel;\n } else {\n data = rawData as ITokenModel;\n }\n\n if (!data || !data.token) throw new Error(`invalide token data`);\n this.tokenService.set(data);\n\n const url = localStorage.getItem(HREFCALLBACK) || '/';\n localStorage.removeItem(HREFCALLBACK);\n const type = localStorage.getItem(OPENTYPE);\n localStorage.removeItem(OPENTYPE);\n if (type === 'window') {\n window.close();\n } else {\n this.router.navigateByUrl(url);\n }\n\n return data;\n }\n\n ngOnDestroy(): void {\n clearInterval(this._winTime);\n this._winTime = null;\n }\n}\n","import { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\n/**\n * 内存存储,关掉浏览器标签后**丢失**。\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: MemoryStore }\n * ```\n */\nexport class MemoryStore implements IStore {\n private cache: { [key: string]: ITokenModel | null } = {};\n\n get(key: string): ITokenModel {\n return this.cache[key] || ({} as ITokenModel);\n }\n\n set(key: string, value: ITokenModel): boolean {\n this.cache[key] = value;\n return true;\n }\n\n remove(key: string): void {\n this.cache[key] = null;\n }\n}\n","import { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\n/**\n * `sessionStorage` storage, **lost after closing the browser**.\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: SessionStorageStore }\n * ```\n */\nexport class SessionStorageStore implements IStore {\n get(key: string): ITokenModel {\n return JSON.parse(sessionStorage.getItem(key) || '{}') || {};\n }\n\n set(key: string, value: ITokenModel | null): boolean {\n sessionStorage.setItem(key, JSON.stringify(value));\n return true;\n }\n\n remove(key: string): void {\n sessionStorage.removeItem(key);\n }\n}\n","import { CookieService } from '@delon/util/browser';\n\nimport { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\n/**\n * `cookie` storage\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: CookieStorageStore, deps: [CookieService] }\n * ```\n */\nexport class CookieStorageStore implements IStore {\n constructor(private srv: CookieService) {}\n\n get(key: string): ITokenModel {\n try {\n return JSON.parse(this.srv.get(key) || '{}');\n } catch (ex) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.error(`CookieStorageStore: Invalid key-value format ${key}`, ex);\n }\n return {} as ITokenModel;\n }\n }\n\n set(key: string, value: ITokenModel | null | undefined): boolean {\n this.srv.put(key, value != null ? JSON.stringify(value) : '{}');\n return true;\n }\n\n remove(key: string): void {\n this.srv.remove(key);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injector } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { DA_SERVICE_TOKEN, ITokenService } from './interface';\nimport { JWTTokenModel } from './jwt/jwt.model';\nimport { SimpleTokenModel } from './simple/simple.model';\n\nexport function CheckSimple(model: SimpleTokenModel | null): boolean {\n return model != null && typeof model.token === 'string' && model.token.length > 0;\n}\n\nexport function CheckJwt(model: JWTTokenModel, offset: number): boolean {\n try {\n return model != null && !!model.token && !model.isExpired(offset);\n } catch (err: NzSafeAny) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`${err.message}, jump to login_url`);\n }\n return false;\n }\n}\n\nexport function ToLogin(options: AlainAuthConfig, injector: Injector, url?: string): void {\n const router = injector.get<Router>(Router);\n (injector.get(DA_SERVICE_TOKEN) as ITokenService).referrer!.url = url || router.url;\n if (options.token_invalid_redirect === true) {\n setTimeout(() => {\n if (/^https?:\\/\\//g.test(options.login_url!)) {\n injector.get(DOCUMENT).location.href = options.login_url as string;\n } else {\n router.navigate([options.login_url]);\n }\n });\n }\n}\n","import {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpParams,\n HttpRequest,\n HTTP_INTERCEPTORS\n} from '@angular/common/http';\nimport { Injectable, Injector, Optional } from '@angular/core';\nimport { Observable, Observer } from 'rxjs';\n\nimport { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { mergeConfig } from '../auth.config';\nimport { ToLogin } from './helper';\nimport { ITokenModel } from './interface';\n\nclass HttpAuthInterceptorHandler implements HttpHandler {\n constructor(private next: HttpHandler, private interceptor: HttpInterceptor) {}\n\n handle(req: HttpRequest<NzSafeAny>): Observable<HttpEvent<NzSafeAny>> {\n return this.interceptor.intercept(req, this.next);\n }\n}\n\n@Injectable()\nexport abstract class BaseInterceptor implements HttpInterceptor {\n constructor(@Optional() protected injector: Injector) {}\n\n protected model!: ITokenModel;\n\n abstract isAuth(options: AlainAuthConfig): boolean;\n\n abstract setReq(req: HttpRequest<NzSafeAny>, options: AlainAuthConfig): HttpRequest<NzSafeAny>;\n\n intercept(req: HttpRequest<NzSafeAny>, next: HttpHandler): Observable<HttpEvent<NzSafeAny>> {\n const options = mergeConfig(this.injector.get(AlainConfigService));\n if (Array.isArray(options.ignores)) {\n for (const item of options.ignores) {\n if (item.test(req.url)) return next.handle(req);\n }\n }\n\n const ingoreKey = options.allow_anonymous_key!;\n let ingored = false;\n let params = req.params;\n let url = req.url;\n if (req.params.has(ingoreKey)) {\n params = req.params.delete(ingoreKey);\n ingored = true;\n }\n const urlArr = req.url.split('?');\n if (urlArr.length > 1) {\n const queryStringParams = new HttpParams({ fromString: urlArr[1] });\n if (queryStringParams.has(ingoreKey)) {\n const queryString = queryStringParams.delete(ingoreKey).toString();\n url = queryString.length > 0 ? `${urlArr[0]}?${queryString}` : urlArr[0];\n ingored = true;\n }\n }\n if (ingored) {\n return next.handle(req.clone({ params, url }));\n }\n\n if (this.isAuth(options)) {\n req = this.setReq(req, options);\n } else {\n ToLogin(options, this.injector);\n // Interrupt Http request, so need to generate a new Observable\n const err$ = new Observable((observer: Observer<HttpEvent<NzSafeAny>>) => {\n const res = new HttpErrorResponse({\n url: req.url,\n headers: req.headers,\n status: 401,\n statusText: `来自 @delon/auth 的拦截,所请求URL未授权,若是登录API可加入 [url?_allow_anonymous=true] 来表示忽略校验,更多方法请参考: https://ng-alain.com/auth/getting-started#AlainAuthConfig\\nThe interception from @delon/auth, the requested URL is not authorized. If the login API can add [url?_allow_anonymous=true] to ignore the check, please refer to: https://ng-alain.com/auth/getting-started#AlainAuthConfig`\n });\n observer.error(res);\n });\n if (options.executeOtherInterceptors) {\n const interceptors = this.injector.get(HTTP_INTERCEPTORS, []);\n const lastInterceptors = interceptors.slice(interceptors.indexOf(this) + 1);\n if (lastInterceptors.length > 0) {\n const chain = lastInterceptors.reduceRight(\n (_next, _interceptor) => new HttpAuthInterceptorHandler(_next, _interceptor),\n {\n handle: (_: HttpRequest<NzSafeAny>) => err$\n }\n );\n return chain.handle(req);\n }\n }\n return err$;\n }\n return next.handle(req);\n }\n}\n","import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport function urlBase64Decode(str: string): string {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0: {\n break;\n }\n case 2: {\n output += '==';\n break;\n }\n case 3: {\n output += '=';\n break;\n }\n default: {\n throw new Error(`'atob' failed: The string to be decoded is not correctly encoded.`);\n }\n }\n return b64DecodeUnicode(output);\n}\n\nfunction b64decode(str: string): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n\n str = String(str).replace(/=+$/, '');\n\n for (\n // initialize result and counters\n let bc = 0, bs: NzSafeAny, buffer: NzSafeAny, idx = 0;\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4)\n ? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6))))\n : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n}\n\n// https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem\nfunction b64DecodeUnicode(str: string): string {\n return decodeURIComponent(\n Array.prototype.map\n .call(b64decode(str), (c: string) => {\n return `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`;\n })\n .join('')\n );\n}\n","import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { ITokenModel } from '../interface';\nimport { urlBase64Decode } from './jwt.helper';\n\nexport interface JWT {\n /**\n * Issuerd\n */\n iss: string;\n /**\n * Issued At\n */\n iat: string;\n /**\n * Subject\n */\n sub: string;\n /**\n * Expiration Time\n */\n exp: number;\n /**\n * Audience\n */\n aud: string;\n /**\n * Not Before\n */\n nbf: string;\n /**\n * JWT ID\n */\n jti: string;\n\n [key: string]: NzSafeAny;\n [key: number]: NzSafeAny;\n}\n\nexport class JWTTokenModel implements ITokenModel {\n [key: string]: NzSafeAny;\n\n token: string | null | undefined;\n\n expired?: number;\n\n /**\n * 获取载荷信息\n */\n get payload(): JWT {\n const parts = (this.token || '').split('.');\n if (parts.length !== 3) throw new Error('JWT must have 3 parts');\n\n const decoded = urlBase64Decode(parts[1]);\n return JSON.parse(decoded);\n }\n\n /**\n * 获取过期时间戳(单位:ms)\n */\n get exp(): number | null {\n const decoded = this.payload;\n if (!decoded.hasOwnProperty('exp')) return null;\n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n return date.valueOf();\n }\n\n /**\n * 检查Token是否过期,当`payload` 包含 `exp` 字段时有效,若无 `exp` 字段直接返回 `null`\n *\n * @param offsetSeconds 偏移量\n */\n isExpired(offsetSeconds: number = 0): boolean | null {\n const exp = this.exp;\n if (exp == null) return null;\n\n return !(exp > new Date().valueOf() + offsetSeconds * 1000);\n }\n}\n","import { HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { BaseInterceptor } from '../base.interceptor';\nimport { CheckJwt } from '../helper';\nimport { DA_SERVICE_TOKEN } from '../interface';\nimport { JWTTokenModel } from './jwt.model';\n\n/**\n * JWT 拦截器\n *\n * ```\n * // app.module.ts\n * { provide: HTTP_INTERCEPTORS, useClass: JWTInterceptor, multi: true}\n * ```\n */\n@Injectable()\nexport class JWTInterceptor extends BaseInterceptor {\n isAuth(options: AlainAuthConfig): boolean {\n this.model = this.injector.get(DA_SERVICE_TOKEN).get<JWTTokenModel>(JWTTokenModel);\n return CheckJwt(this.model as JWTTokenModel, options.token_exp_offset!);\n }\n\n setReq(req: HttpRequest<NzSafeAny>, _options: AlainAuthConfig): HttpRequest<NzSafeAny> {\n return req.clone({\n setHeaders: {\n Authorization: `Bearer ${this.model.token}`\n }\n });\n }\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanActivateChild,\n CanLoad,\n Route,\n RouterStateSnapshot,\n UrlSegment\n} from '@angular/router';\n\nimport { AlainAuthConfig } from '@delon/util/config';\n\nimport { CheckJwt, ToLogin } from '../helper';\nimport { DA_SERVICE_TOKEN, ITokenService } from '../interface';\nimport { JWTTokenModel } from './jwt.model';\n\n/**\n * JWT 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivate: [ JWTGuard ]\n * },\n * {\n * path: 'my',\n * canActivateChild: [JWTGuard],\n * children: [\n * { path: 'profile', component: MockComponent }\n * ],\n * },\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class JWTGuard implements CanActivate, CanActivateChild, CanLoad {\n private url: string | undefined;\n\n private get cog(): AlainAuthConfig {\n return this.srv.options;\n }\n\n constructor(@Inject(DA_SERVICE_TOKEN) private srv: ITokenService, private injector: Injector) {}\n\n private process(): boolean {\n const res = CheckJwt(this.srv.get<JWTTokenModel>(JWTTokenModel), this.cog.token_exp_offset!);\n if (!res) {\n ToLogin(this.cog, this.injector, this.url);\n }\n return res;\n }\n\n // lazy loading\n canLoad(route: Route, _segments: UrlSegment[]): boolean {\n this.url = route.path;\n return this.process();\n }\n // all children route\n canActivateChild(_childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n // route\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n}\n","import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { ITokenModel } from '../interface';\n\nexport class SimpleTokenModel implements ITokenModel {\n [key: string]: NzSafeAny;\n\n token: string | null | undefined;\n\n expired?: number;\n}\n","import { HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { BaseInterceptor } from '../base.interceptor';\nimport { CheckSimple } from '../helper';\nimport { DA_SERVICE_TOKEN } from '../interface';\nimport { SimpleTokenModel } from './simple.model';\n\n/**\n * Simple 拦截器\n *\n * ```\n * // app.module.ts\n * { provide: HTTP_INTERCEPTORS, useClass: SimpleInterceptor, multi: true}\n * ```\n */\n@Injectable()\nexport class SimpleInterceptor extends BaseInterceptor {\n isAuth(_options: AlainAuthConfig): boolean {\n this.model = this.injector.get(DA_SERVICE_TOKEN).get() as SimpleTokenModel;\n return CheckSimple(this.model as SimpleTokenModel);\n }\n\n setReq(req: HttpRequest<NzSafeAny>, options: AlainAuthConfig): HttpRequest<NzSafeAny> {\n const { token_send_template, token_send_key } = options;\n const token = token_send_template!.replace(/\\$\\{([\\w]+)\\}/g, (_: string, g) => this.model[g]);\n switch (options.token_send_place) {\n case 'header':\n const obj: NzSafeAny = {};\n obj[token_send_key!] = token;\n req = req.clone({\n setHeaders: obj\n });\n break;\n case 'body':\n const body = req.body || {};\n body[token_send_key!] = token;\n req = req.clone({\n body\n });\n break;\n case 'url':\n req = req.clone({\n params: req.params.append(token_send_key!, token)\n });\n break;\n }\n return req;\n }\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanActivateChild,\n CanLoad,\n Route,\n RouterStateSnapshot,\n UrlSegment\n} from '@angular/router';\n\nimport { AlainAuthConfig } from '@delon/util/config';\n\nimport { CheckSimple, ToLogin } from '../helper';\nimport { DA_SERVICE_TOKEN, ITokenService } from '../interface';\nimport { SimpleTokenModel } from './simple.model';\n\n/**\n * Simple 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivate: [ SimpleGuard ]\n * },\n * {\n * path: 'my',\n * canActivateChild: [SimpleGuard],\n * children: [\n * { path: 'profile', component: MockComponent }\n * ],\n * },\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class SimpleGuard implements CanActivate, CanActivateChild, CanLoad {\n private url?: string;\n\n private get cog(): AlainAuthConfig {\n return this.srv.options;\n }\n\n constructor(@Inject(DA_SERVICE_TOKEN) private srv: ITokenService, private injector: Injector) {}\n\n private process(): boolean {\n const res = CheckSimple(this.srv.get() as SimpleTokenModel);\n if (!res) {\n ToLogin(this.cog, this.injector, this.url);\n }\n return res;\n }\n\n // lazy loading\n canLoad(route: Route, _segments: UrlSegment[]): boolean {\n this.url = route.path;\n return this.process();\n }\n // all children route\n canActivateChild(_childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n // route\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({})\nexport class DelonAuthModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"auth.mjs","sources":["../../../../packages/auth/src/auth.config.ts","../../../../packages/auth/src/store/local-storage.service.ts","../../../../packages/auth/src/store/interface.ts","../../../../packages/auth/src/token/token.service.ts","../../../../packages/auth/src/token/interface.ts","../../../../packages/auth/src/social/social.service.ts","../../../../packages/auth/src/store/memory.service.ts","../../../../packages/auth/src/store/session-storage.service.ts","../../../../packages/auth/src/store/cookie-storage.service.ts","../../../../packages/auth/src/token/helper.ts","../../../../packages/auth/src/token/base.interceptor.ts","../../../../packages/auth/src/token/jwt/jwt.helper.ts","../../../../packages/auth/src/token/jwt/jwt.model.ts","../../../../packages/auth/src/token/jwt/jwt.interceptor.ts","../../../../packages/auth/src/token/jwt/jwt.guard.ts","../../../../packages/auth/src/token/simple/simple.model.ts","../../../../packages/auth/src/token/simple/simple.interceptor.ts","../../../../packages/auth/src/token/simple/simple.guard.ts","../../../../packages/auth/src/auth.module.ts","../../../../packages/auth/auth.ts"],"sourcesContent":["import { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\n\nexport const AUTH_DEFAULT_CONFIG: AlainAuthConfig = {\n store_key: `_token`,\n token_invalid_redirect: true,\n token_exp_offset: 10,\n token_send_key: `token`,\n token_send_template: '${token}',\n token_send_place: 'header',\n login_url: '/login',\n ignores: [/\\/login/, /assets\\//, /passport\\//],\n allow_anonymous_key: `_allow_anonymous`,\n executeOtherInterceptors: true,\n refreshTime: 3000,\n refreshOffset: 6000\n};\n\nexport function mergeConfig(srv: AlainConfigService): AlainAuthConfig {\n return srv.merge('auth', AUTH_DEFAULT_CONFIG)!;\n}\n","import { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\nexport function DA_STORE_TOKEN_LOCAL_FACTORY(): IStore {\n return new LocalStorageStore();\n}\n\n/**\n * `localStorage` storage, **not lost after closing the browser**.\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: LocalStorageStore }\n * ```\n */\nexport class LocalStorageStore implements IStore {\n get(key: string): ITokenModel {\n return JSON.parse(localStorage.getItem(key) || '{}') || {};\n }\n\n set(key: string, value: ITokenModel | null): boolean {\n localStorage.setItem(key, JSON.stringify(value));\n return true;\n }\n\n remove(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { ITokenModel } from '../token/interface';\nimport { DA_STORE_TOKEN_LOCAL_FACTORY } from './local-storage.service';\n\nexport const DA_STORE_TOKEN = new InjectionToken<IStore>('AUTH_STORE_TOKEN', {\n providedIn: 'root',\n factory: DA_STORE_TOKEN_LOCAL_FACTORY\n});\n\nexport interface IStore {\n get(key: string): ITokenModel;\n\n set(key: string, value: ITokenModel): boolean;\n\n remove(key: string): void;\n}\n","import { inject, Inject, Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, interval, Observable, Subject, Subscription, filter, map, share } from 'rxjs';\n\nimport { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { mergeConfig } from '../auth.config';\nimport { DA_STORE_TOKEN, IStore } from '../store/interface';\nimport { AuthReferrer, ITokenModel, ITokenService } from './interface';\n\nexport function DA_SERVICE_TOKEN_FACTORY(): ITokenService {\n return new TokenService(inject(AlainConfigService), inject(DA_STORE_TOKEN));\n}\n\n/**\n * 维护Token信息服务,[在线文档](https://ng-alain.com/auth)\n */\n@Injectable()\nexport class TokenService implements ITokenService, OnDestroy {\n private refresh$ = new Subject<ITokenModel>();\n private change$ = new BehaviorSubject<ITokenModel | null>(null);\n private interval$?: Subscription;\n private _referrer: AuthReferrer = {};\n private _options: AlainAuthConfig;\n\n constructor(configSrv: AlainConfigService, @Inject(DA_STORE_TOKEN) private store: IStore) {\n this._options = mergeConfig(configSrv);\n }\n\n get refresh(): Observable<ITokenModel> {\n this.builderRefresh();\n return this.refresh$.pipe(share());\n }\n\n get login_url(): string | undefined {\n return this._options.login_url;\n }\n\n get referrer(): AuthReferrer {\n return this._referrer;\n }\n\n get options(): AlainAuthConfig {\n return this._options;\n }\n\n set(data: ITokenModel): boolean {\n const res = this.store.set(this._options.store_key!, data);\n this.change$.next(data);\n return res;\n }\n\n get(type?: NzSafeAny): NzSafeAny;\n get<T extends ITokenModel>(type?: new () => T): T;\n get<T extends ITokenModel>(type?: new () => T): T {\n const data = this.store.get(this._options.store_key!);\n return type ? (Object.assign(new type(), data) as T) : (data as T);\n }\n\n clear(options: { onlyToken: boolean } = { onlyToken: false }): void {\n let data: ITokenModel | null = null;\n if (options.onlyToken === true) {\n data = this.get() as ITokenModel;\n data.token = ``;\n this.set(data);\n } else {\n this.store.remove(this._options.store_key!);\n }\n this.change$.next(data);\n }\n\n change(): Observable<ITokenModel | null> {\n return this.change$.pipe(share());\n }\n\n private builderRefresh(): void {\n const { refreshTime, refreshOffset } = this._options;\n this.cleanRefresh();\n this.interval$ = interval(refreshTime)\n .pipe(\n map(() => {\n const item = this.get() as ITokenModel;\n const expired = item.expired || item.exp || 0;\n if (expired <= 0) {\n return null;\n }\n\n const curTime = new Date().valueOf() + refreshOffset!;\n return expired <= curTime ? item : null;\n }),\n filter(v => v != null)\n )\n .subscribe(res => this.refresh$.next(res!));\n }\n\n private cleanRefresh(): void {\n if (this.interval$ && !this.interval$.closed) {\n this.interval$.unsubscribe();\n }\n }\n\n ngOnDestroy(): void {\n this.cleanRefresh();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { DA_SERVICE_TOKEN_FACTORY } from './token.service';\n\nexport const DA_SERVICE_TOKEN = new InjectionToken<ITokenService>('DA_SERVICE_TOKEN', {\n providedIn: 'root',\n factory: DA_SERVICE_TOKEN_FACTORY\n});\n\nexport interface ITokenModel {\n [key: string]: NzSafeAny;\n\n token: string | null | undefined;\n\n /**\n * 过期时间,单位:ms\n * - 不管Simple、JWT模式都必须指定\n */\n expired?: number;\n}\n\nexport interface AuthReferrer {\n url?: string | null | undefined;\n}\n\nexport interface ITokenService {\n /**\n * 授权失败后跳转路由路径(支持外部链接地址),通过设置[全局配置](https://ng-alain.com/docs/global-config)来改变\n */\n readonly login_url: string | undefined;\n\n /**\n * 当前请求页面的来源页面的地址\n */\n readonly referrer?: AuthReferrer;\n\n readonly options: AlainAuthConfig;\n\n /**\n * 订阅刷新,订阅时会自动产生一个定时器,每隔一段时间进行一些校验\n * - **注意** 会多次触发,请务必做好业务判断\n */\n readonly refresh: Observable<ITokenModel>;\n\n /**\n * 设置 Token 信息,当用户 Token 发生变动时都需要调用此方法重新刷新\n * - 如果需要监听过期,需要传递 `expired` 值\n */\n set(data: ITokenModel | null): boolean;\n\n /**\n * 获取Token,形式包括:\n * - `get()` 获取 Simple Token\n * - `get<JWTTokenModel>(JWTTokenModel)` 获取 JWT Token\n */\n get(type?: NzSafeAny): ITokenModel | null;\n\n /**\n * 获取Token,形式包括:\n * - `get()` 获取 Simple Token\n * - `get<JWTTokenModel>(JWTTokenModel)` 获取 JWT Token\n */\n get<T extends ITokenModel>(type?: NzSafeAny): T;\n\n /**\n * 清除 Token 信息,当用户退出登录时调用。\n * ```\n * // 清除所有 Token 信息\n * tokenService.clear();\n * // 只清除 token 字段\n * tokenService.clear({ onlyToken: true });\n * ```\n */\n clear(options?: { onlyToken: boolean }): void;\n\n /**\n * 订阅 Token 对象变更通知\n */\n change(): Observable<ITokenModel | null>;\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable, Observer } from 'rxjs';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { DA_SERVICE_TOKEN, ITokenModel, ITokenService } from '../token/interface';\n\nconst OPENTYPE = '_delonAuthSocialType';\nconst HREFCALLBACK = '_delonAuthSocialCallbackByHref';\n\nexport type SocialOpenType = 'href' | 'window';\n\n@Injectable()\nexport class SocialService implements OnDestroy {\n private _win: Window | null = null;\n private _winTime: NzSafeAny;\n private observer!: Observer<ITokenModel | null>;\n\n constructor(\n @Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService,\n @Inject(DOCUMENT) private doc: NzSafeAny,\n private router: Router\n ) {}\n\n /**\n * 使用窗体打开授权页,返回值是 `Observable<ITokenModel>` 用于订阅授权后返回的结果\n *\n * @param url 获取授权地址\n * @param callback 回调路由地址\n * @param options.windowFeatures 等同 `window.open` 的 `features` 参数值\n */\n login(\n url: string,\n callback?: string,\n options?: {\n type?: 'window';\n windowFeatures?: string;\n }\n ): Observable<ITokenModel>;\n\n /**\n * 跳转至授权页\n *\n * @param url 获取授权地址\n * @param callback 回调路由地址\n */\n login(\n url: string,\n callback?: string,\n options?: {\n type?: 'href';\n }\n ): void;\n\n /**\n * 跳转至登录页,若为 `type=window` 时,返回值是 `Observable<ITokenModel>`\n *\n * @param url 获取授权地址\n * @param callback 当 `type=href` 成功时的回调路由地址\n * @param options.type 打开方式,默认 `window`\n * @param options.windowFeatures 等同 `window.open` 的 `features` 参数值\n */\n login(\n url: string,\n callback: string = '/',\n options: {\n type?: SocialOpenType;\n windowFeatures?: string;\n } = {}\n ): Observable<ITokenModel | null> | void {\n options = {\n type: 'window',\n windowFeatures: 'location=yes,height=570,width=520,scrollbars=yes,status=yes',\n ...options\n };\n localStorage.setItem(OPENTYPE, options.type!);\n localStorage.setItem(HREFCALLBACK, callback);\n if (options.type === 'href') {\n this.doc.location.href = url;\n return;\n }\n\n this._win = window.open(url, '_blank', options.windowFeatures);\n this._winTime = setInterval(() => {\n if (this._win && this._win.closed) {\n this.ngOnDestroy();\n\n let model = this.tokenService.get();\n if (model && !model.token) model = null;\n\n // 触发变更通知\n if (model) {\n this.tokenService.set(model);\n }\n\n this.observer.next(model);\n this.observer.complete();\n }\n }, 100);\n return new Observable((observer: Observer<ITokenModel | null>) => {\n this.observer = observer;\n });\n }\n\n /**\n * 授权成功后的回调处理\n *\n * @param rawData 指定回调认证信息,为空时从根据当前URL解析\n */\n callback(rawData?: ITokenModel | string | null): ITokenModel {\n // from uri\n if (!rawData && this.router.url.indexOf('?') === -1) {\n throw new Error(`url muse contain a ?`);\n }\n // parse\n let data: ITokenModel = { token: `` };\n if (typeof rawData === 'string') {\n const rightUrl = rawData.split('?')[1].split('#')[0];\n data = this.router.parseUrl(`./?${rightUrl}`).queryParams as ITokenModel;\n } else {\n data = rawData as ITokenModel;\n }\n\n if (!data || !data.token) throw new Error(`invalide token data`);\n this.tokenService.set(data);\n\n const url = localStorage.getItem(HREFCALLBACK) || '/';\n localStorage.removeItem(HREFCALLBACK);\n const type = localStorage.getItem(OPENTYPE);\n localStorage.removeItem(OPENTYPE);\n if (type === 'window') {\n window.close();\n } else {\n this.router.navigateByUrl(url);\n }\n\n return data;\n }\n\n ngOnDestroy(): void {\n clearInterval(this._winTime);\n this._winTime = null;\n }\n}\n","import { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\n/**\n * 内存存储,关掉浏览器标签后**丢失**。\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: MemoryStore }\n * ```\n */\nexport class MemoryStore implements IStore {\n private cache: { [key: string]: ITokenModel | null } = {};\n\n get(key: string): ITokenModel {\n return this.cache[key] || ({} as ITokenModel);\n }\n\n set(key: string, value: ITokenModel): boolean {\n this.cache[key] = value;\n return true;\n }\n\n remove(key: string): void {\n this.cache[key] = null;\n }\n}\n","import { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\n/**\n * `sessionStorage` storage, **lost after closing the browser**.\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: SessionStorageStore }\n * ```\n */\nexport class SessionStorageStore implements IStore {\n get(key: string): ITokenModel {\n return JSON.parse(sessionStorage.getItem(key) || '{}') || {};\n }\n\n set(key: string, value: ITokenModel | null): boolean {\n sessionStorage.setItem(key, JSON.stringify(value));\n return true;\n }\n\n remove(key: string): void {\n sessionStorage.removeItem(key);\n }\n}\n","import { CookieService } from '@delon/util/browser';\n\nimport { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\n/**\n * `cookie` storage\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: CookieStorageStore, deps: [CookieService] }\n * ```\n */\nexport class CookieStorageStore implements IStore {\n constructor(private srv: CookieService) {}\n\n get(key: string): ITokenModel {\n try {\n return JSON.parse(this.srv.get(key) || '{}');\n } catch (ex) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.error(`CookieStorageStore: Invalid key-value format ${key}`, ex);\n }\n return {} as ITokenModel;\n }\n }\n\n set(key: string, value: ITokenModel | null | undefined): boolean {\n this.srv.put(key, value != null ? JSON.stringify(value) : '{}');\n return true;\n }\n\n remove(key: string): void {\n this.srv.remove(key);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injector } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { DA_SERVICE_TOKEN, ITokenService } from './interface';\nimport { JWTTokenModel } from './jwt/jwt.model';\nimport { SimpleTokenModel } from './simple/simple.model';\n\nexport function CheckSimple(model: SimpleTokenModel | null): boolean {\n return model != null && typeof model.token === 'string' && model.token.length > 0;\n}\n\nexport function CheckJwt(model: JWTTokenModel, offset: number): boolean {\n try {\n return model != null && !!model.token && !model.isExpired(offset);\n } catch (err: NzSafeAny) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`${err.message}, jump to login_url`);\n }\n return false;\n }\n}\n\nexport function ToLogin(options: AlainAuthConfig, injector: Injector, url?: string): void {\n const router = injector.get<Router>(Router);\n (injector.get(DA_SERVICE_TOKEN) as ITokenService).referrer!.url = url || router.url;\n if (options.token_invalid_redirect === true) {\n setTimeout(() => {\n if (/^https?:\\/\\//g.test(options.login_url!)) {\n injector.get(DOCUMENT).location.href = options.login_url as string;\n } else {\n router.navigate([options.login_url]);\n }\n });\n }\n}\n","import {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpParams,\n HttpRequest,\n HTTP_INTERCEPTORS\n} from '@angular/common/http';\nimport { Injectable, Injector, Optional } from '@angular/core';\nimport { Observable, Observer } from 'rxjs';\n\nimport { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { mergeConfig } from '../auth.config';\nimport { ToLogin } from './helper';\nimport { ITokenModel } from './interface';\n\nclass HttpAuthInterceptorHandler implements HttpHandler {\n constructor(private next: HttpHandler, private interceptor: HttpInterceptor) {}\n\n handle(req: HttpRequest<NzSafeAny>): Observable<HttpEvent<NzSafeAny>> {\n return this.interceptor.intercept(req, this.next);\n }\n}\n\n@Injectable()\nexport abstract class BaseInterceptor implements HttpInterceptor {\n constructor(@Optional() protected injector: Injector) {}\n\n protected model!: ITokenModel;\n\n abstract isAuth(options: AlainAuthConfig): boolean;\n\n abstract setReq(req: HttpRequest<NzSafeAny>, options: AlainAuthConfig): HttpRequest<NzSafeAny>;\n\n intercept(req: HttpRequest<NzSafeAny>, next: HttpHandler): Observable<HttpEvent<NzSafeAny>> {\n const options = mergeConfig(this.injector.get(AlainConfigService));\n if (Array.isArray(options.ignores)) {\n for (const item of options.ignores) {\n if (item.test(req.url)) return next.handle(req);\n }\n }\n\n const ingoreKey = options.allow_anonymous_key!;\n let ingored = false;\n let params = req.params;\n let url = req.url;\n if (req.params.has(ingoreKey)) {\n params = req.params.delete(ingoreKey);\n ingored = true;\n }\n const urlArr = req.url.split('?');\n if (urlArr.length > 1) {\n const queryStringParams = new HttpParams({ fromString: urlArr[1] });\n if (queryStringParams.has(ingoreKey)) {\n const queryString = queryStringParams.delete(ingoreKey).toString();\n url = queryString.length > 0 ? `${urlArr[0]}?${queryString}` : urlArr[0];\n ingored = true;\n }\n }\n if (ingored) {\n return next.handle(req.clone({ params, url }));\n }\n\n if (this.isAuth(options)) {\n req = this.setReq(req, options);\n } else {\n ToLogin(options, this.injector);\n // Interrupt Http request, so need to generate a new Observable\n const err$ = new Observable((observer: Observer<HttpEvent<NzSafeAny>>) => {\n const res = new HttpErrorResponse({\n url: req.url,\n headers: req.headers,\n status: 401,\n statusText: `来自 @delon/auth 的拦截,所请求URL未授权,若是登录API可加入 [url?_allow_anonymous=true] 来表示忽略校验,更多方法请参考: https://ng-alain.com/auth/getting-started#AlainAuthConfig\\nThe interception from @delon/auth, the requested URL is not authorized. If the login API can add [url?_allow_anonymous=true] to ignore the check, please refer to: https://ng-alain.com/auth/getting-started#AlainAuthConfig`\n });\n observer.error(res);\n });\n if (options.executeOtherInterceptors) {\n const interceptors = this.injector.get(HTTP_INTERCEPTORS, []);\n const lastInterceptors = interceptors.slice(interceptors.indexOf(this) + 1);\n if (lastInterceptors.length > 0) {\n const chain = lastInterceptors.reduceRight(\n (_next, _interceptor) => new HttpAuthInterceptorHandler(_next, _interceptor),\n {\n handle: (_: HttpRequest<NzSafeAny>) => err$\n }\n );\n return chain.handle(req);\n }\n }\n return err$;\n }\n return next.handle(req);\n }\n}\n","import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport function urlBase64Decode(str: string): string {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0: {\n break;\n }\n case 2: {\n output += '==';\n break;\n }\n case 3: {\n output += '=';\n break;\n }\n default: {\n throw new Error(`'atob' failed: The string to be decoded is not correctly encoded.`);\n }\n }\n return b64DecodeUnicode(output);\n}\n\nfunction b64decode(str: string): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n\n str = String(str).replace(/=+$/, '');\n\n for (\n // initialize result and counters\n let bc = 0, bs: NzSafeAny, buffer: NzSafeAny, idx = 0;\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4)\n ? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6))))\n : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n}\n\n// https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem\nfunction b64DecodeUnicode(str: string): string {\n return decodeURIComponent(\n Array.prototype.map\n .call(b64decode(str), (c: string) => {\n return `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`;\n })\n .join('')\n );\n}\n","import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { ITokenModel } from '../interface';\nimport { urlBase64Decode } from './jwt.helper';\n\nexport interface JWT {\n /**\n * Issuerd\n */\n iss: string;\n /**\n * Issued At\n */\n iat: string;\n /**\n * Subject\n */\n sub: string;\n /**\n * Expiration Time\n */\n exp: number;\n /**\n * Audience\n */\n aud: string;\n /**\n * Not Before\n */\n nbf: string;\n /**\n * JWT ID\n */\n jti: string;\n\n [key: string]: NzSafeAny;\n [key: number]: NzSafeAny;\n}\n\nexport class JWTTokenModel implements ITokenModel {\n [key: string]: NzSafeAny;\n\n token: string | null | undefined;\n\n expired?: number;\n\n /**\n * 获取载荷信息\n */\n get payload(): JWT {\n const parts = (this.token || '').split('.');\n if (parts.length !== 3) throw new Error('JWT must have 3 parts');\n\n const decoded = urlBase64Decode(parts[1]);\n return JSON.parse(decoded);\n }\n\n /**\n * 获取过期时间戳(单位:ms)\n */\n get exp(): number | null {\n const decoded = this.payload;\n if (!decoded.hasOwnProperty('exp')) return null;\n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n return date.valueOf();\n }\n\n /**\n * 检查Token是否过期,当`payload` 包含 `exp` 字段时有效,若无 `exp` 字段直接返回 `null`\n *\n * @param offsetSeconds 偏移量\n */\n isExpired(offsetSeconds: number = 0): boolean | null {\n const exp = this.exp;\n if (exp == null) return null;\n\n return !(exp > new Date().valueOf() + offsetSeconds * 1000);\n }\n}\n","import { HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { BaseInterceptor } from '../base.interceptor';\nimport { CheckJwt } from '../helper';\nimport { DA_SERVICE_TOKEN } from '../interface';\nimport { JWTTokenModel } from './jwt.model';\n\n/**\n * JWT 拦截器\n *\n * ```\n * // app.module.ts\n * { provide: HTTP_INTERCEPTORS, useClass: JWTInterceptor, multi: true}\n * ```\n */\n@Injectable()\nexport class JWTInterceptor extends BaseInterceptor {\n isAuth(options: AlainAuthConfig): boolean {\n this.model = this.injector.get(DA_SERVICE_TOKEN).get<JWTTokenModel>(JWTTokenModel);\n return CheckJwt(this.model as JWTTokenModel, options.token_exp_offset!);\n }\n\n setReq(req: HttpRequest<NzSafeAny>, _options: AlainAuthConfig): HttpRequest<NzSafeAny> {\n return req.clone({\n setHeaders: {\n Authorization: `Bearer ${this.model.token}`\n }\n });\n }\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanActivateChild,\n CanLoad,\n Route,\n RouterStateSnapshot,\n UrlSegment\n} from '@angular/router';\n\nimport { AlainAuthConfig } from '@delon/util/config';\n\nimport { CheckJwt, ToLogin } from '../helper';\nimport { DA_SERVICE_TOKEN, ITokenService } from '../interface';\nimport { JWTTokenModel } from './jwt.model';\n\n/**\n * JWT 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivate: [ JWTGuard ]\n * },\n * {\n * path: 'my',\n * canActivateChild: [JWTGuard],\n * children: [\n * { path: 'profile', component: MockComponent }\n * ],\n * },\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class JWTGuard implements CanActivate, CanActivateChild, CanLoad {\n private url: string | undefined;\n\n private get cog(): AlainAuthConfig {\n return this.srv.options;\n }\n\n constructor(@Inject(DA_SERVICE_TOKEN) private srv: ITokenService, private injector: Injector) {}\n\n private process(): boolean {\n const res = CheckJwt(this.srv.get<JWTTokenModel>(JWTTokenModel), this.cog.token_exp_offset!);\n if (!res) {\n ToLogin(this.cog, this.injector, this.url);\n }\n return res;\n }\n\n // lazy loading\n canLoad(route: Route, _segments: UrlSegment[]): boolean {\n this.url = route.path;\n return this.process();\n }\n // all children route\n canActivateChild(_childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n // route\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n}\n","import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { ITokenModel } from '../interface';\n\nexport class SimpleTokenModel implements ITokenModel {\n [key: string]: NzSafeAny;\n\n token: string | null | undefined;\n\n expired?: number;\n}\n","import { HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { BaseInterceptor } from '../base.interceptor';\nimport { CheckSimple } from '../helper';\nimport { DA_SERVICE_TOKEN } from '../interface';\nimport { SimpleTokenModel } from './simple.model';\n\n/**\n * Simple 拦截器\n *\n * ```\n * // app.module.ts\n * { provide: HTTP_INTERCEPTORS, useClass: SimpleInterceptor, multi: true}\n * ```\n */\n@Injectable()\nexport class SimpleInterceptor extends BaseInterceptor {\n isAuth(_options: AlainAuthConfig): boolean {\n this.model = this.injector.get(DA_SERVICE_TOKEN).get() as SimpleTokenModel;\n return CheckSimple(this.model as SimpleTokenModel);\n }\n\n setReq(req: HttpRequest<NzSafeAny>, options: AlainAuthConfig): HttpRequest<NzSafeAny> {\n const { token_send_template, token_send_key } = options;\n const token = token_send_template!.replace(/\\$\\{([\\w]+)\\}/g, (_: string, g) => this.model[g]);\n switch (options.token_send_place) {\n case 'header':\n const obj: NzSafeAny = {};\n obj[token_send_key!] = token;\n req = req.clone({\n setHeaders: obj\n });\n break;\n case 'body':\n const body = req.body || {};\n body[token_send_key!] = token;\n req = req.clone({\n body\n });\n break;\n case 'url':\n req = req.clone({\n params: req.params.append(token_send_key!, token)\n });\n break;\n }\n return req;\n }\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanActivateChild,\n CanLoad,\n Route,\n RouterStateSnapshot,\n UrlSegment\n} from '@angular/router';\n\nimport { AlainAuthConfig } from '@delon/util/config';\n\nimport { CheckSimple, ToLogin } from '../helper';\nimport { DA_SERVICE_TOKEN, ITokenService } from '../interface';\nimport { SimpleTokenModel } from './simple.model';\n\n/**\n * Simple 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivate: [ SimpleGuard ]\n * },\n * {\n * path: 'my',\n * canActivateChild: [SimpleGuard],\n * children: [\n * { path: 'profile', component: MockComponent }\n * ],\n * },\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class SimpleGuard implements CanActivate, CanActivateChild, CanLoad {\n private url?: string;\n\n private get cog(): AlainAuthConfig {\n return this.srv.options;\n }\n\n constructor(@Inject(DA_SERVICE_TOKEN) private srv: ITokenService, private injector: Injector) {}\n\n private process(): boolean {\n const res = CheckSimple(this.srv.get() as SimpleTokenModel);\n if (!res) {\n ToLogin(this.cog, this.injector, this.url);\n }\n return res;\n }\n\n // lazy loading\n canLoad(route: Route, _segments: UrlSegment[]): boolean {\n this.url = route.path;\n return this.process();\n }\n // all children route\n canActivateChild(_childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n // route\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({})\nexport class DelonAuthModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
package/fesm2020/auth.mjs CHANGED
@@ -1,8 +1,7 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
3
  import { InjectionToken, inject, Injectable, Inject, Optional, NgModule } from '@angular/core';
4
- import { Subject, BehaviorSubject, interval, Observable } from 'rxjs';
5
- import { share, map, filter } from 'rxjs/operators';
4
+ import { Subject, BehaviorSubject, share, interval, map, filter, Observable } from 'rxjs';
6
5
  import * as i1 from '@delon/util/config';
7
6
  import { AlainConfigService } from '@delon/util/config';
8
7
  import * as i1$1 from '@angular/router';
@@ -131,9 +130,9 @@ class TokenService {
131
130
  this.cleanRefresh();
132
131
  }
133
132
  }
134
- TokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: TokenService, deps: [{ token: i1.AlainConfigService }, { token: DA_STORE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
135
- TokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: TokenService });
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: TokenService, decorators: [{
133
+ TokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TokenService, deps: [{ token: i1.AlainConfigService }, { token: DA_STORE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
134
+ TokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TokenService });
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TokenService, decorators: [{
137
136
  type: Injectable
138
137
  }], ctorParameters: function () { return [{ type: i1.AlainConfigService }, { type: undefined, decorators: [{
139
138
  type: Inject,
@@ -232,9 +231,9 @@ class SocialService {
232
231
  this._winTime = null;
233
232
  }
234
233
  }
235
- SocialService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SocialService, deps: [{ token: DA_SERVICE_TOKEN }, { token: DOCUMENT }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
236
- SocialService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SocialService });
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SocialService, decorators: [{
234
+ SocialService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SocialService, deps: [{ token: DA_SERVICE_TOKEN }, { token: DOCUMENT }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
235
+ SocialService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SocialService });
236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SocialService, decorators: [{
238
237
  type: Injectable
239
238
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
240
239
  type: Inject,
@@ -421,9 +420,9 @@ class BaseInterceptor {
421
420
  return next.handle(req);
422
421
  }
423
422
  }
424
- BaseInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: BaseInterceptor, deps: [{ token: i0.Injector, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
425
- BaseInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: BaseInterceptor });
426
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: BaseInterceptor, decorators: [{
423
+ BaseInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseInterceptor, deps: [{ token: i0.Injector, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
424
+ BaseInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseInterceptor });
425
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseInterceptor, decorators: [{
427
426
  type: Injectable
428
427
  }], ctorParameters: function () { return [{ type: i0.Injector, decorators: [{
429
428
  type: Optional
@@ -536,9 +535,9 @@ class JWTInterceptor extends BaseInterceptor {
536
535
  });
537
536
  }
538
537
  }
539
- JWTInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTInterceptor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
540
- JWTInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTInterceptor });
541
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTInterceptor, decorators: [{
538
+ JWTInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTInterceptor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
539
+ JWTInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTInterceptor });
540
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTInterceptor, decorators: [{
542
541
  type: Injectable
543
542
  }] });
544
543
 
@@ -590,9 +589,9 @@ class JWTGuard {
590
589
  return this.process();
591
590
  }
592
591
  }
593
- JWTGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTGuard, deps: [{ token: DA_SERVICE_TOKEN }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
594
- JWTGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTGuard, providedIn: 'root' });
595
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: JWTGuard, decorators: [{
592
+ JWTGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTGuard, deps: [{ token: DA_SERVICE_TOKEN }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
593
+ JWTGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTGuard, providedIn: 'root' });
594
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: JWTGuard, decorators: [{
596
595
  type: Injectable,
597
596
  args: [{ providedIn: 'root' }]
598
597
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -643,9 +642,9 @@ class SimpleInterceptor extends BaseInterceptor {
643
642
  return req;
644
643
  }
645
644
  }
646
- SimpleInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleInterceptor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
647
- SimpleInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleInterceptor });
648
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleInterceptor, decorators: [{
645
+ SimpleInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleInterceptor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
646
+ SimpleInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleInterceptor });
647
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleInterceptor, decorators: [{
649
648
  type: Injectable
650
649
  }] });
651
650
 
@@ -697,9 +696,9 @@ class SimpleGuard {
697
696
  return this.process();
698
697
  }
699
698
  }
700
- SimpleGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleGuard, deps: [{ token: DA_SERVICE_TOKEN }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
701
- SimpleGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleGuard, providedIn: 'root' });
702
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SimpleGuard, decorators: [{
699
+ SimpleGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleGuard, deps: [{ token: DA_SERVICE_TOKEN }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
700
+ SimpleGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleGuard, providedIn: 'root' });
701
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleGuard, decorators: [{
703
702
  type: Injectable,
704
703
  args: [{ providedIn: 'root' }]
705
704
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -709,10 +708,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
709
708
 
710
709
  class DelonAuthModule {
711
710
  }
712
- DelonAuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DelonAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
713
- DelonAuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DelonAuthModule });
714
- DelonAuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DelonAuthModule });
715
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DelonAuthModule, decorators: [{
711
+ DelonAuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DelonAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
712
+ DelonAuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DelonAuthModule });
713
+ DelonAuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DelonAuthModule });
714
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DelonAuthModule, decorators: [{
716
715
  type: NgModule,
717
716
  args: [{}]
718
717
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"auth.mjs","sources":["../../../../packages/auth/src/auth.config.ts","../../../../packages/auth/src/store/local-storage.service.ts","../../../../packages/auth/src/store/interface.ts","../../../../packages/auth/src/token/token.service.ts","../../../../packages/auth/src/token/interface.ts","../../../../packages/auth/src/social/social.service.ts","../../../../packages/auth/src/store/memory.service.ts","../../../../packages/auth/src/store/session-storage.service.ts","../../../../packages/auth/src/store/cookie-storage.service.ts","../../../../packages/auth/src/token/helper.ts","../../../../packages/auth/src/token/base.interceptor.ts","../../../../packages/auth/src/token/jwt/jwt.helper.ts","../../../../packages/auth/src/token/jwt/jwt.model.ts","../../../../packages/auth/src/token/jwt/jwt.interceptor.ts","../../../../packages/auth/src/token/jwt/jwt.guard.ts","../../../../packages/auth/src/token/simple/simple.model.ts","../../../../packages/auth/src/token/simple/simple.interceptor.ts","../../../../packages/auth/src/token/simple/simple.guard.ts","../../../../packages/auth/src/auth.module.ts","../../../../packages/auth/auth.ts"],"sourcesContent":["import { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\n\nexport const AUTH_DEFAULT_CONFIG: AlainAuthConfig = {\n store_key: `_token`,\n token_invalid_redirect: true,\n token_exp_offset: 10,\n token_send_key: `token`,\n token_send_template: '${token}',\n token_send_place: 'header',\n login_url: '/login',\n ignores: [/\\/login/, /assets\\//, /passport\\//],\n allow_anonymous_key: `_allow_anonymous`,\n executeOtherInterceptors: true,\n refreshTime: 3000,\n refreshOffset: 6000\n};\n\nexport function mergeConfig(srv: AlainConfigService): AlainAuthConfig {\n return srv.merge('auth', AUTH_DEFAULT_CONFIG)!;\n}\n","import { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\nexport function DA_STORE_TOKEN_LOCAL_FACTORY(): IStore {\n return new LocalStorageStore();\n}\n\n/**\n * `localStorage` storage, **not lost after closing the browser**.\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: LocalStorageStore }\n * ```\n */\nexport class LocalStorageStore implements IStore {\n get(key: string): ITokenModel {\n return JSON.parse(localStorage.getItem(key) || '{}') || {};\n }\n\n set(key: string, value: ITokenModel | null): boolean {\n localStorage.setItem(key, JSON.stringify(value));\n return true;\n }\n\n remove(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { ITokenModel } from '../token/interface';\nimport { DA_STORE_TOKEN_LOCAL_FACTORY } from './local-storage.service';\n\nexport const DA_STORE_TOKEN = new InjectionToken<IStore>('AUTH_STORE_TOKEN', {\n providedIn: 'root',\n factory: DA_STORE_TOKEN_LOCAL_FACTORY\n});\n\nexport interface IStore {\n get(key: string): ITokenModel;\n\n set(key: string, value: ITokenModel): boolean;\n\n remove(key: string): void;\n}\n","import { inject, Inject, Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, interval, Observable, Subject, Subscription } from 'rxjs';\nimport { filter, map, share } from 'rxjs/operators';\n\nimport { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { mergeConfig } from '../auth.config';\nimport { DA_STORE_TOKEN, IStore } from '../store/interface';\nimport { AuthReferrer, ITokenModel, ITokenService } from './interface';\n\nexport function DA_SERVICE_TOKEN_FACTORY(): ITokenService {\n return new TokenService(inject(AlainConfigService), inject(DA_STORE_TOKEN));\n}\n\n/**\n * 维护Token信息服务,[在线文档](https://ng-alain.com/auth)\n */\n@Injectable()\nexport class TokenService implements ITokenService, OnDestroy {\n private refresh$ = new Subject<ITokenModel>();\n private change$ = new BehaviorSubject<ITokenModel | null>(null);\n private interval$?: Subscription;\n private _referrer: AuthReferrer = {};\n private _options: AlainAuthConfig;\n\n constructor(configSrv: AlainConfigService, @Inject(DA_STORE_TOKEN) private store: IStore) {\n this._options = mergeConfig(configSrv);\n }\n\n get refresh(): Observable<ITokenModel> {\n this.builderRefresh();\n return this.refresh$.pipe(share());\n }\n\n get login_url(): string | undefined {\n return this._options.login_url;\n }\n\n get referrer(): AuthReferrer {\n return this._referrer;\n }\n\n get options(): AlainAuthConfig {\n return this._options;\n }\n\n set(data: ITokenModel): boolean {\n const res = this.store.set(this._options.store_key!, data);\n this.change$.next(data);\n return res;\n }\n\n get(type?: NzSafeAny): NzSafeAny;\n get<T extends ITokenModel>(type?: new () => T): T;\n get<T extends ITokenModel>(type?: new () => T): T {\n const data = this.store.get(this._options.store_key!);\n return type ? (Object.assign(new type(), data) as T) : (data as T);\n }\n\n clear(options: { onlyToken: boolean } = { onlyToken: false }): void {\n let data: ITokenModel | null = null;\n if (options.onlyToken === true) {\n data = this.get() as ITokenModel;\n data.token = ``;\n this.set(data);\n } else {\n this.store.remove(this._options.store_key!);\n }\n this.change$.next(data);\n }\n\n change(): Observable<ITokenModel | null> {\n return this.change$.pipe(share());\n }\n\n private builderRefresh(): void {\n const { refreshTime, refreshOffset } = this._options;\n this.cleanRefresh();\n this.interval$ = interval(refreshTime)\n .pipe(\n map(() => {\n const item = this.get() as ITokenModel;\n const expired = item.expired || item.exp || 0;\n if (expired <= 0) {\n return null;\n }\n\n const curTime = new Date().valueOf() + refreshOffset!;\n return expired <= curTime ? item : null;\n }),\n filter(v => v != null)\n )\n .subscribe(res => this.refresh$.next(res!));\n }\n\n private cleanRefresh(): void {\n if (this.interval$ && !this.interval$.closed) {\n this.interval$.unsubscribe();\n }\n }\n\n ngOnDestroy(): void {\n this.cleanRefresh();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { DA_SERVICE_TOKEN_FACTORY } from './token.service';\n\nexport const DA_SERVICE_TOKEN = new InjectionToken<ITokenService>('DA_SERVICE_TOKEN', {\n providedIn: 'root',\n factory: DA_SERVICE_TOKEN_FACTORY\n});\n\nexport interface ITokenModel {\n [key: string]: NzSafeAny;\n\n token: string | null | undefined;\n\n /**\n * 过期时间,单位:ms\n * - 不管Simple、JWT模式都必须指定\n */\n expired?: number;\n}\n\nexport interface AuthReferrer {\n url?: string | null | undefined;\n}\n\nexport interface ITokenService {\n /**\n * 授权失败后跳转路由路径(支持外部链接地址),通过设置[全局配置](https://ng-alain.com/docs/global-config)来改变\n */\n readonly login_url: string | undefined;\n\n /**\n * 当前请求页面的来源页面的地址\n */\n readonly referrer?: AuthReferrer;\n\n readonly options: AlainAuthConfig;\n\n /**\n * 订阅刷新,订阅时会自动产生一个定时器,每隔一段时间进行一些校验\n * - **注意** 会多次触发,请务必做好业务判断\n */\n readonly refresh: Observable<ITokenModel>;\n\n /**\n * 设置 Token 信息,当用户 Token 发生变动时都需要调用此方法重新刷新\n * - 如果需要监听过期,需要传递 `expired` 值\n */\n set(data: ITokenModel | null): boolean;\n\n /**\n * 获取Token,形式包括:\n * - `get()` 获取 Simple Token\n * - `get<JWTTokenModel>(JWTTokenModel)` 获取 JWT Token\n */\n get(type?: NzSafeAny): ITokenModel | null;\n\n /**\n * 获取Token,形式包括:\n * - `get()` 获取 Simple Token\n * - `get<JWTTokenModel>(JWTTokenModel)` 获取 JWT Token\n */\n get<T extends ITokenModel>(type?: NzSafeAny): T;\n\n /**\n * 清除 Token 信息,当用户退出登录时调用。\n * ```\n * // 清除所有 Token 信息\n * tokenService.clear();\n * // 只清除 token 字段\n * tokenService.clear({ onlyToken: true });\n * ```\n */\n clear(options?: { onlyToken: boolean }): void;\n\n /**\n * 订阅 Token 对象变更通知\n */\n change(): Observable<ITokenModel | null>;\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable, Observer } from 'rxjs';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { DA_SERVICE_TOKEN, ITokenModel, ITokenService } from '../token/interface';\n\nconst OPENTYPE = '_delonAuthSocialType';\nconst HREFCALLBACK = '_delonAuthSocialCallbackByHref';\n\nexport type SocialOpenType = 'href' | 'window';\n\n@Injectable()\nexport class SocialService implements OnDestroy {\n private _win: Window | null = null;\n private _winTime: NzSafeAny;\n private observer!: Observer<ITokenModel | null>;\n\n constructor(\n @Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService,\n @Inject(DOCUMENT) private doc: NzSafeAny,\n private router: Router\n ) {}\n\n /**\n * 使用窗体打开授权页,返回值是 `Observable<ITokenModel>` 用于订阅授权后返回的结果\n *\n * @param url 获取授权地址\n * @param callback 回调路由地址\n * @param options.windowFeatures 等同 `window.open` 的 `features` 参数值\n */\n login(\n url: string,\n callback?: string,\n options?: {\n type?: 'window';\n windowFeatures?: string;\n }\n ): Observable<ITokenModel>;\n\n /**\n * 跳转至授权页\n *\n * @param url 获取授权地址\n * @param callback 回调路由地址\n */\n login(\n url: string,\n callback?: string,\n options?: {\n type?: 'href';\n }\n ): void;\n\n /**\n * 跳转至登录页,若为 `type=window` 时,返回值是 `Observable<ITokenModel>`\n *\n * @param url 获取授权地址\n * @param callback 当 `type=href` 成功时的回调路由地址\n * @param options.type 打开方式,默认 `window`\n * @param options.windowFeatures 等同 `window.open` 的 `features` 参数值\n */\n login(\n url: string,\n callback: string = '/',\n options: {\n type?: SocialOpenType;\n windowFeatures?: string;\n } = {}\n ): Observable<ITokenModel | null> | void {\n options = {\n type: 'window',\n windowFeatures: 'location=yes,height=570,width=520,scrollbars=yes,status=yes',\n ...options\n };\n localStorage.setItem(OPENTYPE, options.type!);\n localStorage.setItem(HREFCALLBACK, callback);\n if (options.type === 'href') {\n this.doc.location.href = url;\n return;\n }\n\n this._win = window.open(url, '_blank', options.windowFeatures);\n this._winTime = setInterval(() => {\n if (this._win && this._win.closed) {\n this.ngOnDestroy();\n\n let model = this.tokenService.get();\n if (model && !model.token) model = null;\n\n // 触发变更通知\n if (model) {\n this.tokenService.set(model);\n }\n\n this.observer.next(model);\n this.observer.complete();\n }\n }, 100);\n return new Observable((observer: Observer<ITokenModel | null>) => {\n this.observer = observer;\n });\n }\n\n /**\n * 授权成功后的回调处理\n *\n * @param rawData 指定回调认证信息,为空时从根据当前URL解析\n */\n callback(rawData?: ITokenModel | string | null): ITokenModel {\n // from uri\n if (!rawData && this.router.url.indexOf('?') === -1) {\n throw new Error(`url muse contain a ?`);\n }\n // parse\n let data: ITokenModel = { token: `` };\n if (typeof rawData === 'string') {\n const rightUrl = rawData.split('?')[1].split('#')[0];\n data = this.router.parseUrl(`./?${rightUrl}`).queryParams as ITokenModel;\n } else {\n data = rawData as ITokenModel;\n }\n\n if (!data || !data.token) throw new Error(`invalide token data`);\n this.tokenService.set(data);\n\n const url = localStorage.getItem(HREFCALLBACK) || '/';\n localStorage.removeItem(HREFCALLBACK);\n const type = localStorage.getItem(OPENTYPE);\n localStorage.removeItem(OPENTYPE);\n if (type === 'window') {\n window.close();\n } else {\n this.router.navigateByUrl(url);\n }\n\n return data;\n }\n\n ngOnDestroy(): void {\n clearInterval(this._winTime);\n this._winTime = null;\n }\n}\n","import { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\n/**\n * 内存存储,关掉浏览器标签后**丢失**。\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: MemoryStore }\n * ```\n */\nexport class MemoryStore implements IStore {\n private cache: { [key: string]: ITokenModel | null } = {};\n\n get(key: string): ITokenModel {\n return this.cache[key] || ({} as ITokenModel);\n }\n\n set(key: string, value: ITokenModel): boolean {\n this.cache[key] = value;\n return true;\n }\n\n remove(key: string): void {\n this.cache[key] = null;\n }\n}\n","import { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\n/**\n * `sessionStorage` storage, **lost after closing the browser**.\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: SessionStorageStore }\n * ```\n */\nexport class SessionStorageStore implements IStore {\n get(key: string): ITokenModel {\n return JSON.parse(sessionStorage.getItem(key) || '{}') || {};\n }\n\n set(key: string, value: ITokenModel | null): boolean {\n sessionStorage.setItem(key, JSON.stringify(value));\n return true;\n }\n\n remove(key: string): void {\n sessionStorage.removeItem(key);\n }\n}\n","import { CookieService } from '@delon/util/browser';\n\nimport { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\n/**\n * `cookie` storage\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: CookieStorageStore, deps: [CookieService] }\n * ```\n */\nexport class CookieStorageStore implements IStore {\n constructor(private srv: CookieService) {}\n\n get(key: string): ITokenModel {\n try {\n return JSON.parse(this.srv.get(key) || '{}');\n } catch (ex) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.error(`CookieStorageStore: Invalid key-value format ${key}`, ex);\n }\n return {} as ITokenModel;\n }\n }\n\n set(key: string, value: ITokenModel | null | undefined): boolean {\n this.srv.put(key, value != null ? JSON.stringify(value) : '{}');\n return true;\n }\n\n remove(key: string): void {\n this.srv.remove(key);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injector } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { DA_SERVICE_TOKEN, ITokenService } from './interface';\nimport { JWTTokenModel } from './jwt/jwt.model';\nimport { SimpleTokenModel } from './simple/simple.model';\n\nexport function CheckSimple(model: SimpleTokenModel | null): boolean {\n return model != null && typeof model.token === 'string' && model.token.length > 0;\n}\n\nexport function CheckJwt(model: JWTTokenModel, offset: number): boolean {\n try {\n return model != null && !!model.token && !model.isExpired(offset);\n } catch (err: NzSafeAny) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`${err.message}, jump to login_url`);\n }\n return false;\n }\n}\n\nexport function ToLogin(options: AlainAuthConfig, injector: Injector, url?: string): void {\n const router = injector.get<Router>(Router);\n (injector.get(DA_SERVICE_TOKEN) as ITokenService).referrer!.url = url || router.url;\n if (options.token_invalid_redirect === true) {\n setTimeout(() => {\n if (/^https?:\\/\\//g.test(options.login_url!)) {\n injector.get(DOCUMENT).location.href = options.login_url as string;\n } else {\n router.navigate([options.login_url]);\n }\n });\n }\n}\n","import {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpParams,\n HttpRequest,\n HTTP_INTERCEPTORS\n} from '@angular/common/http';\nimport { Injectable, Injector, Optional } from '@angular/core';\nimport { Observable, Observer } from 'rxjs';\n\nimport { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { mergeConfig } from '../auth.config';\nimport { ToLogin } from './helper';\nimport { ITokenModel } from './interface';\n\nclass HttpAuthInterceptorHandler implements HttpHandler {\n constructor(private next: HttpHandler, private interceptor: HttpInterceptor) {}\n\n handle(req: HttpRequest<NzSafeAny>): Observable<HttpEvent<NzSafeAny>> {\n return this.interceptor.intercept(req, this.next);\n }\n}\n\n@Injectable()\nexport abstract class BaseInterceptor implements HttpInterceptor {\n constructor(@Optional() protected injector: Injector) {}\n\n protected model!: ITokenModel;\n\n abstract isAuth(options: AlainAuthConfig): boolean;\n\n abstract setReq(req: HttpRequest<NzSafeAny>, options: AlainAuthConfig): HttpRequest<NzSafeAny>;\n\n intercept(req: HttpRequest<NzSafeAny>, next: HttpHandler): Observable<HttpEvent<NzSafeAny>> {\n const options = mergeConfig(this.injector.get(AlainConfigService));\n if (Array.isArray(options.ignores)) {\n for (const item of options.ignores) {\n if (item.test(req.url)) return next.handle(req);\n }\n }\n\n const ingoreKey = options.allow_anonymous_key!;\n let ingored = false;\n let params = req.params;\n let url = req.url;\n if (req.params.has(ingoreKey)) {\n params = req.params.delete(ingoreKey);\n ingored = true;\n }\n const urlArr = req.url.split('?');\n if (urlArr.length > 1) {\n const queryStringParams = new HttpParams({ fromString: urlArr[1] });\n if (queryStringParams.has(ingoreKey)) {\n const queryString = queryStringParams.delete(ingoreKey).toString();\n url = queryString.length > 0 ? `${urlArr[0]}?${queryString}` : urlArr[0];\n ingored = true;\n }\n }\n if (ingored) {\n return next.handle(req.clone({ params, url }));\n }\n\n if (this.isAuth(options)) {\n req = this.setReq(req, options);\n } else {\n ToLogin(options, this.injector);\n // Interrupt Http request, so need to generate a new Observable\n const err$ = new Observable((observer: Observer<HttpEvent<NzSafeAny>>) => {\n const res = new HttpErrorResponse({\n url: req.url,\n headers: req.headers,\n status: 401,\n statusText: `来自 @delon/auth 的拦截,所请求URL未授权,若是登录API可加入 [url?_allow_anonymous=true] 来表示忽略校验,更多方法请参考: https://ng-alain.com/auth/getting-started#AlainAuthConfig\\nThe interception from @delon/auth, the requested URL is not authorized. If the login API can add [url?_allow_anonymous=true] to ignore the check, please refer to: https://ng-alain.com/auth/getting-started#AlainAuthConfig`\n });\n observer.error(res);\n });\n if (options.executeOtherInterceptors) {\n const interceptors = this.injector.get(HTTP_INTERCEPTORS, []);\n const lastInterceptors = interceptors.slice(interceptors.indexOf(this) + 1);\n if (lastInterceptors.length > 0) {\n const chain = lastInterceptors.reduceRight(\n (_next, _interceptor) => new HttpAuthInterceptorHandler(_next, _interceptor),\n {\n handle: (_: HttpRequest<NzSafeAny>) => err$\n }\n );\n return chain.handle(req);\n }\n }\n return err$;\n }\n return next.handle(req);\n }\n}\n","import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport function urlBase64Decode(str: string): string {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0: {\n break;\n }\n case 2: {\n output += '==';\n break;\n }\n case 3: {\n output += '=';\n break;\n }\n default: {\n throw new Error(`'atob' failed: The string to be decoded is not correctly encoded.`);\n }\n }\n return b64DecodeUnicode(output);\n}\n\nfunction b64decode(str: string): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n\n str = String(str).replace(/=+$/, '');\n\n for (\n // initialize result and counters\n let bc = 0, bs: NzSafeAny, buffer: NzSafeAny, idx = 0;\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4)\n ? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6))))\n : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n}\n\n// https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem\nfunction b64DecodeUnicode(str: string): string {\n return decodeURIComponent(\n Array.prototype.map\n .call(b64decode(str), (c: string) => {\n return `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`;\n })\n .join('')\n );\n}\n","import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { ITokenModel } from '../interface';\nimport { urlBase64Decode } from './jwt.helper';\n\nexport interface JWT {\n /**\n * Issuerd\n */\n iss: string;\n /**\n * Issued At\n */\n iat: string;\n /**\n * Subject\n */\n sub: string;\n /**\n * Expiration Time\n */\n exp: number;\n /**\n * Audience\n */\n aud: string;\n /**\n * Not Before\n */\n nbf: string;\n /**\n * JWT ID\n */\n jti: string;\n\n [key: string]: NzSafeAny;\n [key: number]: NzSafeAny;\n}\n\nexport class JWTTokenModel implements ITokenModel {\n [key: string]: NzSafeAny;\n\n token: string | null | undefined;\n\n expired?: number;\n\n /**\n * 获取载荷信息\n */\n get payload(): JWT {\n const parts = (this.token || '').split('.');\n if (parts.length !== 3) throw new Error('JWT must have 3 parts');\n\n const decoded = urlBase64Decode(parts[1]);\n return JSON.parse(decoded);\n }\n\n /**\n * 获取过期时间戳(单位:ms)\n */\n get exp(): number | null {\n const decoded = this.payload;\n if (!decoded.hasOwnProperty('exp')) return null;\n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n return date.valueOf();\n }\n\n /**\n * 检查Token是否过期,当`payload` 包含 `exp` 字段时有效,若无 `exp` 字段直接返回 `null`\n *\n * @param offsetSeconds 偏移量\n */\n isExpired(offsetSeconds: number = 0): boolean | null {\n const exp = this.exp;\n if (exp == null) return null;\n\n return !(exp > new Date().valueOf() + offsetSeconds * 1000);\n }\n}\n","import { HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { BaseInterceptor } from '../base.interceptor';\nimport { CheckJwt } from '../helper';\nimport { DA_SERVICE_TOKEN } from '../interface';\nimport { JWTTokenModel } from './jwt.model';\n\n/**\n * JWT 拦截器\n *\n * ```\n * // app.module.ts\n * { provide: HTTP_INTERCEPTORS, useClass: JWTInterceptor, multi: true}\n * ```\n */\n@Injectable()\nexport class JWTInterceptor extends BaseInterceptor {\n isAuth(options: AlainAuthConfig): boolean {\n this.model = this.injector.get(DA_SERVICE_TOKEN).get<JWTTokenModel>(JWTTokenModel);\n return CheckJwt(this.model as JWTTokenModel, options.token_exp_offset!);\n }\n\n setReq(req: HttpRequest<NzSafeAny>, _options: AlainAuthConfig): HttpRequest<NzSafeAny> {\n return req.clone({\n setHeaders: {\n Authorization: `Bearer ${this.model.token}`\n }\n });\n }\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanActivateChild,\n CanLoad,\n Route,\n RouterStateSnapshot,\n UrlSegment\n} from '@angular/router';\n\nimport { AlainAuthConfig } from '@delon/util/config';\n\nimport { CheckJwt, ToLogin } from '../helper';\nimport { DA_SERVICE_TOKEN, ITokenService } from '../interface';\nimport { JWTTokenModel } from './jwt.model';\n\n/**\n * JWT 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivate: [ JWTGuard ]\n * },\n * {\n * path: 'my',\n * canActivateChild: [JWTGuard],\n * children: [\n * { path: 'profile', component: MockComponent }\n * ],\n * },\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class JWTGuard implements CanActivate, CanActivateChild, CanLoad {\n private url: string | undefined;\n\n private get cog(): AlainAuthConfig {\n return this.srv.options;\n }\n\n constructor(@Inject(DA_SERVICE_TOKEN) private srv: ITokenService, private injector: Injector) {}\n\n private process(): boolean {\n const res = CheckJwt(this.srv.get<JWTTokenModel>(JWTTokenModel), this.cog.token_exp_offset!);\n if (!res) {\n ToLogin(this.cog, this.injector, this.url);\n }\n return res;\n }\n\n // lazy loading\n canLoad(route: Route, _segments: UrlSegment[]): boolean {\n this.url = route.path;\n return this.process();\n }\n // all children route\n canActivateChild(_childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n // route\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n}\n","import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { ITokenModel } from '../interface';\n\nexport class SimpleTokenModel implements ITokenModel {\n [key: string]: NzSafeAny;\n\n token: string | null | undefined;\n\n expired?: number;\n}\n","import { HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { BaseInterceptor } from '../base.interceptor';\nimport { CheckSimple } from '../helper';\nimport { DA_SERVICE_TOKEN } from '../interface';\nimport { SimpleTokenModel } from './simple.model';\n\n/**\n * Simple 拦截器\n *\n * ```\n * // app.module.ts\n * { provide: HTTP_INTERCEPTORS, useClass: SimpleInterceptor, multi: true}\n * ```\n */\n@Injectable()\nexport class SimpleInterceptor extends BaseInterceptor {\n isAuth(_options: AlainAuthConfig): boolean {\n this.model = this.injector.get(DA_SERVICE_TOKEN).get() as SimpleTokenModel;\n return CheckSimple(this.model as SimpleTokenModel);\n }\n\n setReq(req: HttpRequest<NzSafeAny>, options: AlainAuthConfig): HttpRequest<NzSafeAny> {\n const { token_send_template, token_send_key } = options;\n const token = token_send_template!.replace(/\\$\\{([\\w]+)\\}/g, (_: string, g) => this.model[g]);\n switch (options.token_send_place) {\n case 'header':\n const obj: NzSafeAny = {};\n obj[token_send_key!] = token;\n req = req.clone({\n setHeaders: obj\n });\n break;\n case 'body':\n const body = req.body || {};\n body[token_send_key!] = token;\n req = req.clone({\n body\n });\n break;\n case 'url':\n req = req.clone({\n params: req.params.append(token_send_key!, token)\n });\n break;\n }\n return req;\n }\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanActivateChild,\n CanLoad,\n Route,\n RouterStateSnapshot,\n UrlSegment\n} from '@angular/router';\n\nimport { AlainAuthConfig } from '@delon/util/config';\n\nimport { CheckSimple, ToLogin } from '../helper';\nimport { DA_SERVICE_TOKEN, ITokenService } from '../interface';\nimport { SimpleTokenModel } from './simple.model';\n\n/**\n * Simple 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivate: [ SimpleGuard ]\n * },\n * {\n * path: 'my',\n * canActivateChild: [SimpleGuard],\n * children: [\n * { path: 'profile', component: MockComponent }\n * ],\n * },\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class SimpleGuard implements CanActivate, CanActivateChild, CanLoad {\n private url?: string;\n\n private get cog(): AlainAuthConfig {\n return this.srv.options;\n }\n\n constructor(@Inject(DA_SERVICE_TOKEN) private srv: ITokenService, private injector: Injector) {}\n\n private process(): boolean {\n const res = CheckSimple(this.srv.get() as SimpleTokenModel);\n if (!res) {\n ToLogin(this.cog, this.injector, this.url);\n }\n return res;\n }\n\n // lazy loading\n canLoad(route: Route, _segments: UrlSegment[]): boolean {\n this.url = route.path;\n return this.process();\n }\n // all children route\n canActivateChild(_childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n // route\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({})\nexport class DelonAuthModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"auth.mjs","sources":["../../../../packages/auth/src/auth.config.ts","../../../../packages/auth/src/store/local-storage.service.ts","../../../../packages/auth/src/store/interface.ts","../../../../packages/auth/src/token/token.service.ts","../../../../packages/auth/src/token/interface.ts","../../../../packages/auth/src/social/social.service.ts","../../../../packages/auth/src/store/memory.service.ts","../../../../packages/auth/src/store/session-storage.service.ts","../../../../packages/auth/src/store/cookie-storage.service.ts","../../../../packages/auth/src/token/helper.ts","../../../../packages/auth/src/token/base.interceptor.ts","../../../../packages/auth/src/token/jwt/jwt.helper.ts","../../../../packages/auth/src/token/jwt/jwt.model.ts","../../../../packages/auth/src/token/jwt/jwt.interceptor.ts","../../../../packages/auth/src/token/jwt/jwt.guard.ts","../../../../packages/auth/src/token/simple/simple.model.ts","../../../../packages/auth/src/token/simple/simple.interceptor.ts","../../../../packages/auth/src/token/simple/simple.guard.ts","../../../../packages/auth/src/auth.module.ts","../../../../packages/auth/auth.ts"],"sourcesContent":["import { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\n\nexport const AUTH_DEFAULT_CONFIG: AlainAuthConfig = {\n store_key: `_token`,\n token_invalid_redirect: true,\n token_exp_offset: 10,\n token_send_key: `token`,\n token_send_template: '${token}',\n token_send_place: 'header',\n login_url: '/login',\n ignores: [/\\/login/, /assets\\//, /passport\\//],\n allow_anonymous_key: `_allow_anonymous`,\n executeOtherInterceptors: true,\n refreshTime: 3000,\n refreshOffset: 6000\n};\n\nexport function mergeConfig(srv: AlainConfigService): AlainAuthConfig {\n return srv.merge('auth', AUTH_DEFAULT_CONFIG)!;\n}\n","import { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\nexport function DA_STORE_TOKEN_LOCAL_FACTORY(): IStore {\n return new LocalStorageStore();\n}\n\n/**\n * `localStorage` storage, **not lost after closing the browser**.\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: LocalStorageStore }\n * ```\n */\nexport class LocalStorageStore implements IStore {\n get(key: string): ITokenModel {\n return JSON.parse(localStorage.getItem(key) || '{}') || {};\n }\n\n set(key: string, value: ITokenModel | null): boolean {\n localStorage.setItem(key, JSON.stringify(value));\n return true;\n }\n\n remove(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { ITokenModel } from '../token/interface';\nimport { DA_STORE_TOKEN_LOCAL_FACTORY } from './local-storage.service';\n\nexport const DA_STORE_TOKEN = new InjectionToken<IStore>('AUTH_STORE_TOKEN', {\n providedIn: 'root',\n factory: DA_STORE_TOKEN_LOCAL_FACTORY\n});\n\nexport interface IStore {\n get(key: string): ITokenModel;\n\n set(key: string, value: ITokenModel): boolean;\n\n remove(key: string): void;\n}\n","import { inject, Inject, Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, interval, Observable, Subject, Subscription, filter, map, share } from 'rxjs';\n\nimport { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { mergeConfig } from '../auth.config';\nimport { DA_STORE_TOKEN, IStore } from '../store/interface';\nimport { AuthReferrer, ITokenModel, ITokenService } from './interface';\n\nexport function DA_SERVICE_TOKEN_FACTORY(): ITokenService {\n return new TokenService(inject(AlainConfigService), inject(DA_STORE_TOKEN));\n}\n\n/**\n * 维护Token信息服务,[在线文档](https://ng-alain.com/auth)\n */\n@Injectable()\nexport class TokenService implements ITokenService, OnDestroy {\n private refresh$ = new Subject<ITokenModel>();\n private change$ = new BehaviorSubject<ITokenModel | null>(null);\n private interval$?: Subscription;\n private _referrer: AuthReferrer = {};\n private _options: AlainAuthConfig;\n\n constructor(configSrv: AlainConfigService, @Inject(DA_STORE_TOKEN) private store: IStore) {\n this._options = mergeConfig(configSrv);\n }\n\n get refresh(): Observable<ITokenModel> {\n this.builderRefresh();\n return this.refresh$.pipe(share());\n }\n\n get login_url(): string | undefined {\n return this._options.login_url;\n }\n\n get referrer(): AuthReferrer {\n return this._referrer;\n }\n\n get options(): AlainAuthConfig {\n return this._options;\n }\n\n set(data: ITokenModel): boolean {\n const res = this.store.set(this._options.store_key!, data);\n this.change$.next(data);\n return res;\n }\n\n get(type?: NzSafeAny): NzSafeAny;\n get<T extends ITokenModel>(type?: new () => T): T;\n get<T extends ITokenModel>(type?: new () => T): T {\n const data = this.store.get(this._options.store_key!);\n return type ? (Object.assign(new type(), data) as T) : (data as T);\n }\n\n clear(options: { onlyToken: boolean } = { onlyToken: false }): void {\n let data: ITokenModel | null = null;\n if (options.onlyToken === true) {\n data = this.get() as ITokenModel;\n data.token = ``;\n this.set(data);\n } else {\n this.store.remove(this._options.store_key!);\n }\n this.change$.next(data);\n }\n\n change(): Observable<ITokenModel | null> {\n return this.change$.pipe(share());\n }\n\n private builderRefresh(): void {\n const { refreshTime, refreshOffset } = this._options;\n this.cleanRefresh();\n this.interval$ = interval(refreshTime)\n .pipe(\n map(() => {\n const item = this.get() as ITokenModel;\n const expired = item.expired || item.exp || 0;\n if (expired <= 0) {\n return null;\n }\n\n const curTime = new Date().valueOf() + refreshOffset!;\n return expired <= curTime ? item : null;\n }),\n filter(v => v != null)\n )\n .subscribe(res => this.refresh$.next(res!));\n }\n\n private cleanRefresh(): void {\n if (this.interval$ && !this.interval$.closed) {\n this.interval$.unsubscribe();\n }\n }\n\n ngOnDestroy(): void {\n this.cleanRefresh();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { DA_SERVICE_TOKEN_FACTORY } from './token.service';\n\nexport const DA_SERVICE_TOKEN = new InjectionToken<ITokenService>('DA_SERVICE_TOKEN', {\n providedIn: 'root',\n factory: DA_SERVICE_TOKEN_FACTORY\n});\n\nexport interface ITokenModel {\n [key: string]: NzSafeAny;\n\n token: string | null | undefined;\n\n /**\n * 过期时间,单位:ms\n * - 不管Simple、JWT模式都必须指定\n */\n expired?: number;\n}\n\nexport interface AuthReferrer {\n url?: string | null | undefined;\n}\n\nexport interface ITokenService {\n /**\n * 授权失败后跳转路由路径(支持外部链接地址),通过设置[全局配置](https://ng-alain.com/docs/global-config)来改变\n */\n readonly login_url: string | undefined;\n\n /**\n * 当前请求页面的来源页面的地址\n */\n readonly referrer?: AuthReferrer;\n\n readonly options: AlainAuthConfig;\n\n /**\n * 订阅刷新,订阅时会自动产生一个定时器,每隔一段时间进行一些校验\n * - **注意** 会多次触发,请务必做好业务判断\n */\n readonly refresh: Observable<ITokenModel>;\n\n /**\n * 设置 Token 信息,当用户 Token 发生变动时都需要调用此方法重新刷新\n * - 如果需要监听过期,需要传递 `expired` 值\n */\n set(data: ITokenModel | null): boolean;\n\n /**\n * 获取Token,形式包括:\n * - `get()` 获取 Simple Token\n * - `get<JWTTokenModel>(JWTTokenModel)` 获取 JWT Token\n */\n get(type?: NzSafeAny): ITokenModel | null;\n\n /**\n * 获取Token,形式包括:\n * - `get()` 获取 Simple Token\n * - `get<JWTTokenModel>(JWTTokenModel)` 获取 JWT Token\n */\n get<T extends ITokenModel>(type?: NzSafeAny): T;\n\n /**\n * 清除 Token 信息,当用户退出登录时调用。\n * ```\n * // 清除所有 Token 信息\n * tokenService.clear();\n * // 只清除 token 字段\n * tokenService.clear({ onlyToken: true });\n * ```\n */\n clear(options?: { onlyToken: boolean }): void;\n\n /**\n * 订阅 Token 对象变更通知\n */\n change(): Observable<ITokenModel | null>;\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable, Observer } from 'rxjs';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { DA_SERVICE_TOKEN, ITokenModel, ITokenService } from '../token/interface';\n\nconst OPENTYPE = '_delonAuthSocialType';\nconst HREFCALLBACK = '_delonAuthSocialCallbackByHref';\n\nexport type SocialOpenType = 'href' | 'window';\n\n@Injectable()\nexport class SocialService implements OnDestroy {\n private _win: Window | null = null;\n private _winTime: NzSafeAny;\n private observer!: Observer<ITokenModel | null>;\n\n constructor(\n @Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService,\n @Inject(DOCUMENT) private doc: NzSafeAny,\n private router: Router\n ) {}\n\n /**\n * 使用窗体打开授权页,返回值是 `Observable<ITokenModel>` 用于订阅授权后返回的结果\n *\n * @param url 获取授权地址\n * @param callback 回调路由地址\n * @param options.windowFeatures 等同 `window.open` 的 `features` 参数值\n */\n login(\n url: string,\n callback?: string,\n options?: {\n type?: 'window';\n windowFeatures?: string;\n }\n ): Observable<ITokenModel>;\n\n /**\n * 跳转至授权页\n *\n * @param url 获取授权地址\n * @param callback 回调路由地址\n */\n login(\n url: string,\n callback?: string,\n options?: {\n type?: 'href';\n }\n ): void;\n\n /**\n * 跳转至登录页,若为 `type=window` 时,返回值是 `Observable<ITokenModel>`\n *\n * @param url 获取授权地址\n * @param callback 当 `type=href` 成功时的回调路由地址\n * @param options.type 打开方式,默认 `window`\n * @param options.windowFeatures 等同 `window.open` 的 `features` 参数值\n */\n login(\n url: string,\n callback: string = '/',\n options: {\n type?: SocialOpenType;\n windowFeatures?: string;\n } = {}\n ): Observable<ITokenModel | null> | void {\n options = {\n type: 'window',\n windowFeatures: 'location=yes,height=570,width=520,scrollbars=yes,status=yes',\n ...options\n };\n localStorage.setItem(OPENTYPE, options.type!);\n localStorage.setItem(HREFCALLBACK, callback);\n if (options.type === 'href') {\n this.doc.location.href = url;\n return;\n }\n\n this._win = window.open(url, '_blank', options.windowFeatures);\n this._winTime = setInterval(() => {\n if (this._win && this._win.closed) {\n this.ngOnDestroy();\n\n let model = this.tokenService.get();\n if (model && !model.token) model = null;\n\n // 触发变更通知\n if (model) {\n this.tokenService.set(model);\n }\n\n this.observer.next(model);\n this.observer.complete();\n }\n }, 100);\n return new Observable((observer: Observer<ITokenModel | null>) => {\n this.observer = observer;\n });\n }\n\n /**\n * 授权成功后的回调处理\n *\n * @param rawData 指定回调认证信息,为空时从根据当前URL解析\n */\n callback(rawData?: ITokenModel | string | null): ITokenModel {\n // from uri\n if (!rawData && this.router.url.indexOf('?') === -1) {\n throw new Error(`url muse contain a ?`);\n }\n // parse\n let data: ITokenModel = { token: `` };\n if (typeof rawData === 'string') {\n const rightUrl = rawData.split('?')[1].split('#')[0];\n data = this.router.parseUrl(`./?${rightUrl}`).queryParams as ITokenModel;\n } else {\n data = rawData as ITokenModel;\n }\n\n if (!data || !data.token) throw new Error(`invalide token data`);\n this.tokenService.set(data);\n\n const url = localStorage.getItem(HREFCALLBACK) || '/';\n localStorage.removeItem(HREFCALLBACK);\n const type = localStorage.getItem(OPENTYPE);\n localStorage.removeItem(OPENTYPE);\n if (type === 'window') {\n window.close();\n } else {\n this.router.navigateByUrl(url);\n }\n\n return data;\n }\n\n ngOnDestroy(): void {\n clearInterval(this._winTime);\n this._winTime = null;\n }\n}\n","import { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\n/**\n * 内存存储,关掉浏览器标签后**丢失**。\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: MemoryStore }\n * ```\n */\nexport class MemoryStore implements IStore {\n private cache: { [key: string]: ITokenModel | null } = {};\n\n get(key: string): ITokenModel {\n return this.cache[key] || ({} as ITokenModel);\n }\n\n set(key: string, value: ITokenModel): boolean {\n this.cache[key] = value;\n return true;\n }\n\n remove(key: string): void {\n this.cache[key] = null;\n }\n}\n","import { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\n/**\n * `sessionStorage` storage, **lost after closing the browser**.\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: SessionStorageStore }\n * ```\n */\nexport class SessionStorageStore implements IStore {\n get(key: string): ITokenModel {\n return JSON.parse(sessionStorage.getItem(key) || '{}') || {};\n }\n\n set(key: string, value: ITokenModel | null): boolean {\n sessionStorage.setItem(key, JSON.stringify(value));\n return true;\n }\n\n remove(key: string): void {\n sessionStorage.removeItem(key);\n }\n}\n","import { CookieService } from '@delon/util/browser';\n\nimport { ITokenModel } from '../token/interface';\nimport { IStore } from './interface';\n\n/**\n * `cookie` storage\n *\n * ```ts\n * // global-config.module.ts\n * { provide: DA_STORE_TOKEN, useClass: CookieStorageStore, deps: [CookieService] }\n * ```\n */\nexport class CookieStorageStore implements IStore {\n constructor(private srv: CookieService) {}\n\n get(key: string): ITokenModel {\n try {\n return JSON.parse(this.srv.get(key) || '{}');\n } catch (ex) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.error(`CookieStorageStore: Invalid key-value format ${key}`, ex);\n }\n return {} as ITokenModel;\n }\n }\n\n set(key: string, value: ITokenModel | null | undefined): boolean {\n this.srv.put(key, value != null ? JSON.stringify(value) : '{}');\n return true;\n }\n\n remove(key: string): void {\n this.srv.remove(key);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injector } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { DA_SERVICE_TOKEN, ITokenService } from './interface';\nimport { JWTTokenModel } from './jwt/jwt.model';\nimport { SimpleTokenModel } from './simple/simple.model';\n\nexport function CheckSimple(model: SimpleTokenModel | null): boolean {\n return model != null && typeof model.token === 'string' && model.token.length > 0;\n}\n\nexport function CheckJwt(model: JWTTokenModel, offset: number): boolean {\n try {\n return model != null && !!model.token && !model.isExpired(offset);\n } catch (err: NzSafeAny) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`${err.message}, jump to login_url`);\n }\n return false;\n }\n}\n\nexport function ToLogin(options: AlainAuthConfig, injector: Injector, url?: string): void {\n const router = injector.get<Router>(Router);\n (injector.get(DA_SERVICE_TOKEN) as ITokenService).referrer!.url = url || router.url;\n if (options.token_invalid_redirect === true) {\n setTimeout(() => {\n if (/^https?:\\/\\//g.test(options.login_url!)) {\n injector.get(DOCUMENT).location.href = options.login_url as string;\n } else {\n router.navigate([options.login_url]);\n }\n });\n }\n}\n","import {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpParams,\n HttpRequest,\n HTTP_INTERCEPTORS\n} from '@angular/common/http';\nimport { Injectable, Injector, Optional } from '@angular/core';\nimport { Observable, Observer } from 'rxjs';\n\nimport { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { mergeConfig } from '../auth.config';\nimport { ToLogin } from './helper';\nimport { ITokenModel } from './interface';\n\nclass HttpAuthInterceptorHandler implements HttpHandler {\n constructor(private next: HttpHandler, private interceptor: HttpInterceptor) {}\n\n handle(req: HttpRequest<NzSafeAny>): Observable<HttpEvent<NzSafeAny>> {\n return this.interceptor.intercept(req, this.next);\n }\n}\n\n@Injectable()\nexport abstract class BaseInterceptor implements HttpInterceptor {\n constructor(@Optional() protected injector: Injector) {}\n\n protected model!: ITokenModel;\n\n abstract isAuth(options: AlainAuthConfig): boolean;\n\n abstract setReq(req: HttpRequest<NzSafeAny>, options: AlainAuthConfig): HttpRequest<NzSafeAny>;\n\n intercept(req: HttpRequest<NzSafeAny>, next: HttpHandler): Observable<HttpEvent<NzSafeAny>> {\n const options = mergeConfig(this.injector.get(AlainConfigService));\n if (Array.isArray(options.ignores)) {\n for (const item of options.ignores) {\n if (item.test(req.url)) return next.handle(req);\n }\n }\n\n const ingoreKey = options.allow_anonymous_key!;\n let ingored = false;\n let params = req.params;\n let url = req.url;\n if (req.params.has(ingoreKey)) {\n params = req.params.delete(ingoreKey);\n ingored = true;\n }\n const urlArr = req.url.split('?');\n if (urlArr.length > 1) {\n const queryStringParams = new HttpParams({ fromString: urlArr[1] });\n if (queryStringParams.has(ingoreKey)) {\n const queryString = queryStringParams.delete(ingoreKey).toString();\n url = queryString.length > 0 ? `${urlArr[0]}?${queryString}` : urlArr[0];\n ingored = true;\n }\n }\n if (ingored) {\n return next.handle(req.clone({ params, url }));\n }\n\n if (this.isAuth(options)) {\n req = this.setReq(req, options);\n } else {\n ToLogin(options, this.injector);\n // Interrupt Http request, so need to generate a new Observable\n const err$ = new Observable((observer: Observer<HttpEvent<NzSafeAny>>) => {\n const res = new HttpErrorResponse({\n url: req.url,\n headers: req.headers,\n status: 401,\n statusText: `来自 @delon/auth 的拦截,所请求URL未授权,若是登录API可加入 [url?_allow_anonymous=true] 来表示忽略校验,更多方法请参考: https://ng-alain.com/auth/getting-started#AlainAuthConfig\\nThe interception from @delon/auth, the requested URL is not authorized. If the login API can add [url?_allow_anonymous=true] to ignore the check, please refer to: https://ng-alain.com/auth/getting-started#AlainAuthConfig`\n });\n observer.error(res);\n });\n if (options.executeOtherInterceptors) {\n const interceptors = this.injector.get(HTTP_INTERCEPTORS, []);\n const lastInterceptors = interceptors.slice(interceptors.indexOf(this) + 1);\n if (lastInterceptors.length > 0) {\n const chain = lastInterceptors.reduceRight(\n (_next, _interceptor) => new HttpAuthInterceptorHandler(_next, _interceptor),\n {\n handle: (_: HttpRequest<NzSafeAny>) => err$\n }\n );\n return chain.handle(req);\n }\n }\n return err$;\n }\n return next.handle(req);\n }\n}\n","import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport function urlBase64Decode(str: string): string {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0: {\n break;\n }\n case 2: {\n output += '==';\n break;\n }\n case 3: {\n output += '=';\n break;\n }\n default: {\n throw new Error(`'atob' failed: The string to be decoded is not correctly encoded.`);\n }\n }\n return b64DecodeUnicode(output);\n}\n\nfunction b64decode(str: string): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n\n str = String(str).replace(/=+$/, '');\n\n for (\n // initialize result and counters\n let bc = 0, bs: NzSafeAny, buffer: NzSafeAny, idx = 0;\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4)\n ? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6))))\n : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n}\n\n// https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem\nfunction b64DecodeUnicode(str: string): string {\n return decodeURIComponent(\n Array.prototype.map\n .call(b64decode(str), (c: string) => {\n return `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`;\n })\n .join('')\n );\n}\n","import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { ITokenModel } from '../interface';\nimport { urlBase64Decode } from './jwt.helper';\n\nexport interface JWT {\n /**\n * Issuerd\n */\n iss: string;\n /**\n * Issued At\n */\n iat: string;\n /**\n * Subject\n */\n sub: string;\n /**\n * Expiration Time\n */\n exp: number;\n /**\n * Audience\n */\n aud: string;\n /**\n * Not Before\n */\n nbf: string;\n /**\n * JWT ID\n */\n jti: string;\n\n [key: string]: NzSafeAny;\n [key: number]: NzSafeAny;\n}\n\nexport class JWTTokenModel implements ITokenModel {\n [key: string]: NzSafeAny;\n\n token: string | null | undefined;\n\n expired?: number;\n\n /**\n * 获取载荷信息\n */\n get payload(): JWT {\n const parts = (this.token || '').split('.');\n if (parts.length !== 3) throw new Error('JWT must have 3 parts');\n\n const decoded = urlBase64Decode(parts[1]);\n return JSON.parse(decoded);\n }\n\n /**\n * 获取过期时间戳(单位:ms)\n */\n get exp(): number | null {\n const decoded = this.payload;\n if (!decoded.hasOwnProperty('exp')) return null;\n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n return date.valueOf();\n }\n\n /**\n * 检查Token是否过期,当`payload` 包含 `exp` 字段时有效,若无 `exp` 字段直接返回 `null`\n *\n * @param offsetSeconds 偏移量\n */\n isExpired(offsetSeconds: number = 0): boolean | null {\n const exp = this.exp;\n if (exp == null) return null;\n\n return !(exp > new Date().valueOf() + offsetSeconds * 1000);\n }\n}\n","import { HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { BaseInterceptor } from '../base.interceptor';\nimport { CheckJwt } from '../helper';\nimport { DA_SERVICE_TOKEN } from '../interface';\nimport { JWTTokenModel } from './jwt.model';\n\n/**\n * JWT 拦截器\n *\n * ```\n * // app.module.ts\n * { provide: HTTP_INTERCEPTORS, useClass: JWTInterceptor, multi: true}\n * ```\n */\n@Injectable()\nexport class JWTInterceptor extends BaseInterceptor {\n isAuth(options: AlainAuthConfig): boolean {\n this.model = this.injector.get(DA_SERVICE_TOKEN).get<JWTTokenModel>(JWTTokenModel);\n return CheckJwt(this.model as JWTTokenModel, options.token_exp_offset!);\n }\n\n setReq(req: HttpRequest<NzSafeAny>, _options: AlainAuthConfig): HttpRequest<NzSafeAny> {\n return req.clone({\n setHeaders: {\n Authorization: `Bearer ${this.model.token}`\n }\n });\n }\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanActivateChild,\n CanLoad,\n Route,\n RouterStateSnapshot,\n UrlSegment\n} from '@angular/router';\n\nimport { AlainAuthConfig } from '@delon/util/config';\n\nimport { CheckJwt, ToLogin } from '../helper';\nimport { DA_SERVICE_TOKEN, ITokenService } from '../interface';\nimport { JWTTokenModel } from './jwt.model';\n\n/**\n * JWT 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivate: [ JWTGuard ]\n * },\n * {\n * path: 'my',\n * canActivateChild: [JWTGuard],\n * children: [\n * { path: 'profile', component: MockComponent }\n * ],\n * },\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class JWTGuard implements CanActivate, CanActivateChild, CanLoad {\n private url: string | undefined;\n\n private get cog(): AlainAuthConfig {\n return this.srv.options;\n }\n\n constructor(@Inject(DA_SERVICE_TOKEN) private srv: ITokenService, private injector: Injector) {}\n\n private process(): boolean {\n const res = CheckJwt(this.srv.get<JWTTokenModel>(JWTTokenModel), this.cog.token_exp_offset!);\n if (!res) {\n ToLogin(this.cog, this.injector, this.url);\n }\n return res;\n }\n\n // lazy loading\n canLoad(route: Route, _segments: UrlSegment[]): boolean {\n this.url = route.path;\n return this.process();\n }\n // all children route\n canActivateChild(_childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n // route\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n}\n","import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { ITokenModel } from '../interface';\n\nexport class SimpleTokenModel implements ITokenModel {\n [key: string]: NzSafeAny;\n\n token: string | null | undefined;\n\n expired?: number;\n}\n","import { HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { AlainAuthConfig } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { BaseInterceptor } from '../base.interceptor';\nimport { CheckSimple } from '../helper';\nimport { DA_SERVICE_TOKEN } from '../interface';\nimport { SimpleTokenModel } from './simple.model';\n\n/**\n * Simple 拦截器\n *\n * ```\n * // app.module.ts\n * { provide: HTTP_INTERCEPTORS, useClass: SimpleInterceptor, multi: true}\n * ```\n */\n@Injectable()\nexport class SimpleInterceptor extends BaseInterceptor {\n isAuth(_options: AlainAuthConfig): boolean {\n this.model = this.injector.get(DA_SERVICE_TOKEN).get() as SimpleTokenModel;\n return CheckSimple(this.model as SimpleTokenModel);\n }\n\n setReq(req: HttpRequest<NzSafeAny>, options: AlainAuthConfig): HttpRequest<NzSafeAny> {\n const { token_send_template, token_send_key } = options;\n const token = token_send_template!.replace(/\\$\\{([\\w]+)\\}/g, (_: string, g) => this.model[g]);\n switch (options.token_send_place) {\n case 'header':\n const obj: NzSafeAny = {};\n obj[token_send_key!] = token;\n req = req.clone({\n setHeaders: obj\n });\n break;\n case 'body':\n const body = req.body || {};\n body[token_send_key!] = token;\n req = req.clone({\n body\n });\n break;\n case 'url':\n req = req.clone({\n params: req.params.append(token_send_key!, token)\n });\n break;\n }\n return req;\n }\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanActivateChild,\n CanLoad,\n Route,\n RouterStateSnapshot,\n UrlSegment\n} from '@angular/router';\n\nimport { AlainAuthConfig } from '@delon/util/config';\n\nimport { CheckSimple, ToLogin } from '../helper';\nimport { DA_SERVICE_TOKEN, ITokenService } from '../interface';\nimport { SimpleTokenModel } from './simple.model';\n\n/**\n * Simple 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivate: [ SimpleGuard ]\n * },\n * {\n * path: 'my',\n * canActivateChild: [SimpleGuard],\n * children: [\n * { path: 'profile', component: MockComponent }\n * ],\n * },\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class SimpleGuard implements CanActivate, CanActivateChild, CanLoad {\n private url?: string;\n\n private get cog(): AlainAuthConfig {\n return this.srv.options;\n }\n\n constructor(@Inject(DA_SERVICE_TOKEN) private srv: ITokenService, private injector: Injector) {}\n\n private process(): boolean {\n const res = CheckSimple(this.srv.get() as SimpleTokenModel);\n if (!res) {\n ToLogin(this.cog, this.injector, this.url);\n }\n return res;\n }\n\n // lazy loading\n canLoad(route: Route, _segments: UrlSegment[]): boolean {\n this.url = route.path;\n return this.process();\n }\n // all children route\n canActivateChild(_childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n // route\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n this.url = state.url;\n return this.process();\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({})\nexport class DelonAuthModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delon/auth",
3
- "version": "13.4.2",
3
+ "version": "13.5.2",
4
4
  "author": "cipchk<cipchk@qq.com>",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -25,7 +25,7 @@
25
25
  "ng-zorro-antd"
26
26
  ],
27
27
  "dependencies": {
28
- "@delon/util": "^13.4.2",
28
+ "@delon/util": "^13.5.2",
29
29
  "tslib": "^2.3.0"
30
30
  },
31
31
  "module": "fesm2015/auth.mjs",