@osovitny/anatoly 3.16.16 → 3.16.17

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.
Files changed (46) hide show
  1. package/esm2022/lib/anatoly.module.mjs +15 -1
  2. package/esm2022/lib/core/services/appcontext.service.mjs +14 -2
  3. package/esm2022/lib/core/services/starter.service.mjs +9 -4
  4. package/esm2022/lib/iam/b2c/b2c.mjs +43 -0
  5. package/esm2022/lib/iam/b2c/consts.mjs +25 -0
  6. package/esm2022/lib/iam/b2c/index.mjs +21 -0
  7. package/esm2022/lib/iam/configs.mjs +107 -0
  8. package/esm2022/lib/iam/consts.mjs +23 -0
  9. package/esm2022/lib/iam/guards/admin.guard.mjs +47 -0
  10. package/esm2022/lib/iam/guards/authentication.guard.mjs +31 -0
  11. package/esm2022/lib/iam/guards/index.mjs +20 -0
  12. package/esm2022/lib/iam/iam-pages.module.mjs +54 -0
  13. package/esm2022/lib/iam/iam-pages.routes.mjs +45 -0
  14. package/esm2022/lib/iam/iam.module.mjs +100 -0
  15. package/esm2022/lib/iam/index.mjs +18 -0
  16. package/esm2022/lib/iam/pages/signin.page.mjs +40 -0
  17. package/esm2022/lib/iam/pages/signout.page.mjs +40 -0
  18. package/esm2022/lib/iam/pages/signup.page.mjs +39 -0
  19. package/esm2022/lib/iam/redirect.mjs +29 -0
  20. package/esm2022/lib/iam/services/auth.service.mjs +246 -0
  21. package/esm2022/lib/iam/storage.mjs +39 -0
  22. package/esm2022/public-api.mjs +5 -1
  23. package/fesm2022/osovitny-anatoly.mjs +934 -7
  24. package/fesm2022/osovitny-anatoly.mjs.map +1 -1
  25. package/lib/anatoly.module.d.ts +4 -2
  26. package/lib/core/services/appcontext.service.d.ts +2 -0
  27. package/lib/iam/b2c/b2c.d.ts +5 -0
  28. package/lib/iam/b2c/consts.d.ts +6 -0
  29. package/lib/iam/b2c/index.d.ts +2 -0
  30. package/lib/iam/configs.d.ts +5 -0
  31. package/lib/iam/consts.d.ts +3 -0
  32. package/lib/iam/guards/admin.guard.d.ts +13 -0
  33. package/lib/iam/guards/authentication.guard.d.ts +13 -0
  34. package/lib/iam/guards/index.d.ts +2 -0
  35. package/lib/iam/iam-pages.module.d.ts +12 -0
  36. package/lib/iam/iam-pages.routes.d.ts +6 -0
  37. package/lib/iam/iam.module.d.ts +9 -0
  38. package/lib/iam/index.d.ts +1 -0
  39. package/lib/iam/pages/signin.page.d.ts +11 -0
  40. package/lib/iam/pages/signout.page.d.ts +11 -0
  41. package/lib/iam/pages/signup.page.d.ts +11 -0
  42. package/lib/iam/redirect.d.ts +3 -0
  43. package/lib/iam/services/auth.service.d.ts +37 -0
  44. package/lib/iam/storage.d.ts +8 -0
  45. package/package.json +1 -1
  46. package/public-api.d.ts +3 -0
@@ -18,6 +18,8 @@ import { CommonModule } from "@angular/common";
18
18
  //Modules
19
19
  import { AnatolyCoreModule } from './core/core.module';
20
20
  import { AnatolyDataModule } from './data/data.module';
21
+ import { AnatolyIAMModule } from './iam/iam.module';
22
+ import { AnatolyIAMPagesModule } from './iam/iam-pages.module';
21
23
  import { AnatolyUIModule } from './ui/ui.module';
22
24
  import * as i0 from "@angular/core";
23
25
  export class AnatolyModule {
@@ -26,8 +28,12 @@ export class AnatolyModule {
26
28
  static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
27
29
  AnatolyCoreModule,
28
30
  AnatolyDataModule,
31
+ AnatolyIAMModule,
32
+ AnatolyIAMPagesModule,
29
33
  AnatolyUIModule, AnatolyCoreModule,
30
34
  AnatolyDataModule,
35
+ AnatolyIAMModule,
36
+ AnatolyIAMPagesModule,
31
37
  AnatolyUIModule] });
32
38
  }
33
39
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AnatolyModule, [{
@@ -37,11 +43,15 @@ export class AnatolyModule {
37
43
  CommonModule,
38
44
  AnatolyCoreModule,
39
45
  AnatolyDataModule,
46
+ AnatolyIAMModule,
47
+ AnatolyIAMPagesModule,
40
48
  AnatolyUIModule
41
49
  ],
42
50
  exports: [
43
51
  AnatolyCoreModule,
44
52
  AnatolyDataModule,
53
+ AnatolyIAMModule,
54
+ AnatolyIAMPagesModule,
45
55
  AnatolyUIModule
46
56
  ],
47
57
  providers: [],
@@ -50,7 +60,11 @@ export class AnatolyModule {
50
60
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AnatolyModule, { imports: [CommonModule,
51
61
  AnatolyCoreModule,
52
62
  AnatolyDataModule,
63
+ AnatolyIAMModule,
64
+ AnatolyIAMPagesModule,
53
65
  AnatolyUIModule], exports: [AnatolyCoreModule,
54
66
  AnatolyDataModule,
67
+ AnatolyIAMModule,
68
+ AnatolyIAMPagesModule,
55
69
  AnatolyUIModule] }); })();
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hdG9seS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvYW5hdG9seS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxTQUFTO0FBQ1QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFBOztBQWlCaEQsTUFBTSxPQUFPLGFBQWE7dUVBQWIsYUFBYTs0REFBYixhQUFhO2dFQWJ0QixZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixlQUFlLEVBR2YsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixlQUFlOzt1RkFLTixhQUFhO2NBZnpCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixpQkFBaUI7b0JBQ2pCLGlCQUFpQjtvQkFDakIsZUFBZTtpQkFDaEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGlCQUFpQjtvQkFDakIsaUJBQWlCO29CQUNqQixlQUFlO2lCQUNoQjtnQkFDRCxTQUFTLEVBQUUsRUFDVjthQUNGOzt3RkFDWSxhQUFhLGNBYnRCLFlBQVk7UUFDWixpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLGVBQWUsYUFHZixpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjkgQXVnIDIwMjJcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG4vL01vZHVsZXNcclxuaW1wb3J0IHsgQW5hdG9seUNvcmVNb2R1bGUgfSBmcm9tICcuL2NvcmUvY29yZS5tb2R1bGUnXHJcbmltcG9ydCB7IEFuYXRvbHlEYXRhTW9kdWxlIH0gZnJvbSAnLi9kYXRhL2RhdGEubW9kdWxlJ1xyXG5pbXBvcnQgeyBBbmF0b2x5VUlNb2R1bGUgfSBmcm9tICcuL3VpL3VpLm1vZHVsZSdcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQW5hdG9seUNvcmVNb2R1bGUsXHJcbiAgICBBbmF0b2x5RGF0YU1vZHVsZSxcclxuICAgIEFuYXRvbHlVSU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQW5hdG9seUNvcmVNb2R1bGUsXHJcbiAgICBBbmF0b2x5RGF0YU1vZHVsZSxcclxuICAgIEFuYXRvbHlVSU1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFuYXRvbHlNb2R1bGUge1xyXG59XHJcbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hdG9seS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvYW5hdG9seS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxTQUFTO0FBQ1QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFBOztBQXFCaEQsTUFBTSxPQUFPLGFBQWE7dUVBQWIsYUFBYTs0REFBYixhQUFhO2dFQWpCdEIsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsZ0JBQWdCO1lBQ2hCLHFCQUFxQjtZQUNyQixlQUFlLEVBR2YsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIscUJBQXFCO1lBQ3JCLGVBQWU7O3VGQUtOLGFBQWE7Y0FuQnpCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixpQkFBaUI7b0JBQ2pCLGlCQUFpQjtvQkFDakIsZ0JBQWdCO29CQUNoQixxQkFBcUI7b0JBQ3JCLGVBQWU7aUJBQ2hCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxpQkFBaUI7b0JBQ2pCLGlCQUFpQjtvQkFDakIsZ0JBQWdCO29CQUNoQixxQkFBcUI7b0JBQ3JCLGVBQWU7aUJBQ2hCO2dCQUNELFNBQVMsRUFBRSxFQUNWO2FBQ0Y7O3dGQUNZLGFBQWEsY0FqQnRCLFlBQVk7UUFDWixpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLGdCQUFnQjtRQUNoQixxQkFBcUI7UUFDckIsZUFBZSxhQUdmLGlCQUFpQjtRQUNqQixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLHFCQUFxQjtRQUNyQixlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI5IEF1ZyAyMDIyXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuLy9Nb2R1bGVzXHJcbmltcG9ydCB7IEFuYXRvbHlDb3JlTW9kdWxlIH0gZnJvbSAnLi9jb3JlL2NvcmUubW9kdWxlJ1xyXG5pbXBvcnQgeyBBbmF0b2x5RGF0YU1vZHVsZSB9IGZyb20gJy4vZGF0YS9kYXRhLm1vZHVsZSdcclxuaW1wb3J0IHsgQW5hdG9seUlBTU1vZHVsZSB9IGZyb20gJy4vaWFtL2lhbS5tb2R1bGUnXHJcbmltcG9ydCB7IEFuYXRvbHlJQU1QYWdlc01vZHVsZSB9IGZyb20gJy4vaWFtL2lhbS1wYWdlcy5tb2R1bGUnXHJcbmltcG9ydCB7IEFuYXRvbHlVSU1vZHVsZSB9IGZyb20gJy4vdWkvdWkubW9kdWxlJ1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBBbmF0b2x5Q29yZU1vZHVsZSxcclxuICAgIEFuYXRvbHlEYXRhTW9kdWxlLFxyXG4gICAgQW5hdG9seUlBTU1vZHVsZSxcclxuICAgIEFuYXRvbHlJQU1QYWdlc01vZHVsZSxcclxuICAgIEFuYXRvbHlVSU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQW5hdG9seUNvcmVNb2R1bGUsXHJcbiAgICBBbmF0b2x5RGF0YU1vZHVsZSxcclxuICAgIEFuYXRvbHlJQU1Nb2R1bGUsXHJcbiAgICBBbmF0b2x5SUFNUGFnZXNNb2R1bGUsXHJcbiAgICBBbmF0b2x5VUlNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbmF0b2x5TW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -139,7 +139,7 @@ export class AppContextService extends ApiServiceBase {
139
139
  this.clearLocalStorage();
140
140
  this.clearSessionStorage();
141
141
  }
142
- //Properties
142
+ //current
143
143
  get current() {
144
144
  this.updateCurrentIfExpired();
145
145
  return this.getCurrentFromSession();
@@ -147,10 +147,22 @@ export class AppContextService extends ApiServiceBase {
147
147
  set current(value) {
148
148
  this.setCurrentFromSession(value);
149
149
  }
150
+ //currentUser
151
+ get currentUser() {
152
+ let current = this.current;
153
+ return current?.User;
154
+ }
155
+ set currentUser(value) {
156
+ let current = this.current;
157
+ if (current) {
158
+ current.User = value;
159
+ this.current = current;
160
+ }
161
+ }
150
162
  static ɵfac = function AppContextService_Factory(t) { return new (t || AppContextService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.LocalStorageService), i0.ɵɵinject(i2.SessionStorageService)); };
151
163
  static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AppContextService, factory: AppContextService.ɵfac });
152
164
  }
153
165
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppContextService, [{
154
166
  type: Injectable
155
167
  }], function () { return [{ type: i1.HttpClient }, { type: i2.LocalStorageService }, { type: i2.SessionStorageService }]; }, null); })();
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFN0MsS0FBSztBQUNMLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFJN0QsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGNBQWM7SUFjdkM7SUFDQTtJQUNBO0lBZlosUUFBUTtJQUNBLGNBQWMsR0FBRyxZQUFZLENBQUM7SUFFOUIsWUFBWSxHQUFpQixJQUFJLENBQUM7SUFDbEMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUV2QixpQkFBaUI7SUFDVCxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUV0QyxnQkFBZ0I7SUFDUCxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVqRCxZQUNZLElBQWdCLEVBQ2hCLFlBQWlDLEVBQ2pDLGNBQXFDO1FBQy9DLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUhGLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUUvQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsTUFBTSxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQUVELFNBQVM7SUFDRCxxQkFBcUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFD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QzVCLENBQUM7SUFFQSxZQUFZO0lBQ1osSUFBVyxPQUFPO1FBQ2hCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQVcsT0FBTyxDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7MkVBekpVLGlCQUFpQjtnRUFBakIsaUJBQWlCLFdBQWpCLGlCQUFpQjs7dUZBQWpCLGlCQUFpQjtjQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDEzIE5vdiAyMDE3XHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBBcGlVcmwgfSBmcm9tICcuLi9jb25zdHMvc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlQmFzZSB9IGZyb20gJy4uLy4uL2RhdGEvYmFzZS9hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UsIFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4vd2ViLXN0b3JhZ2Uuc2VydmljZSdcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFwcENvbnRleHRTZXJ2aWNlIGV4dGVuZHMgQXBpU2VydmljZUJhc2Uge1xyXG4gIC8vQ29uc3RzXHJcbiAgcHJpdmF0ZSBzdG9yYWdlS2V5TmFtZSA9ICdhcHBDb250ZXh0JztcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBzdWNjZXNzZXMgPSBbXTtcclxuXHJcbiAgLy9Qcml2YXRlIFN0cmVhbXNcclxuICBwcml2YXRlIF91cGRhdGVkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuICAvL1B1YmxpYyBTdHJlYW1zXHJcbiAgcmVhZG9ubHkgdXBkYXRlZCQgPSB0aGlzLl91cGRhdGVkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJvdGVjdGVkIGxvY2FsU3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBzZXNzaW9uU3RvcmFnZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihodHRwKTtcclxuICAgIHRoaXMuYmFzZVVybCA9IGAke0FwaVVybH0vYXBwQ29udGV4dGA7XHJcbiAgfVxyXG5cclxuICAvL1Nlc3Npb25cclxuICBwcml2YXRlIGdldEN1cnJlbnRGcm9tU2Vzc2lvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25TdG9yYWdlLmdldE9iamVjdCh0aGlzLnN0b3JhZ2VLZXlOYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q3VycmVudEZyb21TZXNzaW9uKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0T2JqZWN0KHRoaXMuc3RvcmFnZUtleU5hbWUsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQ3VycmVudElmRXhwaXJlZCgpIHtcclxuICAgIGxldCBjb250ZXh0ID0gdGhpcy5nZXRDdXJyZW50RnJvbVNlc3Npb24oKTtcclxuXHJcbiAgICBpZiAoIWNvbnRleHQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzaG91bGRCZVVwZGF0ZWQgPSBmYWxzZTtcclxuICAgIGxldCBsciA9IGNvbnRleHQubGFzdFJlcXVlc3RlZDtcclxuXHJcbiAgICBpZiAobHIpIHtcclxuICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGxldCBsYXN0UmVxdWVzdGVkID0gbmV3IERhdGUoY29udGV4dC5sYXN0UmVxdWVzdGVkKTtcclxuICAgICAgbGV0IGluM01pbnMgPSBuZXcgRGF0ZShsYXN0UmVxdWVzdGVkLmdldEZ1bGxZZWFyKCksIGxhc3RSZXF1ZXN0ZWQuZ2V0TW9udGgoKSwgbGFzdFJlcXVlc3RlZC5nZXREYXRlKCksXHJcbiAgICAgICAgbGFzdFJlcXVlc3RlZC5nZXRIb3VycygpLCBsYXN0UmVxdWVzdGVkLmdldE1pbnV0ZXMoKSArIDMsIDAsIDApO1xyXG5cclxuICAgICAgaWYgKGluM01pbnMuZ2V0VGltZSgpIDwgbm93LmdldFRpbWUoKSkge1xyXG4gICAgICAgIHNob3VsZEJlVXBkYXRlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBzaG91bGRCZVVwZGF0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzaG91bGRCZVVwZGF0ZWQpIHtcclxuICAgICAgdGhpcy51cGRhdGVDdXJyZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRhdGFSZWNlaXZlZChkYXRhKSB7XHJcbiAgICB0aGlzLmN1cnJlbnQgPSBkYXRhO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zdWNjZXNzZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHN1Y2Nlc3MgPSB0aGlzLnN1Y2Nlc3Nlc1tpXTtcclxuICAgICAgaWYgKHN1Y2Nlc3MpIHtcclxuICAgICAgICBzdWNjZXNzKGRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWNjZXNzZXMgPSBbXTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgaWYgKGRhdGEpIHtcclxuICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdBcHBDb250ZXh0IGhhcyBiZWVuIHVwZGF0ZWQgYXQgJyArIG5vdyk7XHJcblxyXG4gICAgICB0aGlzLl91cGRhdGVkLm5leHQoZGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEN1cnJlbnRQcml2YXRlKHN1Y2Nlc3M6IEZ1bmN0aW9uID0gbnVsbCwgZ2V0Q2FjaGVkSWZFeGlzdDogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGlmIChnZXRDYWNoZWRJZkV4aXN0KSB7XHJcbiAgICAgIGxldCBjb250ZXh0ID0gdGhpcy5nZXRDdXJyZW50RnJvbVNlc3Npb24oKTtcclxuXHJcbiAgICAgIGlmIChjb250ZXh0ICE9IG51bGwpIHtcclxuICAgICAgICBpZiAoc3VjY2Vzcykgc3VjY2Vzcyhjb250ZXh0KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICB0aGlzLnN1Y2Nlc3Nlcy5wdXNoKHN1Y2Nlc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbiAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnNvbGUubG9nKCdSZXF1ZXN0aW5nIGEgbmV3IEFwcENvbnRleHQgYXQgJyArIG5vdyk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmdldCgnZ2V0Q3VycmVudENvbnRleHQnLCBudWxsKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YVJlY2VpdmVkKGRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vUHVibGljXHJcbiAgaW5pdChjb250ZXh0KSB7XHJcblx0XHR0aGlzLmN1cnJlbnQgPSBjb250ZXh0O1xyXG5cdH1cclxuXHJcbiAgZ2V0TGF0ZXN0Q3VycmVudChzdWNjZXNzOiBGdW5jdGlvbiA9IG51bGwpIHtcclxuICAgIHRoaXMuZ2V0Q3VycmVudFByaXZhdGUoc3VjY2VzcywgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VycmVudChzdWNjZXNzOiBGdW5jdGlvbiA9IG51bGwpIHtcclxuICAgIHRoaXMuZ2V0Q3VycmVudFByaXZhdGUoc3VjY2VzcywgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDdXJyZW50KHN1Y2Nlc3M6IEZ1bmN0aW9uID0gbnVsbCkge1xyXG4gICAgLy9WYWRpbU9TOiBtYWtlIGRyb3BwaW5nIGN1cnJlbnQgJiBpc0FkbWluIHRocm93IDQwM1xyXG4gICAgLy90aGlzLmNsZWFyQ3VycmVudCgpO1xyXG4gICAgdGhpcy5nZXRMYXRlc3RDdXJyZW50KHN1Y2Nlc3MpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJDdXJyZW50KCkge1xyXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmUodGhpcy5zdG9yYWdlS2V5TmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL1N0b3JhZ2VcclxuICBjbGVhckxvY2FsU3RvcmFnZSgpIHtcclxuXHRcdHRoaXMubG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcblx0fVxyXG5cclxuXHRjbGVhclNlc3Npb25TdG9yYWdlKCkge1xyXG5cdFx0dGhpcy5zZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xyXG5cdH1cclxuXHJcbiAgY2xlYXJXZWJTdG9yYWdlKCkge1xyXG5cdFx0dGhpcy5jbGVhckxvY2FsU3RvcmFnZSgpO1xyXG5cdFx0dGhpcy5jbGVhclNlc3Npb25TdG9yYWdlKCk7XHJcblx0fVxyXG5cclxuICAvL1Byb3BlcnRpZXNcclxuICBwdWJsaWMgZ2V0IGN1cnJlbnQoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUN1cnJlbnRJZkV4cGlyZWQoKTtcclxuICAgIHJldHVybiB0aGlzLmdldEN1cnJlbnRGcm9tU2Vzc2lvbigpO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGN1cnJlbnQodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zZXRDdXJyZW50RnJvbVNlc3Npb24odmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFN0MsS0FBSztBQUNMLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFJN0QsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGNBQWM7SUFjdkM7SUFDQTtJQUNBO0lBZlosUUFBUTtJQUNBLGNBQWMsR0FBRyxZQUFZLENBQUM7SUFFOUIsWUFBWSxHQUFpQixJQUFJLENBQUM7SUFDbEMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUV2QixpQkFBaUI7SUFDVCxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUV0QyxnQkFBZ0I7SUFDUCxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVqRCxZQUNZLElBQWdCLEVBQ2hCLFlBQWlDLEVBQ2pDLGNBQXFDO1FBQy9DLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUhGLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUUvQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsTUFBTSxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQUVELFNBQVM7SUFDRCxxQkFBcUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQVU7UUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTNDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPO1NBQ1I7UUFFRCxJQUFJLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUUvQixJQUFJLEVBQUUsRUFBRTtZQUNOLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxhQUFhLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3BELElBQUksT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsYUFBYSxDQUFDLE9BQU8sRUFBRSxFQUNuRyxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsYUFBYSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFbEUsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNyQyxlQUFlLEdBQUcsSUFBSSxDQUFDO2FBQ3hCO1NBQ0Y7YUFDSTtZQUNILGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDeEI7UUFFRCxJQUFJLGVBQWUsRUFBRTtZQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLElBQUk7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2Y7U0FDRjtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekIsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUNBQWlDLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFFckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsVUFBb0IsSUFBSSxFQUFFLG1CQUE0QixJQUFJO1FBQ2xGLElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFFM0MsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFO2dCQUNuQixJQUFJLE9BQU87b0JBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5QixPQUFPO2FBQ1I7U0FDRjtRQUVELElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUI7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFO1lBQzdCLE9BQU87U0FDUjtRQUVELElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2hFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO0lBQ1IsSUFBSSxDQUFDLE9BQU87UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUEsZ0JBQWdCLENBQUMsVUFBb0IsSUFBSTtRQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBb0IsSUFBSTtRQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxhQUFhLENBQUMsVUFBb0IsSUFBSTtRQUNwQyxvREFBb0Q7UUFDcEQsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsU0FBUztJQUNULGlCQUFpQjtRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxtQkFBbUI7UUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUEsZUFBZTtRQUNmLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFQSxTQUFTO0lBQ1QsSUFBVyxPQUFPO1FBQ2hCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQVcsT0FBTyxDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxhQUFhO0lBQ2QsSUFBVyxXQUFXO1FBQ3JCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDM0IsT0FBTyxPQUFPLEVBQUUsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFXLFdBQVcsQ0FBQyxLQUFVO1FBQ2hDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDM0IsSUFBSSxPQUFPLEVBQUU7WUFDWixPQUFPLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUN2QjtJQUNGLENBQUM7MkVBdEtXLGlCQUFpQjtnRUFBakIsaUJBQWlCLFdBQWpCLGlCQUFpQjs7dUZBQWpCLGlCQUFpQjtjQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDEzIE5vdiAyMDE3XHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBBcGlVcmwgfSBmcm9tICcuLi9jb25zdHMvc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlQmFzZSB9IGZyb20gJy4uLy4uL2RhdGEvYmFzZS9hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UsIFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4vd2ViLXN0b3JhZ2Uuc2VydmljZSdcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFwcENvbnRleHRTZXJ2aWNlIGV4dGVuZHMgQXBpU2VydmljZUJhc2Uge1xyXG4gIC8vQ29uc3RzXHJcbiAgcHJpdmF0ZSBzdG9yYWdlS2V5TmFtZSA9ICdhcHBDb250ZXh0JztcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBzdWNjZXNzZXMgPSBbXTtcclxuXHJcbiAgLy9Qcml2YXRlIFN0cmVhbXNcclxuICBwcml2YXRlIF91cGRhdGVkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuICAvL1B1YmxpYyBTdHJlYW1zXHJcbiAgcmVhZG9ubHkgdXBkYXRlZCQgPSB0aGlzLl91cGRhdGVkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJvdGVjdGVkIGxvY2FsU3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBzZXNzaW9uU3RvcmFnZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihodHRwKTtcclxuICAgIHRoaXMuYmFzZVVybCA9IGAke0FwaVVybH0vYXBwQ29udGV4dGA7XHJcbiAgfVxyXG5cclxuICAvL1Nlc3Npb25cclxuICBwcml2YXRlIGdldEN1cnJlbnRGcm9tU2Vzc2lvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25TdG9yYWdlLmdldE9iamVjdCh0aGlzLnN0b3JhZ2VLZXlOYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q3VycmVudEZyb21TZXNzaW9uKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0T2JqZWN0KHRoaXMuc3RvcmFnZUtleU5hbWUsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQ3VycmVudElmRXhwaXJlZCgpIHtcclxuICAgIGxldCBjb250ZXh0ID0gdGhpcy5nZXRDdXJyZW50RnJvbVNlc3Npb24oKTtcclxuXHJcbiAgICBpZiAoIWNvbnRleHQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzaG91bGRCZVVwZGF0ZWQgPSBmYWxzZTtcclxuICAgIGxldCBsciA9IGNvbnRleHQubGFzdFJlcXVlc3RlZDtcclxuXHJcbiAgICBpZiAobHIpIHtcclxuICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGxldCBsYXN0UmVxdWVzdGVkID0gbmV3IERhdGUoY29udGV4dC5sYXN0UmVxdWVzdGVkKTtcclxuICAgICAgbGV0IGluM01pbnMgPSBuZXcgRGF0ZShsYXN0UmVxdWVzdGVkLmdldEZ1bGxZZWFyKCksIGxhc3RSZXF1ZXN0ZWQuZ2V0TW9udGgoKSwgbGFzdFJlcXVlc3RlZC5nZXREYXRlKCksXHJcbiAgICAgICAgbGFzdFJlcXVlc3RlZC5nZXRIb3VycygpLCBsYXN0UmVxdWVzdGVkLmdldE1pbnV0ZXMoKSArIDMsIDAsIDApO1xyXG5cclxuICAgICAgaWYgKGluM01pbnMuZ2V0VGltZSgpIDwgbm93LmdldFRpbWUoKSkge1xyXG4gICAgICAgIHNob3VsZEJlVXBkYXRlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBzaG91bGRCZVVwZGF0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzaG91bGRCZVVwZGF0ZWQpIHtcclxuICAgICAgdGhpcy51cGRhdGVDdXJyZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRhdGFSZWNlaXZlZChkYXRhKSB7XHJcbiAgICB0aGlzLmN1cnJlbnQgPSBkYXRhO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zdWNjZXNzZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHN1Y2Nlc3MgPSB0aGlzLnN1Y2Nlc3Nlc1tpXTtcclxuICAgICAgaWYgKHN1Y2Nlc3MpIHtcclxuICAgICAgICBzdWNjZXNzKGRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWNjZXNzZXMgPSBbXTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgaWYgKGRhdGEpIHtcclxuICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdBcHBDb250ZXh0IGhhcyBiZWVuIHVwZGF0ZWQgYXQgJyArIG5vdyk7XHJcblxyXG4gICAgICB0aGlzLl91cGRhdGVkLm5leHQoZGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEN1cnJlbnRQcml2YXRlKHN1Y2Nlc3M6IEZ1bmN0aW9uID0gbnVsbCwgZ2V0Q2FjaGVkSWZFeGlzdDogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGlmIChnZXRDYWNoZWRJZkV4aXN0KSB7XHJcbiAgICAgIGxldCBjb250ZXh0ID0gdGhpcy5nZXRDdXJyZW50RnJvbVNlc3Npb24oKTtcclxuXHJcbiAgICAgIGlmIChjb250ZXh0ICE9IG51bGwpIHtcclxuICAgICAgICBpZiAoc3VjY2Vzcykgc3VjY2Vzcyhjb250ZXh0KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICB0aGlzLnN1Y2Nlc3Nlcy5wdXNoKHN1Y2Nlc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbiAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnNvbGUubG9nKCdSZXF1ZXN0aW5nIGEgbmV3IEFwcENvbnRleHQgYXQgJyArIG5vdyk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmdldCgnZ2V0Q3VycmVudENvbnRleHQnLCBudWxsKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YVJlY2VpdmVkKGRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vUHVibGljXHJcbiAgaW5pdChjb250ZXh0KSB7XHJcblx0XHR0aGlzLmN1cnJlbnQgPSBjb250ZXh0O1xyXG5cdH1cclxuXHJcbiAgZ2V0TGF0ZXN0Q3VycmVudChzdWNjZXNzOiBGdW5jdGlvbiA9IG51bGwpIHtcclxuICAgIHRoaXMuZ2V0Q3VycmVudFByaXZhdGUoc3VjY2VzcywgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VycmVudChzdWNjZXNzOiBGdW5jdGlvbiA9IG51bGwpIHtcclxuICAgIHRoaXMuZ2V0Q3VycmVudFByaXZhdGUoc3VjY2VzcywgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDdXJyZW50KHN1Y2Nlc3M6IEZ1bmN0aW9uID0gbnVsbCkge1xyXG4gICAgLy9WYWRpbU9TOiBtYWtlIGRyb3BwaW5nIGN1cnJlbnQgJiBpc0FkbWluIHRocm93IDQwM1xyXG4gICAgLy90aGlzLmNsZWFyQ3VycmVudCgpO1xyXG4gICAgdGhpcy5nZXRMYXRlc3RDdXJyZW50KHN1Y2Nlc3MpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJDdXJyZW50KCkge1xyXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmUodGhpcy5zdG9yYWdlS2V5TmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL1N0b3JhZ2VcclxuICBjbGVhckxvY2FsU3RvcmFnZSgpIHtcclxuXHRcdHRoaXMubG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcblx0fVxyXG5cclxuXHRjbGVhclNlc3Npb25TdG9yYWdlKCkge1xyXG5cdFx0dGhpcy5zZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xyXG5cdH1cclxuXHJcbiAgY2xlYXJXZWJTdG9yYWdlKCkge1xyXG5cdFx0dGhpcy5jbGVhckxvY2FsU3RvcmFnZSgpO1xyXG5cdFx0dGhpcy5jbGVhclNlc3Npb25TdG9yYWdlKCk7XHJcblx0fVxyXG5cclxuICAvL2N1cnJlbnRcclxuICBwdWJsaWMgZ2V0IGN1cnJlbnQoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUN1cnJlbnRJZkV4cGlyZWQoKTtcclxuICAgIHJldHVybiB0aGlzLmdldEN1cnJlbnRGcm9tU2Vzc2lvbigpO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGN1cnJlbnQodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zZXRDdXJyZW50RnJvbVNlc3Npb24odmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy9jdXJyZW50VXNlclxyXG5cdHB1YmxpYyBnZXQgY3VycmVudFVzZXIoKSB7XHJcblx0XHRsZXQgY3VycmVudCA9IHRoaXMuY3VycmVudDtcclxuXHRcdHJldHVybiBjdXJyZW50Py5Vc2VyO1xyXG5cdH1cclxuXHRwdWJsaWMgc2V0IGN1cnJlbnRVc2VyKHZhbHVlOiBhbnkpIHtcclxuXHRcdGxldCBjdXJyZW50ID0gdGhpcy5jdXJyZW50O1xyXG5cdFx0aWYgKGN1cnJlbnQpIHtcclxuXHRcdFx0Y3VycmVudC5Vc2VyID0gdmFsdWU7XHJcblx0XHRcdHRoaXMuY3VycmVudCA9IGN1cnJlbnQ7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -61,9 +61,14 @@ export class StarterServiceBase extends ApiServiceBase {
61
61
  parallelTasks.push(requiredItems$);
62
62
  let parallelTasks$ = merge(...parallelTasks);
63
63
  let tasks$ = forkJoin([applicationStarting$, parallelTasks$]);
64
- //VadimOS:
65
- //concat is NOT wokring here, no idea why. Just executing first task
66
- //let tasks$ = concat(applicationStarting$, parallelTasks$);
64
+ /*
65
+ VadimOS:
66
+ concat is NOT wokring here, no idea why. Just executing first task
67
+ let tasks$ = concat(applicationStarting$, parallelTasks$);
68
+
69
+ https://github.com/ReactiveX/rxjs/issues/2427
70
+ https://github.com/ReactiveX/rxjs/issues/2188
71
+ */
67
72
  //Log
68
73
  let stopwatch = new Stopwatch("ensureApplicationStarted");
69
74
  stopwatch.start();
@@ -74,4 +79,4 @@ export class StarterServiceBase extends ApiServiceBase {
74
79
  }));
75
80
  }
76
81
  }
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvc3RhcnRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBSUYsT0FBTyxFQUFjLEVBQUUsRUFBVSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxLQUFLO0FBQ0wsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdyRCxNQUFNLE9BQWdCLGtCQUFtQixTQUFRLGNBQWM7SUFDdkM7SUFBNEI7SUFBbEQsWUFBc0IsSUFBZ0IsRUFBWSxVQUE4QjtRQUM5RSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFEUSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVksZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFFOUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3BCO1FBRUQsS0FBSztRQUNMLElBQUksU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDckQsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWxCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxhQUFhLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFNLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxRCxLQUFLO1lBQ0wsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLFNBQVMsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBRXZDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLHlCQUF5QjtRQUN6QixJQUFJLG9CQUFvQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRXRELG9CQUFvQjtRQUNwQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFekQsdUNBQXVDO1FBQ3ZDLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6RCxrQkFBa0I7UUFDbEIsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBRXZCLElBQUksVUFBVTtZQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsSUFBSSxjQUFjO1lBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV2RCxJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQztRQUM3QyxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBRTlELFVBQVU7UUFDVixvRUFBb0U7UUFDcEUsNERBQTREO1FBRTVELEtBQUs7UUFDTCxJQUFJLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzFELFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVsQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUN4QixLQUFLO1lBQ0wsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLFNBQVMsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTUgTm92IDIwMjNcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIGNvbmNhdCwgZm9ya0pvaW4sIG1lcmdlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IEFwaVVybCB9IGZyb20gJy4uL2NvbnN0cy9zZXR0aW5ncyc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VCYXNlIH0gZnJvbSAnLi4vLi4vZGF0YS9iYXNlL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi91dGlscyc7XHJcbmltcG9ydCB7IFN0b3B3YXRjaCB9IGZyb20gJy4uL3BlcmZvcm1hbmNlL3N0b3B3YXRjaCc7XHJcbmltcG9ydCB7IElBcHBDb250ZXh0U2VydmljZSB9IGZyb20gJy4uL21vZGVscy9hcHBjb250ZXh0LnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN0YXJ0ZXJTZXJ2aWNlQmFzZSBleHRlbmRzIEFwaVNlcnZpY2VCYXNlIHtcclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCwgcHJvdGVjdGVkIGFwcENvbnRleHQ6IElBcHBDb250ZXh0U2VydmljZSkge1xyXG4gICAgc3VwZXIoaHR0cCk7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSBBcGlVcmw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGxpY2F0aW9uU3RhcnRpbmcoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBjb250ZXh0ID0gdGhpcy5hcHBDb250ZXh0LmN1cnJlbnQ7XHJcbiAgICBpZiAoIVV0aWxzLmlzT2JqZWN0TnVsbE9yRW1wdHkoY29udGV4dCkpIHtcclxuICAgICAgdGhpcy5hcHBDb250ZXh0LmluaXQoY29udGV4dCk7XHJcbiAgICAgIHJldHVybiBvZihjb250ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICAvL0xvZ1xyXG4gICAgbGV0IHN0b3B3YXRjaCA9IG5ldyBTdG9wd2F0Y2goXCJhcHBsaWNhdGlvblN0YXJ0aW5nXCIpO1xyXG4gICAgc3RvcHdhdGNoLnN0YXJ0KCk7XHJcblxyXG4gICAgdGhpcy5iYXNlVXJsID0gYCR7dGhpcy5iYXNlVXJsfS9hcHBDb250ZXh0YDtcclxuICAgIHJldHVybiB0aGlzLmdldDxhbnk+KCdhcHBsaWNhdGlvblN0YXJ0aW5nJykucGlwZShtYXAoZGF0YSA9PiB7XHJcbiAgICAgIC8vTG9nXHJcbiAgICAgIHN0b3B3YXRjaC5zdG9wKCk7XHJcbiAgICAgIHN0b3B3YXRjaC5wcmludEVsYXBzZWRBc01pbGxpc2Vjb25kcygpO1xyXG5cclxuICAgICAgdGhpcy5hcHBDb250ZXh0LmluaXQoZGF0YSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBlbnN1cmVBcHBsaWNhdGlvblN0YXJ0ZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vMS4gQXBwbGljYXRpb24gU3RhcnRpbmdcclxuICAgIGxldCBhcHBsaWNhdGlvblN0YXJ0aW5nJCA9IHRoaXMuYXBwbGljYXRpb25TdGFydGluZygpO1xyXG5cclxuICAgIC8vMi4gTG9hZCBqc29uIGZpbGVzXHJcbiAgICBsZXQganNvbkZpbGVzJCA9IHRoaXMuYXBwQ29udGV4dC5sb2FkUmVxdWlyZWRKc29uRmlsZXMoKTtcclxuXHJcbiAgICAvLzMuIExvYWQgcmVxdWlyZWQgaXRlbXMsIGxpa2Ugc2V0dGluZ3NcclxuICAgIGxldCByZXF1aXJlZEl0ZW1zJCA9IHRoaXMuYXBwQ29udGV4dC5sb2FkUmVxdWlyZWRJdGVtcygpO1xyXG5cclxuICAgIC8vVGFza3MgdG8gZXhlY3V0ZVxyXG4gICAgbGV0IHBhcmFsbGVsVGFza3MgPSBbXTtcclxuXHJcbiAgICBpZiAoanNvbkZpbGVzJCkgcGFyYWxsZWxUYXNrcy5wdXNoKGpzb25GaWxlcyQpO1xyXG4gICAgaWYgKHJlcXVpcmVkSXRlbXMkKSBwYXJhbGxlbFRhc2tzLnB1c2gocmVxdWlyZWRJdGVtcyQpO1xyXG5cclxuICAgIGxldCBwYXJhbGxlbFRhc2tzJCA9IG1lcmdlKC4uLnBhcmFsbGVsVGFza3MpO1xyXG4gICAgbGV0IHRhc2tzJCA9IGZvcmtKb2luKFthcHBsaWNhdGlvblN0YXJ0aW5nJCwgcGFyYWxsZWxUYXNrcyRdKTtcclxuXHJcbiAgICAvL1ZhZGltT1M6XHJcbiAgICAvL2NvbmNhdCBpcyBOT1Qgd29rcmluZyBoZXJlLCBubyBpZGVhIHdoeS4gSnVzdCBleGVjdXRpbmcgZmlyc3QgdGFza1xyXG4gICAgLy9sZXQgdGFza3MkID0gY29uY2F0KGFwcGxpY2F0aW9uU3RhcnRpbmckLCBwYXJhbGxlbFRhc2tzJCk7XHJcblxyXG4gICAgLy9Mb2dcclxuICAgIGxldCBzdG9wd2F0Y2ggPSBuZXcgU3RvcHdhdGNoKFwiZW5zdXJlQXBwbGljYXRpb25TdGFydGVkXCIpO1xyXG4gICAgc3RvcHdhdGNoLnN0YXJ0KCk7XHJcblxyXG4gICAgcmV0dXJuIHRhc2tzJC5waXBlKG1hcCgoKSA9PiB7XHJcbiAgICAgICAgLy9Mb2dcclxuICAgICAgICBzdG9wd2F0Y2guc3RvcCgpO1xyXG4gICAgICAgIHN0b3B3YXRjaC5wcmludEVsYXBzZWRBc01pbGxpc2Vjb25kcygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvc3RhcnRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBSUYsT0FBTyxFQUFjLEVBQUUsRUFBVSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxLQUFLO0FBQ0wsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdyRCxNQUFNLE9BQWdCLGtCQUFtQixTQUFRLGNBQWM7SUFDdkM7SUFBNEI7SUFBbEQsWUFBc0IsSUFBZ0IsRUFBWSxVQUE4QjtRQUM5RSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFEUSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVksZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFFOUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3BCO1FBRUQsS0FBSztRQUNMLElBQUksU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDckQsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWxCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxhQUFhLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFNLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxRCxLQUFLO1lBQ0wsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLFNBQVMsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBRXZDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLHlCQUF5QjtRQUN6QixJQUFJLG9CQUFvQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRXRELG9CQUFvQjtRQUNwQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFekQsdUNBQXVDO1FBQ3ZDLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6RCxrQkFBa0I7UUFDbEIsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBRXZCLElBQUksVUFBVTtZQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsSUFBSSxjQUFjO1lBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV2RCxJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQztRQUM3QyxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBRTlEOzs7Ozs7O1VBT0U7UUFFRixLQUFLO1FBQ0wsSUFBSSxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUMxRCxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFbEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDeEIsS0FBSztZQUNMLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixTQUFTLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDE1IE5vdiAyMDIzXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBjb25jYXQsIGZvcmtKb2luLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBBcGlVcmwgfSBmcm9tICcuLi9jb25zdHMvc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlQmFzZSB9IGZyb20gJy4uLy4uL2RhdGEvYmFzZS9hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBTdG9wd2F0Y2ggfSBmcm9tICcuLi9wZXJmb3JtYW5jZS9zdG9wd2F0Y2gnO1xyXG5pbXBvcnQgeyBJQXBwQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi9tb2RlbHMvYXBwY29udGV4dC5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTdGFydGVyU2VydmljZUJhc2UgZXh0ZW5kcyBBcGlTZXJ2aWNlQmFzZSB7XHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsIHByb3RlY3RlZCBhcHBDb250ZXh0OiBJQXBwQ29udGV4dFNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGh0dHApO1xyXG4gICAgdGhpcy5iYXNlVXJsID0gQXBpVXJsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBsaWNhdGlvblN0YXJ0aW5nKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgY29udGV4dCA9IHRoaXMuYXBwQ29udGV4dC5jdXJyZW50O1xyXG4gICAgaWYgKCFVdGlscy5pc09iamVjdE51bGxPckVtcHR5KGNvbnRleHQpKSB7XHJcbiAgICAgIHRoaXMuYXBwQ29udGV4dC5pbml0KGNvbnRleHQpO1xyXG4gICAgICByZXR1cm4gb2YoY29udGV4dCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9Mb2dcclxuICAgIGxldCBzdG9wd2F0Y2ggPSBuZXcgU3RvcHdhdGNoKFwiYXBwbGljYXRpb25TdGFydGluZ1wiKTtcclxuICAgIHN0b3B3YXRjaC5zdGFydCgpO1xyXG5cclxuICAgIHRoaXMuYmFzZVVybCA9IGAke3RoaXMuYmFzZVVybH0vYXBwQ29udGV4dGA7XHJcbiAgICByZXR1cm4gdGhpcy5nZXQ8YW55PignYXBwbGljYXRpb25TdGFydGluZycpLnBpcGUobWFwKGRhdGEgPT4ge1xyXG4gICAgICAvL0xvZ1xyXG4gICAgICBzdG9wd2F0Y2guc3RvcCgpO1xyXG4gICAgICBzdG9wd2F0Y2gucHJpbnRFbGFwc2VkQXNNaWxsaXNlY29uZHMoKTtcclxuXHJcbiAgICAgIHRoaXMuYXBwQ29udGV4dC5pbml0KGRhdGEpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgZW5zdXJlQXBwbGljYXRpb25TdGFydGVkKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvLzEuIEFwcGxpY2F0aW9uIFN0YXJ0aW5nXHJcbiAgICBsZXQgYXBwbGljYXRpb25TdGFydGluZyQgPSB0aGlzLmFwcGxpY2F0aW9uU3RhcnRpbmcoKTtcclxuXHJcbiAgICAvLzIuIExvYWQganNvbiBmaWxlc1xyXG4gICAgbGV0IGpzb25GaWxlcyQgPSB0aGlzLmFwcENvbnRleHQubG9hZFJlcXVpcmVkSnNvbkZpbGVzKCk7XHJcblxyXG4gICAgLy8zLiBMb2FkIHJlcXVpcmVkIGl0ZW1zLCBsaWtlIHNldHRpbmdzXHJcbiAgICBsZXQgcmVxdWlyZWRJdGVtcyQgPSB0aGlzLmFwcENvbnRleHQubG9hZFJlcXVpcmVkSXRlbXMoKTtcclxuXHJcbiAgICAvL1Rhc2tzIHRvIGV4ZWN1dGVcclxuICAgIGxldCBwYXJhbGxlbFRhc2tzID0gW107XHJcblxyXG4gICAgaWYgKGpzb25GaWxlcyQpIHBhcmFsbGVsVGFza3MucHVzaChqc29uRmlsZXMkKTtcclxuICAgIGlmIChyZXF1aXJlZEl0ZW1zJCkgcGFyYWxsZWxUYXNrcy5wdXNoKHJlcXVpcmVkSXRlbXMkKTtcclxuXHJcbiAgICBsZXQgcGFyYWxsZWxUYXNrcyQgPSBtZXJnZSguLi5wYXJhbGxlbFRhc2tzKTtcclxuICAgIGxldCB0YXNrcyQgPSBmb3JrSm9pbihbYXBwbGljYXRpb25TdGFydGluZyQsIHBhcmFsbGVsVGFza3MkXSk7XHJcblxyXG4gICAgLypcclxuICAgICAgVmFkaW1PUzpcclxuICAgICAgY29uY2F0IGlzIE5PVCB3b2tyaW5nIGhlcmUsIG5vIGlkZWEgd2h5LiBKdXN0IGV4ZWN1dGluZyBmaXJzdCB0YXNrXHJcbiAgICAgIGxldCB0YXNrcyQgPSBjb25jYXQoYXBwbGljYXRpb25TdGFydGluZyQsIHBhcmFsbGVsVGFza3MkKTtcclxuXHJcbiAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9SZWFjdGl2ZVgvcnhqcy9pc3N1ZXMvMjQyN1xyXG4gICAgICBodHRwczovL2dpdGh1Yi5jb20vUmVhY3RpdmVYL3J4anMvaXNzdWVzLzIxODhcclxuICAgICovXHJcblxyXG4gICAgLy9Mb2dcclxuICAgIGxldCBzdG9wd2F0Y2ggPSBuZXcgU3RvcHdhdGNoKFwiZW5zdXJlQXBwbGljYXRpb25TdGFydGVkXCIpO1xyXG4gICAgc3RvcHdhdGNoLnN0YXJ0KCk7XHJcblxyXG4gICAgcmV0dXJuIHRhc2tzJC5waXBlKG1hcCgoKSA9PiB7XHJcbiAgICAgICAgLy9Mb2dcclxuICAgICAgICBzdG9wd2F0Y2guc3RvcCgpO1xyXG4gICAgICAgIHN0b3B3YXRjaC5wcmludEVsYXBzZWRBc01pbGxpc2Vjb25kcygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
@@ -0,0 +1,43 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 20 Sep 2023
12
+
13
+ Description:
14
+ Identity and Access Management
15
+
16
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ //App
20
+ import { MSALB2CConfig } from '../consts';
21
+ export class MSALB2C {
22
+ static isEnabled() {
23
+ if (MSALB2CConfig) {
24
+ return true;
25
+ }
26
+ return false;
27
+ }
28
+ static getAuthorityByType(type) {
29
+ let policy = MSALB2C.getPolicyByType(type);
30
+ return policy?.authority;
31
+ }
32
+ static getPolicyByType(type) {
33
+ let policies = MSALB2CConfig.policies;
34
+ for (let i = 0; i < policies.length; i++) {
35
+ let policy = policies[i];
36
+ if (policy.type == type) {
37
+ return policy;
38
+ }
39
+ }
40
+ return null;
41
+ }
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYjJjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2lhbS9iMmMvYjJjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLEtBQUs7QUFDTCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFDLE1BQU0sT0FBTyxPQUFPO0lBQ1gsTUFBTSxDQUFDLFNBQVM7UUFDckIsSUFBSSxhQUFhLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJO1FBQ25DLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsT0FBTyxNQUFNLEVBQUUsU0FBUyxDQUFDO0lBQzNCLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUk7UUFDaEMsSUFBSSxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUV0QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN4QyxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFekIsSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRTtnQkFDdkIsT0FBTyxNQUFNLENBQUM7YUFDZjtTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuXHRDcmVhdGVkOlxyXG5cdFx0MjAgU2VwIDIwMjNcclxuXHJcbiAgRGVzY3JpcHRpb246XHJcbiAgICBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnRcclxuXHJcblx0Q29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBNU0FMQjJDQ29uZmlnIH0gZnJvbSAnLi4vY29uc3RzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBNU0FMQjJDIHtcclxuICBwdWJsaWMgc3RhdGljIGlzRW5hYmxlZCgpIHtcclxuICAgIGlmIChNU0FMQjJDQ29uZmlnKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0QXV0aG9yaXR5QnlUeXBlKHR5cGUpIHtcclxuICAgIGxldCBwb2xpY3kgPSBNU0FMQjJDLmdldFBvbGljeUJ5VHlwZSh0eXBlKTtcclxuICAgIHJldHVybiBwb2xpY3k/LmF1dGhvcml0eTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0UG9saWN5QnlUeXBlKHR5cGUpIHtcclxuICAgIGxldCBwb2xpY2llcyA9IE1TQUxCMkNDb25maWcucG9saWNpZXM7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2xpY2llcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgcG9saWN5ID0gcG9saWNpZXNbaV07XHJcblxyXG4gICAgICBpZiAocG9saWN5LnR5cGUgPT0gdHlwZSkge1xyXG4gICAgICAgIHJldHVybiBwb2xpY3k7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,25 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 20 Sep 2023
12
+
13
+ Description:
14
+ Identity and Access Management
15
+
16
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ export const PolicyType = {
20
+ signUpSignIn: 'signUpSignIn',
21
+ signUp: 'signUp',
22
+ resetPassword: 'resetPassword',
23
+ editProfile: 'editProfile'
24
+ };
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2lhbS9iMmMvY29uc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixZQUFZLEVBQUUsY0FBYztJQUM1QixNQUFNLEVBQUUsUUFBUTtJQUNoQixhQUFhLEVBQUUsZUFBZTtJQUM5QixXQUFXLEVBQUUsYUFBYTtDQUMzQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcblx0Q3JlYXRlZDpcclxuXHRcdDIwIFNlcCAyMDIzXHJcblxyXG4gIERlc2NyaXB0aW9uOlxyXG4gICAgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50XHJcblxyXG5cdENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGNvbnN0IFBvbGljeVR5cGUgPSB7XHJcbiAgc2lnblVwU2lnbkluOiAnc2lnblVwU2lnbkluJyxcclxuICBzaWduVXA6ICdzaWduVXAnLFxyXG4gIHJlc2V0UGFzc3dvcmQ6ICdyZXNldFBhc3N3b3JkJyxcclxuICBlZGl0UHJvZmlsZTogJ2VkaXRQcm9maWxlJ1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,21 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 20 Sep 2023
12
+
13
+ Description:
14
+ Identity and Access Management
15
+
16
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ export * from './b2c';
20
+ export * from './consts';
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvaWFtL2IyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixjQUFjLE9BQU8sQ0FBQztBQUN0QixjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyMCBTZXAgMjAyM1xyXG5cclxuICBEZXNjcmlwdGlvbjpcclxuICAgIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vYjJjJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb25zdHMnO1xyXG4iXX0=
@@ -0,0 +1,107 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 2 May 2023
12
+
13
+ Description:
14
+ Identity and Access Management
15
+
16
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ import { InteractionType, LogLevel, PublicClientApplication } from '@azure/msal-browser';
20
+ //App
21
+ import { MSALB2C, PolicyType } from './b2c';
22
+ import { MSALApiConfig, MSALB2CConfig, MSALConfig } from './consts';
23
+ import { MSALStorage } from './storage';
24
+ export function MSALInterceptorConfigFactory() {
25
+ let protectedResourceMap = new Map();
26
+ protectedResourceMap.set('https://graph.microsoft.com/v1.0/me', ['user.read']);
27
+ return {
28
+ interactionType: InteractionType.Redirect,
29
+ protectedResourceMap
30
+ };
31
+ }
32
+ export function MSALGuardConfigFactory() {
33
+ return {
34
+ interactionType: InteractionType.Redirect,
35
+ authRequest: (authService, state) => {
36
+ let scopes = MSALApiConfig.scopes;
37
+ let redirectTo = state.url;
38
+ /*
39
+ VadimOS: not working for some reason
40
+
41
+ let stateData = {
42
+ redirectTo: redirectTo
43
+ };
44
+ let state64 = Buffer.from(JSON.stringify(stateData)).toString('base64');
45
+ let request: RedirectRequest = {
46
+ scopes: [...scopes],
47
+ state: state64,
48
+ redirectStartPage: redirectTo
49
+ }
50
+ */
51
+ let request = {
52
+ scopes: [...scopes]
53
+ };
54
+ MSALStorage.saveRedirectState(redirectTo, 'MSALGuardConfigFactory.authRequest');
55
+ return request;
56
+ }
57
+ };
58
+ }
59
+ export function MSALInstanceFactory() {
60
+ let authority = MSALConfig.app.auth.authority;
61
+ let configuration = {
62
+ auth: {
63
+ authority: authority,
64
+ clientId: MSALConfig.app.auth.clientId,
65
+ redirectUri: MSALConfig.app.auth.redirectUri,
66
+ postLogoutRedirectUri: MSALConfig.app.auth.postLogoutRedirectUri,
67
+ navigateToLoginRequestUrl: MSALConfig.app.auth.navigateToLoginRequestUrl
68
+ },
69
+ cache: {
70
+ cacheLocation: MSALConfig.app.cache.cacheLocation,
71
+ storeAuthStateInCookie: MSALConfig.app.cache.storeAuthStateInCookie
72
+ },
73
+ system: {
74
+ allowNativeBroker: false,
75
+ loggerOptions: {
76
+ loggerCallback,
77
+ logLevel: MSALConfig.app.system.loggerOptions.logLevel,
78
+ piiLoggingEnabled: false
79
+ }
80
+ }
81
+ };
82
+ if (MSALB2C.isEnabled()) {
83
+ configuration.auth.authority = MSALB2C.getAuthorityByType(PolicyType.signUpSignIn);
84
+ configuration.auth.knownAuthorities = [MSALB2CConfig.authorityDomain];
85
+ }
86
+ return new PublicClientApplication(configuration);
87
+ }
88
+ function loggerCallback(logLevel, message, containsPii) {
89
+ if (containsPii) {
90
+ return;
91
+ }
92
+ switch (logLevel) {
93
+ case LogLevel.Error:
94
+ console.error(message);
95
+ return;
96
+ case LogLevel.Info:
97
+ console.info(message);
98
+ return;
99
+ case LogLevel.Verbose:
100
+ console.debug(message);
101
+ return;
102
+ case LogLevel.Warning:
103
+ console.warn(message);
104
+ return;
105
+ }
106
+ }
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9pYW0vY29uZmlncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFLRixPQUFPLEVBQUUsZUFBZSxFQUE0QixRQUFRLEVBQUUsdUJBQXVCLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFFcEksS0FBSztBQUNMLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXhDLE1BQU0sVUFBVSw0QkFBNEI7SUFDMUMsSUFBSSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUM1RCxvQkFBb0IsQ0FBQyxHQUFHLENBQUMscUNBQXFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBRS9FLE9BQU87UUFDTCxlQUFlLEVBQUUsZUFBZSxDQUFDLFFBQVE7UUFDekMsb0JBQW9CO0tBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQjtJQUNwQyxPQUFPO1FBQ0wsZUFBZSxFQUFFLGVBQWUsQ0FBQyxRQUFRO1FBQ3pDLFdBQVcsRUFBRSxDQUFDLFdBQXdCLEVBQUUsS0FBMEIsRUFBd0IsRUFBRTtZQUMxRixJQUFJLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ2xDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFFM0I7Ozs7Ozs7Ozs7OztjQVlFO1lBRUYsSUFBSSxPQUFPLEdBQW9CO2dCQUM3QixNQUFNLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQzthQUNwQixDQUFBO1lBRUQsV0FBVyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxvQ0FBb0MsQ0FBQyxDQUFDO1lBRWhGLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsSUFBSSxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzlDLElBQUksYUFBYSxHQUFRO1FBQ3ZCLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQ3RDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQzVDLHFCQUFxQixFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQjtZQUNoRSx5QkFBeUIsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyx5QkFBeUI7U0FDekU7UUFDRCxLQUFLLEVBQUU7WUFDTCxhQUFhLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsYUFBYTtZQUNqRCxzQkFBc0IsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxzQkFBc0I7U0FDcEU7UUFDRCxNQUFNLEVBQUU7WUFDTixpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLGFBQWEsRUFBRTtnQkFDYixjQUFjO2dCQUNkLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUTtnQkFDdEQsaUJBQWlCLEVBQUUsS0FBSzthQUN6QjtTQUNGO0tBQ0YsQ0FBQTtJQUVELElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFO1FBQ3ZCLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkYsYUFBYSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUN2RTtJQUVELE9BQU8sSUFBSSx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsUUFBa0IsRUFBRSxPQUFlLEVBQUUsV0FBb0I7SUFDL0UsSUFBSSxXQUFXLEVBQUU7UUFDZixPQUFPO0tBQ1I7SUFFRCxRQUFRLFFBQVEsRUFBRTtRQUNoQixLQUFLLFFBQVEsQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkIsT0FBTztRQUVULEtBQUssUUFBUSxDQUFDLElBQUk7WUFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QixPQUFPO1FBRVQsS0FBSyxRQUFRLENBQUMsT0FBTztZQUNuQixPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZCLE9BQU87UUFFVCxLQUFLLFFBQVEsQ0FBQyxPQUFPO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsT0FBTztLQUNWO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG5cdENyZWF0ZWQ6XHJcblx0XHQyIE1heSAyMDIzXHJcblxyXG4gIERlc2NyaXB0aW9uOlxyXG4gICAgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50XHJcblxyXG5cdENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IE1zYWxHdWFyZEF1dGhSZXF1ZXN0LCBNc2FsR3VhcmRDb25maWd1cmF0aW9uLCBNc2FsSW50ZXJjZXB0b3JDb25maWd1cmF0aW9uLCBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBJbnRlcmFjdGlvblR5cGUsIElQdWJsaWNDbGllbnRBcHBsaWNhdGlvbiwgTG9nTGV2ZWwsIFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uLCBSZWRpcmVjdFJlcXVlc3QgfSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IE1TQUxCMkMsIFBvbGljeVR5cGUgfSBmcm9tICcuL2IyYyc7XHJcbmltcG9ydCB7IE1TQUxBcGlDb25maWcsIE1TQUxCMkNDb25maWcsIE1TQUxDb25maWcgfSBmcm9tICcuL2NvbnN0cyc7XHJcbmltcG9ydCB7IE1TQUxTdG9yYWdlIH0gZnJvbSAnLi9zdG9yYWdlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBNU0FMSW50ZXJjZXB0b3JDb25maWdGYWN0b3J5KCk6IE1zYWxJbnRlcmNlcHRvckNvbmZpZ3VyYXRpb24ge1xyXG4gIGxldCBwcm90ZWN0ZWRSZXNvdXJjZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxzdHJpbmc+PigpO1xyXG4gIHByb3RlY3RlZFJlc291cmNlTWFwLnNldCgnaHR0cHM6Ly9ncmFwaC5taWNyb3NvZnQuY29tL3YxLjAvbWUnLCBbJ3VzZXIucmVhZCddKTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGludGVyYWN0aW9uVHlwZTogSW50ZXJhY3Rpb25UeXBlLlJlZGlyZWN0LFxyXG4gICAgcHJvdGVjdGVkUmVzb3VyY2VNYXBcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gTVNBTEd1YXJkQ29uZmlnRmFjdG9yeSgpOiBNc2FsR3VhcmRDb25maWd1cmF0aW9uIHtcclxuICByZXR1cm4ge1xyXG4gICAgaW50ZXJhY3Rpb25UeXBlOiBJbnRlcmFjdGlvblR5cGUuUmVkaXJlY3QsXHJcbiAgICBhdXRoUmVxdWVzdDogKGF1dGhTZXJ2aWNlOiBNc2FsU2VydmljZSwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBNc2FsR3VhcmRBdXRoUmVxdWVzdCA9PiB7XHJcbiAgICAgIGxldCBzY29wZXMgPSBNU0FMQXBpQ29uZmlnLnNjb3BlcztcclxuICAgICAgbGV0IHJlZGlyZWN0VG8gPSBzdGF0ZS51cmw7XHJcblxyXG4gICAgICAvKlxyXG4gICAgICBWYWRpbU9TOiBub3Qgd29ya2luZyBmb3Igc29tZSByZWFzb25cclxuXHJcbiAgICAgIGxldCBzdGF0ZURhdGEgPSB7XHJcbiAgICAgICAgcmVkaXJlY3RUbzogcmVkaXJlY3RUb1xyXG4gICAgICB9O1xyXG4gICAgICBsZXQgc3RhdGU2NCA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHN0YXRlRGF0YSkpLnRvU3RyaW5nKCdiYXNlNjQnKTtcclxuICAgICAgbGV0IHJlcXVlc3Q6IFJlZGlyZWN0UmVxdWVzdCA9IHtcclxuICAgICAgICBzY29wZXM6IFsuLi5zY29wZXNdLFxyXG4gICAgICAgIHN0YXRlOiBzdGF0ZTY0LFxyXG4gICAgICAgIHJlZGlyZWN0U3RhcnRQYWdlOiByZWRpcmVjdFRvXHJcbiAgICAgIH1cclxuICAgICAgKi9cclxuXHJcbiAgICAgIGxldCByZXF1ZXN0OiBSZWRpcmVjdFJlcXVlc3QgPSB7XHJcbiAgICAgICAgc2NvcGVzOiBbLi4uc2NvcGVzXVxyXG4gICAgICB9XHJcblxyXG4gICAgICBNU0FMU3RvcmFnZS5zYXZlUmVkaXJlY3RTdGF0ZShyZWRpcmVjdFRvLCAnTVNBTEd1YXJkQ29uZmlnRmFjdG9yeS5hdXRoUmVxdWVzdCcpO1xyXG5cclxuICAgICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgICB9XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIE1TQUxJbnN0YW5jZUZhY3RvcnkoKTogSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIHtcclxuICBsZXQgYXV0aG9yaXR5ID0gTVNBTENvbmZpZy5hcHAuYXV0aC5hdXRob3JpdHk7XHJcbiAgbGV0IGNvbmZpZ3VyYXRpb246IGFueSA9IHtcclxuICAgIGF1dGg6IHtcclxuICAgICAgYXV0aG9yaXR5OiBhdXRob3JpdHksXHJcbiAgICAgIGNsaWVudElkOiBNU0FMQ29uZmlnLmFwcC5hdXRoLmNsaWVudElkLFxyXG4gICAgICByZWRpcmVjdFVyaTogTVNBTENvbmZpZy5hcHAuYXV0aC5yZWRpcmVjdFVyaSxcclxuICAgICAgcG9zdExvZ291dFJlZGlyZWN0VXJpOiBNU0FMQ29uZmlnLmFwcC5hdXRoLnBvc3RMb2dvdXRSZWRpcmVjdFVyaSxcclxuICAgICAgbmF2aWdhdGVUb0xvZ2luUmVxdWVzdFVybDogTVNBTENvbmZpZy5hcHAuYXV0aC5uYXZpZ2F0ZVRvTG9naW5SZXF1ZXN0VXJsXHJcbiAgICB9LFxyXG4gICAgY2FjaGU6IHtcclxuICAgICAgY2FjaGVMb2NhdGlvbjogTVNBTENvbmZpZy5hcHAuY2FjaGUuY2FjaGVMb2NhdGlvbixcclxuICAgICAgc3RvcmVBdXRoU3RhdGVJbkNvb2tpZTogTVNBTENvbmZpZy5hcHAuY2FjaGUuc3RvcmVBdXRoU3RhdGVJbkNvb2tpZVxyXG4gICAgfSxcclxuICAgIHN5c3RlbToge1xyXG4gICAgICBhbGxvd05hdGl2ZUJyb2tlcjogZmFsc2UsXHJcbiAgICAgIGxvZ2dlck9wdGlvbnM6IHtcclxuICAgICAgICBsb2dnZXJDYWxsYmFjayxcclxuICAgICAgICBsb2dMZXZlbDogTVNBTENvbmZpZy5hcHAuc3lzdGVtLmxvZ2dlck9wdGlvbnMubG9nTGV2ZWwsXHJcbiAgICAgICAgcGlpTG9nZ2luZ0VuYWJsZWQ6IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlmIChNU0FMQjJDLmlzRW5hYmxlZCgpKSB7XHJcbiAgICBjb25maWd1cmF0aW9uLmF1dGguYXV0aG9yaXR5ID0gTVNBTEIyQy5nZXRBdXRob3JpdHlCeVR5cGUoUG9saWN5VHlwZS5zaWduVXBTaWduSW4pO1xyXG4gICAgY29uZmlndXJhdGlvbi5hdXRoLmtub3duQXV0aG9yaXRpZXMgPSBbTVNBTEIyQ0NvbmZpZy5hdXRob3JpdHlEb21haW5dO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG5ldyBQdWJsaWNDbGllbnRBcHBsaWNhdGlvbihjb25maWd1cmF0aW9uKTtcclxufVxyXG5cclxuZnVuY3Rpb24gbG9nZ2VyQ2FsbGJhY2sobG9nTGV2ZWw6IExvZ0xldmVsLCBtZXNzYWdlOiBzdHJpbmcsIGNvbnRhaW5zUGlpOiBib29sZWFuKSB7XHJcbiAgaWYgKGNvbnRhaW5zUGlpKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBzd2l0Y2ggKGxvZ0xldmVsKSB7XHJcbiAgICBjYXNlIExvZ0xldmVsLkVycm9yOlxyXG4gICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgY2FzZSBMb2dMZXZlbC5JbmZvOlxyXG4gICAgICBjb25zb2xlLmluZm8obWVzc2FnZSk7XHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBjYXNlIExvZ0xldmVsLlZlcmJvc2U6XHJcbiAgICAgIGNvbnNvbGUuZGVidWcobWVzc2FnZSk7XHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBjYXNlIExvZ0xldmVsLldhcm5pbmc6XHJcbiAgICAgIGNvbnNvbGUud2FybihtZXNzYWdlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,23 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 20 Sep 2023
12
+
13
+ Description:
14
+ Identity and Access Management
15
+
16
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ let msalSettings = document.getElementById("msalSettings").getAttribute('data-msalsettings');
20
+ export let MSALConfig = JSON.parse(msalSettings);
21
+ export let MSALApiConfig = MSALConfig?.api;
22
+ export let MSALB2CConfig = MSALConfig?.b2c;
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2lhbS9jb25zdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsSUFBSSxZQUFZLEdBQXNCLFFBQVEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFFLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFFakgsTUFBTSxDQUFDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDakQsTUFBTSxDQUFDLElBQUksYUFBYSxHQUFHLFVBQVUsRUFBRSxHQUFHLENBQUM7QUFDM0MsTUFBTSxDQUFDLElBQUksYUFBYSxHQUFHLFVBQVUsRUFBRSxHQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuXHRDcmVhdGVkOlxyXG5cdFx0MjAgU2VwIDIwMjNcclxuXHJcbiAgRGVzY3JpcHRpb246XHJcbiAgICBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnRcclxuXHJcblx0Q29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5sZXQgbXNhbFNldHRpbmdzID0gKDxIVE1MSW5wdXRFbGVtZW50PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwibXNhbFNldHRpbmdzXCIpKS5nZXRBdHRyaWJ1dGUoJ2RhdGEtbXNhbHNldHRpbmdzJyk7XHJcblxyXG5leHBvcnQgbGV0IE1TQUxDb25maWcgPSBKU09OLnBhcnNlKG1zYWxTZXR0aW5ncyk7XHJcbmV4cG9ydCBsZXQgTVNBTEFwaUNvbmZpZyA9IE1TQUxDb25maWc/LmFwaTtcclxuZXhwb3J0IGxldCBNU0FMQjJDQ29uZmlnID0gTVNBTENvbmZpZz8uYjJjO1xyXG5cclxuIl19
@@ -0,0 +1,47 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 6 Dec 2018
12
+
13
+ Description:
14
+ Identity and Access Management
15
+
16
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ //Node
20
+ import { Injectable } from '@angular/core';
21
+ import { of } from 'rxjs';
22
+ import * as i0 from "@angular/core";
23
+ import * as i1 from "../services/auth.service";
24
+ export class AdminGuard {
25
+ auth;
26
+ constructor(auth) {
27
+ this.auth = auth;
28
+ }
29
+ isUserAdmin() {
30
+ return of(this.auth.isUserAdmin());
31
+ }
32
+ canActivate(next, state) {
33
+ return this.isUserAdmin();
34
+ }
35
+ canActivateChild(route, state) {
36
+ if (route.component) {
37
+ return this.isUserAdmin();
38
+ }
39
+ return of(true);
40
+ }
41
+ static ɵfac = function AdminGuard_Factory(t) { return new (t || AdminGuard)(i0.ɵɵinject(i1.AuthService)); };
42
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AdminGuard, factory: AdminGuard.ɵfac });
43
+ }
44
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdminGuard, [{
45
+ type: Injectable
46
+ }], function () { return [{ type: i1.AuthService }]; }, null); })();
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4uZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvaWFtL2d1YXJkcy9hZG1pbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFNdEMsTUFBTSxPQUFPLFVBQVU7SUFDRDtJQUFwQixZQUFvQixJQUFpQjtRQUFqQixTQUFJLEdBQUosSUFBSSxDQUFhO0lBQ3JDLENBQUM7SUFFTyxXQUFXO1FBQ25CLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQTRCLEVBQUUsS0FBMEI7UUFDbEUsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFDeEUsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzNCO1FBRUQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztvRUFsQlUsVUFBVTtnRUFBVixVQUFVLFdBQVYsVUFBVTs7dUZBQVYsVUFBVTtjQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDYgRGVjIDIwMThcclxuXHJcbiAgRGVzY3JpcHRpb246XHJcbiAgICBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnRcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBZG1pbkd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUsIENhbkFjdGl2YXRlQ2hpbGQge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aDogQXV0aFNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNVc2VyQWRtaW4oKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcblx0XHRyZXR1cm4gb2YodGhpcy5hdXRoLmlzVXNlckFkbWluKCkpO1xyXG4gIH1cclxuXHJcbiAgY2FuQWN0aXZhdGUobmV4dDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmlzVXNlckFkbWluKCk7XHJcbiAgfVxyXG5cclxuICBjYW5BY3RpdmF0ZUNoaWxkKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgaWYgKHJvdXRlLmNvbXBvbmVudCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5pc1VzZXJBZG1pbigpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvZih0cnVlKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,31 @@
1
+ import { Inject, Injectable } from "@angular/core";
2
+ import { MsalGuard, MSAL_GUARD_CONFIG } from '@azure/msal-angular';
3
+ import { InteractionType } from "@azure/msal-browser";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@azure/msal-angular";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/router";
8
+ export class AuthenticationGuard extends MsalGuard {
9
+ _msalGuardConfig;
10
+ constructor(msalGuardConfig, msalBroadcastService, authService, location, router) {
11
+ super(msalGuardConfig, msalBroadcastService, authService, location, router);
12
+ this._msalGuardConfig = msalGuardConfig;
13
+ }
14
+ setInteractionType(route) {
15
+ let interactionType = route.data.interactionType;
16
+ this._msalGuardConfig.interactionType = interactionType || InteractionType.Redirect;
17
+ }
18
+ canActivate(route, state) {
19
+ this.setInteractionType(route);
20
+ return super.canActivate(route, state);
21
+ }
22
+ static ɵfac = function AuthenticationGuard_Factory(t) { return new (t || AuthenticationGuard)(i0.ɵɵinject(MSAL_GUARD_CONFIG), i0.ɵɵinject(i1.MsalBroadcastService), i0.ɵɵinject(i1.MsalService), i0.ɵɵinject(i2.Location), i0.ɵɵinject(i3.Router)); };
23
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AuthenticationGuard, factory: AuthenticationGuard.ɵfac });
24
+ }
25
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthenticationGuard, [{
26
+ type: Injectable
27
+ }], function () { return [{ type: undefined, decorators: [{
28
+ type: Inject,
29
+ args: [MSAL_GUARD_CONFIG]
30
+ }] }, { type: i1.MsalBroadcastService }, { type: i1.MsalService }, { type: i2.Location }, { type: i3.Router }]; }, null); })();
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvaWFtL2d1YXJkcy9hdXRoZW50aWNhdGlvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQkEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUF3QixTQUFTLEVBQXVDLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUl0RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsU0FBUztJQUN4QyxnQkFBZ0IsQ0FBeUI7SUFFakQsWUFFRSxlQUF1QyxFQUN2QyxvQkFBMEMsRUFDMUMsV0FBd0IsRUFDeEIsUUFBa0IsRUFDbEIsTUFBYztRQUVkLEtBQUssQ0FBQyxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO0lBQzFDLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxLQUE2QjtRQUN0RCxJQUFJLGVBQWUsR0FBSSxLQUFLLENBQUMsSUFBWSxDQUFDLGVBQWUsQ0FBQztRQUMxRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxHQUFHLGVBQWUsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDO0lBQ3RGLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNuRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDOzZFQXZCVSxtQkFBbUIsY0FJcEIsaUJBQWlCO2dFQUpoQixtQkFBbUIsV0FBbkIsbUJBQW1COzt1RkFBbkIsbUJBQW1CO2NBRC9CLFVBQVU7O3NCQUtOLE1BQU07dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDE1IE9jdCAyMDIzXHJcblxyXG4gIERlc2NyaXB0aW9uOlxyXG4gICAgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50XHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgUm91dGVyLCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBVcmxUcmVlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBNc2FsQnJvYWRjYXN0U2VydmljZSwgTXNhbEd1YXJkLCBNc2FsR3VhcmRDb25maWd1cmF0aW9uLCBNc2FsU2VydmljZSwgTVNBTF9HVUFSRF9DT05GSUcgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcclxuaW1wb3J0IHsgSW50ZXJhY3Rpb25UeXBlIH0gZnJvbSBcIkBhenVyZS9tc2FsLWJyb3dzZXJcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvbkd1YXJkIGV4dGVuZHMgTXNhbEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xyXG4gIHByaXZhdGUgX21zYWxHdWFyZENvbmZpZzogTXNhbEd1YXJkQ29uZmlndXJhdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KE1TQUxfR1VBUkRfQ09ORklHKVxyXG4gICAgbXNhbEd1YXJkQ29uZmlnOiBNc2FsR3VhcmRDb25maWd1cmF0aW9uLFxyXG4gICAgbXNhbEJyb2FkY2FzdFNlcnZpY2U6IE1zYWxCcm9hZGNhc3RTZXJ2aWNlLFxyXG4gICAgYXV0aFNlcnZpY2U6IE1zYWxTZXJ2aWNlLFxyXG4gICAgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgcm91dGVyOiBSb3V0ZXJcclxuICApIHtcclxuICAgIHN1cGVyKG1zYWxHdWFyZENvbmZpZywgbXNhbEJyb2FkY2FzdFNlcnZpY2UsIGF1dGhTZXJ2aWNlLCBsb2NhdGlvbiwgcm91dGVyKTtcclxuICAgIHRoaXMuX21zYWxHdWFyZENvbmZpZyA9IG1zYWxHdWFyZENvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0SW50ZXJhY3Rpb25UeXBlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSB7XHJcbiAgICBsZXQgaW50ZXJhY3Rpb25UeXBlID0gKHJvdXRlLmRhdGEgYXMgYW55KS5pbnRlcmFjdGlvblR5cGU7XHJcbiAgICB0aGlzLl9tc2FsR3VhcmRDb25maWcuaW50ZXJhY3Rpb25UeXBlID0gaW50ZXJhY3Rpb25UeXBlIHx8IEludGVyYWN0aW9uVHlwZS5SZWRpcmVjdDtcclxuICB9XHJcblxyXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHtcclxuICAgIHRoaXMuc2V0SW50ZXJhY3Rpb25UeXBlKHJvdXRlKTtcclxuICAgIHJldHVybiBzdXBlci5jYW5BY3RpdmF0ZShyb3V0ZSwgc3RhdGUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,20 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ QA
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+
9
+ Created:
10
+ 6 Dec 2018
11
+
12
+ Description:
13
+ Identity and Access Management
14
+
15
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
16
+ </file>
17
+ */
18
+ export * from './admin.guard';
19
+ export * from './authentication.guard';
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvaWFtL2d1YXJkcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7OztFQWdCRTtBQUVGLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgUUFcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgNiBEZWMgMjAxOFxyXG5cclxuICBEZXNjcmlwdGlvbjpcclxuICAgIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vYWRtaW4uZ3VhcmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dGhlbnRpY2F0aW9uLmd1YXJkJztcclxuXHJcbiJdfQ==
@@ -0,0 +1,54 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 6 Dec 2018
12
+
13
+ Description:
14
+ Identity and Access Management
15
+
16
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ //Node
20
+ import { CommonModule } from '@angular/common';
21
+ import { HttpClientModule } from '@angular/common/http';
22
+ import { NgModule } from '@angular/core';
23
+ //Routes
24
+ import { IAMRouterModule, PAGES } from "./iam-pages.routes";
25
+ import * as i0 from "@angular/core";
26
+ import * as i1 from "./pages/signin.page";
27
+ import * as i2 from "./pages/signup.page";
28
+ import * as i3 from "./pages/signout.page";
29
+ import * as i4 from "@angular/router";
30
+ export class AnatolyIAMPagesModule {
31
+ static ɵfac = function AnatolyIAMPagesModule_Factory(t) { return new (t || AnatolyIAMPagesModule)(); };
32
+ static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AnatolyIAMPagesModule });
33
+ static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
34
+ HttpClientModule,
35
+ IAMRouterModule] });
36
+ }
37
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AnatolyIAMPagesModule, [{
38
+ type: NgModule,
39
+ args: [{
40
+ imports: [
41
+ CommonModule,
42
+ HttpClientModule,
43
+ IAMRouterModule
44
+ ],
45
+ exports: [],
46
+ declarations: [
47
+ ...PAGES
48
+ ],
49
+ providers: []
50
+ }]
51
+ }], null, null); })();
52
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AnatolyIAMPagesModule, { declarations: [i1.SignInPage, i2.SignUpPage, i3.SignOutPage], imports: [CommonModule,
53
+ HttpClientModule, i4.RouterModule] }); })();
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLXBhZ2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9pYW0vaWFtLXBhZ2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsUUFBUTtBQUNSLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQWdCNUQsTUFBTSxPQUFPLHFCQUFxQjsrRUFBckIscUJBQXFCOzREQUFyQixxQkFBcUI7Z0VBWjlCLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsZUFBZTs7dUZBVU4scUJBQXFCO2NBZGpDLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixnQkFBZ0I7b0JBQ2hCLGVBQWU7aUJBQ2hCO2dCQUNELE9BQU8sRUFBRSxFQUNSO2dCQUNELFlBQVksRUFBRTtvQkFDWixHQUFHLEtBQUs7aUJBQ1Q7Z0JBQ0QsU0FBUyxFQUFFLEVBQ1Y7YUFDRjs7d0ZBQ1kscUJBQXFCLDRFQVo5QixZQUFZO1FBQ1osZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDYgRGVjIDIwMThcclxuXHJcbiAgRGVzY3JpcHRpb246XHJcbiAgICBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnRcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8vUm91dGVzXHJcbmltcG9ydCB7IElBTVJvdXRlck1vZHVsZSwgUEFHRVMgfSBmcm9tIFwiLi9pYW0tcGFnZXMucm91dGVzXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBJQU1Sb3V0ZXJNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgLi4uUEFHRVNcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFuYXRvbHlJQU1QYWdlc01vZHVsZSB7XHJcbn1cclxuIl19