{"version":3,"file":"user-DFReMbF_.js","sources":["../../src/api/user.ts"],"sourcesContent":["import ajax from '@/lib/ajax'\nimport type { User } from '@/types/user'\nimport type { UserTeam } from '@/types/board/group'\n\nasync function preLogin() {\n return await ajax\n .get('/pre_login')\n .then((res) => {\n const user = res.data as User\n if (!user.verified) return null\n return user\n })\n .catch(() => null)\n}\n\nasync function getApiKey() {\n return await ajax.get<{ key: string }>('/user/key/latest').then((res) => res.data.key)\n}\n\n/**\n * 获取用户的激活状态\n */\nexport async function requestVerifyLicense(): Promise {\n return await ajax.get<{ enabled: boolean }>('/self_hosted/info').then((res) => res.data.enabled)\n}\n\n/**\n * 获取用户的组织信息\n * 此接口会从sessionStorage中获取信息,如果没有或者解析失败则会重新请求\n */\nasync function getUserTeams(): Promise {\n const resp = await ajax.get<{ list: UserTeam[] }>('/group').then((res) => res.data)\n return resp.list\n}\n\nconst loadingKeep = 500\n// 为了防止抖动,此函数存在最低加载时间\nexport async function getUser() {\n const start = Date.now()\n const user = await preLogin()\n if (!user) return null\n const [apiKey, teams] = await Promise.all([getApiKey(), getUserTeams()])\n const end = Date.now()\n if (end - start < loadingKeep) {\n await new Promise((resolve) => setTimeout(resolve, loadingKeep - (end - start)))\n }\n return {\n user,\n apiKey,\n teams\n }\n}\n\nexport async function signOut() {\n return await ajax.delete('/sign_out')\n}\n"],"names":["async","getApiKey","ajax","get","then","res","data","key","requestVerifyLicense","enabled","getUserTeams","list","getUser","start","Date","now","user","verified","catch","preLogin","apiKey","teams","Promise","all","end","resolve","setTimeout","signOut","delete"],"mappings":"+XAeAA,eAAeC,IACN,aAAMC,EAAKC,IAAqB,oBAAoBC,MAAMC,GAAQA,EAAIC,KAAKC,KACpF,CAKAP,eAAsBQ,IACb,aAAMN,EAAKC,IAA0B,qBAAqBC,MAAMC,GAAQA,EAAIC,KAAKG,SAC1F,CAMAT,eAAeU,IAEb,aADmBR,EAAKC,IAA0B,UAAUC,MAAMC,GAAQA,EAAIC,QAClEK,IACd,CAIAX,eAAsBY,IACd,MAAAC,EAAQC,KAAKC,MACbC,QAnCRhB,iBACE,aAAaE,EACVC,IAAI,cACJC,MAAMC,IACL,MAAMW,EAAOX,EAAIC,KACb,OAACU,EAAKC,SACHD,EADoB,IACpB,IAERE,OAAM,IAAM,MACjB,CA0BqBC,GACf,IAACH,EAAa,OAAA,KAClB,MAAOI,EAAQC,SAAeC,QAAQC,IAAI,CAACtB,IAAaS,MAClDc,EAAMV,KAAKC,MAIV,OAHHS,EAAMX,EARQ,WASV,IAAIS,SAASG,GAAYC,WAAWD,EAT1B,KASkDD,EAAMX,MAEnE,CACLG,OACAI,SACAC,QAEJ,CAEArB,eAAsB2B,IACb,aAAMzB,EAAK0B,OAAO,YAC3B"}