UNPKG

@asgardeo/auth-angular

Version:
72 lines 7.13 kB
/** * 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