{"version":3,"file":"index9.cjs","sources":["../src/token.ts"],"sourcesContent":["export type IncogniaToken = {\n  createdAt: number\n  expiresIn: number\n  accessToken: string\n  tokenType: string\n}\n\ntype TokenStorageConstructor = {\n  onRequestToken: () => Promise<IncogniaToken | undefined>\n}\n\nexport class TokenStorage {\n  requestToken: () => Promise<IncogniaToken | undefined>\n  incogniaToken: IncogniaToken | undefined\n\n  constructor({ onRequestToken }: TokenStorageConstructor) {\n    this.requestToken = onRequestToken\n    this.incogniaToken = undefined\n  }\n\n  async getToken() {\n    await this.updateAccessToken()\n    return this.incogniaToken\n  }\n\n  async updateAccessToken() {\n    if (this.isAccessTokenValid()) return\n\n    const token = await this.requestToken()\n    this.incogniaToken = token\n  }\n\n  isAccessTokenValid() {\n    if (!this.incogniaToken) return false\n\n    const createdAt = this.incogniaToken.createdAt\n    const expiresIn = this.incogniaToken.expiresIn\n\n    const expirationLimit = createdAt + expiresIn\n    const nowInSeconds = Math.round(Date.now() / 1000)\n\n    if (expirationLimit <= nowInSeconds) {\n      return false\n    }\n\n    return true\n  }\n}\n"],"names":["TokenStorage","onRequestToken","token","createdAt","expiresIn","expirationLimit","nowInSeconds"],"mappings":"gFAWO,MAAMA,CAAa,CAIxB,YAAY,CAAE,eAAAC,GAA2C,CACvD,KAAK,aAAeA,EACpB,KAAK,cAAgB,MACvB,CAEA,MAAM,UAAW,CACf,aAAM,KAAK,kBAAA,EACJ,KAAK,aACd,CAEA,MAAM,mBAAoB,CACxB,GAAI,KAAK,qBAAsB,OAE/B,MAAMC,EAAQ,MAAM,KAAK,aAAA,EACzB,KAAK,cAAgBA,CACvB,CAEA,oBAAqB,CACnB,GAAI,CAAC,KAAK,cAAe,MAAO,GAEhC,MAAMC,EAAY,KAAK,cAAc,UAC/BC,EAAY,KAAK,cAAc,UAE/BC,EAAkBF,EAAYC,EAC9BE,EAAe,KAAK,MAAM,KAAK,IAAA,EAAQ,GAAI,EAEjD,MAAI,EAAAD,GAAmBC,EAKzB,CACF"}