// AUTO-GENERATED by mizan — do not edit import { ref, computed, onMounted, onUnmounted, onServerPrefetch, type ComputedRef } from 'vue' import { registerContext, 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' export function useGlobalContext() { const state = ref>({ data: null, status: 'idle', error: null }) let handle: ReturnType | null = null onMounted(() => { handle = registerContext('global', {} as any, () => fetchGlobalContext({} as any)) handle.subscribe(() => { state.value = handle!.getState() }) handle.refetch() }) onServerPrefetch(async () => { handle = registerContext('global', {} as any, () => fetchGlobalContext({} as any)) await handle.refetch() state.value = handle.getState() }) onUnmounted(() => { handle?.unregister() }) return { state, currentUser: computed(() => state.value.data?.current_user ?? null) as ComputedRef, loading: computed(() => state.value.status === 'loading'), error: computed(() => state.value.error), } } export function useLocalContext(params: LocalContextParams) { const state = ref>({ data: null, status: 'idle', error: null }) let handle: ReturnType | null = null onMounted(() => { handle = registerContext('local', params, () => fetchLocalContext(params)) handle.subscribe(() => { state.value = handle!.getState() }) handle.refetch() }) onServerPrefetch(async () => { handle = registerContext('local', params, () => fetchLocalContext(params)) await handle.refetch() state.value = handle.getState() }) onUnmounted(() => { handle?.unregister() }) return { state, greet: computed(() => state.value.data?.greet ?? null) as ComputedRef, loading: computed(() => state.value.status === 'loading'), error: computed(() => state.value.error), } } export function useEcho() { const isPending = ref(false) const error = ref(null) async function mutate(args: Parameters[0]) { isPending.value = true; error.value = null try { return await callEcho(args) } catch (e) { error.value = e as Error; throw e } finally { isPending.value = false } } return { mutate, isPending, error } } export function useAdd() { const isPending = ref(false) const error = ref(null) async function mutate(args: Parameters[0]) { isPending.value = true; error.value = null try { return await callAdd(args) } catch (e) { error.value = e as Error; throw e } finally { isPending.value = false } } return { mutate, isPending, error } } export function useWhoami() { const isPending = ref(false) const error = ref(null) async function mutate() { isPending.value = true; error.value = null try { return await callWhoami() } catch (e) { error.value = e as Error; throw e } finally { isPending.value = false } } return { mutate, isPending, error } } export function useHttpOnlyEcho() { const isPending = ref(false) const error = ref(null) async function mutate(args: Parameters[0]) { isPending.value = true; error.value = null try { return await callHttpOnlyEcho(args) } catch (e) { error.value = e as Error; throw e } finally { isPending.value = false } } return { mutate, isPending, error } } export function useStaffOnly() { const isPending = ref(false) const error = ref(null) async function mutate() { isPending.value = true; error.value = null try { return await callStaffOnly() } catch (e) { error.value = e as Error; throw e } finally { isPending.value = false } } return { mutate, isPending, error } } export function useSuperuserOnly() { const isPending = ref(false) const error = ref(null) async function mutate() { isPending.value = true; error.value = null try { return await callSuperuserOnly() } catch (e) { error.value = e as Error; throw e } finally { isPending.value = false } } return { mutate, isPending, error } } export function useVerifiedOnly() { const isPending = ref(false) const error = ref(null) async function mutate() { isPending.value = true; error.value = null try { return await callVerifiedOnly() } catch (e) { error.value = e as Error; throw e } finally { isPending.value = false } } return { mutate, isPending, error } } export function useMultiply() { const isPending = ref(false) const error = ref(null) async function mutate(args: Parameters[0]) { isPending.value = true; error.value = null try { return await callMultiply(args) } catch (e) { error.value = e as Error; throw e } finally { isPending.value = false } } return { mutate, isPending, error } } export function useNotImplementedFn() { const isPending = ref(false) const error = ref(null) async function mutate() { isPending.value = true; error.value = null try { return await callNotImplementedFn() } catch (e) { error.value = e as Error; throw e } finally { isPending.value = false } } return { mutate, isPending, error } } export function useBuggyFn() { const isPending = ref(false) const error = ref(null) async function mutate() { isPending.value = true; error.value = null try { return await callBuggyFn() } catch (e) { error.value = e as Error; throw e } finally { isPending.value = false } } return { mutate, isPending, error } } export function usePermissionCheckFn() { const isPending = ref(false) const error = ref(null) async function mutate(args: Parameters[0]) { isPending.value = true; error.value = null try { return await callPermissionCheckFn(args) } catch (e) { error.value = e as Error; throw e } finally { isPending.value = false } } return { mutate, isPending, error } } export function useWsWhoami() { const isPending = ref(false) const error = ref(null) async function mutate() { isPending.value = true; error.value = null try { return await callWsWhoami() } catch (e) { error.value = e as Error; throw e } finally { isPending.value = false } } return { mutate, isPending, error } } export function useJwtObtain() { const isPending = ref(false) const error = ref(null) async function mutate() { isPending.value = true; error.value = null try { return await callJwtObtain() } catch (e) { error.value = e as Error; throw e } finally { isPending.value = false } } return { mutate, isPending, error } } export function useJwtRefresh() { const isPending = ref(false) const error = ref(null) async function mutate(args: Parameters[0]) { isPending.value = true; error.value = null try { return await callJwtRefresh(args) } catch (e) { error.value = e as Error; throw e } finally { isPending.value = false } } return { mutate, isPending, error } } export type { ContextState } from '@mizan/runtime' export { configure, initSession, MizanError } from '@mizan/runtime'