@descope/angular-sdk 0.5.10 → 0.5.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +41 -0
- package/.prettierrc +7 -0
- package/CHANGELOG.md +5 -0
- package/LICENSE +21 -0
- package/README.md +647 -11
- package/angular.json +154 -0
- package/{esm2022 → dist/esm2022}/lib/components/access-key-management/access-key-management.component.mjs +4 -4
- package/{esm2022 → dist/esm2022}/lib/components/audit-management/audit-management.component.mjs +4 -4
- package/dist/esm2022/lib/components/descope/descope.component.mjs +156 -0
- package/{esm2022 → dist/esm2022}/lib/components/role-management/role-management.component.mjs +4 -4
- package/dist/esm2022/lib/components/sign-in-flow/sign-in-flow.component.mjs +44 -0
- package/dist/esm2022/lib/components/sign-up-flow/sign-up-flow.component.mjs +44 -0
- package/dist/esm2022/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.mjs +44 -0
- package/{esm2022 → dist/esm2022}/lib/components/user-management/user-management.component.mjs +4 -4
- package/dist/esm2022/lib/components/user-profile/user-profile.component.mjs +66 -0
- package/{esm2022 → dist/esm2022}/lib/descope-auth.module.mjs +5 -5
- package/{esm2022 → dist/esm2022}/lib/services/descope-auth.guard.mjs +1 -1
- package/dist/esm2022/lib/services/descope-auth.service.mjs +154 -0
- package/dist/esm2022/lib/services/descope.interceptor.mjs +51 -0
- package/dist/esm2022/lib/types/types.mjs +6 -0
- package/{esm2022 → dist/esm2022}/lib/utils/constants.mjs +1 -1
- package/dist/esm2022/lib/utils/helpers.mjs +27 -0
- package/{fesm2022 → dist/fesm2022}/descope-angular-sdk.mjs +37 -37
- package/dist/fesm2022/descope-angular-sdk.mjs.map +1 -0
- package/{lib → dist/lib}/services/descope-auth.service.d.ts +3 -2
- package/jest.config.js +17 -0
- package/package.json +62 -19
- package/project.json +17 -0
- package/projects/angular-sdk/.eslintrc.json +32 -0
- package/projects/angular-sdk/ng-package.json +17 -0
- package/projects/angular-sdk/package.json +87 -0
- package/projects/angular-sdk/src/environment.ts +3 -0
- package/projects/angular-sdk/src/lib/components/access-key-management/access-key-management.component.spec.ts +84 -0
- package/projects/angular-sdk/src/lib/components/access-key-management/access-key-management.component.ts +63 -0
- package/projects/angular-sdk/src/lib/components/audit-management/audit-management.component.spec.ts +84 -0
- package/projects/angular-sdk/src/lib/components/audit-management/audit-management.component.ts +63 -0
- package/projects/angular-sdk/src/lib/components/descope/descope.component.spec.ts +142 -0
- package/projects/angular-sdk/src/lib/components/descope/descope.component.ts +171 -0
- package/projects/angular-sdk/src/lib/components/role-management/role-management.component.spec.ts +84 -0
- package/projects/angular-sdk/src/lib/components/role-management/role-management.component.ts +63 -0
- package/projects/angular-sdk/src/lib/components/sign-in-flow/sign-in-flow.component.html +17 -0
- package/projects/angular-sdk/src/lib/components/sign-in-flow/sign-in-flow.component.spec.ts +53 -0
- package/projects/angular-sdk/src/lib/components/sign-in-flow/sign-in-flow.component.ts +35 -0
- package/projects/angular-sdk/src/lib/components/sign-up-flow/sign-up-flow.component.html +17 -0
- package/projects/angular-sdk/src/lib/components/sign-up-flow/sign-up-flow.component.spec.ts +51 -0
- package/projects/angular-sdk/src/lib/components/sign-up-flow/sign-up-flow.component.ts +35 -0
- package/projects/angular-sdk/src/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.html +17 -0
- package/projects/angular-sdk/src/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.spec.ts +53 -0
- package/projects/angular-sdk/src/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.ts +35 -0
- package/projects/angular-sdk/src/lib/components/user-management/user-management.component.spec.ts +84 -0
- package/projects/angular-sdk/src/lib/components/user-management/user-management.component.ts +64 -0
- package/projects/angular-sdk/src/lib/components/user-profile/user-profile.component.spec.ts +93 -0
- package/projects/angular-sdk/src/lib/components/user-profile/user-profile.component.ts +77 -0
- package/projects/angular-sdk/src/lib/descope-auth.module.ts +61 -0
- package/projects/angular-sdk/src/lib/services/descope-auth.guard.spec.ts +76 -0
- package/projects/angular-sdk/src/lib/services/descope-auth.guard.ts +16 -0
- package/projects/angular-sdk/src/lib/services/descope-auth.service.spec.ts +309 -0
- package/projects/angular-sdk/src/lib/services/descope-auth.service.ts +200 -0
- package/projects/angular-sdk/src/lib/services/descope.interceptor.spec.ts +102 -0
- package/projects/angular-sdk/src/lib/services/descope.interceptor.ts +76 -0
- package/projects/angular-sdk/src/lib/types/types.ts +15 -0
- package/projects/angular-sdk/src/lib/utils/constants.ts +8 -0
- package/projects/angular-sdk/src/lib/utils/helpers.spec.ts +103 -0
- package/projects/angular-sdk/src/lib/utils/helpers.ts +36 -0
- package/projects/angular-sdk/src/public-api.ts +18 -0
- package/projects/angular-sdk/tsconfig.lib.json +12 -0
- package/projects/angular-sdk/tsconfig.lib.prod.json +10 -0
- package/projects/angular-sdk/tsconfig.spec.json +11 -0
- package/projects/demo-app/.eslintrc.json +31 -0
- package/projects/demo-app/src/app/app-routing.module.ts +33 -0
- package/projects/demo-app/src/app/app.component.html +3 -0
- package/projects/demo-app/src/app/app.component.scss +18 -0
- package/projects/demo-app/src/app/app.component.spec.ts +37 -0
- package/projects/demo-app/src/app/app.component.ts +8 -0
- package/projects/demo-app/src/app/app.module.ts +63 -0
- package/projects/demo-app/src/app/home/home.component.html +32 -0
- package/projects/demo-app/src/app/home/home.component.scss +15 -0
- package/projects/demo-app/src/app/home/home.component.spec.ts +44 -0
- package/projects/demo-app/src/app/home/home.component.ts +85 -0
- package/projects/demo-app/src/app/interceptor/auth.interceptor.ts +20 -0
- package/projects/demo-app/src/app/login/login.component.html +20 -0
- package/projects/demo-app/src/app/login/login.component.spec.ts +42 -0
- package/projects/demo-app/src/app/login/login.component.ts +41 -0
- package/projects/demo-app/src/app/manage-access-keys/manage-access-keys.component.html +12 -0
- package/projects/demo-app/src/app/manage-access-keys/manage-access-keys.component.spec.ts +36 -0
- package/projects/demo-app/src/app/manage-access-keys/manage-access-keys.component.ts +15 -0
- package/projects/demo-app/src/app/manage-audit/manage-audit.component.html +6 -0
- package/projects/demo-app/src/app/manage-audit/manage-audit.component.spec.ts +36 -0
- package/projects/demo-app/src/app/manage-audit/manage-audit.component.ts +15 -0
- package/projects/demo-app/src/app/manage-roles/manage-roles.component.html +6 -0
- package/projects/demo-app/src/app/manage-roles/manage-roles.component.spec.ts +36 -0
- package/projects/demo-app/src/app/manage-roles/manage-roles.component.ts +15 -0
- package/projects/demo-app/src/app/manage-users/manage-users.component.html +6 -0
- package/projects/demo-app/src/app/manage-users/manage-users.component.spec.ts +36 -0
- package/projects/demo-app/src/app/manage-users/manage-users.component.ts +15 -0
- package/projects/demo-app/src/app/my-user-profile/my-user-profile.component.html +6 -0
- package/projects/demo-app/src/app/my-user-profile/my-user-profile.component.spec.ts +36 -0
- package/projects/demo-app/src/app/my-user-profile/my-user-profile.component.ts +20 -0
- package/projects/demo-app/src/app/my-user-profile/my-user-profile.scss +18 -0
- package/projects/demo-app/src/app/protected/protected.component.html +18 -0
- package/projects/demo-app/src/app/protected/protected.component.scss +8 -0
- package/projects/demo-app/src/app/protected/protected.component.spec.ts +42 -0
- package/projects/demo-app/src/app/protected/protected.component.ts +41 -0
- package/projects/demo-app/src/assets/.gitkeep +0 -0
- package/projects/demo-app/src/environments/conifg.ts +14 -0
- package/projects/demo-app/src/environments/environment.ts +20 -0
- package/projects/demo-app/src/favicon.ico +0 -0
- package/projects/demo-app/src/index.html +17 -0
- package/projects/demo-app/src/main.ts +7 -0
- package/projects/demo-app/src/styles.scss +21 -0
- package/projects/demo-app/tsconfig.app.json +11 -0
- package/projects/demo-app/tsconfig.spec.json +10 -0
- package/scripts/setversion/setversion.js +20 -0
- package/setup-jest.ts +1 -0
- package/tsconfig.json +36 -0
- package/esm2022/lib/components/descope/descope.component.mjs +0 -156
- package/esm2022/lib/components/sign-in-flow/sign-in-flow.component.mjs +0 -44
- package/esm2022/lib/components/sign-up-flow/sign-up-flow.component.mjs +0 -44
- package/esm2022/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.mjs +0 -44
- package/esm2022/lib/components/user-profile/user-profile.component.mjs +0 -66
- package/esm2022/lib/services/descope-auth.service.mjs +0 -154
- package/esm2022/lib/services/descope.interceptor.mjs +0 -51
- package/esm2022/lib/types/types.mjs +0 -6
- package/esm2022/lib/utils/helpers.mjs +0 -27
- package/fesm2022/descope-angular-sdk.mjs.map +0 -1
- /package/{environment.d.ts → dist/environment.d.ts} +0 -0
- /package/{esm2022 → dist/esm2022}/descope-angular-sdk.mjs +0 -0
- /package/{esm2022 → dist/esm2022}/environment.mjs +0 -0
- /package/{esm2022 → dist/esm2022}/public-api.mjs +0 -0
- /package/{index.d.ts → dist/index.d.ts} +0 -0
- /package/{lib → dist/lib}/components/access-key-management/access-key-management.component.d.ts +0 -0
- /package/{lib → dist/lib}/components/audit-management/audit-management.component.d.ts +0 -0
- /package/{lib → dist/lib}/components/descope/descope.component.d.ts +0 -0
- /package/{lib → dist/lib}/components/role-management/role-management.component.d.ts +0 -0
- /package/{lib → dist/lib}/components/sign-in-flow/sign-in-flow.component.d.ts +0 -0
- /package/{lib → dist/lib}/components/sign-up-flow/sign-up-flow.component.d.ts +0 -0
- /package/{lib → dist/lib}/components/sign-up-or-in-flow/sign-up-or-in-flow.component.d.ts +0 -0
- /package/{lib → dist/lib}/components/user-management/user-management.component.d.ts +0 -0
- /package/{lib → dist/lib}/components/user-profile/user-profile.component.d.ts +0 -0
- /package/{lib → dist/lib}/descope-auth.module.d.ts +0 -0
- /package/{lib → dist/lib}/services/descope-auth.guard.d.ts +0 -0
- /package/{lib → dist/lib}/services/descope.interceptor.d.ts +0 -0
- /package/{lib → dist/lib}/types/types.d.ts +0 -0
- /package/{lib → dist/lib}/utils/constants.d.ts +0 -0
- /package/{lib → dist/lib}/utils/helpers.d.ts +0 -0
- /package/{public-api.d.ts → dist/public-api.d.ts} +0 -0
package/{esm2022 → dist/esm2022}/lib/components/user-management/user-management.component.mjs
RENAMED
|
@@ -37,10 +37,10 @@ export class UserManagementComponent {
|
|
|
37
37
|
this.webComponent.logger = this.logger;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
41
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserManagementComponent, deps: [{ token: i0.ElementRef }, { token: i1.DescopeAuthConfig }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
41
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserManagementComponent, isStandalone: true, selector: "user-management[tenant]", inputs: { tenant: "tenant", widgetId: "widgetId", theme: "theme", debug: "debug", logger: "logger" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
|
|
42
42
|
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserManagementComponent, decorators: [{
|
|
44
44
|
type: Component,
|
|
45
45
|
args: [{
|
|
46
46
|
selector: 'user-management[tenant]',
|
|
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
58
58
|
}], logger: [{
|
|
59
59
|
type: Input
|
|
60
60
|
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItc2RrL3NyYy9saWIvY29tcG9uZW50cy91c2VyLW1hbmFnZW1lbnQvdXNlci1tYW5hZ2VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTywyQkFBMkIsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBUzFFLE1BQU0sT0FBTyx1QkFBdUI7SUFhbEMsWUFDVSxVQUFzQixFQUM5QixhQUFnQztRQUR4QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSGYsaUJBQVksR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUM7UUFNaEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUM7SUFDbkQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMxRDtRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDdkU7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNoRTtRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFvQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQzsrR0FwRFUsdUJBQXVCO21HQUF2Qix1QkFBdUIsOE1BRnhCLEVBQUU7OzRGQUVELHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7aUlBS1UsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IERlc2NvcGVVc2VyTWFuYWdlbWVudFdpZGdldCBmcm9tICdAZGVzY29wZS91c2VyLW1hbmFnZW1lbnQtd2lkZ2V0JztcbmltcG9ydCB7IElMb2dnZXIgfSBmcm9tICdAZGVzY29wZS93ZWItY29tcG9uZW50JztcbmltcG9ydCB7IERlc2NvcGVBdXRoQ29uZmlnIH0gZnJvbSAnLi4vLi4vdHlwZXMvdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1c2VyLW1hbmFnZW1lbnRbdGVuYW50XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBjbGFzcyBVc2VyTWFuYWdlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJvamVjdElkOiBzdHJpbmc7XG4gIGJhc2VVcmw/OiBzdHJpbmc7XG4gIGJhc2VTdGF0aWNVcmw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRlbmFudDogc3RyaW5nO1xuICBASW5wdXQoKSB3aWRnZXRJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHRoZW1lOiAnbGlnaHQnIHwgJ2RhcmsnIHwgJ29zJztcbiAgQElucHV0KCkgZGVidWc6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGxvZ2dlcjogSUxvZ2dlcjtcblxuICBwcml2YXRlIHJlYWRvbmx5IHdlYkNvbXBvbmVudCA9IG5ldyBEZXNjb3BlVXNlck1hbmFnZW1lbnRXaWRnZXQoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgZGVzY29wZUNvbmZpZzogRGVzY29wZUF1dGhDb25maWdcbiAgKSB7XG4gICAgdGhpcy5wcm9qZWN0SWQgPSBkZXNjb3BlQ29uZmlnLnByb2plY3RJZDtcbiAgICB0aGlzLmJhc2VVcmwgPSBkZXNjb3BlQ29uZmlnLmJhc2VVcmw7XG4gICAgdGhpcy5iYXNlU3RhdGljVXJsID0gZGVzY29wZUNvbmZpZy5iYXNlU3RhdGljVXJsO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXR1cFdlYkNvbXBvbmVudCgpO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMud2ViQ29tcG9uZW50KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBXZWJDb21wb25lbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBXZWJDb21wb25lbnQoKSB7XG4gICAgdGhpcy53ZWJDb21wb25lbnQuc2V0QXR0cmlidXRlKCdwcm9qZWN0LWlkJywgdGhpcy5wcm9qZWN0SWQpO1xuICAgIHRoaXMud2ViQ29tcG9uZW50LnNldEF0dHJpYnV0ZSgndGVuYW50JywgdGhpcy50ZW5hbnQpO1xuICAgIHRoaXMud2ViQ29tcG9uZW50LnNldEF0dHJpYnV0ZSgnd2lkZ2V0LWlkJywgdGhpcy53aWRnZXRJZCk7XG5cbiAgICBpZiAodGhpcy5iYXNlVXJsKSB7XG4gICAgICB0aGlzLndlYkNvbXBvbmVudC5zZXRBdHRyaWJ1dGUoJ2Jhc2UtdXJsJywgdGhpcy5iYXNlVXJsKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmFzZVN0YXRpY1VybCkge1xuICAgICAgdGhpcy53ZWJDb21wb25lbnQuc2V0QXR0cmlidXRlKCdiYXNlLXN0YXRpYy11cmwnLCB0aGlzLmJhc2VTdGF0aWNVcmwpO1xuICAgIH1cbiAgICBpZiAodGhpcy50aGVtZSkge1xuICAgICAgdGhpcy53ZWJDb21wb25lbnQuc2V0QXR0cmlidXRlKCd0aGVtZScsIHRoaXMudGhlbWUpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgdGhpcy53ZWJDb21wb25lbnQuc2V0QXR0cmlidXRlKCdkZWJ1ZycsIHRoaXMuZGVidWcudG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubG9nZ2VyKSB7XG4gICAgICAodGhpcy53ZWJDb21wb25lbnQgYXMgYW55KS5sb2dnZXIgPSB0aGlzLmxvZ2dlcjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import DescopeUserProfileWidget from '@descope/user-profile-widget';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../types/types";
|
|
5
|
+
export class UserProfileComponent {
|
|
6
|
+
constructor(elementRef, descopeConfig) {
|
|
7
|
+
this.elementRef = elementRef;
|
|
8
|
+
this.logout = new EventEmitter();
|
|
9
|
+
this.webComponent = new DescopeUserProfileWidget();
|
|
10
|
+
this.projectId = descopeConfig.projectId;
|
|
11
|
+
this.baseUrl = descopeConfig.baseUrl;
|
|
12
|
+
this.baseStaticUrl = descopeConfig.baseStaticUrl;
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
this.setupWebComponent();
|
|
16
|
+
this.elementRef.nativeElement.appendChild(this.webComponent);
|
|
17
|
+
}
|
|
18
|
+
ngOnChanges() {
|
|
19
|
+
this.setupWebComponent();
|
|
20
|
+
}
|
|
21
|
+
setupWebComponent() {
|
|
22
|
+
this.webComponent.setAttribute('project-id', this.projectId);
|
|
23
|
+
this.webComponent.setAttribute('widget-id', this.widgetId);
|
|
24
|
+
if (this.baseUrl) {
|
|
25
|
+
this.webComponent.setAttribute('base-url', this.baseUrl);
|
|
26
|
+
}
|
|
27
|
+
if (this.baseStaticUrl) {
|
|
28
|
+
this.webComponent.setAttribute('base-static-url', this.baseStaticUrl);
|
|
29
|
+
}
|
|
30
|
+
if (this.theme) {
|
|
31
|
+
this.webComponent.setAttribute('theme', this.theme);
|
|
32
|
+
}
|
|
33
|
+
if (this.debug) {
|
|
34
|
+
this.webComponent.setAttribute('debug', this.debug.toString());
|
|
35
|
+
}
|
|
36
|
+
if (this.logger) {
|
|
37
|
+
this.webComponent.logger = this.logger;
|
|
38
|
+
}
|
|
39
|
+
if (this.logout) {
|
|
40
|
+
this.webComponent.addEventListener('logout', (e) => {
|
|
41
|
+
this.logout?.emit(e);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserProfileComponent, deps: [{ token: i0.ElementRef }, { token: i1.DescopeAuthConfig }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserProfileComponent, isStandalone: true, selector: "user-profile", inputs: { widgetId: "widgetId", theme: "theme", debug: "debug", logger: "logger" }, outputs: { logout: "logout" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
|
|
47
|
+
}
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserProfileComponent, decorators: [{
|
|
49
|
+
type: Component,
|
|
50
|
+
args: [{
|
|
51
|
+
selector: 'user-profile',
|
|
52
|
+
standalone: true,
|
|
53
|
+
template: ''
|
|
54
|
+
}]
|
|
55
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DescopeAuthConfig }]; }, propDecorators: { widgetId: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], theme: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], debug: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], logger: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], logout: [{
|
|
64
|
+
type: Output
|
|
65
|
+
}] } });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItc2RrL3NyYy9saWIvY29tcG9uZW50cy91c2VyLXByb2ZpbGUvdXNlci1wcm9maWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sd0JBQXdCLE1BQU0sOEJBQThCLENBQUM7OztBQVNwRSxNQUFNLE9BQU8sb0JBQW9CO0lBYy9CLFlBQ1UsVUFBc0IsRUFDOUIsYUFBZ0M7UUFEeEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUx0QixXQUFNLEdBQThCLElBQUksWUFBWSxFQUFlLENBQUM7UUFFN0QsaUJBQVksR0FBRyxJQUFJLHdCQUF3QixFQUFFLENBQUM7UUFNN0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUM7SUFDbkQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDMUQ7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyRDtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDaEU7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBb0IsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNqRDtRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBUSxFQUFFLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQWdCLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzsrR0F6RFUsb0JBQW9CO21HQUFwQixvQkFBb0IsZ05BRnJCLEVBQUU7OzRGQUVELG9CQUFvQjtrQkFMaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxFQUFFO2lCQUNiO2lJQUtVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IERlc2NvcGVVc2VyUHJvZmlsZVdpZGdldCBmcm9tICdAZGVzY29wZS91c2VyLXByb2ZpbGUtd2lkZ2V0JztcbmltcG9ydCB7IElMb2dnZXIgfSBmcm9tICdAZGVzY29wZS93ZWItY29tcG9uZW50JztcbmltcG9ydCB7IERlc2NvcGVBdXRoQ29uZmlnIH0gZnJvbSAnLi4vLi4vdHlwZXMvdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1c2VyLXByb2ZpbGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgY2xhc3MgVXNlclByb2ZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByb2plY3RJZDogc3RyaW5nO1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICBiYXNlU3RhdGljVXJsPzogc3RyaW5nO1xuICBASW5wdXQoKSB3aWRnZXRJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHRoZW1lOiAnbGlnaHQnIHwgJ2RhcmsnIHwgJ29zJztcbiAgQElucHV0KCkgZGVidWc6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGxvZ2dlcjogSUxvZ2dlcjtcblxuICBAT3V0cHV0KCkgbG9nb3V0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHdlYkNvbXBvbmVudCA9IG5ldyBEZXNjb3BlVXNlclByb2ZpbGVXaWRnZXQoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgZGVzY29wZUNvbmZpZzogRGVzY29wZUF1dGhDb25maWdcbiAgKSB7XG4gICAgdGhpcy5wcm9qZWN0SWQgPSBkZXNjb3BlQ29uZmlnLnByb2plY3RJZDtcbiAgICB0aGlzLmJhc2VVcmwgPSBkZXNjb3BlQ29uZmlnLmJhc2VVcmw7XG4gICAgdGhpcy5iYXNlU3RhdGljVXJsID0gZGVzY29wZUNvbmZpZy5iYXNlU3RhdGljVXJsO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXR1cFdlYkNvbXBvbmVudCgpO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMud2ViQ29tcG9uZW50KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBXZWJDb21wb25lbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBXZWJDb21wb25lbnQoKSB7XG4gICAgdGhpcy53ZWJDb21wb25lbnQuc2V0QXR0cmlidXRlKCdwcm9qZWN0LWlkJywgdGhpcy5wcm9qZWN0SWQpO1xuICAgIHRoaXMud2ViQ29tcG9uZW50LnNldEF0dHJpYnV0ZSgnd2lkZ2V0LWlkJywgdGhpcy53aWRnZXRJZCk7XG4gICAgaWYgKHRoaXMuYmFzZVVybCkge1xuICAgICAgdGhpcy53ZWJDb21wb25lbnQuc2V0QXR0cmlidXRlKCdiYXNlLXVybCcsIHRoaXMuYmFzZVVybCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmJhc2VTdGF0aWNVcmwpIHtcbiAgICAgIHRoaXMud2ViQ29tcG9uZW50LnNldEF0dHJpYnV0ZSgnYmFzZS1zdGF0aWMtdXJsJywgdGhpcy5iYXNlU3RhdGljVXJsKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudGhlbWUpIHtcbiAgICAgIHRoaXMud2ViQ29tcG9uZW50LnNldEF0dHJpYnV0ZSgndGhlbWUnLCB0aGlzLnRoZW1lKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIHRoaXMud2ViQ29tcG9uZW50LnNldEF0dHJpYnV0ZSgnZGVidWcnLCB0aGlzLmRlYnVnLnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxvZ2dlcikge1xuICAgICAgKHRoaXMud2ViQ29tcG9uZW50IGFzIGFueSkubG9nZ2VyID0gdGhpcy5sb2dnZXI7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubG9nb3V0KSB7XG4gICAgICB0aGlzLndlYkNvbXBvbmVudC5hZGRFdmVudExpc3RlbmVyKCdsb2dvdXQnLCAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5sb2dvdXQ/LmVtaXQoZSBhcyBDdXN0b21FdmVudCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -22,8 +22,8 @@ export class DescopeAuthModule {
|
|
|
22
22
|
providers: [{ provide: DescopeAuthConfig, useValue: config }]
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
26
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DescopeAuthModule, deps: [{ token: DescopeAuthModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
26
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DescopeAuthModule, imports: [DescopeComponent,
|
|
27
27
|
SignInFlowComponent,
|
|
28
28
|
SignUpFlowComponent,
|
|
29
29
|
SignUpOrInFlowComponent,
|
|
@@ -40,9 +40,9 @@ export class DescopeAuthModule {
|
|
|
40
40
|
AccessKeyManagementComponent,
|
|
41
41
|
AuditManagementComponent,
|
|
42
42
|
UserProfileComponent] }); }
|
|
43
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.
|
|
43
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DescopeAuthModule }); }
|
|
44
44
|
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DescopeAuthModule, decorators: [{
|
|
46
46
|
type: NgModule,
|
|
47
47
|
args: [{
|
|
48
48
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
@@ -74,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
74
74
|
}, {
|
|
75
75
|
type: SkipSelf
|
|
76
76
|
}] }]; } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY29wZS1hdXRoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItc2RrL3NyYy9saWIvZGVzY29wZS1hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsc0JBQXNCLEVBRXRCLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUEyQmxELE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBb0MsWUFBZ0M7UUFDbEUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FDYiwwREFBMEQsQ0FDM0QsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQ1osTUFBMEI7UUFFMUIsT0FBTztZQUNMLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQzlELENBQUM7SUFDSixDQUFDOytHQWhCVSxpQkFBaUI7Z0hBQWpCLGlCQUFpQixZQXRCMUIsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsdUJBQXVCO1lBQ3ZCLHVCQUF1QjtZQUN2Qix1QkFBdUI7WUFDdkIsNEJBQTRCO1lBQzVCLHdCQUF3QjtZQUN4QixvQkFBb0IsYUFHcEIsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsdUJBQXVCO1lBQ3ZCLHVCQUF1QjtZQUN2Qix1QkFBdUI7WUFDdkIsNEJBQTRCO1lBQzVCLHdCQUF3QjtZQUN4QixvQkFBb0I7Z0hBR1gsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQXpCN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsd0JBQXdCO3dCQUN4QixvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2Qiw0QkFBNEI7d0JBQzVCLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3FCQUNyQjtpQkFDRjs7MEJBRWMsUUFBUTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG4gIE1vZHVsZVdpdGhQcm92aWRlcnMsXG4gIE5nTW9kdWxlLFxuICBPcHRpb25hbCxcbiAgU2tpcFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZXNjb3BlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Rlc2NvcGUvZGVzY29wZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2lnbkluRmxvd0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaWduLWluLWZsb3cvc2lnbi1pbi1mbG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWduVXBGbG93Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NpZ24tdXAtZmxvdy9zaWduLXVwLWZsb3cuY29tcG9uZW50JztcbmltcG9ydCB7IFNpZ25VcE9ySW5GbG93Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NpZ24tdXAtb3ItaW4tZmxvdy9zaWduLXVwLW9yLWluLWZsb3cuY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJNYW5hZ2VtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VzZXItbWFuYWdlbWVudC91c2VyLW1hbmFnZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFJvbGVNYW5hZ2VtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JvbGUtbWFuYWdlbWVudC9yb2xlLW1hbmFnZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEFjY2Vzc0tleU1hbmFnZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWNjZXNzLWtleS1tYW5hZ2VtZW50L2FjY2Vzcy1rZXktbWFuYWdlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXVkaXRNYW5hZ2VtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2F1ZGl0LW1hbmFnZW1lbnQvYXVkaXQtbWFuYWdlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlclByb2ZpbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlci1wcm9maWxlL3VzZXItcHJvZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVzY29wZUF1dGhDb25maWcgfSBmcm9tICcuL3R5cGVzL3R5cGVzJztcblxuQE5nTW9kdWxlKHtcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICBpbXBvcnRzOiBbXG4gICAgRGVzY29wZUNvbXBvbmVudCxcbiAgICBTaWduSW5GbG93Q29tcG9uZW50LFxuICAgIFNpZ25VcEZsb3dDb21wb25lbnQsXG4gICAgU2lnblVwT3JJbkZsb3dDb21wb25lbnQsXG4gICAgVXNlck1hbmFnZW1lbnRDb21wb25lbnQsXG4gICAgUm9sZU1hbmFnZW1lbnRDb21wb25lbnQsXG4gICAgQWNjZXNzS2V5TWFuYWdlbWVudENvbXBvbmVudCxcbiAgICBBdWRpdE1hbmFnZW1lbnRDb21wb25lbnQsXG4gICAgVXNlclByb2ZpbGVDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIERlc2NvcGVDb21wb25lbnQsXG4gICAgU2lnbkluRmxvd0NvbXBvbmVudCxcbiAgICBTaWduVXBGbG93Q29tcG9uZW50LFxuICAgIFNpZ25VcE9ySW5GbG93Q29tcG9uZW50LFxuICAgIFVzZXJNYW5hZ2VtZW50Q29tcG9uZW50LFxuICAgIFJvbGVNYW5hZ2VtZW50Q29tcG9uZW50LFxuICAgIEFjY2Vzc0tleU1hbmFnZW1lbnRDb21wb25lbnQsXG4gICAgQXVkaXRNYW5hZ2VtZW50Q29tcG9uZW50LFxuICAgIFVzZXJQcm9maWxlQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVzY29wZUF1dGhNb2R1bGUge1xuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRNb2R1bGU/OiBEZXNjb3BlQXV0aE1vZHVsZSkge1xuICAgIGlmIChwYXJlbnRNb2R1bGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Rlc2NvcGVBdXRoTW9kdWxlIGlzIGFscmVhZHkgbG9hZGVkLiBJbXBvcnQgaXQgb25seSBvbmNlJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZm9yUm9vdChcbiAgICBjb25maWc/OiBEZXNjb3BlQXV0aENvbmZpZ1xuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPERlc2NvcGVBdXRoTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBEZXNjb3BlQXV0aE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRGVzY29wZUF1dGhDb25maWcsIHVzZVZhbHVlOiBjb25maWcgfV1cbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -12,4 +12,4 @@ export const descopeAuthGuard = (route) => {
|
|
|
12
12
|
}
|
|
13
13
|
return of(isAuthenticated);
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY29wZS1hdXRoLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1zZGsvc3JjL2xpYi9zZXJ2aWNlcy9kZXNjb3BlLWF1dGguZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQTBCLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBNkIsRUFBRSxFQUFFO0lBQ2hFLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDckQsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3RELElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRTtRQUNyQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzdDO0lBQ0QsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERlc2NvcGVBdXRoU2VydmljZSB9IGZyb20gJy4vZGVzY29wZS1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZyb20sIG9mIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjb25zdCBkZXNjb3BlQXV0aEd1YXJkID0gKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSA9PiB7XG4gIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0KERlc2NvcGVBdXRoU2VydmljZSk7XG4gIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBjb25zdCBmYWxsYmFja1VybCA9IHJvdXRlLmRhdGFbJ2Rlc2NvcGVGYWxsYmFja1VybCddO1xuICBjb25zdCBpc0F1dGhlbnRpY2F0ZWQgPSBhdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKTtcbiAgaWYgKCFpc0F1dGhlbnRpY2F0ZWQgJiYgISFmYWxsYmFja1VybCkge1xuICAgIHJldHVybiBmcm9tKHJvdXRlci5uYXZpZ2F0ZShbZmFsbGJhY2tVcmxdKSk7XG4gIH1cbiAgcmV0dXJuIG9mKGlzQXV0aGVudGljYXRlZCk7XG59O1xuIl19
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import createSdk from '@descope/web-js-sdk';
|
|
3
|
+
import { BehaviorSubject, finalize, tap } from 'rxjs';
|
|
4
|
+
import { observabilify } from '../utils/helpers';
|
|
5
|
+
import { baseHeaders, isBrowser } from '../utils/constants';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../types/types";
|
|
8
|
+
export class DescopeAuthService {
|
|
9
|
+
constructor(config) {
|
|
10
|
+
this.descopeSdk = observabilify(createSdk({
|
|
11
|
+
persistTokens: isBrowser(),
|
|
12
|
+
...config,
|
|
13
|
+
storeLastAuthenticatedUser: isBrowser(),
|
|
14
|
+
autoRefresh: isBrowser(),
|
|
15
|
+
baseHeaders
|
|
16
|
+
}));
|
|
17
|
+
this.sessionSubject = new BehaviorSubject({
|
|
18
|
+
isAuthenticated: false,
|
|
19
|
+
isSessionLoading: false,
|
|
20
|
+
sessionToken: ''
|
|
21
|
+
});
|
|
22
|
+
this.session$ = this.sessionSubject.asObservable();
|
|
23
|
+
this.userSubject = new BehaviorSubject({
|
|
24
|
+
isUserLoading: false
|
|
25
|
+
});
|
|
26
|
+
this.user$ = this.userSubject.asObservable();
|
|
27
|
+
this.descopeSdk.onSessionTokenChange(this.setSession.bind(this));
|
|
28
|
+
this.descopeSdk.onUserChange(this.setUser.bind(this));
|
|
29
|
+
}
|
|
30
|
+
refreshSession() {
|
|
31
|
+
const beforeRefreshSession = this.sessionSubject.value;
|
|
32
|
+
this.sessionSubject.next({
|
|
33
|
+
...beforeRefreshSession,
|
|
34
|
+
isSessionLoading: true
|
|
35
|
+
});
|
|
36
|
+
return this.descopeSdk.refresh().pipe(tap((data) => {
|
|
37
|
+
const afterRequestSession = this.sessionSubject.value;
|
|
38
|
+
if (data.ok && data.data) {
|
|
39
|
+
this.sessionSubject.next({
|
|
40
|
+
...afterRequestSession,
|
|
41
|
+
sessionToken: data.data.sessionJwt,
|
|
42
|
+
isAuthenticated: !!data.data.sessionJwt
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.sessionSubject.next({
|
|
47
|
+
...afterRequestSession,
|
|
48
|
+
sessionToken: '',
|
|
49
|
+
isAuthenticated: false
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}), finalize(() => {
|
|
53
|
+
const afterRefreshSession = this.sessionSubject.value;
|
|
54
|
+
this.sessionSubject.next({
|
|
55
|
+
...afterRefreshSession,
|
|
56
|
+
isSessionLoading: false
|
|
57
|
+
});
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
refreshUser() {
|
|
61
|
+
const beforeRefreshUser = this.userSubject.value;
|
|
62
|
+
this.userSubject.next({
|
|
63
|
+
...beforeRefreshUser,
|
|
64
|
+
isUserLoading: true
|
|
65
|
+
});
|
|
66
|
+
return this.descopeSdk.me().pipe(tap((data) => {
|
|
67
|
+
const afterRequestUser = this.userSubject.value;
|
|
68
|
+
if (data.data) {
|
|
69
|
+
this.userSubject.next({
|
|
70
|
+
...afterRequestUser,
|
|
71
|
+
user: {
|
|
72
|
+
...data.data
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}), finalize(() => {
|
|
77
|
+
const afterRefreshUser = this.userSubject.value;
|
|
78
|
+
this.userSubject.next({
|
|
79
|
+
...afterRefreshUser,
|
|
80
|
+
isUserLoading: false
|
|
81
|
+
});
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
getSessionToken() {
|
|
85
|
+
if (isBrowser()) {
|
|
86
|
+
return this.descopeSdk.getSessionToken();
|
|
87
|
+
}
|
|
88
|
+
console.warn('Get session token is not supported in SSR');
|
|
89
|
+
return '';
|
|
90
|
+
}
|
|
91
|
+
getRefreshToken() {
|
|
92
|
+
if (isBrowser()) {
|
|
93
|
+
return this.descopeSdk.getRefreshToken();
|
|
94
|
+
}
|
|
95
|
+
this.descopeSdk.getJwtPermissions;
|
|
96
|
+
console.warn('Get refresh token is not supported in SSR');
|
|
97
|
+
return '';
|
|
98
|
+
}
|
|
99
|
+
isSessionTokenExpired(token = this.getSessionToken()) {
|
|
100
|
+
if (isBrowser()) {
|
|
101
|
+
return this.descopeSdk.isJwtExpired(token ?? '');
|
|
102
|
+
}
|
|
103
|
+
console.warn('isSessionTokenExpired is not supported in SSR');
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
isRefreshTokenExpired(token = this.getRefreshToken()) {
|
|
107
|
+
if (isBrowser()) {
|
|
108
|
+
return this.descopeSdk.isJwtExpired(token ?? '');
|
|
109
|
+
}
|
|
110
|
+
console.warn('isRefreshTokenExpired is not supported in SSR');
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
getJwtPermissions(token = this.getSessionToken(), tenant) {
|
|
114
|
+
if (token === null) {
|
|
115
|
+
console.error('Could not get JWT Permissions - not authenticated');
|
|
116
|
+
return [];
|
|
117
|
+
}
|
|
118
|
+
return this.descopeSdk.getJwtPermissions(token, tenant);
|
|
119
|
+
}
|
|
120
|
+
getJwtRoles(token = this.getSessionToken(), tenant) {
|
|
121
|
+
if (token === null) {
|
|
122
|
+
console.error('Could not get JWT Roles - not authenticated');
|
|
123
|
+
return [];
|
|
124
|
+
}
|
|
125
|
+
return this.descopeSdk.getJwtRoles(token, tenant);
|
|
126
|
+
}
|
|
127
|
+
isAuthenticated() {
|
|
128
|
+
return this.sessionSubject.value.isAuthenticated;
|
|
129
|
+
}
|
|
130
|
+
setSession(sessionToken) {
|
|
131
|
+
const currentSession = this.sessionSubject.value;
|
|
132
|
+
this.sessionSubject.next({
|
|
133
|
+
sessionToken,
|
|
134
|
+
isAuthenticated: !!sessionToken,
|
|
135
|
+
isSessionLoading: currentSession.isSessionLoading
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
setUser(user) {
|
|
139
|
+
const currentUser = this.userSubject.value;
|
|
140
|
+
this.userSubject.next({
|
|
141
|
+
isUserLoading: currentUser.isUserLoading,
|
|
142
|
+
user
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DescopeAuthService, deps: [{ token: i1.DescopeAuthConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
146
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DescopeAuthService, providedIn: 'root' }); }
|
|
147
|
+
}
|
|
148
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DescopeAuthService, decorators: [{
|
|
149
|
+
type: Injectable,
|
|
150
|
+
args: [{
|
|
151
|
+
providedIn: 'root'
|
|
152
|
+
}]
|
|
153
|
+
}], ctorParameters: function () { return [{ type: i1.DescopeAuthConfig }]; } });
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY29wZS1hdXRoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXNkay9zcmMvbGliL3NlcnZpY2VzL2Rlc2NvcGUtYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQWtCLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBaUI1RCxNQUFNLE9BQU8sa0JBQWtCO0lBTzdCLFlBQVksTUFBeUI7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQzdCLFNBQVMsQ0FBQztZQUNSLGFBQWEsRUFBRSxTQUFTLEVBQVU7WUFDbEMsR0FBRyxNQUFNO1lBQ1QsMEJBQTBCLEVBQUUsU0FBUyxFQUFVO1lBQy9DLFdBQVcsRUFBRSxTQUFTLEVBQVU7WUFDaEMsV0FBVztTQUNaLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBaUI7WUFDeEQsZUFBZSxFQUFFLEtBQUs7WUFDdEIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixZQUFZLEVBQUUsRUFBRTtTQUNqQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBYztZQUNsRCxhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxH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IGZvciBUUyBpc3N1ZSBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzQyODczXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbmltcG9ydCB0eXBlICogYXMgXzEgZnJvbSAnQGRlc2NvcGUvY29yZS1qcy1zZGsnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBVc2VyUmVzcG9uc2UgfSBmcm9tICdAZGVzY29wZS93ZWItanMtc2RrJztcbmltcG9ydCBjcmVhdGVTZGsgZnJvbSAnQGRlc2NvcGUvd2ViLWpzLXNkayc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbmFsaXplLCBPYnNlcnZhYmxlLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG9ic2VydmFiaWxpZnksIE9ic2VydmFibGVmaWVkIH0gZnJvbSAnLi4vdXRpbHMvaGVscGVycyc7XG5pbXBvcnQgeyBiYXNlSGVhZGVycywgaXNCcm93c2VyIH0gZnJvbSAnLi4vdXRpbHMvY29uc3RhbnRzJztcbmltcG9ydCB7IERlc2NvcGVBdXRoQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xuXG50eXBlIERlc2NvcGVTREsgPSBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVTZGs+O1xudHlwZSBBbmd1bGFyRGVzY29wZVNESyA9IE9ic2VydmFibGVmaWVkPERlc2NvcGVTREs+O1xuXG5leHBvcnQgaW50ZXJmYWNlIERlc2NvcGVTZXNzaW9uIHtcbiAgaXNBdXRoZW50aWNhdGVkOiBib29sZWFuO1xuICBpc1Nlc3Npb25Mb2FkaW5nOiBib29sZWFuO1xuICBzZXNzaW9uVG9rZW46IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCB0eXBlIERlc2NvcGVVc2VyID0geyB1c2VyPzogVXNlclJlc3BvbnNlOyBpc1VzZXJMb2FkaW5nOiBib29sZWFuIH07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERlc2NvcGVBdXRoU2VydmljZSB7XG4gIHB1YmxpYyBkZXNjb3BlU2RrOiBBbmd1bGFyRGVzY29wZVNESztcbiAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PERlc2NvcGVTZXNzaW9uPjtcbiAgcHJpdmF0ZSByZWFkb25seSB1c2VyU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PERlc2NvcGVVc2VyPjtcbiAgcmVhZG9ubHkgc2Vzc2lvbiQ6IE9ic2VydmFibGU8RGVzY29wZVNlc3Npb24+O1xuICByZWFkb25seSB1c2VyJDogT2JzZXJ2YWJsZTxEZXNjb3BlVXNlcj47XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBEZXNjb3BlQXV0aENvbmZpZykge1xuICAgIHRoaXMuZGVzY29wZVNkayA9IG9ic2VydmFiaWxpZnk8RGVzY29wZVNESz4oXG4gICAgICBjcmVhdGVTZGsoe1xuICAgICAgICBwZXJzaXN0VG9rZW5zOiBpc0Jyb3dzZXIoKSBhcyB0cnVlLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHN0b3JlTGFzdEF1dGhlbnRpY2F0ZWRVc2VyOiBpc0Jyb3dzZXIoKSBhcyB0cnVlLFxuICAgICAgICBhdXRvUmVmcmVzaDogaXNCcm93c2VyKCkgYXMgdHJ1ZSxcbiAgICAgICAgYmFzZUhlYWRlcnNcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc2Vzc2lvblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERlc2NvcGVTZXNzaW9uPih7XG4gICAgICBpc0F1dGhlbnRpY2F0ZWQ6IGZhbHNlLFxuICAgICAgaXNTZXNzaW9uTG9hZGluZzogZmFsc2UsXG4gICAgICBzZXNzaW9uVG9rZW46ICcnXG4gICAgfSk7XG4gICAgdGhpcy5zZXNzaW9uJCA9IHRoaXMuc2Vzc2lvblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy51c2VyU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGVzY29wZVVzZXI+KHtcbiAgICAgIGlzVXNlckxvYWRpbmc6IGZhbHNlXG4gICAgfSk7XG4gICAgdGhpcy51c2VyJCA9IHRoaXMudXNlclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5kZXNjb3BlU2RrLm9uU2Vzc2lvblRva2VuQ2hhbmdlKHRoaXMuc2V0U2Vzc2lvbi5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmRlc2NvcGVTZGsub25Vc2VyQ2hhbmdlKHRoaXMuc2V0VXNlci5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIHJlZnJlc2hTZXNzaW9uKCkge1xuICAgIGNvbnN0IGJlZm9yZVJlZnJlc2hTZXNzaW9uID0gdGhpcy5zZXNzaW9uU3ViamVjdC52YWx1ZTtcbiAgICB0aGlzLnNlc3Npb25TdWJqZWN0Lm5leHQoe1xuICAgICAgLi4uYmVmb3JlUmVmcmVzaFNlc3Npb24sXG4gICAgICBpc1Nlc3Npb25Mb2FkaW5nOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuZGVzY29wZVNkay5yZWZyZXNoKCkucGlwZShcbiAgICAgIHRhcCgoZGF0YSkgPT4ge1xuICAgICAgICBjb25zdCBhZnRlclJlcXVlc3RTZXNzaW9uID0gdGhpcy5zZXNzaW9uU3ViamVjdC52YWx1ZTtcbiAgICAgICAgaWYgKGRhdGEub2sgJiYgZGF0YS5kYXRhKSB7XG4gICAgICAgICAgdGhpcy5zZXNzaW9uU3ViamVjdC5uZXh0KHtcbiAgICAgICAgICAgIC4uLmFmdGVyUmVxdWVzdFNlc3Npb24sXG4gICAgICAgICAgICBzZXNzaW9uVG9rZW46IGRhdGEuZGF0YS5zZXNzaW9uSnd0LFxuICAgICAgICAgICAgaXNBdXRoZW50aWNhdGVkOiAhIWRhdGEuZGF0YS5zZXNzaW9uSnd0XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXNzaW9uU3ViamVjdC5uZXh0KHtcbiAgICAgICAgICAgIC4uLmFmdGVyUmVxdWVzdFNlc3Npb24sXG4gICAgICAgICAgICBzZXNzaW9uVG9rZW46ICcnLFxuICAgICAgICAgICAgaXNBdXRoZW50aWNhdGVkOiBmYWxzZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgY29uc3QgYWZ0ZXJSZWZyZXNoU2Vzc2lvbiA9IHRoaXMuc2Vzc2lvblN1YmplY3QudmFsdWU7XG4gICAgICAgIHRoaXMuc2Vzc2lvblN1YmplY3QubmV4dCh7XG4gICAgICAgICAgLi4uYWZ0ZXJSZWZyZXNoU2Vzc2lvbixcbiAgICAgICAgICBpc1Nlc3Npb25Mb2FkaW5nOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJlZnJlc2hVc2VyKCkge1xuICAgIGNvbnN0IGJlZm9yZVJlZnJlc2hVc2VyID0gdGhpcy51c2VyU3ViamVjdC52YWx1ZTtcbiAgICB0aGlzLnVzZXJTdWJqZWN0Lm5leHQoe1xuICAgICAgLi4uYmVmb3JlUmVmcmVzaFVzZXIsXG4gICAgICBpc1VzZXJMb2FkaW5nOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuZGVzY29wZVNkay5tZSgpLnBpcGUoXG4gICAgICB0YXAoKGRhdGEpID0+IHtcbiAgICAgICAgY29uc3QgYWZ0ZXJSZXF1ZXN0VXNlciA9IHRoaXMudXNlclN1YmplY3QudmFsdWU7XG4gICAgICAgIGlmIChkYXRhLmRhdGEpIHtcbiAgICAgICAgICB0aGlzLnVzZXJTdWJqZWN0Lm5leHQoe1xuICAgICAgICAgICAgLi4uYWZ0ZXJSZXF1ZXN0VXNlcixcbiAgICAgICAgICAgIHVzZXI6IHtcbiAgICAgICAgICAgICAgLi4uZGF0YS5kYXRhXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICBjb25zdCBhZnRlclJlZnJlc2hVc2VyID0gdGhpcy51c2VyU3ViamVjdC52YWx1ZTtcbiAgICAgICAgdGhpcy51c2VyU3ViamVjdC5uZXh0KHtcbiAgICAgICAgICAuLi5hZnRlclJlZnJlc2hVc2VyLFxuICAgICAgICAgIGlzVXNlckxvYWRpbmc6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0U2Vzc2lvblRva2VuKCkge1xuICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5kZXNjb3BlU2RrIGFzIEFuZ3VsYXJEZXNjb3BlU0RLICYge1xuICAgICAgICAgIGdldFNlc3Npb25Ub2tlbjogKCkgPT4gc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfVxuICAgICAgKS5nZXRTZXNzaW9uVG9rZW4oKTtcbiAgICB9XG4gICAgY29uc29sZS53YXJuKCdHZXQgc2Vzc2lvbiB0b2tlbiBpcyBub3Qgc3VwcG9ydGVkIGluIFNTUicpO1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldFJlZnJlc2hUb2tlbigpIHtcbiAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMuZGVzY29wZVNkayBhcyBBbmd1bGFyRGVzY29wZVNESyAmIHtcbiAgICAgICAgICBnZXRSZWZyZXNoVG9rZW46ICgpID0+IHN0cmluZyB8IG51bGw7XG4gICAgICAgIH1cbiAgICAgICkuZ2V0UmVmcmVzaFRva2VuKCk7XG4gICAgfVxuICAgIHRoaXMuZGVzY29wZVNkay5nZXRKd3RQZXJtaXNzaW9ucztcbiAgICBjb25zb2xlLndhcm4oJ0dldCByZWZyZXNoIHRva2VuIGlzIG5vdCBzdXBwb3J0ZWQgaW4gU1NSJyk7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaXNTZXNzaW9uVG9rZW5FeHBpcmVkKHRva2VuID0gdGhpcy5nZXRTZXNzaW9uVG9rZW4oKSkge1xuICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVzY29wZVNkay5pc0p3dEV4cGlyZWQodG9rZW4gPz8gJycpO1xuICAgIH1cbiAgICBjb25zb2xlLndhcm4oJ2lzU2Vzc2lvblRva2VuRXhwaXJlZCBpcyBub3Qgc3VwcG9ydGVkIGluIFNTUicpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaXNSZWZyZXNoVG9rZW5FeHBpcmVkKHRva2VuID0gdGhpcy5nZXRSZWZyZXNoVG9rZW4oKSkge1xuICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5kZXNjb3BlU2RrIGFzIEFuZ3VsYXJEZXNjb3BlU0RLICYge1xuICAgICAgICAgIGlzSnd0RXhwaXJlZDogKHRva2VuOiBzdHJpbmcpID0+IGJvb2xlYW4gfCBudWxsO1xuICAgICAgICB9XG4gICAgICApLmlzSnd0RXhwaXJlZCh0b2tlbiA/PyAnJyk7XG4gICAgfVxuICAgIGNvbnNvbGUud2FybignaXNSZWZyZXNoVG9rZW5FeHBpcmVkIGlzIG5vdCBzdXBwb3J0ZWQgaW4gU1NSJyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXRKd3RQZXJtaXNzaW9ucyh0b2tlbiA9IHRoaXMuZ2V0U2Vzc2lvblRva2VuKCksIHRlbmFudD86IHN0cmluZykge1xuICAgIGlmICh0b2tlbiA9PT0gbnVsbCkge1xuICAgICAgY29uc29sZS5lcnJvcignQ291bGQgbm90IGdldCBKV1QgUGVybWlzc2lvbnMgLSBub3QgYXV0aGVudGljYXRlZCcpO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5kZXNjb3BlU2RrLmdldEp3dFBlcm1pc3Npb25zKHRva2VuLCB0ZW5hbnQpO1xuICB9XG5cbiAgZ2V0Snd0Um9sZXModG9rZW4gPSB0aGlzLmdldFNlc3Npb25Ub2tlbigpLCB0ZW5hbnQ/OiBzdHJpbmcpIHtcbiAgICBpZiAodG9rZW4gPT09IG51bGwpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCBnZXQgSldUIFJvbGVzIC0gbm90IGF1dGhlbnRpY2F0ZWQnKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGVzY29wZVNkay5nZXRKd3RSb2xlcyh0b2tlbiwgdGVuYW50KTtcbiAgfVxuXG4gIGlzQXV0aGVudGljYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uU3ViamVjdC52YWx1ZS5pc0F1dGhlbnRpY2F0ZWQ7XG4gIH1cblxuICBwcml2YXRlIHNldFNlc3Npb24oc2Vzc2lvblRva2VuOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgY29uc3QgY3VycmVudFNlc3Npb24gPSB0aGlzLnNlc3Npb25TdWJqZWN0LnZhbHVlO1xuICAgIHRoaXMuc2Vzc2lvblN1YmplY3QubmV4dCh7XG4gICAgICBzZXNzaW9uVG9rZW4sXG4gICAgICBpc0F1dGhlbnRpY2F0ZWQ6ICEhc2Vzc2lvblRva2VuLFxuICAgICAgaXNTZXNzaW9uTG9hZGluZzogY3VycmVudFNlc3Npb24uaXNTZXNzaW9uTG9hZGluZ1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRVc2VyKHVzZXI6IFVzZXJSZXNwb25zZSkge1xuICAgIGNvbnN0IGN1cnJlbnRVc2VyID0gdGhpcy51c2VyU3ViamVjdC52YWx1ZTtcbiAgICB0aGlzLnVzZXJTdWJqZWN0Lm5leHQoe1xuICAgICAgaXNVc2VyTG9hZGluZzogY3VycmVudFVzZXIuaXNVc2VyTG9hZGluZyxcbiAgICAgIHVzZXJcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { throwError } from 'rxjs';
|
|
3
|
+
import { catchError, switchMap } from 'rxjs/operators';
|
|
4
|
+
import { DescopeAuthService } from './descope-auth.service';
|
|
5
|
+
import { DescopeAuthConfig } from '../types/types';
|
|
6
|
+
export const descopeInterceptor = (request, next) => {
|
|
7
|
+
const config = inject(DescopeAuthConfig);
|
|
8
|
+
const authService = inject(DescopeAuthService);
|
|
9
|
+
function refreshAndRetry(request, next, error) {
|
|
10
|
+
return authService.refreshSession().pipe(switchMap((refreshed) => {
|
|
11
|
+
if (refreshed.ok && refreshed.data) {
|
|
12
|
+
const requestWithRefreshedToken = addTokenToRequest(request, refreshed.data?.sessionJwt);
|
|
13
|
+
return next(requestWithRefreshedToken);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return throwError(() => error ?? new Error('Could not refresh session!'));
|
|
17
|
+
}
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
function shouldIntercept(request) {
|
|
21
|
+
return ((config.pathsToIntercept?.length === 0 ||
|
|
22
|
+
config.pathsToIntercept?.some((path) => request.url.includes(path))) ??
|
|
23
|
+
true);
|
|
24
|
+
}
|
|
25
|
+
function addTokenToRequest(request, token) {
|
|
26
|
+
return request.clone({
|
|
27
|
+
setHeaders: {
|
|
28
|
+
Authorization: `Bearer ${token}`
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
if (shouldIntercept(request)) {
|
|
33
|
+
const token = authService.getSessionToken();
|
|
34
|
+
if (!token) {
|
|
35
|
+
return refreshAndRetry(request, next);
|
|
36
|
+
}
|
|
37
|
+
const requestWithToken = addTokenToRequest(request, token);
|
|
38
|
+
return next(requestWithToken).pipe(catchError((error) => {
|
|
39
|
+
if (error.status === 401 || error.status === 403) {
|
|
40
|
+
return refreshAndRetry(request, next, error);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return throwError(() => error);
|
|
44
|
+
}
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
return next(request);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY29wZS5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItc2RrL3NyYy9saWIvc2VydmljZXMvZGVzY29wZS5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBT3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBc0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDckUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDekMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFL0MsU0FBUyxlQUFlLENBQ3RCLE9BQTZCLEVBQzdCLElBQW1CLEVBQ25CLEtBQXlCO1FBRXpCLE9BQU8sV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FDdEMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDdEIsSUFBSSxTQUFTLENBQUMsRUFBRSxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xDLE1BQU0seUJBQXlCLEdBQUcsaUJBQWlCLENBQ2pELE9BQU8sRUFDUCxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FDM0IsQ0FBQztnQkFDRixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2FBQ3hDO2lCQUFNO2dCQUNMLE9BQU8sVUFBVSxDQUNmLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUN2RCxDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsZUFBZSxDQUFDLE9BQTZCO1FBQ3BELE9BQU8sQ0FDTCxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEtBQUssQ0FBQztZQUNwQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsaUJBQWlCLENBQ3hCLE9BQTZCLEVBQzdCLEtBQWE7UUFFYixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDbkIsVUFBVSxFQUFFO2dCQUNWLGFBQWEsRUFBRSxVQUFVLEtBQUssRUFBRTthQUNqQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUM1QixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN2QztRQUNELE1BQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUNoQyxVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUU7WUFDdEMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDaEQsT0FBTyxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQzthQUM5QztpQkFBTTtnQkFDTCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNoQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7S0FDSDtTQUFNO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDdEI7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEh0dHBFcnJvclJlc3BvbnNlLFxuICBIdHRwSGFuZGxlckZuLFxuICBIdHRwSW50ZXJjZXB0b3JGbixcbiAgSHR0cFJlcXVlc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGVzY29wZUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9kZXNjb3BlLWF1dGguc2VydmljZSc7XG5pbXBvcnQgeyBEZXNjb3BlQXV0aENvbmZpZyB9IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IGRlc2NvcGVJbnRlcmNlcHRvcjogSHR0cEludGVyY2VwdG9yRm4gPSAocmVxdWVzdCwgbmV4dCkgPT4ge1xuICBjb25zdCBjb25maWcgPSBpbmplY3QoRGVzY29wZUF1dGhDb25maWcpO1xuICBjb25zdCBhdXRoU2VydmljZSA9IGluamVjdChEZXNjb3BlQXV0aFNlcnZpY2UpO1xuXG4gIGZ1bmN0aW9uIHJlZnJlc2hBbmRSZXRyeShcbiAgICByZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPixcbiAgICBuZXh0OiBIdHRwSGFuZGxlckZuLFxuICAgIGVycm9yPzogSHR0cEVycm9yUmVzcG9uc2VcbiAgKSB7XG4gICAgcmV0dXJuIGF1dGhTZXJ2aWNlLnJlZnJlc2hTZXNzaW9uKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgocmVmcmVzaGVkKSA9PiB7XG4gICAgICAgIGlmIChyZWZyZXNoZWQub2sgJiYgcmVmcmVzaGVkLmRhdGEpIHtcbiAgICAgICAgICBjb25zdCByZXF1ZXN0V2l0aFJlZnJlc2hlZFRva2VuID0gYWRkVG9rZW5Ub1JlcXVlc3QoXG4gICAgICAgICAgICByZXF1ZXN0LFxuICAgICAgICAgICAgcmVmcmVzaGVkLmRhdGE/LnNlc3Npb25Kd3RcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBuZXh0KHJlcXVlc3RXaXRoUmVmcmVzaGVkVG9rZW4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFxuICAgICAgICAgICAgKCkgPT4gZXJyb3IgPz8gbmV3IEVycm9yKCdDb3VsZCBub3QgcmVmcmVzaCBzZXNzaW9uIScpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gc2hvdWxkSW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIChjb25maWcucGF0aHNUb0ludGVyY2VwdD8ubGVuZ3RoID09PSAwIHx8XG4gICAgICAgIGNvbmZpZy5wYXRoc1RvSW50ZXJjZXB0Py5zb21lKChwYXRoKSA9PiByZXF1ZXN0LnVybC5pbmNsdWRlcyhwYXRoKSkpID8/XG4gICAgICB0cnVlXG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFkZFRva2VuVG9SZXF1ZXN0KFxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LFxuICAgIHRva2VuOiBzdHJpbmdcbiAgKTogSHR0cFJlcXVlc3Q8dW5rbm93bj4ge1xuICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHtcbiAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWBcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGlmIChzaG91bGRJbnRlcmNlcHQocmVxdWVzdCkpIHtcbiAgICBjb25zdCB0b2tlbiA9IGF1dGhTZXJ2aWNlLmdldFNlc3Npb25Ub2tlbigpO1xuICAgIGlmICghdG9rZW4pIHtcbiAgICAgIHJldHVybiByZWZyZXNoQW5kUmV0cnkocmVxdWVzdCwgbmV4dCk7XG4gICAgfVxuICAgIGNvbnN0IHJlcXVlc3RXaXRoVG9rZW4gPSBhZGRUb2tlblRvUmVxdWVzdChyZXF1ZXN0LCB0b2tlbik7XG4gICAgcmV0dXJuIG5leHQocmVxdWVzdFdpdGhUb2tlbikucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDEgfHwgZXJyb3Iuc3RhdHVzID09PSA0MDMpIHtcbiAgICAgICAgICByZXR1cm4gcmVmcmVzaEFuZFJldHJ5KHJlcXVlc3QsIG5leHQsIGVycm9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmV4dChyZXF1ZXN0KTtcbiAgfVxufTtcbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export class DescopeAuthConfig {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.projectId = '';
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXNkay9zcmMvbGliL3R5cGVzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFDRSxjQUFTLEdBQUcsRUFBRSxDQUFDO0lBU2pCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElMb2dnZXIgfSBmcm9tICdAZGVzY29wZS93ZWItY29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIERlc2NvcGVBdXRoQ29uZmlnIHtcbiAgcHJvamVjdElkID0gJyc7XG4gIGJhc2VVcmw/OiBzdHJpbmc7XG4gIGJhc2VTdGF0aWNVcmw/OiBzdHJpbmc7XG4gIC8vIElmIHRydWUsIHRva2VucyB3aWxsIGJlIHN0b3JlZCBvbiBsb2NhbCBzdG9yYWdlXG4gIHBlcnNpc3RUb2tlbnM/OiBib29sZWFuO1xuICBzZXNzaW9uVG9rZW5WaWFDb29raWU/OiBib29sZWFuO1xuICAvLyBJZiB0cnVlLCBsYXN0IGF1dGhlbnRpY2F0ZWQgdXNlciB3aWxsIGJlIHN0b3JlZCBvbiBsb2NhbCBzdG9yYWdlIGFuZCBjYW4gYWNjZXNzZWQgd2l0aCBnZXRVc2VyIGZ1bmN0aW9uXG4gIHN0b3JlTGFzdEF1dGhlbnRpY2F0ZWRVc2VyPzogYm9vbGVhbjtcbiAgcGF0aHNUb0ludGVyY2VwdD86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgdHlwZSB7IElMb2dnZXIgfTtcbiJdfQ==
|
|
@@ -4,4 +4,4 @@ export const baseHeaders = {
|
|
|
4
4
|
'x-descope-sdk-version': environment.buildVersion
|
|
5
5
|
};
|
|
6
6
|
export const isBrowser = () => typeof window !== 'undefined';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1zZGsvc3JjL2xpYi91dGlscy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixvQkFBb0IsRUFBRSxTQUFTO0lBQy9CLHVCQUF1QixFQUFFLFdBQVcsQ0FBQyxZQUFZO0NBQ2xELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi9lbnZpcm9ubWVudCc7XG5cbmV4cG9ydCBjb25zdCBiYXNlSGVhZGVycyA9IHtcbiAgJ3gtZGVzY29wZS1zZGstbmFtZSc6ICdhbmd1bGFyJyxcbiAgJ3gtZGVzY29wZS1zZGstdmVyc2lvbic6IGVudmlyb25tZW50LmJ1aWxkVmVyc2lvblxufTtcblxuZXhwb3J0IGNvbnN0IGlzQnJvd3NlciA9ICgpID0+IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnO1xuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { from } from 'rxjs';
|
|
2
|
+
export function observabilify(value) {
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
+
const observableValue = {};
|
|
5
|
+
for (const key in value) {
|
|
6
|
+
if (typeof value[key] === 'function') {
|
|
7
|
+
const fn = value[key];
|
|
8
|
+
observableValue[key] = (...args) => {
|
|
9
|
+
const fnResult = fn(...args);
|
|
10
|
+
if (fnResult instanceof Promise) {
|
|
11
|
+
return from(fnResult);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
return fnResult;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
else if (typeof value[key] === 'object' && value[key] !== null) {
|
|
19
|
+
observableValue[key] = observabilify(value[key]);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
observableValue[key] = value[key];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return observableValue;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItc2RrL3NyYy9saWIvdXRpbHMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBWXhDLE1BQU0sVUFBVSxhQUFhLENBQUksS0FBUTtJQUN2Qyx1REFBdUQ7SUFDdkQsTUFBTSxlQUFlLEdBQVEsRUFBRSxDQUFDO0lBRWhDLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFO1FBQ3ZCLElBQUksT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssVUFBVSxFQUFFO1lBQ3BDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQW9DLENBQUM7WUFDekQsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFlLEVBQUUsRUFBRTtnQkFDNUMsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLElBQUksUUFBUSxZQUFZLE9BQU8sRUFBRTtvQkFDL0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3ZCO3FCQUFNO29CQUNMLE9BQU8sUUFBUSxDQUFDO2lCQUNqQjtZQUNILENBQUMsQ0FBQztTQUNIO2FBQU0sSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNoRSxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ2xEO2FBQU07WUFDTCxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ25DO0tBQ0Y7SUFFRCxPQUFPLGVBQW9DLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgT2JzZXJ2YWJsZWZpZWQ8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgKC4uLmFyZ3M6IGluZmVyIEFyZ3MpID0+IFByb21pc2U8aW5mZXIgUj5cbiAgICA/ICguLi5hcmdzOiBBcmdzKSA9PiBPYnNlcnZhYmxlPFI+XG4gICAgOiBUW0tdIGV4dGVuZHMgKC4uLmFyZ3M6IGluZmVyIEFyZ3MpID0+IGluZmVyIFJcbiAgICAgID8gKC4uLmFyZ3M6IEFyZ3MpID0+IFJcbiAgICAgIDogVFtLXSBleHRlbmRzIG9iamVjdFxuICAgICAgICA/IE9ic2VydmFibGVmaWVkPFRbS10+XG4gICAgICAgIDogVFtLXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBvYnNlcnZhYmlsaWZ5PFQ+KHZhbHVlOiBUKTogT2JzZXJ2YWJsZWZpZWQ8VD4ge1xuICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4gIGNvbnN0IG9ic2VydmFibGVWYWx1ZTogYW55ID0ge307XG5cbiAgZm9yIChjb25zdCBrZXkgaW4gdmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlW2tleV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IGZuID0gdmFsdWVba2V5XSBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiB1bmtub3duO1xuICAgICAgb2JzZXJ2YWJsZVZhbHVlW2tleV0gPSAoLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgICAgIGNvbnN0IGZuUmVzdWx0ID0gZm4oLi4uYXJncyk7XG4gICAgICAgIGlmIChmblJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICByZXR1cm4gZnJvbShmblJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZuUmVzdWx0O1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlW2tleV0gPT09ICdvYmplY3QnICYmIHZhbHVlW2tleV0gIT09IG51bGwpIHtcbiAgICAgIG9ic2VydmFibGVWYWx1ZVtrZXldID0gb2JzZXJ2YWJpbGlmeSh2YWx1ZVtrZXldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JzZXJ2YWJsZVZhbHVlW2tleV0gPSB2YWx1ZVtrZXldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvYnNlcnZhYmxlVmFsdWUgYXMgT2JzZXJ2YWJsZWZpZWQ8VD47XG59XG4iXX0=
|