{"version":3,"file":"gnss-auth.mjs","sources":["../../../projects/gnss-auth/src/lib/auth.service.ts","../../../projects/gnss-auth/src/public-api.ts","../../../projects/gnss-auth/src/gnss-auth.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n// RxJs Imports\r\nimport { Subscription } from 'rxjs';\r\n// Amplify Imports\r\nimport {\r\n  AuthSession,\r\n  fetchAuthSession,\r\n  JWT,\r\n  signIn,\r\n  SignInOutput,\r\n  signOut,\r\n} from 'aws-amplify/auth';\r\nimport { Amplify, ResourcesConfig } from 'aws-amplify';\r\nimport { Hub } from 'aws-amplify/utils';\r\n// Interface Imports\r\nimport { UserLoginInterface } from './user-login.interface';\r\nimport { MessageInterface } from './message.interface';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n  // -------------------- SUBSCRIPTIONS -------------------- //\r\n\r\n  // -------------------- SUBSCRIBER_ATTRIBUTES -------------------- //\r\n\r\n  // -------------------- SUBSCRIBER_OBJECT_REFERENCES -------------------- //\r\n\r\n  // -------------------- ATTRIBUTES -------------------- //\r\n  private configured: boolean = false;\r\n\r\n  private userEmail: string | null = null;\r\n\r\n  // -------------------- OBJECTS -------------------- //\r\n\r\n  // -------------------- CONSTRUCTOR -------------------- //\r\n\r\n  // -------------------- LIFE_CYCLE_HOOKS -------------------- //\r\n\r\n  // -------------------- INITIATOR_LOADER_METHODS -------------------- //\r\n\r\n  // -------------------- SUBSCRIBER_METHODS -------------------- //\r\n\r\n  // -------------------- SERVICE_METHODS -------------------- //\r\n  public clearLocalStorage(debug: boolean = true): void | MessageInterface {\r\n    try {\r\n      if (debug) {\r\n        console.info('==> Clearing localStorage and window.sessionStorage');\r\n      }\r\n      localStorage.clear();\r\n      window.sessionStorage.clear();\r\n      if (debug) {\r\n        console.info('*** Local Storage and session storage is: ');\r\n        console.info('Local Storage: ', localStorage);\r\n        console.info('Windows Session: ', window.sessionStorage);\r\n      }\r\n    } catch (error) {\r\n      if (debug) {\r\n        console.error('!!! Error: ', error);\r\n      }\r\n    }\r\n  }\r\n\r\n  public configureAmplify(authConfig: ResourcesConfig) {\r\n    if (!this.configured) {\r\n      Amplify.configure(authConfig);\r\n      this.configured = true;\r\n    }\r\n  }\r\n\r\n  public async fetchAuthSession(): Promise<AuthSession> {\r\n    try {\r\n      const session = await fetchAuthSession();\r\n      return session;\r\n    } catch (error) {\r\n      console.error('Error fetching auth session:', error);\r\n      throw error;\r\n    }\r\n  }\r\n\r\n  public async isLogged(): Promise<boolean> {\r\n    try {\r\n      const session = await fetchAuthSession();\r\n      if (session && session.tokens) {\r\n        return true;\r\n      } else {\r\n        return false;\r\n      }\r\n    } catch (error) {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  public async logAuthSession(): Promise<void> {\r\n    try {\r\n      const session = await fetchAuthSession();\r\n      console.info('Session:');\r\n      console.info(session);\r\n    } catch (error) {\r\n      console.error({ type: 'error', message: error });\r\n    }\r\n  }\r\n\r\n  public logLocalStorage(): void {\r\n    console.info('localStorage: ');\r\n    console.info(localStorage);\r\n  }\r\n\r\n  public async userLogin(\r\n    userLogin: UserLoginInterface,\r\n    debug: boolean = false,\r\n  ): Promise<MessageInterface> {\r\n    const message: MessageInterface = {\r\n      type: 'success',\r\n      message: '',\r\n    };\r\n\r\n    return new Promise(async (resolve, reject) => {\r\n      try {\r\n        const userEmail = userLogin.loginEmail;\r\n        const password = userLogin.password;\r\n\r\n        if (debug) {\r\n          console.info(`==> Signing in user ${userEmail}`);\r\n        }\r\n\r\n        const response: SignInOutput = await signIn({\r\n          username: userEmail,\r\n          password: password,\r\n        });\r\n\r\n        if (debug) {\r\n          console.info(`*** User ${userEmail} login response: `, response);\r\n        }\r\n\r\n        if (response.isSignedIn) {\r\n          const session: AuthSession = await fetchAuthSession();\r\n          if (debug) {\r\n            console.info('AuthSession:');\r\n            console.info(session);\r\n          }\r\n          // this.accessToken = session.tokens?.accessToken;\r\n          // this.idToken = session.tokens?.idToken;\r\n          message.message = 'User logged in successfully.';\r\n          resolve(message);\r\n        }\r\n      } catch (error: any) {\r\n        if (debug) {\r\n          console.error('!!! Error: ', error);\r\n        }\r\n        message.type = 'error';\r\n        message.message = error.message;\r\n        message.body = error;\r\n        reject(message);\r\n      }\r\n    });\r\n  }\r\n\r\n  public async logout(debug: boolean = false): Promise<void> {\r\n    try {\r\n      if (debug) {\r\n        console.info(``);\r\n      }\r\n      await signOut();\r\n    } catch (error) {\r\n      console.info({ type: 'error', message: error });\r\n    }\r\n  }\r\n\r\n  // -------------------- HTTP Requests -------------------- //\r\n}\r\n","/*\r\n * Public API Surface of gnss-auth\r\n */\r\n\r\nexport * from './lib/auth.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}