(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{14774:(e,t,r)=>{"use strict";r.d(t,{QueryProvider:()=>u});var s=r(95155),n=r(87017),a=r(26715),i=r(12115);function u(e){let{children:t}=e,[r]=(0,i.useState)(()=>new n.E({defaultOptions:{queries:{staleTime:3e5,refetchOnWindowFocus:!1,retry:1,refetchOnMount:!0},mutations:{retry:1}}}));return(0,s.jsx)(a.Ht,{client:r,children:t})}},23388:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var s=r(60028),n=r(92490);let a=(0,s.yS)("users"),i={getCurrentUser:async()=>await a.get("me"),getUsers:async e=>{let t=e?"?".concat((0,n.D)(e)):"";return await a.get(t)},getUser:async e=>await a.get(e),createUser:async e=>await a.post("",e),updateUser:async(e,t)=>await a.put(e,t),updatePassword:async(e,t)=>await a.post("".concat(e,"/update-password"),t),assignUserToOrganization:async e=>await a.put("assignOrg",e),deleteUser:async e=>await a.delete(e)}},30347:()=>{},37323:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,4147,23)),Promise.resolve().then(r.t.bind(r,38489,23)),Promise.resolve().then(r.bind(r,78260)),Promise.resolve().then(r.t.bind(r,30347,23)),Promise.resolve().then(r.bind(r,52371)),Promise.resolve().then(r.bind(r,14774)),Promise.resolve().then(r.bind(r,76062))},52371:(e,t,r)=>{"use strict";r.d(t,{CurrentUserProvider:()=>o,iZ:()=>c});var s=r(95155),n=r(12115),a=r(12108),i=r(23388),u=r(22639);let l=(0,n.createContext)(void 0);function o(e){var t;let{children:r}=e,{data:o,status:c}=(0,a.useSession)(),[d,h]=(0,n.useState)(null),[f,v]=(0,n.useState)(!1),[g,m]=(0,n.useState)(null),y=async()=>{var e,t,r;if("authenticated"!==c||!o)return void h(null);let s=(null==(e=o.user)?void 0:e.roles)||[];if(!(s.includes("Admin")||s.includes("Issuer")))return void h(null);v(!0),m(null);try{console.log("\uD83D\uDD0D Fetching current user data...");let e=await i.D.getCurrentUser();(0,u.ny)(e)?(console.log("✅ Current user data fetched:",e.data),h(e.data)):(console.error("❌ Failed to fetch current user:",null==(t=e.status)?void 0:t.message),m((null==(r=e.status)?void 0:r.message)||"Failed to fetch user data"),h(null))}catch(e){console.error("❌ Error fetching current user:",e),m(e instanceof Error?e.message:"Unknown error"),h(null)}finally{v(!1)}};(0,n.useEffect)(()=>{y()},[o,c]);let w=e=>(null==d?void 0:d.role)===e,p=w("Admin"),b=w("Issuer"),x=(null==d||null==(t=d.organization)?void 0:t.id)||null;return(0,s.jsx)(l.Provider,{value:{currentUser:d,isLoading:f,error:g,refetchUser:y,hasRole:w,isAdmin:p,isIssuer:b,organizationId:x},children:r})}function c(){let e=(0,n.useContext)(l);if(void 0===e)throw Error("useCurrentUser must be used within a CurrentUserProvider");return e}},76062:(e,t,r)=>{"use strict";r.d(t,{SessionProvider:()=>o});var s=r(95155),n=r(12108),a=r(35695),i=r(12115);let u=["/authentication/","/certificate-verification/","/playground/"];function l(){let{status:e}=(0,n.useSession)(),t=(0,a.usePathname)();(0,a.useRouter)();let r=t.includes("authentication"),l=u.some(e=>t.startsWith(e));return((0,i.useEffect)(()=>{"unauthenticated"!==e||r||l||(0,n.signOut)({callbackUrl:"/authentication/sign-in"})},[e,t,r,l]),"loading"!==e||r||l)?null:(0,s.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-gray-50 dark:bg-gray-900",children:(0,s.jsxs)("div",{className:"flex flex-col items-center space-y-4",children:[(0,s.jsx)("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-primary-600"}),(0,s.jsx)("p",{className:"text-gray-600 dark:text-gray-400",children:"Checking authentication..."})]})})}function o(e){let{children:t,session:r}=e;return(0,s.jsxs)(n.SessionProvider,{session:r,refetchInterval:300,refetchOnWindowFocus:!0,refetchWhenOffline:!1,children:[(0,s.jsx)(l,{}),t]})}}},e=>{var t=t=>e(e.s=t);e.O(0,[4481,7690,9268,2108,5525,8694,8260,5323,601,8441,1684,7358],()=>t(37323)),_N_E=e.O()}]);