{"version":3,"file":"BnIn_44o.js","sources":["../../../../stores/session.ts"],"sourcesContent":["import { gql } from '~/tada/gql'\nimport { defineStore } from 'pinia'\nimport type { User as UserType } from 'oidc-client-ts'\n\nexport const useSession = defineStore('session', () => {\n const { $um } = useNuxtApp()\n const route = useRoute()\n\n const impersonating = ref(\n window.localStorage.getItem('sato48:impersonate'),\n )\n\n const sso = ref(null)\n $um.getUser().then(user => {\n sso.value = user\n })\n const roles = computed(\n () => (sso.value?.profile.roles as string[]) || [],\n )\n\n const { result, loading } = useQuery(Whoami, {}, () => ({\n enabled: sso.value != null,\n }))\n const user = computed(() => result.value?.users[0])\n const isAuthenticated = computed(() => !!user.value)\n\n const impersonate = async (id?: number) => {\n if (id) {\n window.localStorage.setItem('sato48:impersonate', id.toString())\n $um.signinRedirect({\n scope: `openid offline email impersonate.${id}`,\n })\n } else {\n window.localStorage.clear()\n $um.signinRedirect({\n scope: `openid offline email`,\n })\n }\n }\n\n if (route.hash.startsWith('#impersonate=')) {\n impersonate(parseInt(route.hash.replace('#impersonate=', '')))\n }\n\n return {\n loading,\n sso,\n user,\n roles,\n isAuthenticated,\n impersonate,\n impersonating,\n }\n})\n\nconst User = gql(`fragment User on users @_unmask {\n id name email sub picture\n}`)\n\nconst Whoami = gql(\n `query Whoami {\n users {\n ...User\n }\n}`,\n [User],\n)\n"],"names":["useSession","defineStore","$um","useNuxtApp","route","useRoute","impersonating","ref","sso","user","roles","computed","_a","result","loading","useQuery","Whoami","isAuthenticated","impersonate","id","User","gql"],"mappings":"wGAIa,MAAAA,EAAaC,EAAY,UAAW,IAAM,CAC/C,KAAA,CAAE,IAAAC,CAAI,EAAIC,EAAW,EACrBC,EAAQC,EAAS,EAEjBC,EAAgBC,EACpB,OAAO,aAAa,QAAQ,oBAAoB,CAClD,EAEMC,EAAMD,EAAqB,IAAI,EACrCL,EAAI,QAAQ,EAAE,KAAKO,GAAQ,CACzBD,EAAI,MAAQC,CAAA,CACb,EACD,MAAMC,EAAQC,EACZ,IAAA,OAAO,QAAAC,EAAAJ,EAAI,QAAJ,YAAAI,EAAW,QAAQ,QAAsB,CAAA,EAClD,EAEM,CAAE,OAAAC,EAAQ,QAAAC,CAAQ,EAAIC,EAASC,EAAQ,CAAA,EAAI,KAAO,CACtD,QAASR,EAAI,OAAS,IAAA,EACtB,EACIC,EAAOE,EAAS,IAAM,OAAA,OAAAC,EAAAC,EAAO,QAAP,YAAAD,EAAc,MAAM,GAAE,EAC5CK,EAAkBN,EAAS,IAAM,CAAC,CAACF,EAAK,KAAK,EAE7CS,EAAc,MAAOC,GAAgB,CACrCA,GACF,OAAO,aAAa,QAAQ,qBAAsBA,EAAG,UAAU,EAC/DjB,EAAI,eAAe,CACjB,MAAO,oCAAoCiB,CAAE,EAAA,CAC9C,IAED,OAAO,aAAa,MAAM,EAC1BjB,EAAI,eAAe,CACjB,MAAO,sBAAA,CACR,EAEL,EAEA,OAAIE,EAAM,KAAK,WAAW,eAAe,GACvCc,EAAY,SAASd,EAAM,KAAK,QAAQ,gBAAiB,EAAE,CAAC,CAAC,EAGxD,CACL,QAAAU,EACA,IAAAN,EACA,KAAAC,EACA,MAAAC,EACA,gBAAAO,EACA,YAAAC,EACA,cAAAZ,CACF,CACF,CAAC,EAEKc,EAAOC,EAAI;AAAA;AAAA,EAEf,EAEIL,EAASK,EACb;AAAA;AAAA;AAAA;AAAA,GAKA,CAACD,CAAI,CACP"}