@asgardeo/auth-angular
Version:
Asgardeo Auth Angular SDK for Angular Applications.
72 lines • 7.13 kB
JavaScript
/**
* Copyright (c) 2021, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
import { Injectable } from "@angular/core";
import { BehaviorSubject } from "rxjs";
import * as i0 from "@angular/core";
export class AsgardeoAuthStateStoreService {
constructor() {
this.DEFAULT_STATE = {
allowedScopes: "",
displayName: "",
email: "",
isAuthenticated: false,
isLoading: true,
sub: "",
username: ""
};
// Readonly State BehaviorSubject. Not accessible from outside.
this._state = new BehaviorSubject(this.DEFAULT_STATE);
// Outside can access this readonly state object by subscribing.
this.state$ = this._state.asObservable();
}
/**
* Getter for the state.
* @return {AuthStateInterface}
*/
get state() {
return this._state.getValue();
}
/**
* Setter for the state.
* @param {AuthStateInterface} newState - New state.
*/
set state(newState) {
this._state.next(Object.assign(Object.assign({}, this._state), newState));
}
/**
* Set the Loading state.
* @param {boolean} isLoading - State.
*/
setIsLoading(isLoading) {
this._state.next(Object.assign(Object.assign({}, this.state), { isLoading }));
}
/**
* Resets the state back to the default.
*/
reset() {
this._state.next(this.DEFAULT_STATE);
}
}
AsgardeoAuthStateStoreService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AsgardeoAuthStateStoreService_Factory() { return new AsgardeoAuthStateStoreService(); }, token: AsgardeoAuthStateStoreService, providedIn: "root" });
AsgardeoAuthStateStoreService.decorators = [
{ type: Injectable, args: [{
providedIn: "root"
},] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNnYXJkZW8tYXV0aC1zdGF0ZS1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL2FzZ2FyZGVvLWF1dGgtYW5ndWxhci1zZGsvYXNnYXJkZW8tYXV0aC1hbmd1bGFyLXNkay9saWIvc3JjLyIsInNvdXJjZXMiOlsic2VydmljZXMvYXNnYXJkZW8tYXV0aC1zdGF0ZS1zdG9yZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLdkMsTUFBTSxPQUFPLDZCQUE2QjtJQUgxQztRQUlZLGtCQUFhLEdBQXVCO1lBQ3hDLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFdBQVcsRUFBRSxFQUFFO1lBQ2YsS0FBSyxFQUFFLEVBQUU7WUFDVCxlQUFlLEVBQUUsS0FBSztZQUN0QixTQUFTLEVBQUUsSUFBSTtZQUNmLEdBQUcsRUFBRSxFQUFFO1lBQ1AsUUFBUSxFQUFFLEVBQUU7U0FDZixDQUFDO1FBRUYsK0RBQStEO1FBQzlDLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FDekMsSUFBSSxDQUFDLGFBQWEsQ0FDckIsQ0FBQztRQUVGLGdFQUFnRTtRQUN2RCxXQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQXNDaEQ7SUFwQ0c7OztPQUdHO0lBQ0gsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLEtBQUssQ0FBQyxRQUE0QjtRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksaUNBQ1QsSUFBSSxDQUFDLE1BQU0sR0FDWCxRQUFRLEVBQ2IsQ0FBQztJQUNQLENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZLENBQUMsU0FBa0I7UUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGlDQUNULElBQUksQ0FBQyxLQUFLLEtBQ2IsU0FBUyxJQUNYLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Ozs7WUF6REosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEsIFdTTzIgSW5jLiAoaHR0cDovL3d3dy53c28yLm9yZykgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBXU08yIEluYy4gbGljZW5zZXMgdGhpcyBmaWxlIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsXG4gKiBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHRcbiAqIGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsXG4gKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhblxuICogXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcbiAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlXG4gKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zXG4gKiB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoU3RhdGVJbnRlcmZhY2UgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogXCJyb290XCJcbn0pXG5leHBvcnQgY2xhc3MgQXNnYXJkZW9BdXRoU3RhdGVTdG9yZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgREVGQVVMVF9TVEFURTogQXV0aFN0YXRlSW50ZXJmYWNlID0ge1xuICAgICAgICBhbGxvd2VkU2NvcGVzOiBcIlwiLFxuICAgICAgICBkaXNwbGF5TmFtZTogXCJcIixcbiAgICAgICAgZW1haWw6IFwiXCIsXG4gICAgICAgIGlzQXV0aGVudGljYXRlZDogZmFsc2UsXG4gICAgICAgIGlzTG9hZGluZzogdHJ1ZSxcbiAgICAgICAgc3ViOiBcIlwiLFxuICAgICAgICB1c2VybmFtZTogXCJcIlxuICAgIH07XG5cbiAgICAvLyBSZWFkb25seSBTdGF0ZSBCZWhhdmlvclN1YmplY3QuIE5vdCBhY2Nlc3NpYmxlIGZyb20gb3V0c2lkZS5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlSW50ZXJmYWNlPihcbiAgICAgICAgdGhpcy5ERUZBVUxUX1NUQVRFXG4gICAgKTtcblxuICAgIC8vIE91dHNpZGUgY2FuIGFjY2VzcyB0aGlzIHJlYWRvbmx5IHN0YXRlIG9iamVjdCBieSBzdWJzY3JpYmluZy5cbiAgICByZWFkb25seSBzdGF0ZSQgPSB0aGlzLl9zdGF0ZS5hc09ic2VydmFibGUoKTtcblxuICAgIC8qKlxuICAgICAqIEdldHRlciBmb3IgdGhlIHN0YXRlLlxuICAgICAqIEByZXR1cm4ge0F1dGhTdGF0ZUludGVyZmFjZX1cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHN0YXRlKCk6IEF1dGhTdGF0ZUludGVyZmFjZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0ZS5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRlciBmb3IgdGhlIHN0YXRlLlxuICAgICAqIEBwYXJhbSB7QXV0aFN0YXRlSW50ZXJmYWNlfSBuZXdTdGF0ZSAtIE5ldyBzdGF0ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IHN0YXRlKG5ld1N0YXRlOiBBdXRoU3RhdGVJbnRlcmZhY2UpIHtcbiAgICAgICAgdGhpcy5fc3RhdGUubmV4dCh7XG4gICAgICAgICAgICAuLi50aGlzLl9zdGF0ZSxcbiAgICAgICAgICAgIC4uLm5ld1N0YXRlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgTG9hZGluZyBzdGF0ZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzTG9hZGluZyAtIFN0YXRlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRJc0xvYWRpbmcoaXNMb2FkaW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N0YXRlLm5leHQoe1xuICAgICAgICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgICAgICAgIGlzTG9hZGluZ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNldHMgdGhlIHN0YXRlIGJhY2sgdG8gdGhlIGRlZmF1bHQuXG4gICAgICovXG4gICAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdGF0ZS5uZXh0KHRoaXMuREVGQVVMVF9TVEFURSk7XG4gICAgfVxufVxuIl19