'use client' // AUTO-GENERATED by mizan — do not edit import { createContext, useContext, useState, useEffect, useCallback, useRef, useSyncExternalStore, type ReactNode } from 'react' import { registerContext, mizanFetch, mizanCall, type ContextState } from '@mizan/runtime' import { fetchGlobalContext, type GlobalContextData, type GlobalContextParams, fetchLocalContext, type LocalContextData, type LocalContextParams, callEcho, callAdd, callWhoami, callHttpOnlyEcho, callStaffOnly, callSuperuserOnly, callVerifiedOnly, callMultiply, callNotImplementedFn, callBuggyFn, callPermissionCheckFn, callWsWhoami, callJwtObtain, callJwtRefresh } from '../index' // Subscribe to kernel state via useSyncExternalStore function useContextState( name: string, params: Record, fetchFn: () => Promise, initialData?: T, ): ContextState { const ref = useRef | null>(null) if (!ref.current) { ref.current = registerContext(name, params, fetchFn, initialData) } const handle = ref.current // Fetch on mount if no data useEffect(() => { if (handle.getState().status === 'idle') handle.refetch() return () => handle.unregister() }, [handle]) return useSyncExternalStore( handle.subscribe, handle.getState, handle.getState, ) } // Mutation hook with loading/error state function useMutation( callFn: (args: TArgs) => Promise, ): { mutate: (args: TArgs) => Promise; isPending: boolean; error: Error | null } { const [isPending, setIsPending] = useState(false) const [error, setError] = useState(null) const mutate = useCallback(async (args: TArgs) => { setIsPending(true) setError(null) try { const result = await callFn(args) return result } catch (e) { setError(e as Error) throw e } finally { setIsPending(false) } }, [callFn]) return { mutate, isPending, error } } // ── Global Context ── export function useGlobalContext(): ContextState { const ssrData = typeof window !== 'undefined' ? (window as any).__MIZAN_SSR_DATA__ : null return useContextState('global', {}, () => fetchGlobalContext({} as any), ssrData) } export function useCurrentUser(): currentUserOutput | null { const state = useGlobalContext() return state.data?.current_user ?? null } // ── Local Context ── export function useLocalContext(params: LocalContextParams): ContextState { const ssrData = typeof window !== 'undefined' ? (window as any).__MIZAN_SSR_DATA__ : null return useContextState('local', params, () => fetchLocalContext(params), ssrData) } export function useGreet(params: LocalContextParams): greetOutput | null { const state = useLocalContext(params) return state.data?.greet ?? null } export function useEcho() { return useMutation[0], Awaited>>(callEcho) } export function useAdd() { return useMutation[0], Awaited>>(callAdd) } export function useWhoami() { return useMutation>>(() => callWhoami() as any) } export function useHttpOnlyEcho() { return useMutation[0], Awaited>>(callHttpOnlyEcho) } export function useStaffOnly() { return useMutation>>(() => callStaffOnly() as any) } export function useSuperuserOnly() { return useMutation>>(() => callSuperuserOnly() as any) } export function useVerifiedOnly() { return useMutation>>(() => callVerifiedOnly() as any) } export function useMultiply() { return useMutation[0], Awaited>>(callMultiply) } export function useNotImplementedFn() { return useMutation>>(() => callNotImplementedFn() as any) } export function useBuggyFn() { return useMutation>>(() => callBuggyFn() as any) } export function usePermissionCheckFn() { return useMutation[0], Awaited>>(callPermissionCheckFn) } export function useWsWhoami() { return useMutation>>(() => callWsWhoami() as any) } export function useJwtObtain() { return useMutation>>(() => callJwtObtain() as any) } export function useJwtRefresh() { return useMutation[0], Awaited>>(callJwtRefresh) } export type { ContextState } from '@mizan/runtime' export { configure, initSession, MizanError } from '@mizan/runtime'