authula 0.6.3 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/{custom-fetch-ZBY99AZW.js → custom-fetch-Ce6_l1Qb.js} +6 -2
- package/dist/custom-fetch-Ce6_l1Qb.js.map +1 -0
- package/dist/{index-DHUQcsNV.d.ts → index-BdPCSdtc.d.ts} +5 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/plugins/index.d.ts +1 -1
- package/dist/plugins/index.js +8 -12
- package/dist/plugins/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/custom-fetch-ZBY99AZW.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["withQueryKey","accessControl","withQueryKey","withQueryKey","withQueryKey","withQueryKey","withQueryKey","adminUsers","adminAccounts","adminUserState","adminSessionState","adminImpersonation","withQueryKey","apiKey","withQueryKey","core","withQueryKey","emailPassword","withQueryKey","jwt","withQueryKey","magicLink","withQueryKey","oauth2","withQueryKey","organizations","totp"],"sources":["../../src/utils/wrap-generated.ts","../../src/gen/endpoints/access-control/access-control.ts","../../src/plugins/access-control/plugin.ts","../../src/gen/endpoints/admin-accounts/admin-accounts.ts","../../src/gen/endpoints/admin-impersonation/admin-impersonation.ts","../../src/gen/endpoints/admin-session-state/admin-session-state.ts","../../src/gen/endpoints/admin-user-state/admin-user-state.ts","../../src/gen/endpoints/admin-users/admin-users.ts","../../src/plugins/admin/plugin.ts","../../src/gen/endpoints/api-keys/api-keys.ts","../../src/plugins/api-key/plugin.ts","../../src/plugins/bearer/plugin.ts","../../src/gen/endpoints/core/core.ts","../../src/plugins/core/plugin.ts","../../src/plugins/csrf/plugin.ts","../../src/gen/endpoints/email-password-plugin/email-password-plugin.ts","../../src/plugins/email-password/plugin.ts","../../src/gen/endpoints/jwt-plugin/jwt-plugin.ts","../../src/plugins/jwt/plugin.ts","../../src/gen/endpoints/magic-link-plugin/magic-link-plugin.ts","../../src/plugins/magic-link/plugin.ts","../../src/gen/endpoints/oauth2-plugin/oauth2-plugin.ts","../../src/plugins/oauth2/plugin.ts","../../src/gen/endpoints/organizations/organizations.ts","../../src/plugins/organizations/plugin.ts","../../src/gen/endpoints/totp-plugin/totp-plugin.ts","../../src/plugins/totp/plugin.ts"],"sourcesContent":["import type { AuthulaClient } from \"../client\";\n\nfunction isHookKey(key: string): boolean {\n return key.startsWith(\"use\") && key[3] === key[3]?.toUpperCase();\n}\n\nexport function wrapGenerated<T extends Record<string, any>>(\n mod: T,\n client: AuthulaClient,\n): T {\n const baseUrl = client.config.url.replace(/\\/+$/, \"\");\n const cookies = client.config.cookies;\n const onBeforeFetch = (ctx: any) => client.runBeforeFetch(ctx);\n const onAfterFetch = (ctx: any, res: Response) =>\n client.runAfterFetch(ctx, res);\n\n const wrapped: Record<string, any> = {};\n for (const [key, value] of Object.entries(mod)) {\n if (typeof value !== \"function\") {\n wrapped[key] = value;\n continue;\n }\n\n if (isHookKey(key)) {\n wrapped[key] = (options?: Record<string, any>, ...rest: any[]) =>\n value(\n { ...options, request: { ...options?.request, baseUrl, cookies, onBeforeFetch, onAfterFetch } },\n ...rest,\n );\n } else {\n wrapped[key] = (...args: any[]) => {\n const ctx = { baseUrl, cookies, onBeforeFetch, onAfterFetch };\n const optionsIdx = value.length - 1;\n while (args.length < optionsIdx) {\n args.push(undefined);\n }\n if (optionsIdx >= 0 && args.length === optionsIdx) {\n args.push(ctx);\n } else if (optionsIdx >= 0) {\n args[optionsIdx] = { ...args[optionsIdx], ...ctx };\n }\n return value(...args);\n };\n }\n }\n return wrapped as T;\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tAddRolePermissionRequest,\n\tAddRolePermissionResponse,\n\tAssignUserRoleRequest,\n\tAssignUserRoleResponse,\n\tCheckUserPermissionsRequest,\n\tCheckUserPermissionsResponse,\n\tCreatePermissionRequest,\n\tCreatePermissionResponse,\n\tCreateRoleRequest,\n\tCreateRoleResponse,\n\tDeletePermissionResponse,\n\tDeleteRoleResponse,\n\tGetUserPermissionsResponse,\n\tPermission,\n\tRemoveRolePermissionResponse,\n\tRemoveUserRoleResponse,\n\tReplaceRolePermissionResponse,\n\tReplaceRolePermissionsRequest,\n\tReplaceUserRolesRequest,\n\tReplaceUserRolesResponse,\n\tRole,\n\tRoleDetails,\n\tUpdatePermissionRequest,\n\tUpdatePermissionResponse,\n\tUpdateRoleRequest,\n\tUpdateRoleResponse,\n\tUserPermissionInfo,\n\tUserRoleInfo,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getListPermissionsUrl = () => {\n\treturn `/access-control/permissions`;\n};\n\n/**\n * Lists all permissions.\n * @summary List permissions\n */\nexport const listPermissions = async (\n\toptions?: RequestInit,\n): Promise<Permission[] | null> => {\n\treturn customFetch<Permission[] | null>(getListPermissionsUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListPermissionsQueryKey = () => {\n\treturn [`/access-control/permissions`] as const;\n};\n\nexport const getListPermissionsQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listPermissions>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<Awaited<ReturnType<typeof listPermissions>>, TError, TData>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListPermissionsQueryKey();\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof listPermissions>>> = ({\n\t\tsignal,\n\t}) => listPermissions({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listPermissions>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListPermissionsQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listPermissions>>\n>;\nexport type ListPermissionsQueryError = unknown;\n\nexport function useListPermissions<\n\tTData = Awaited<ReturnType<typeof listPermissions>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listPermissions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listPermissions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListPermissions<\n\tTData = Awaited<ReturnType<typeof listPermissions>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listPermissions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listPermissions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListPermissions<\n\tTData = Awaited<ReturnType<typeof listPermissions>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List permissions\n */\n\nexport function useListPermissions<\n\tTData = Awaited<ReturnType<typeof listPermissions>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListPermissionsQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreatePermissionUrl = () => {\n\treturn `/access-control/permissions`;\n};\n\n/**\n * Creates a new permission.\n * @summary Create permission\n */\nexport const createPermission = async (\n\tcreatePermissionRequest?: CreatePermissionRequest,\n\toptions?: RequestInit,\n): Promise<CreatePermissionResponse> => {\n\treturn customFetch<CreatePermissionResponse>(getCreatePermissionUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(createPermissionRequest),\n\t});\n};\n\nexport const getCreatePermissionMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createPermission>>,\n\t\tTError,\n\t\t{ data?: CreatePermissionRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createPermission>>,\n\tTError,\n\t{ data?: CreatePermissionRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createPermission\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createPermission>>,\n\t\t{ data?: CreatePermissionRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn createPermission(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreatePermissionMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createPermission>>\n>;\nexport type CreatePermissionMutationBody = CreatePermissionRequest | undefined;\nexport type CreatePermissionMutationError = unknown;\n\n/**\n * @summary Create permission\n */\nexport const useCreatePermission = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createPermission>>,\n\t\t\tTError,\n\t\t\t{ data?: CreatePermissionRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createPermission>>,\n\tTError,\n\t{ data?: CreatePermissionRequest },\n\tTContext\n> => {\n\treturn useMutation(getCreatePermissionMutationOptions(options), queryClient);\n};\nexport const getGetPermissionUrl = (permissionId: string) => {\n\treturn `/access-control/permissions/${permissionId}`;\n};\n\n/**\n * Retrieves a permission by its ID.\n * @summary Get permission by ID\n */\nexport const getPermission = async (\n\tpermissionId: string,\n\toptions?: RequestInit,\n): Promise<Permission> => {\n\treturn customFetch<Permission>(getGetPermissionUrl(permissionId), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetPermissionQueryKey = (permissionId: string) => {\n\treturn [`/access-control/permissions/${permissionId}`] as const;\n};\n\nexport const getGetPermissionQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getPermission>>,\n\tTError = unknown,\n>(\n\tpermissionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getPermission>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getGetPermissionQueryKey(permissionId);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getPermission>>> = ({\n\t\tsignal,\n\t}) => getPermission(permissionId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: permissionId !== null && permissionId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getPermission>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetPermissionQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getPermission>>\n>;\nexport type GetPermissionQueryError = unknown;\n\nexport function useGetPermission<\n\tTData = Awaited<ReturnType<typeof getPermission>>,\n\tTError = unknown,\n>(\n\tpermissionId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getPermission>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getPermission>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getPermission>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetPermission<\n\tTData = Awaited<ReturnType<typeof getPermission>>,\n\tTError = unknown,\n>(\n\tpermissionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getPermission>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getPermission>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getPermission>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetPermission<\n\tTData = Awaited<ReturnType<typeof getPermission>>,\n\tTError = unknown,\n>(\n\tpermissionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getPermission>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get permission by ID\n */\n\nexport function useGetPermission<\n\tTData = Awaited<ReturnType<typeof getPermission>>,\n\tTError = unknown,\n>(\n\tpermissionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getPermission>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetPermissionQueryOptions(permissionId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getDeletePermissionUrl = (permissionId: string) => {\n\treturn `/access-control/permissions/${permissionId}`;\n};\n\n/**\n * Deletes a permission.\n * @summary Delete permission\n */\nexport const deletePermission = async (\n\tpermissionId: string,\n\toptions?: RequestInit,\n): Promise<DeletePermissionResponse> => {\n\treturn customFetch<DeletePermissionResponse>(\n\t\tgetDeletePermissionUrl(permissionId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"DELETE\",\n\t\t},\n\t);\n};\n\nexport const getDeletePermissionMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deletePermission>>,\n\t\tTError,\n\t\t{ permissionId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deletePermission>>,\n\tTError,\n\t{ permissionId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deletePermission\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deletePermission>>,\n\t\t{ permissionId: string }\n\t> = (props) => {\n\t\tconst { permissionId } = props ?? {};\n\n\t\treturn deletePermission(permissionId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeletePermissionMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deletePermission>>\n>;\n\nexport type DeletePermissionMutationError = unknown;\n\n/**\n * @summary Delete permission\n */\nexport const useDeletePermission = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deletePermission>>,\n\t\t\tTError,\n\t\t\t{ permissionId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deletePermission>>,\n\tTError,\n\t{ permissionId: string },\n\tTContext\n> => {\n\treturn useMutation(getDeletePermissionMutationOptions(options), queryClient);\n};\nexport const getUpdatePermissionUrl = (permissionId: string) => {\n\treturn `/access-control/permissions/${permissionId}`;\n};\n\n/**\n * Updates a permission's description.\n * @summary Update permission\n */\nexport const updatePermission = async (\n\tpermissionId: string,\n\tupdatePermissionRequest?: UpdatePermissionRequest,\n\toptions?: RequestInit,\n): Promise<UpdatePermissionResponse> => {\n\treturn customFetch<UpdatePermissionResponse>(\n\t\tgetUpdatePermissionUrl(permissionId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"PATCH\",\n\t\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\t\tbody: JSON.stringify(updatePermissionRequest),\n\t\t},\n\t);\n};\n\nexport const getUpdatePermissionMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updatePermission>>,\n\t\tTError,\n\t\t{ permissionId: string; data?: UpdatePermissionRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updatePermission>>,\n\tTError,\n\t{ permissionId: string; data?: UpdatePermissionRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updatePermission\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updatePermission>>,\n\t\t{ permissionId: string; data?: UpdatePermissionRequest }\n\t> = (props) => {\n\t\tconst { permissionId, data } = props ?? {};\n\n\t\treturn updatePermission(permissionId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdatePermissionMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updatePermission>>\n>;\nexport type UpdatePermissionMutationBody = UpdatePermissionRequest | undefined;\nexport type UpdatePermissionMutationError = unknown;\n\n/**\n * @summary Update permission\n */\nexport const useUpdatePermission = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updatePermission>>,\n\t\t\tTError,\n\t\t\t{ permissionId: string; data?: UpdatePermissionRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updatePermission>>,\n\tTError,\n\t{ permissionId: string; data?: UpdatePermissionRequest },\n\tTContext\n> => {\n\treturn useMutation(getUpdatePermissionMutationOptions(options), queryClient);\n};\nexport const getListRolesUrl = () => {\n\treturn `/access-control/roles`;\n};\n\n/**\n * Lists all roles.\n * @summary List roles\n */\nexport const listRoles = async (\n\toptions?: RequestInit,\n): Promise<Role[] | null> => {\n\treturn customFetch<Role[] | null>(getListRolesUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListRolesQueryKey = () => {\n\treturn [`/access-control/roles`] as const;\n};\n\nexport const getListRolesQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listRoles>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<Awaited<ReturnType<typeof listRoles>>, TError, TData>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListRolesQueryKey();\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof listRoles>>> = ({\n\t\tsignal,\n\t}) => listRoles({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listRoles>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListRolesQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listRoles>>\n>;\nexport type ListRolesQueryError = unknown;\n\nexport function useListRoles<\n\tTData = Awaited<ReturnType<typeof listRoles>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listRoles>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listRoles>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listRoles>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListRoles<\n\tTData = Awaited<ReturnType<typeof listRoles>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listRoles>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listRoles>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listRoles>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListRoles<\n\tTData = Awaited<ReturnType<typeof listRoles>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listRoles>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List roles\n */\n\nexport function useListRoles<\n\tTData = Awaited<ReturnType<typeof listRoles>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listRoles>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListRolesQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreateRoleUrl = () => {\n\treturn `/access-control/roles`;\n};\n\n/**\n * Creates a new role.\n * @summary Create role\n */\nexport const createRole = async (\n\tcreateRoleRequest?: CreateRoleRequest,\n\toptions?: RequestInit,\n): Promise<CreateRoleResponse> => {\n\treturn customFetch<CreateRoleResponse>(getCreateRoleUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(createRoleRequest),\n\t});\n};\n\nexport const getCreateRoleMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createRole>>,\n\t\tTError,\n\t\t{ data?: CreateRoleRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createRole>>,\n\tTError,\n\t{ data?: CreateRoleRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createRole\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createRole>>,\n\t\t{ data?: CreateRoleRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn createRole(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreateRoleMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createRole>>\n>;\nexport type CreateRoleMutationBody = CreateRoleRequest | undefined;\nexport type CreateRoleMutationError = unknown;\n\n/**\n * @summary Create role\n */\nexport const useCreateRole = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createRole>>,\n\t\t\tTError,\n\t\t\t{ data?: CreateRoleRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createRole>>,\n\tTError,\n\t{ data?: CreateRoleRequest },\n\tTContext\n> => {\n\treturn useMutation(getCreateRoleMutationOptions(options), queryClient);\n};\nexport const getGetRoleByNameUrl = (roleName: string) => {\n\treturn `/access-control/roles/by-name/${roleName}`;\n};\n\n/**\n * Retrieves a role by its name.\n * @summary Get role by name\n */\nexport const getRoleByName = async (\n\troleName: string,\n\toptions?: RequestInit,\n): Promise<Role> => {\n\treturn customFetch<Role>(getGetRoleByNameUrl(roleName), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetRoleByNameQueryKey = (roleName: string) => {\n\treturn [`/access-control/roles/by-name/${roleName}`] as const;\n};\n\nexport const getGetRoleByNameQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getRoleByName>>,\n\tTError = unknown,\n>(\n\troleName: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRoleByName>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetRoleByNameQueryKey(roleName);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getRoleByName>>> = ({\n\t\tsignal,\n\t}) => getRoleByName(roleName, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: roleName !== null && roleName !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getRoleByName>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetRoleByNameQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getRoleByName>>\n>;\nexport type GetRoleByNameQueryError = unknown;\n\nexport function useGetRoleByName<\n\tTData = Awaited<ReturnType<typeof getRoleByName>>,\n\tTError = unknown,\n>(\n\troleName: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRoleByName>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getRoleByName>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getRoleByName>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetRoleByName<\n\tTData = Awaited<ReturnType<typeof getRoleByName>>,\n\tTError = unknown,\n>(\n\troleName: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRoleByName>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getRoleByName>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getRoleByName>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetRoleByName<\n\tTData = Awaited<ReturnType<typeof getRoleByName>>,\n\tTError = unknown,\n>(\n\troleName: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRoleByName>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get role by name\n */\n\nexport function useGetRoleByName<\n\tTData = Awaited<ReturnType<typeof getRoleByName>>,\n\tTError = unknown,\n>(\n\troleName: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRoleByName>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetRoleByNameQueryOptions(roleName, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getGetRoleUrl = (roleId: string) => {\n\treturn `/access-control/roles/${roleId}`;\n};\n\n/**\n * Retrieves a role by its ID, including its permissions.\n * @summary Get role by ID\n */\nexport const getRole = async (\n\troleId: string,\n\toptions?: RequestInit,\n): Promise<RoleDetails> => {\n\treturn customFetch<RoleDetails>(getGetRoleUrl(roleId), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetRoleQueryKey = (roleId: string) => {\n\treturn [`/access-control/roles/${roleId}`] as const;\n};\n\nexport const getGetRoleQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getRole>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRole>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetRoleQueryKey(roleId);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getRole>>> = ({\n\t\tsignal,\n\t}) => getRole(roleId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: roleId !== null && roleId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<Awaited<ReturnType<typeof getRole>>, TError, TData> & {\n\t\tqueryKey: DataTag<QueryKey, TData, TError>;\n\t};\n};\n\nexport type GetRoleQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getRole>>\n>;\nexport type GetRoleQueryError = unknown;\n\nexport function useGetRole<\n\tTData = Awaited<ReturnType<typeof getRole>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRole>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getRole>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getRole>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetRole<\n\tTData = Awaited<ReturnType<typeof getRole>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRole>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getRole>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getRole>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetRole<\n\tTData = Awaited<ReturnType<typeof getRole>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRole>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get role by ID\n */\n\nexport function useGetRole<\n\tTData = Awaited<ReturnType<typeof getRole>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRole>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetRoleQueryOptions(roleId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getDeleteRoleUrl = (roleId: string) => {\n\treturn `/access-control/roles/${roleId}`;\n};\n\n/**\n * Deletes a role.\n * @summary Delete role\n */\nexport const deleteRole = async (\n\troleId: string,\n\toptions?: RequestInit,\n): Promise<DeleteRoleResponse> => {\n\treturn customFetch<DeleteRoleResponse>(getDeleteRoleUrl(roleId), {\n\t\t...options,\n\t\tmethod: \"DELETE\",\n\t});\n};\n\nexport const getDeleteRoleMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deleteRole>>,\n\t\tTError,\n\t\t{ roleId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deleteRole>>,\n\tTError,\n\t{ roleId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deleteRole\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deleteRole>>,\n\t\t{ roleId: string }\n\t> = (props) => {\n\t\tconst { roleId } = props ?? {};\n\n\t\treturn deleteRole(roleId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeleteRoleMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deleteRole>>\n>;\n\nexport type DeleteRoleMutationError = unknown;\n\n/**\n * @summary Delete role\n */\nexport const useDeleteRole = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deleteRole>>,\n\t\t\tTError,\n\t\t\t{ roleId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deleteRole>>,\n\tTError,\n\t{ roleId: string },\n\tTContext\n> => {\n\treturn useMutation(getDeleteRoleMutationOptions(options), queryClient);\n};\nexport const getUpdateRoleUrl = (roleId: string) => {\n\treturn `/access-control/roles/${roleId}`;\n};\n\n/**\n * Updates a role's attributes.\n * @summary Update role\n */\nexport const updateRole = async (\n\troleId: string,\n\tupdateRoleRequest?: UpdateRoleRequest,\n\toptions?: RequestInit,\n): Promise<UpdateRoleResponse> => {\n\treturn customFetch<UpdateRoleResponse>(getUpdateRoleUrl(roleId), {\n\t\t...options,\n\t\tmethod: \"PATCH\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(updateRoleRequest),\n\t});\n};\n\nexport const getUpdateRoleMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updateRole>>,\n\t\tTError,\n\t\t{ roleId: string; data?: UpdateRoleRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updateRole>>,\n\tTError,\n\t{ roleId: string; data?: UpdateRoleRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updateRole\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updateRole>>,\n\t\t{ roleId: string; data?: UpdateRoleRequest }\n\t> = (props) => {\n\t\tconst { roleId, data } = props ?? {};\n\n\t\treturn updateRole(roleId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdateRoleMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updateRole>>\n>;\nexport type UpdateRoleMutationBody = UpdateRoleRequest | undefined;\nexport type UpdateRoleMutationError = unknown;\n\n/**\n * @summary Update role\n */\nexport const useUpdateRole = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updateRole>>,\n\t\t\tTError,\n\t\t\t{ roleId: string; data?: UpdateRoleRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updateRole>>,\n\tTError,\n\t{ roleId: string; data?: UpdateRoleRequest },\n\tTContext\n> => {\n\treturn useMutation(getUpdateRoleMutationOptions(options), queryClient);\n};\nexport const getListRolePermissionsUrl = (roleId: string) => {\n\treturn `/access-control/roles/${roleId}/permissions`;\n};\n\n/**\n * Lists all permissions assigned to a role.\n * @summary List role permissions\n */\nexport const listRolePermissions = async (\n\troleId: string,\n\toptions?: RequestInit,\n): Promise<UserPermissionInfo[] | null> => {\n\treturn customFetch<UserPermissionInfo[] | null>(\n\t\tgetListRolePermissionsUrl(roleId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"GET\",\n\t\t},\n\t);\n};\n\nexport const getListRolePermissionsQueryKey = (roleId: string) => {\n\treturn [`/access-control/roles/${roleId}/permissions`] as const;\n};\n\nexport const getListRolePermissionsQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listRolePermissions>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getListRolePermissionsQueryKey(roleId);\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof listRolePermissions>>\n\t> = ({ signal }) =>\n\t\tlistRolePermissions(roleId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: roleId !== null && roleId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListRolePermissionsQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listRolePermissions>>\n>;\nexport type ListRolePermissionsQueryError = unknown;\n\nexport function useListRolePermissions<\n\tTData = Awaited<ReturnType<typeof listRolePermissions>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListRolePermissions<\n\tTData = Awaited<ReturnType<typeof listRolePermissions>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListRolePermissions<\n\tTData = Awaited<ReturnType<typeof listRolePermissions>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List role permissions\n */\n\nexport function useListRolePermissions<\n\tTData = Awaited<ReturnType<typeof listRolePermissions>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListRolePermissionsQueryOptions(roleId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getReplaceRolePermissionsUrl = (roleId: string) => {\n\treturn `/access-control/roles/${roleId}/permissions`;\n};\n\n/**\n * Replaces all permissions assigned to a role with a new set.\n * @summary Replace role permissions\n */\nexport const replaceRolePermissions = async (\n\troleId: string,\n\treplaceRolePermissionsRequest?: ReplaceRolePermissionsRequest,\n\toptions?: RequestInit,\n): Promise<ReplaceRolePermissionResponse> => {\n\treturn customFetch<ReplaceRolePermissionResponse>(\n\t\tgetReplaceRolePermissionsUrl(roleId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"PUT\",\n\t\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\t\tbody: JSON.stringify(replaceRolePermissionsRequest),\n\t\t},\n\t);\n};\n\nexport const getReplaceRolePermissionsMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof replaceRolePermissions>>,\n\t\tTError,\n\t\t{ roleId: string; data?: ReplaceRolePermissionsRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof replaceRolePermissions>>,\n\tTError,\n\t{ roleId: string; data?: ReplaceRolePermissionsRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"replaceRolePermissions\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof replaceRolePermissions>>,\n\t\t{ roleId: string; data?: ReplaceRolePermissionsRequest }\n\t> = (props) => {\n\t\tconst { roleId, data } = props ?? {};\n\n\t\treturn replaceRolePermissions(roleId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type ReplaceRolePermissionsMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof replaceRolePermissions>>\n>;\nexport type ReplaceRolePermissionsMutationBody =\n\t| ReplaceRolePermissionsRequest\n\t| undefined;\nexport type ReplaceRolePermissionsMutationError = unknown;\n\n/**\n * @summary Replace role permissions\n */\nexport const useReplaceRolePermissions = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof replaceRolePermissions>>,\n\t\t\tTError,\n\t\t\t{ roleId: string; data?: ReplaceRolePermissionsRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof replaceRolePermissions>>,\n\tTError,\n\t{ roleId: string; data?: ReplaceRolePermissionsRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetReplaceRolePermissionsMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getAddRolePermissionUrl = (roleId: string) => {\n\treturn `/access-control/roles/${roleId}/permissions`;\n};\n\n/**\n * Assigns a permission to a role.\n * @summary Assign permission to role\n */\nexport const addRolePermission = async (\n\troleId: string,\n\taddRolePermissionRequest?: AddRolePermissionRequest,\n\toptions?: RequestInit,\n): Promise<AddRolePermissionResponse> => {\n\treturn customFetch<AddRolePermissionResponse>(\n\t\tgetAddRolePermissionUrl(roleId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\t\tbody: JSON.stringify(addRolePermissionRequest),\n\t\t},\n\t);\n};\n\nexport const getAddRolePermissionMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof addRolePermission>>,\n\t\tTError,\n\t\t{ roleId: string; data?: AddRolePermissionRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof addRolePermission>>,\n\tTError,\n\t{ roleId: string; data?: AddRolePermissionRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"addRolePermission\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof addRolePermission>>,\n\t\t{ roleId: string; data?: AddRolePermissionRequest }\n\t> = (props) => {\n\t\tconst { roleId, data } = props ?? {};\n\n\t\treturn addRolePermission(roleId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type AddRolePermissionMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof addRolePermission>>\n>;\nexport type AddRolePermissionMutationBody =\n\t| AddRolePermissionRequest\n\t| undefined;\nexport type AddRolePermissionMutationError = unknown;\n\n/**\n * @summary Assign permission to role\n */\nexport const useAddRolePermission = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof addRolePermission>>,\n\t\t\tTError,\n\t\t\t{ roleId: string; data?: AddRolePermissionRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof addRolePermission>>,\n\tTError,\n\t{ roleId: string; data?: AddRolePermissionRequest },\n\tTContext\n> => {\n\treturn useMutation(getAddRolePermissionMutationOptions(options), queryClient);\n};\nexport const getRemoveRolePermissionUrl = (\n\troleId: string,\n\tpermissionId: string,\n) => {\n\treturn `/access-control/roles/${roleId}/permissions/${permissionId}`;\n};\n\n/**\n * Removes a permission from a role.\n * @summary Remove role permission\n */\nexport const removeRolePermission = async (\n\troleId: string,\n\tpermissionId: string,\n\toptions?: RequestInit,\n): Promise<RemoveRolePermissionResponse> => {\n\treturn customFetch<RemoveRolePermissionResponse>(\n\t\tgetRemoveRolePermissionUrl(roleId, permissionId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"DELETE\",\n\t\t},\n\t);\n};\n\nexport const getRemoveRolePermissionMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof removeRolePermission>>,\n\t\tTError,\n\t\t{ roleId: string; permissionId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof removeRolePermission>>,\n\tTError,\n\t{ roleId: string; permissionId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"removeRolePermission\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof removeRolePermission>>,\n\t\t{ roleId: string; permissionId: string }\n\t> = (props) => {\n\t\tconst { roleId, permissionId } = props ?? {};\n\n\t\treturn removeRolePermission(roleId, permissionId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type RemoveRolePermissionMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof removeRolePermission>>\n>;\n\nexport type RemoveRolePermissionMutationError = unknown;\n\n/**\n * @summary Remove role permission\n */\nexport const useRemoveRolePermission = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof removeRolePermission>>,\n\t\t\tTError,\n\t\t\t{ roleId: string; permissionId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof removeRolePermission>>,\n\tTError,\n\t{ roleId: string; permissionId: string },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetRemoveRolePermissionMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getGetUserPermissionsUrl = (userId: string) => {\n\treturn `/access-control/users/${userId}/permissions`;\n};\n\n/**\n * Retrieves all permissions granted to a user through their roles.\n * @summary Get user permissions\n */\nexport const getUserPermissions = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<GetUserPermissionsResponse> => {\n\treturn customFetch<GetUserPermissionsResponse>(\n\t\tgetGetUserPermissionsUrl(userId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"GET\",\n\t\t},\n\t);\n};\n\nexport const getGetUserPermissionsQueryKey = (userId: string) => {\n\treturn [`/access-control/users/${userId}/permissions`] as const;\n};\n\nexport const getGetUserPermissionsQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getUserPermissions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getGetUserPermissionsQueryKey(userId);\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof getUserPermissions>>\n\t> = ({ signal }) => getUserPermissions(userId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: userId !== null && userId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetUserPermissionsQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getUserPermissions>>\n>;\nexport type GetUserPermissionsQueryError = unknown;\n\nexport function useGetUserPermissions<\n\tTData = Awaited<ReturnType<typeof getUserPermissions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetUserPermissions<\n\tTData = Awaited<ReturnType<typeof getUserPermissions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetUserPermissions<\n\tTData = Awaited<ReturnType<typeof getUserPermissions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get user permissions\n */\n\nexport function useGetUserPermissions<\n\tTData = Awaited<ReturnType<typeof getUserPermissions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetUserPermissionsQueryOptions(userId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCheckUserPermissionsUrl = (userId: string) => {\n\treturn `/access-control/users/${userId}/permissions/check`;\n};\n\n/**\n * Checks whether a user has all the specified permissions.\n * @summary Check user permissions\n */\nexport const checkUserPermissions = async (\n\tuserId: string,\n\tcheckUserPermissionsRequest?: CheckUserPermissionsRequest,\n\toptions?: RequestInit,\n): Promise<CheckUserPermissionsResponse> => {\n\treturn customFetch<CheckUserPermissionsResponse>(\n\t\tgetCheckUserPermissionsUrl(userId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\t\tbody: JSON.stringify(checkUserPermissionsRequest),\n\t\t},\n\t);\n};\n\nexport const getCheckUserPermissionsMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof checkUserPermissions>>,\n\t\tTError,\n\t\t{ userId: string; data?: CheckUserPermissionsRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof checkUserPermissions>>,\n\tTError,\n\t{ userId: string; data?: CheckUserPermissionsRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"checkUserPermissions\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof checkUserPermissions>>,\n\t\t{ userId: string; data?: CheckUserPermissionsRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn checkUserPermissions(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CheckUserPermissionsMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof checkUserPermissions>>\n>;\nexport type CheckUserPermissionsMutationBody =\n\t| CheckUserPermissionsRequest\n\t| undefined;\nexport type CheckUserPermissionsMutationError = unknown;\n\n/**\n * @summary Check user permissions\n */\nexport const useCheckUserPermissions = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof checkUserPermissions>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: CheckUserPermissionsRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof checkUserPermissions>>,\n\tTError,\n\t{ userId: string; data?: CheckUserPermissionsRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetCheckUserPermissionsMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getListUserRolesUrl = (userId: string) => {\n\treturn `/access-control/users/${userId}/roles`;\n};\n\n/**\n * Lists all roles assigned to a user.\n * @summary List user roles\n */\nexport const listUserRoles = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<UserRoleInfo[] | null> => {\n\treturn customFetch<UserRoleInfo[] | null>(getListUserRolesUrl(userId), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListUserRolesQueryKey = (userId: string) => {\n\treturn [`/access-control/users/${userId}/roles`] as const;\n};\n\nexport const getListUserRolesQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listUserRoles>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUserRoles>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListUserRolesQueryKey(userId);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof listUserRoles>>> = ({\n\t\tsignal,\n\t}) => listUserRoles(userId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: userId !== null && userId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listUserRoles>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListUserRolesQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listUserRoles>>\n>;\nexport type ListUserRolesQueryError = unknown;\n\nexport function useListUserRoles<\n\tTData = Awaited<ReturnType<typeof listUserRoles>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUserRoles>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUserRoles>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUserRoles>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUserRoles<\n\tTData = Awaited<ReturnType<typeof listUserRoles>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUserRoles>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUserRoles>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUserRoles>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUserRoles<\n\tTData = Awaited<ReturnType<typeof listUserRoles>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUserRoles>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List user roles\n */\n\nexport function useListUserRoles<\n\tTData = Awaited<ReturnType<typeof listUserRoles>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUserRoles>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListUserRolesQueryOptions(userId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getReplaceUserRolesUrl = (userId: string) => {\n\treturn `/access-control/users/${userId}/roles`;\n};\n\n/**\n * Replaces all roles assigned to a user with a new set.\n * @summary Replace user roles\n */\nexport const replaceUserRoles = async (\n\tuserId: string,\n\treplaceUserRolesRequest?: ReplaceUserRolesRequest,\n\toptions?: RequestInit,\n): Promise<ReplaceUserRolesResponse> => {\n\treturn customFetch<ReplaceUserRolesResponse>(getReplaceUserRolesUrl(userId), {\n\t\t...options,\n\t\tmethod: \"PUT\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(replaceUserRolesRequest),\n\t});\n};\n\nexport const getReplaceUserRolesMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof replaceUserRoles>>,\n\t\tTError,\n\t\t{ userId: string; data?: ReplaceUserRolesRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof replaceUserRoles>>,\n\tTError,\n\t{ userId: string; data?: ReplaceUserRolesRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"replaceUserRoles\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof replaceUserRoles>>,\n\t\t{ userId: string; data?: ReplaceUserRolesRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn replaceUserRoles(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type ReplaceUserRolesMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof replaceUserRoles>>\n>;\nexport type ReplaceUserRolesMutationBody = ReplaceUserRolesRequest | undefined;\nexport type ReplaceUserRolesMutationError = unknown;\n\n/**\n * @summary Replace user roles\n */\nexport const useReplaceUserRoles = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof replaceUserRoles>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: ReplaceUserRolesRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof replaceUserRoles>>,\n\tTError,\n\t{ userId: string; data?: ReplaceUserRolesRequest },\n\tTContext\n> => {\n\treturn useMutation(getReplaceUserRolesMutationOptions(options), queryClient);\n};\nexport const getAssignUserRoleUrl = (userId: string) => {\n\treturn `/access-control/users/${userId}/roles`;\n};\n\n/**\n * Assigns a role to a user.\n * @summary Assign role to user\n */\nexport const assignUserRole = async (\n\tuserId: string,\n\tassignUserRoleRequest?: AssignUserRoleRequest,\n\toptions?: RequestInit,\n): Promise<AssignUserRoleResponse> => {\n\treturn customFetch<AssignUserRoleResponse>(getAssignUserRoleUrl(userId), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(assignUserRoleRequest),\n\t});\n};\n\nexport const getAssignUserRoleMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof assignUserRole>>,\n\t\tTError,\n\t\t{ userId: string; data?: AssignUserRoleRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof assignUserRole>>,\n\tTError,\n\t{ userId: string; data?: AssignUserRoleRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"assignUserRole\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof assignUserRole>>,\n\t\t{ userId: string; data?: AssignUserRoleRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn assignUserRole(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type AssignUserRoleMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof assignUserRole>>\n>;\nexport type AssignUserRoleMutationBody = AssignUserRoleRequest | undefined;\nexport type AssignUserRoleMutationError = unknown;\n\n/**\n * @summary Assign role to user\n */\nexport const useAssignUserRole = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof assignUserRole>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: AssignUserRoleRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof assignUserRole>>,\n\tTError,\n\t{ userId: string; data?: AssignUserRoleRequest },\n\tTContext\n> => {\n\treturn useMutation(getAssignUserRoleMutationOptions(options), queryClient);\n};\nexport const getRemoveUserRoleUrl = (userId: string, roleId: string) => {\n\treturn `/access-control/users/${userId}/roles/${roleId}`;\n};\n\n/**\n * Removes a role from a user.\n * @summary Remove user role\n */\nexport const removeUserRole = async (\n\tuserId: string,\n\troleId: string,\n\toptions?: RequestInit,\n): Promise<RemoveUserRoleResponse> => {\n\treturn customFetch<RemoveUserRoleResponse>(\n\t\tgetRemoveUserRoleUrl(userId, roleId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"DELETE\",\n\t\t},\n\t);\n};\n\nexport const getRemoveUserRoleMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof removeUserRole>>,\n\t\tTError,\n\t\t{ userId: string; roleId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof removeUserRole>>,\n\tTError,\n\t{ userId: string; roleId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"removeUserRole\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof removeUserRole>>,\n\t\t{ userId: string; roleId: string }\n\t> = (props) => {\n\t\tconst { userId, roleId } = props ?? {};\n\n\t\treturn removeUserRole(userId, roleId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type RemoveUserRoleMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof removeUserRole>>\n>;\n\nexport type RemoveUserRoleMutationError = unknown;\n\n/**\n * @summary Remove user role\n */\nexport const useRemoveUserRole = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof removeUserRole>>,\n\t\t\tTError,\n\t\t\t{ userId: string; roleId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof removeUserRole>>,\n\tTError,\n\t{ userId: string; roleId: string },\n\tTContext\n> => {\n\treturn useMutation(getRemoveUserRoleMutationOptions(options), queryClient);\n};\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as accessControl from \"../../gen/endpoints/access-control/access-control\";\n\nexport class AccessControlPlugin implements Plugin {\n public readonly id = \"accessControl\";\n\n constructor() {}\n\n public init(client: AuthulaClient) {\n return wrapGenerated(accessControl, client);\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tCreateAccountRequest,\n\tCreateAccountResponse,\n\tDeleteAccountResponse,\n\tGetAccountByIDResponse,\n\tUpdateAccountRequest,\n\tUpdateAccountResponse,\n\tUserAccountsResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getGetAccountUrl = (id: string) => {\n\treturn `/admin/accounts/${id}`;\n};\n\n/**\n * Retrieves an account by its ID.\n * @summary Get account by ID\n */\nexport const getAccount = async (\n\tid: string,\n\toptions?: RequestInit,\n): Promise<GetAccountByIDResponse> => {\n\treturn customFetch<GetAccountByIDResponse>(getGetAccountUrl(id), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetAccountQueryKey = (id: string) => {\n\treturn [`/admin/accounts/${id}`] as const;\n};\n\nexport const getGetAccountQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getAccount>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getAccount>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetAccountQueryKey(id);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getAccount>>> = ({\n\t\tsignal,\n\t}) => getAccount(id, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: id !== null && id !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getAccount>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetAccountQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getAccount>>\n>;\nexport type GetAccountQueryError = unknown;\n\nexport function useGetAccount<\n\tTData = Awaited<ReturnType<typeof getAccount>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getAccount>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getAccount>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getAccount>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetAccount<\n\tTData = Awaited<ReturnType<typeof getAccount>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getAccount>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getAccount>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getAccount>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetAccount<\n\tTData = Awaited<ReturnType<typeof getAccount>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getAccount>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get account by ID\n */\n\nexport function useGetAccount<\n\tTData = Awaited<ReturnType<typeof getAccount>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getAccount>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetAccountQueryOptions(id, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getDeleteAccountUrl = (id: string) => {\n\treturn `/admin/accounts/${id}`;\n};\n\n/**\n * Deletes an account.\n * @summary Delete account\n */\nexport const deleteAccount = async (\n\tid: string,\n\toptions?: RequestInit,\n): Promise<DeleteAccountResponse> => {\n\treturn customFetch<DeleteAccountResponse>(getDeleteAccountUrl(id), {\n\t\t...options,\n\t\tmethod: \"DELETE\",\n\t});\n};\n\nexport const getDeleteAccountMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deleteAccount>>,\n\t\tTError,\n\t\t{ id: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deleteAccount>>,\n\tTError,\n\t{ id: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deleteAccount\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deleteAccount>>,\n\t\t{ id: string }\n\t> = (props) => {\n\t\tconst { id } = props ?? {};\n\n\t\treturn deleteAccount(id, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeleteAccountMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deleteAccount>>\n>;\n\nexport type DeleteAccountMutationError = unknown;\n\n/**\n * @summary Delete account\n */\nexport const useDeleteAccount = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deleteAccount>>,\n\t\t\tTError,\n\t\t\t{ id: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deleteAccount>>,\n\tTError,\n\t{ id: string },\n\tTContext\n> => {\n\treturn useMutation(getDeleteAccountMutationOptions(options), queryClient);\n};\nexport const getUpdateAccountUrl = (id: string) => {\n\treturn `/admin/accounts/${id}`;\n};\n\n/**\n * Updates an account's attributes.\n * @summary Update account\n */\nexport const updateAccount = async (\n\tid: string,\n\tupdateAccountRequest?: UpdateAccountRequest,\n\toptions?: RequestInit,\n): Promise<UpdateAccountResponse> => {\n\treturn customFetch<UpdateAccountResponse>(getUpdateAccountUrl(id), {\n\t\t...options,\n\t\tmethod: \"PATCH\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(updateAccountRequest),\n\t});\n};\n\nexport const getUpdateAccountMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updateAccount>>,\n\t\tTError,\n\t\t{ id: string; data?: UpdateAccountRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updateAccount>>,\n\tTError,\n\t{ id: string; data?: UpdateAccountRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updateAccount\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updateAccount>>,\n\t\t{ id: string; data?: UpdateAccountRequest }\n\t> = (props) => {\n\t\tconst { id, data } = props ?? {};\n\n\t\treturn updateAccount(id, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdateAccountMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updateAccount>>\n>;\nexport type UpdateAccountMutationBody = UpdateAccountRequest | undefined;\nexport type UpdateAccountMutationError = unknown;\n\n/**\n * @summary Update account\n */\nexport const useUpdateAccount = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updateAccount>>,\n\t\t\tTError,\n\t\t\t{ id: string; data?: UpdateAccountRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updateAccount>>,\n\tTError,\n\t{ id: string; data?: UpdateAccountRequest },\n\tTContext\n> => {\n\treturn useMutation(getUpdateAccountMutationOptions(options), queryClient);\n};\nexport const getListUserAccountsUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/accounts`;\n};\n\n/**\n * Lists all accounts for a user.\n * @summary List user accounts\n */\nexport const listUserAccounts = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<UserAccountsResponse> => {\n\treturn customFetch<UserAccountsResponse>(getListUserAccountsUrl(userId), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListUserAccountsQueryKey = (userId: string) => {\n\treturn [`/admin/users/${userId}/accounts`] as const;\n};\n\nexport const getListUserAccountsQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listUserAccounts>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getListUserAccountsQueryKey(userId);\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof listUserAccounts>>\n\t> = ({ signal }) => listUserAccounts(userId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: userId !== null && userId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListUserAccountsQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listUserAccounts>>\n>;\nexport type ListUserAccountsQueryError = unknown;\n\nexport function useListUserAccounts<\n\tTData = Awaited<ReturnType<typeof listUserAccounts>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUserAccounts<\n\tTData = Awaited<ReturnType<typeof listUserAccounts>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUserAccounts<\n\tTData = Awaited<ReturnType<typeof listUserAccounts>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List user accounts\n */\n\nexport function useListUserAccounts<\n\tTData = Awaited<ReturnType<typeof listUserAccounts>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListUserAccountsQueryOptions(userId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreateAccountUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/accounts`;\n};\n\n/**\n * Creates a new account for a user.\n * @summary Create account\n */\nexport const createAccount = async (\n\tuserId: string,\n\tcreateAccountRequest?: CreateAccountRequest,\n\toptions?: RequestInit,\n): Promise<CreateAccountResponse> => {\n\treturn customFetch<CreateAccountResponse>(getCreateAccountUrl(userId), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(createAccountRequest),\n\t});\n};\n\nexport const getCreateAccountMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createAccount>>,\n\t\tTError,\n\t\t{ userId: string; data?: CreateAccountRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createAccount>>,\n\tTError,\n\t{ userId: string; data?: CreateAccountRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createAccount\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createAccount>>,\n\t\t{ userId: string; data?: CreateAccountRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn createAccount(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreateAccountMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createAccount>>\n>;\nexport type CreateAccountMutationBody = CreateAccountRequest | undefined;\nexport type CreateAccountMutationError = unknown;\n\n/**\n * @summary Create account\n */\nexport const useCreateAccount = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createAccount>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: CreateAccountRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createAccount>>,\n\tTError,\n\t{ userId: string; data?: CreateAccountRequest },\n\tTContext\n> => {\n\treturn useMutation(getCreateAccountMutationOptions(options), queryClient);\n};\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tGetImpersonationByIDResponse,\n\tImpersonation,\n\tStartImpersonationRequest,\n\tStartImpersonationResponse,\n\tStopImpersonationResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getListImpersonationsUrl = () => {\n\treturn `/admin/impersonations`;\n};\n\n/**\n * Lists all impersonations.\n * @summary List impersonations\n */\nexport const listImpersonations = async (\n\toptions?: RequestInit,\n): Promise<Impersonation[] | null> => {\n\treturn customFetch<Impersonation[] | null>(getListImpersonationsUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListImpersonationsQueryKey = () => {\n\treturn [`/admin/impersonations`] as const;\n};\n\nexport const getListImpersonationsQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listImpersonations>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<\n\t\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\t\tTError,\n\t\t\tTData\n\t\t>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListImpersonationsQueryKey();\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof listImpersonations>>\n\t> = ({ signal }) => listImpersonations({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListImpersonationsQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listImpersonations>>\n>;\nexport type ListImpersonationsQueryError = unknown;\n\nexport function useListImpersonations<\n\tTData = Awaited<ReturnType<typeof listImpersonations>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListImpersonations<\n\tTData = Awaited<ReturnType<typeof listImpersonations>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListImpersonations<\n\tTData = Awaited<ReturnType<typeof listImpersonations>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List impersonations\n */\n\nexport function useListImpersonations<\n\tTData = Awaited<ReturnType<typeof listImpersonations>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListImpersonationsQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getStartImpersonationUrl = () => {\n\treturn `/admin/impersonations`;\n};\n\n/**\n * Starts an impersonation session as a target user.\n * @summary Start impersonation\n */\nexport const startImpersonation = async (\n\tstartImpersonationRequest?: StartImpersonationRequest,\n\toptions?: RequestInit,\n): Promise<StartImpersonationResponse> => {\n\treturn customFetch<StartImpersonationResponse>(getStartImpersonationUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(startImpersonationRequest),\n\t});\n};\n\nexport const getStartImpersonationMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof startImpersonation>>,\n\t\tTError,\n\t\t{ data?: StartImpersonationRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof startImpersonation>>,\n\tTError,\n\t{ data?: StartImpersonationRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"startImpersonation\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof startImpersonation>>,\n\t\t{ data?: StartImpersonationRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn startImpersonation(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type StartImpersonationMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof startImpersonation>>\n>;\nexport type StartImpersonationMutationBody =\n\t| StartImpersonationRequest\n\t| undefined;\nexport type StartImpersonationMutationError = unknown;\n\n/**\n * @summary Start impersonation\n */\nexport const useStartImpersonation = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof startImpersonation>>,\n\t\t\tTError,\n\t\t\t{ data?: StartImpersonationRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof startImpersonation>>,\n\tTError,\n\t{ data?: StartImpersonationRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetStartImpersonationMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getGetImpersonationUrl = (impersonationId: string) => {\n\treturn `/admin/impersonations/${impersonationId}`;\n};\n\n/**\n * Retrieves an impersonation by its ID.\n * @summary Get impersonation by ID\n */\nexport const getImpersonation = async (\n\timpersonationId: string,\n\toptions?: RequestInit,\n): Promise<GetImpersonationByIDResponse> => {\n\treturn customFetch<GetImpersonationByIDResponse>(\n\t\tgetGetImpersonationUrl(impersonationId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"GET\",\n\t\t},\n\t);\n};\n\nexport const getGetImpersonationQueryKey = (impersonationId: string) => {\n\treturn [`/admin/impersonations/${impersonationId}`] as const;\n};\n\nexport const getGetImpersonationQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getImpersonation>>,\n\tTError = unknown,\n>(\n\timpersonationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getGetImpersonationQueryKey(impersonationId);\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof getImpersonation>>\n\t> = ({ signal }) =>\n\t\tgetImpersonation(impersonationId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: impersonationId !== null && impersonationId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetImpersonationQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getImpersonation>>\n>;\nexport type GetImpersonationQueryError = unknown;\n\nexport function useGetImpersonation<\n\tTData = Awaited<ReturnType<typeof getImpersonation>>,\n\tTError = unknown,\n>(\n\timpersonationId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetImpersonation<\n\tTData = Awaited<ReturnType<typeof getImpersonation>>,\n\tTError = unknown,\n>(\n\timpersonationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetImpersonation<\n\tTData = Awaited<ReturnType<typeof getImpersonation>>,\n\tTError = unknown,\n>(\n\timpersonationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get impersonation by ID\n */\n\nexport function useGetImpersonation<\n\tTData = Awaited<ReturnType<typeof getImpersonation>>,\n\tTError = unknown,\n>(\n\timpersonationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetImpersonationQueryOptions(\n\t\timpersonationId,\n\t\toptions,\n\t);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getStopImpersonationUrl = (impersonationId: string) => {\n\treturn `/admin/impersonations/${impersonationId}/stop`;\n};\n\n/**\n * Stops an impersonation session and restores the original session.\n * @summary Stop impersonation\n */\nexport const stopImpersonation = async (\n\timpersonationId: string,\n\toptions?: RequestInit,\n): Promise<StopImpersonationResponse> => {\n\treturn customFetch<StopImpersonationResponse>(\n\t\tgetStopImpersonationUrl(impersonationId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"POST\",\n\t\t},\n\t);\n};\n\nexport const getStopImpersonationMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof stopImpersonation>>,\n\t\tTError,\n\t\t{ impersonationId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof stopImpersonation>>,\n\tTError,\n\t{ impersonationId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"stopImpersonation\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof stopImpersonation>>,\n\t\t{ impersonationId: string }\n\t> = (props) => {\n\t\tconst { impersonationId } = props ?? {};\n\n\t\treturn stopImpersonation(impersonationId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type StopImpersonationMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof stopImpersonation>>\n>;\n\nexport type StopImpersonationMutationError = unknown;\n\n/**\n * @summary Stop impersonation\n */\nexport const useStopImpersonation = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof stopImpersonation>>,\n\t\t\tTError,\n\t\t\t{ impersonationId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof stopImpersonation>>,\n\tTError,\n\t{ impersonationId: string },\n\tTContext\n> => {\n\treturn useMutation(getStopImpersonationMutationOptions(options), queryClient);\n};\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tAdminSessionState,\n\tCreateSessionStateRequest,\n\tDeleteSessionStateResponse,\n\tGetSessionStateResponse,\n\tRevokeSessionRequest,\n\tRevokeSessionResponse,\n\tUpsertSessionStateRequest,\n\tUpsertSessionStateResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getListRevokedSessionStatesUrl = () => {\n\treturn `/admin/sessions/states/revoked`;\n};\n\n/**\n * Lists all revoked session states.\n * @summary List revoked session states\n */\nexport const listRevokedSessionStates = async (\n\toptions?: RequestInit,\n): Promise<AdminSessionState[] | null> => {\n\treturn customFetch<AdminSessionState[] | null>(\n\t\tgetListRevokedSessionStatesUrl(),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"GET\",\n\t\t},\n\t);\n};\n\nexport const getListRevokedSessionStatesQueryKey = () => {\n\treturn [`/admin/sessions/states/revoked`] as const;\n};\n\nexport const getListRevokedSessionStatesQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listRevokedSessionStates>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<\n\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\t\tTError,\n\t\t\tTData\n\t\t>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getListRevokedSessionStatesQueryKey();\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>\n\t> = ({ signal }) => listRevokedSessionStates({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListRevokedSessionStatesQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listRevokedSessionStates>>\n>;\nexport type ListRevokedSessionStatesQueryError = unknown;\n\nexport function useListRevokedSessionStates<\n\tTData = Awaited<ReturnType<typeof listRevokedSessionStates>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListRevokedSessionStates<\n\tTData = Awaited<ReturnType<typeof listRevokedSessionStates>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListRevokedSessionStates<\n\tTData = Awaited<ReturnType<typeof listRevokedSessionStates>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List revoked session states\n */\n\nexport function useListRevokedSessionStates<\n\tTData = Awaited<ReturnType<typeof listRevokedSessionStates>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListRevokedSessionStatesQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getRevokeSessionUrl = (sessionId: string) => {\n\treturn `/admin/sessions/${sessionId}/revoke`;\n};\n\n/**\n * Revokes a session.\n * @summary Revoke session\n */\nexport const revokeSession = async (\n\tsessionId: string,\n\trevokeSessionRequest?: RevokeSessionRequest,\n\toptions?: RequestInit,\n): Promise<RevokeSessionResponse> => {\n\treturn customFetch<RevokeSessionResponse>(getRevokeSessionUrl(sessionId), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(revokeSessionRequest),\n\t});\n};\n\nexport const getRevokeSessionMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof revokeSession>>,\n\t\tTError,\n\t\t{ sessionId: string; data?: RevokeSessionRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof revokeSession>>,\n\tTError,\n\t{ sessionId: string; data?: RevokeSessionRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"revokeSession\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof revokeSession>>,\n\t\t{ sessionId: string; data?: RevokeSessionRequest }\n\t> = (props) => {\n\t\tconst { sessionId, data } = props ?? {};\n\n\t\treturn revokeSession(sessionId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type RevokeSessionMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof revokeSession>>\n>;\nexport type RevokeSessionMutationBody = RevokeSessionRequest | undefined;\nexport type RevokeSessionMutationError = unknown;\n\n/**\n * @summary Revoke session\n */\nexport const useRevokeSession = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof revokeSession>>,\n\t\t\tTError,\n\t\t\t{ sessionId: string; data?: RevokeSessionRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof revokeSession>>,\n\tTError,\n\t{ sessionId: string; data?: RevokeSessionRequest },\n\tTContext\n> => {\n\treturn useMutation(getRevokeSessionMutationOptions(options), queryClient);\n};\nexport const getGetSessionStateUrl = (sessionId: string) => {\n\treturn `/admin/sessions/${sessionId}/state`;\n};\n\n/**\n * Retrieves the state of a session.\n * @summary Get session state\n */\nexport const getSessionState = async (\n\tsessionId: string,\n\toptions?: RequestInit,\n): Promise<GetSessionStateResponse> => {\n\treturn customFetch<GetSessionStateResponse>(\n\t\tgetGetSessionStateUrl(sessionId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"GET\",\n\t\t},\n\t);\n};\n\nexport const getGetSessionStateQueryKey = (sessionId: string) => {\n\treturn [`/admin/sessions/${sessionId}/state`] as const;\n};\n\nexport const getGetSessionStateQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getSessionState>>,\n\tTError = unknown,\n>(\n\tsessionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getGetSessionStateQueryKey(sessionId);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getSessionState>>> = ({\n\t\tsignal,\n\t}) => getSessionState(sessionId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: sessionId !== null && sessionId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetSessionStateQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getSessionState>>\n>;\nexport type GetSessionStateQueryError = unknown;\n\nexport function useGetSessionState<\n\tTData = Awaited<ReturnType<typeof getSessionState>>,\n\tTError = unknown,\n>(\n\tsessionId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getSessionState>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetSessionState<\n\tTData = Awaited<ReturnType<typeof getSessionState>>,\n\tTError = unknown,\n>(\n\tsessionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getSessionState>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetSessionState<\n\tTData = Awaited<ReturnType<typeof getSessionState>>,\n\tTError = unknown,\n>(\n\tsessionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get session state\n */\n\nexport function useGetSessionState<\n\tTData = Awaited<ReturnType<typeof getSessionState>>,\n\tTError = unknown,\n>(\n\tsessionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetSessionStateQueryOptions(sessionId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreateSessionStateUrl = (sessionId: string) => {\n\treturn `/admin/sessions/${sessionId}/state`;\n};\n\n/**\n * Creates the state for a session.\n * @summary Create session state\n */\nexport const createSessionState = async (\n\tsessionId: string,\n\tcreateSessionStateRequest?: CreateSessionStateRequest,\n\toptions?: RequestInit,\n): Promise<UpsertSessionStateResponse> => {\n\treturn customFetch<UpsertSessionStateResponse>(\n\t\tgetCreateSessionStateUrl(sessionId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\t\tbody: JSON.stringify(createSessionStateRequest),\n\t\t},\n\t);\n};\n\nexport const getCreateSessionStateMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createSessionState>>,\n\t\tTError,\n\t\t{ sessionId: string; data?: CreateSessionStateRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createSessionState>>,\n\tTError,\n\t{ sessionId: string; data?: CreateSessionStateRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createSessionState\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createSessionState>>,\n\t\t{ sessionId: string; data?: CreateSessionStateRequest }\n\t> = (props) => {\n\t\tconst { sessionId, data } = props ?? {};\n\n\t\treturn createSessionState(sessionId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreateSessionStateMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createSessionState>>\n>;\nexport type CreateSessionStateMutationBody =\n\t| CreateSessionStateRequest\n\t| undefined;\nexport type CreateSessionStateMutationError = unknown;\n\n/**\n * @summary Create session state\n */\nexport const useCreateSessionState = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createSessionState>>,\n\t\t\tTError,\n\t\t\t{ sessionId: string; data?: CreateSessionStateRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createSessionState>>,\n\tTError,\n\t{ sessionId: string; data?: CreateSessionStateRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetCreateSessionStateMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getDeleteSessionStateUrl = (sessionId: string) => {\n\treturn `/admin/sessions/${sessionId}/state`;\n};\n\n/**\n * Deletes the state of a session.\n * @summary Delete session state\n */\nexport const deleteSessionState = async (\n\tsessionId: string,\n\toptions?: RequestInit,\n): Promise<DeleteSessionStateResponse> => {\n\treturn customFetch<DeleteSessionStateResponse>(\n\t\tgetDeleteSessionStateUrl(sessionId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"DELETE\",\n\t\t},\n\t);\n};\n\nexport const getDeleteSessionStateMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deleteSessionState>>,\n\t\tTError,\n\t\t{ sessionId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deleteSessionState>>,\n\tTError,\n\t{ sessionId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deleteSessionState\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deleteSessionState>>,\n\t\t{ sessionId: string }\n\t> = (props) => {\n\t\tconst { sessionId } = props ?? {};\n\n\t\treturn deleteSessionState(sessionId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeleteSessionStateMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deleteSessionState>>\n>;\n\nexport type DeleteSessionStateMutationError = unknown;\n\n/**\n * @summary Delete session state\n */\nexport const useDeleteSessionState = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deleteSessionState>>,\n\t\t\tTError,\n\t\t\t{ sessionId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deleteSessionState>>,\n\tTError,\n\t{ sessionId: string },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetDeleteSessionStateMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getUpdateSessionStateUrl = (sessionId: string) => {\n\treturn `/admin/sessions/${sessionId}/state`;\n};\n\n/**\n * Updates the state of a session.\n * @summary Update session state\n */\nexport const updateSessionState = async (\n\tsessionId: string,\n\tupsertSessionStateRequest?: UpsertSessionStateRequest,\n\toptions?: RequestInit,\n): Promise<UpsertSessionStateResponse> => {\n\treturn customFetch<UpsertSessionStateResponse>(\n\t\tgetUpdateSessionStateUrl(sessionId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"PATCH\",\n\t\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\t\tbody: JSON.stringify(upsertSessionStateRequest),\n\t\t},\n\t);\n};\n\nexport const getUpdateSessionStateMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updateSessionState>>,\n\t\tTError,\n\t\t{ sessionId: string; data?: UpsertSessionStateRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updateSessionState>>,\n\tTError,\n\t{ sessionId: string; data?: UpsertSessionStateRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updateSessionState\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updateSessionState>>,\n\t\t{ sessionId: string; data?: UpsertSessionStateRequest }\n\t> = (props) => {\n\t\tconst { sessionId, data } = props ?? {};\n\n\t\treturn updateSessionState(sessionId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdateSessionStateMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updateSessionState>>\n>;\nexport type UpdateSessionStateMutationBody =\n\t| UpsertSessionStateRequest\n\t| undefined;\nexport type UpdateSessionStateMutationError = unknown;\n\n/**\n * @summary Update session state\n */\nexport const useUpdateSessionState = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updateSessionState>>,\n\t\t\tTError,\n\t\t\t{ sessionId: string; data?: UpsertSessionStateRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updateSessionState>>,\n\tTError,\n\t{ sessionId: string; data?: UpsertSessionStateRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetUpdateSessionStateMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tAdminUserSession,\n\tAdminUserState,\n\tBanUserRequest,\n\tBanUserResponse,\n\tCreateUserStateRequest,\n\tDeleteUserStateResponse,\n\tGetUserStateResponse,\n\tUnbanUserResponse,\n\tUpsertUserStateRequest,\n\tUpsertUserStateResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getListBannedUserStatesUrl = () => {\n\treturn `/admin/users/states/banned`;\n};\n\n/**\n * Lists all banned user states.\n * @summary List banned user states\n */\nexport const listBannedUserStates = async (\n\toptions?: RequestInit,\n): Promise<AdminUserState[] | null> => {\n\treturn customFetch<AdminUserState[] | null>(getListBannedUserStatesUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListBannedUserStatesQueryKey = () => {\n\treturn [`/admin/users/states/banned`] as const;\n};\n\nexport const getListBannedUserStatesQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listBannedUserStates>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<\n\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\t\tTError,\n\t\t\tTData\n\t\t>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListBannedUserStatesQueryKey();\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof listBannedUserStates>>\n\t> = ({ signal }) => listBannedUserStates({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListBannedUserStatesQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listBannedUserStates>>\n>;\nexport type ListBannedUserStatesQueryError = unknown;\n\nexport function useListBannedUserStates<\n\tTData = Awaited<ReturnType<typeof listBannedUserStates>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListBannedUserStates<\n\tTData = Awaited<ReturnType<typeof listBannedUserStates>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListBannedUserStates<\n\tTData = Awaited<ReturnType<typeof listBannedUserStates>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List banned user states\n */\n\nexport function useListBannedUserStates<\n\tTData = Awaited<ReturnType<typeof listBannedUserStates>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListBannedUserStatesQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getBanUserUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/ban`;\n};\n\n/**\n * Bans a user.\n * @summary Ban user\n */\nexport const banUser = async (\n\tuserId: string,\n\tbanUserRequest?: BanUserRequest,\n\toptions?: RequestInit,\n): Promise<BanUserResponse> => {\n\treturn customFetch<BanUserResponse>(getBanUserUrl(userId), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(banUserRequest),\n\t});\n};\n\nexport const getBanUserMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof banUser>>,\n\t\tTError,\n\t\t{ userId: string; data?: BanUserRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof banUser>>,\n\tTError,\n\t{ userId: string; data?: BanUserRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"banUser\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof banUser>>,\n\t\t{ userId: string; data?: BanUserRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn banUser(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type BanUserMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof banUser>>\n>;\nexport type BanUserMutationBody = BanUserRequest | undefined;\nexport type BanUserMutationError = unknown;\n\n/**\n * @summary Ban user\n */\nexport const useBanUser = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof banUser>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: BanUserRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof banUser>>,\n\tTError,\n\t{ userId: string; data?: BanUserRequest },\n\tTContext\n> => {\n\treturn useMutation(getBanUserMutationOptions(options), queryClient);\n};\nexport const getListUserSessionsUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/sessions`;\n};\n\n/**\n * Lists all sessions for a user.\n * @summary List user sessions\n */\nexport const listUserSessions = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<AdminUserSession[] | null> => {\n\treturn customFetch<AdminUserSession[] | null>(\n\t\tgetListUserSessionsUrl(userId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"GET\",\n\t\t},\n\t);\n};\n\nexport const getListUserSessionsQueryKey = (userId: string) => {\n\treturn [`/admin/users/${userId}/sessions`] as const;\n};\n\nexport const getListUserSessionsQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listUserSessions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getListUserSessionsQueryKey(userId);\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof listUserSessions>>\n\t> = ({ signal }) => listUserSessions(userId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: userId !== null && userId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListUserSessionsQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listUserSessions>>\n>;\nexport type ListUserSessionsQueryError = unknown;\n\nexport function useListUserSessions<\n\tTData = Awaited<ReturnType<typeof listUserSessions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUserSessions<\n\tTData = Awaited<ReturnType<typeof listUserSessions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUserSessions<\n\tTData = Awaited<ReturnType<typeof listUserSessions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List user sessions\n */\n\nexport function useListUserSessions<\n\tTData = Awaited<ReturnType<typeof listUserSessions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListUserSessionsQueryOptions(userId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getGetUserStateUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/state`;\n};\n\n/**\n * Retrieves the state of a user.\n * @summary Get user state\n */\nexport const getUserState = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<GetUserStateResponse> => {\n\treturn customFetch<GetUserStateResponse>(getGetUserStateUrl(userId), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetUserStateQueryKey = (userId: string) => {\n\treturn [`/admin/users/${userId}/state`] as const;\n};\n\nexport const getGetUserStateQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getUserState>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUserState>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetUserStateQueryKey(userId);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getUserState>>> = ({\n\t\tsignal,\n\t}) => getUserState(userId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: userId !== null && userId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getUserState>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetUserStateQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getUserState>>\n>;\nexport type GetUserStateQueryError = unknown;\n\nexport function useGetUserState<\n\tTData = Awaited<ReturnType<typeof getUserState>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUserState>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getUserState>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getUserState>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetUserState<\n\tTData = Awaited<ReturnType<typeof getUserState>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUserState>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getUserState>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getUserState>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetUserState<\n\tTData = Awaited<ReturnType<typeof getUserState>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUserState>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get user state\n */\n\nexport function useGetUserState<\n\tTData = Awaited<ReturnType<typeof getUserState>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUserState>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetUserStateQueryOptions(userId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreateUserStateUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/state`;\n};\n\n/**\n * Creates the state for a user.\n * @summary Create user state\n */\nexport const createUserState = async (\n\tuserId: string,\n\tcreateUserStateRequest?: CreateUserStateRequest,\n\toptions?: RequestInit,\n): Promise<UpsertUserStateResponse> => {\n\treturn customFetch<UpsertUserStateResponse>(getCreateUserStateUrl(userId), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(createUserStateRequest),\n\t});\n};\n\nexport const getCreateUserStateMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createUserState>>,\n\t\tTError,\n\t\t{ userId: string; data?: CreateUserStateRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createUserState>>,\n\tTError,\n\t{ userId: string; data?: CreateUserStateRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createUserState\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createUserState>>,\n\t\t{ userId: string; data?: CreateUserStateRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn createUserState(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreateUserStateMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createUserState>>\n>;\nexport type CreateUserStateMutationBody = CreateUserStateRequest | undefined;\nexport type CreateUserStateMutationError = unknown;\n\n/**\n * @summary Create user state\n */\nexport const useCreateUserState = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createUserState>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: CreateUserStateRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createUserState>>,\n\tTError,\n\t{ userId: string; data?: CreateUserStateRequest },\n\tTContext\n> => {\n\treturn useMutation(getCreateUserStateMutationOptions(options), queryClient);\n};\nexport const getDeleteUserStateUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/state`;\n};\n\n/**\n * Deletes the state of a user.\n * @summary Delete user state\n */\nexport const deleteUserState = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<DeleteUserStateResponse> => {\n\treturn customFetch<DeleteUserStateResponse>(getDeleteUserStateUrl(userId), {\n\t\t...options,\n\t\tmethod: \"DELETE\",\n\t});\n};\n\nexport const getDeleteUserStateMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deleteUserState>>,\n\t\tTError,\n\t\t{ userId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deleteUserState>>,\n\tTError,\n\t{ userId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deleteUserState\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deleteUserState>>,\n\t\t{ userId: string }\n\t> = (props) => {\n\t\tconst { userId } = props ?? {};\n\n\t\treturn deleteUserState(userId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeleteUserStateMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deleteUserState>>\n>;\n\nexport type DeleteUserStateMutationError = unknown;\n\n/**\n * @summary Delete user state\n */\nexport const useDeleteUserState = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deleteUserState>>,\n\t\t\tTError,\n\t\t\t{ userId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deleteUserState>>,\n\tTError,\n\t{ userId: string },\n\tTContext\n> => {\n\treturn useMutation(getDeleteUserStateMutationOptions(options), queryClient);\n};\nexport const getUpdateUserStateUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/state`;\n};\n\n/**\n * Updates the state of a user.\n * @summary Update user state\n */\nexport const updateUserState = async (\n\tuserId: string,\n\tupsertUserStateRequest?: UpsertUserStateRequest,\n\toptions?: RequestInit,\n): Promise<UpsertUserStateResponse> => {\n\treturn customFetch<UpsertUserStateResponse>(getUpdateUserStateUrl(userId), {\n\t\t...options,\n\t\tmethod: \"PATCH\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(upsertUserStateRequest),\n\t});\n};\n\nexport const getUpdateUserStateMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updateUserState>>,\n\t\tTError,\n\t\t{ userId: string; data?: UpsertUserStateRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updateUserState>>,\n\tTError,\n\t{ userId: string; data?: UpsertUserStateRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updateUserState\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updateUserState>>,\n\t\t{ userId: string; data?: UpsertUserStateRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn updateUserState(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdateUserStateMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updateUserState>>\n>;\nexport type UpdateUserStateMutationBody = UpsertUserStateRequest | undefined;\nexport type UpdateUserStateMutationError = unknown;\n\n/**\n * @summary Update user state\n */\nexport const useUpdateUserState = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updateUserState>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: UpsertUserStateRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updateUserState>>,\n\tTError,\n\t{ userId: string; data?: UpsertUserStateRequest },\n\tTContext\n> => {\n\treturn useMutation(getUpdateUserStateMutationOptions(options), queryClient);\n};\nexport const getUnbanUserUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/unban`;\n};\n\n/**\n * Unbans a user.\n * @summary Unban user\n */\nexport const unbanUser = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<UnbanUserResponse> => {\n\treturn customFetch<UnbanUserResponse>(getUnbanUserUrl(userId), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t});\n};\n\nexport const getUnbanUserMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof unbanUser>>,\n\t\tTError,\n\t\t{ userId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof unbanUser>>,\n\tTError,\n\t{ userId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"unbanUser\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof unbanUser>>,\n\t\t{ userId: string }\n\t> = (props) => {\n\t\tconst { userId } = props ?? {};\n\n\t\treturn unbanUser(userId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UnbanUserMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof unbanUser>>\n>;\n\nexport type UnbanUserMutationError = unknown;\n\n/**\n * @summary Unban user\n */\nexport const useUnbanUser = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof unbanUser>>,\n\t\t\tTError,\n\t\t\t{ userId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof unbanUser>>,\n\tTError,\n\t{ userId: string },\n\tTContext\n> => {\n\treturn useMutation(getUnbanUserMutationOptions(options), queryClient);\n};\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tCreateUserRequest,\n\tCreateUserResponse,\n\tDeleteUserResponse,\n\tGetUserByIDResponse,\n\tListUsersParams,\n\tUpdateUserRequest,\n\tUpdateUserResponse,\n\tUsersPage,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getListUsersUrl = (params?: ListUsersParams) => {\n\tconst normalizedParams = new URLSearchParams();\n\n\tObject.entries(params || {}).forEach(([key, value]) => {\n\t\tif (value !== undefined) {\n\t\t\tnormalizedParams.append(key, value === null ? \"null\" : String(value));\n\t\t}\n\t});\n\n\tconst stringifiedParams = normalizedParams.toString();\n\n\treturn stringifiedParams.length > 0\n\t\t? `/admin/users?${stringifiedParams}`\n\t\t: `/admin/users`;\n};\n\n/**\n * Lists users with cursor-based pagination.\n * @summary List users\n */\nexport const listUsers = async (\n\tparams?: ListUsersParams,\n\toptions?: RequestInit,\n): Promise<UsersPage> => {\n\treturn customFetch<UsersPage>(getListUsersUrl(params), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListUsersQueryKey = (params?: ListUsersParams) => {\n\treturn [`/admin/users`, ...(params ? [params] : [])] as const;\n};\n\nexport const getListUsersQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listUsers>>,\n\tTError = unknown,\n>(\n\tparams?: ListUsersParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUsers>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListUsersQueryKey(params);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof listUsers>>> = ({\n\t\tsignal,\n\t}) => listUsers(params, { signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listUsers>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListUsersQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listUsers>>\n>;\nexport type ListUsersQueryError = unknown;\n\nexport function useListUsers<\n\tTData = Awaited<ReturnType<typeof listUsers>>,\n\tTError = unknown,\n>(\n\tparams: undefined | ListUsersParams,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUsers>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUsers>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUsers>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUsers<\n\tTData = Awaited<ReturnType<typeof listUsers>>,\n\tTError = unknown,\n>(\n\tparams?: ListUsersParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUsers>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUsers>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUsers>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUsers<\n\tTData = Awaited<ReturnType<typeof listUsers>>,\n\tTError = unknown,\n>(\n\tparams?: ListUsersParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUsers>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List users\n */\n\nexport function useListUsers<\n\tTData = Awaited<ReturnType<typeof listUsers>>,\n\tTError = unknown,\n>(\n\tparams?: ListUsersParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUsers>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListUsersQueryOptions(params, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreateUserUrl = () => {\n\treturn `/admin/users`;\n};\n\n/**\n * Creates a new user with the specified attributes.\n * @summary Create user\n */\nexport const createUser = async (\n\tcreateUserRequest?: CreateUserRequest,\n\toptions?: RequestInit,\n): Promise<CreateUserResponse> => {\n\treturn customFetch<CreateUserResponse>(getCreateUserUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(createUserRequest),\n\t});\n};\n\nexport const getCreateUserMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createUser>>,\n\t\tTError,\n\t\t{ data?: CreateUserRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createUser>>,\n\tTError,\n\t{ data?: CreateUserRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createUser\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createUser>>,\n\t\t{ data?: CreateUserRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn createUser(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreateUserMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createUser>>\n>;\nexport type CreateUserMutationBody = CreateUserRequest | undefined;\nexport type CreateUserMutationError = unknown;\n\n/**\n * @summary Create user\n */\nexport const useCreateUser = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createUser>>,\n\t\t\tTError,\n\t\t\t{ data?: CreateUserRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createUser>>,\n\tTError,\n\t{ data?: CreateUserRequest },\n\tTContext\n> => {\n\treturn useMutation(getCreateUserMutationOptions(options), queryClient);\n};\nexport const getGetUserUrl = (userId: string) => {\n\treturn `/admin/users/${userId}`;\n};\n\n/**\n * Retrieves a user by their ID.\n * @summary Get user by ID\n */\nexport const getUser = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<GetUserByIDResponse> => {\n\treturn customFetch<GetUserByIDResponse>(getGetUserUrl(userId), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetUserQueryKey = (userId: string) => {\n\treturn [`/admin/users/${userId}`] as const;\n};\n\nexport const getGetUserQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getUser>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUser>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetUserQueryKey(userId);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getUser>>> = ({\n\t\tsignal,\n\t}) => getUser(userId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: userId !== null && userId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<Awaited<ReturnType<typeof getUser>>, TError, TData> & {\n\t\tqueryKey: DataTag<QueryKey, TData, TError>;\n\t};\n};\n\nexport type GetUserQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getUser>>\n>;\nexport type GetUserQueryError = unknown;\n\nexport function useGetUser<\n\tTData = Awaited<ReturnType<typeof getUser>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUser>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getUser>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getUser>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetUser<\n\tTData = Awaited<ReturnType<typeof getUser>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUser>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getUser>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getUser>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetUser<\n\tTData = Awaited<ReturnType<typeof getUser>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUser>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get user by ID\n */\n\nexport function useGetUser<\n\tTData = Awaited<ReturnType<typeof getUser>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUser>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetUserQueryOptions(userId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getDeleteUserUrl = (userId: string) => {\n\treturn `/admin/users/${userId}`;\n};\n\n/**\n * Deletes a user.\n * @summary Delete user\n */\nexport const deleteUser = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<DeleteUserResponse> => {\n\treturn customFetch<DeleteUserResponse>(getDeleteUserUrl(userId), {\n\t\t...options,\n\t\tmethod: \"DELETE\",\n\t});\n};\n\nexport const getDeleteUserMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deleteUser>>,\n\t\tTError,\n\t\t{ userId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deleteUser>>,\n\tTError,\n\t{ userId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deleteUser\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deleteUser>>,\n\t\t{ userId: string }\n\t> = (props) => {\n\t\tconst { userId } = props ?? {};\n\n\t\treturn deleteUser(userId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeleteUserMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deleteUser>>\n>;\n\nexport type DeleteUserMutationError = unknown;\n\n/**\n * @summary Delete user\n */\nexport const useDeleteUser = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deleteUser>>,\n\t\t\tTError,\n\t\t\t{ userId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deleteUser>>,\n\tTError,\n\t{ userId: string },\n\tTContext\n> => {\n\treturn useMutation(getDeleteUserMutationOptions(options), queryClient);\n};\nexport const getUpdateUserUrl = (userId: string) => {\n\treturn `/admin/users/${userId}`;\n};\n\n/**\n * Updates a user's attributes.\n * @summary Update user\n */\nexport const updateUser = async (\n\tuserId: string,\n\tupdateUserRequest?: UpdateUserRequest,\n\toptions?: RequestInit,\n): Promise<UpdateUserResponse> => {\n\treturn customFetch<UpdateUserResponse>(getUpdateUserUrl(userId), {\n\t\t...options,\n\t\tmethod: \"PATCH\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(updateUserRequest),\n\t});\n};\n\nexport const getUpdateUserMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updateUser>>,\n\t\tTError,\n\t\t{ userId: string; data?: UpdateUserRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updateUser>>,\n\tTError,\n\t{ userId: string; data?: UpdateUserRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updateUser\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updateUser>>,\n\t\t{ userId: string; data?: UpdateUserRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn updateUser(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdateUserMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updateUser>>\n>;\nexport type UpdateUserMutationBody = UpdateUserRequest | undefined;\nexport type UpdateUserMutationError = unknown;\n\n/**\n * @summary Update user\n */\nexport const useUpdateUser = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updateUser>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: UpdateUserRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updateUser>>,\n\tTError,\n\t{ userId: string; data?: UpdateUserRequest },\n\tTContext\n> => {\n\treturn useMutation(getUpdateUserMutationOptions(options), queryClient);\n};\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as adminAccounts from \"../../gen/endpoints/admin-accounts/admin-accounts\";\nimport * as adminImpersonation from \"../../gen/endpoints/admin-impersonation/admin-impersonation\";\nimport * as adminSessionState from \"../../gen/endpoints/admin-session-state/admin-session-state\";\nimport * as adminUserState from \"../../gen/endpoints/admin-user-state/admin-user-state\";\nimport * as adminUsers from \"../../gen/endpoints/admin-users/admin-users\";\n\nexport class AdminPlugin implements Plugin {\n public readonly id = \"admin\";\n\n constructor() {}\n\n public init(client: AuthulaClient) {\n return {\n ...wrapGenerated(adminUsers, client),\n ...wrapGenerated(adminAccounts, client),\n ...wrapGenerated(adminUserState, client),\n ...wrapGenerated(adminSessionState, client),\n ...wrapGenerated(adminImpersonation, client),\n };\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tCreateApiKeyRequest,\n\tCreateApiKeyResponse,\n\tDeleteApiKeyResponse,\n\tGetAllApiKeysResponse,\n\tGetApiKeyResponse,\n\tListApiKeysParams,\n\tUpdateApiKeyRequest,\n\tUpdateApiKeyResponse,\n\tVerifyApiKeyRequest,\n\tVerifyApiKeyResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getListApiKeysUrl = (params?: ListApiKeysParams) => {\n\tconst normalizedParams = new URLSearchParams();\n\n\tObject.entries(params || {}).forEach(([key, value]) => {\n\t\tif (value !== undefined) {\n\t\t\tnormalizedParams.append(key, value === null ? \"null\" : String(value));\n\t\t}\n\t});\n\n\tconst stringifiedParams = normalizedParams.toString();\n\n\treturn stringifiedParams.length > 0\n\t\t? `/api-keys?${stringifiedParams}`\n\t\t: `/api-keys`;\n};\n\n/**\n * Lists API keys with pagination, optionally filtered by owner.\n * @summary List API keys\n */\nexport const listApiKeys = async (\n\tparams?: ListApiKeysParams,\n\toptions?: RequestInit,\n): Promise<GetAllApiKeysResponse> => {\n\treturn customFetch<GetAllApiKeysResponse>(getListApiKeysUrl(params), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListApiKeysQueryKey = (params?: ListApiKeysParams) => {\n\treturn [`/api-keys`, ...(params ? [params] : [])] as const;\n};\n\nexport const getListApiKeysQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listApiKeys>>,\n\tTError = unknown,\n>(\n\tparams?: ListApiKeysParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listApiKeys>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListApiKeysQueryKey(params);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof listApiKeys>>> = ({\n\t\tsignal,\n\t}) => listApiKeys(params, { signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listApiKeys>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListApiKeysQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listApiKeys>>\n>;\nexport type ListApiKeysQueryError = unknown;\n\nexport function useListApiKeys<\n\tTData = Awaited<ReturnType<typeof listApiKeys>>,\n\tTError = unknown,\n>(\n\tparams: undefined | ListApiKeysParams,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listApiKeys>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listApiKeys>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listApiKeys>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListApiKeys<\n\tTData = Awaited<ReturnType<typeof listApiKeys>>,\n\tTError = unknown,\n>(\n\tparams?: ListApiKeysParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listApiKeys>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listApiKeys>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listApiKeys>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListApiKeys<\n\tTData = Awaited<ReturnType<typeof listApiKeys>>,\n\tTError = unknown,\n>(\n\tparams?: ListApiKeysParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listApiKeys>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List API keys\n */\n\nexport function useListApiKeys<\n\tTData = Awaited<ReturnType<typeof listApiKeys>>,\n\tTError = unknown,\n>(\n\tparams?: ListApiKeysParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listApiKeys>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListApiKeysQueryOptions(params, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreateApiKeyUrl = () => {\n\treturn `/api-keys`;\n};\n\n/**\n * Creates a new API key for the specified owner.\n * @summary Create API key\n */\nexport const createApiKey = async (\n\tcreateApiKeyRequest?: CreateApiKeyRequest,\n\toptions?: RequestInit,\n): Promise<CreateApiKeyResponse> => {\n\treturn customFetch<CreateApiKeyResponse>(getCreateApiKeyUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(createApiKeyRequest),\n\t});\n};\n\nexport const getCreateApiKeyMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createApiKey>>,\n\t\tTError,\n\t\t{ data?: CreateApiKeyRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createApiKey>>,\n\tTError,\n\t{ data?: CreateApiKeyRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createApiKey\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createApiKey>>,\n\t\t{ data?: CreateApiKeyRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn createApiKey(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreateApiKeyMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createApiKey>>\n>;\nexport type CreateApiKeyMutationBody = CreateApiKeyRequest | undefined;\nexport type CreateApiKeyMutationError = unknown;\n\n/**\n * @summary Create API key\n */\nexport const useCreateApiKey = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createApiKey>>,\n\t\t\tTError,\n\t\t\t{ data?: CreateApiKeyRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createApiKey>>,\n\tTError,\n\t{ data?: CreateApiKeyRequest },\n\tTContext\n> => {\n\treturn useMutation(getCreateApiKeyMutationOptions(options), queryClient);\n};\nexport const getVerifyApiKeyUrl = () => {\n\treturn `/api-keys/verify`;\n};\n\n/**\n * Verifies an API key by its raw value and returns the associated key details.\n * @summary Verify API key\n */\nexport const verifyApiKey = async (\n\tverifyApiKeyRequest?: VerifyApiKeyRequest,\n\toptions?: RequestInit,\n): Promise<VerifyApiKeyResponse> => {\n\treturn customFetch<VerifyApiKeyResponse>(getVerifyApiKeyUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(verifyApiKeyRequest),\n\t});\n};\n\nexport const getVerifyApiKeyMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof verifyApiKey>>,\n\t\tTError,\n\t\t{ data?: VerifyApiKeyRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof verifyApiKey>>,\n\tTError,\n\t{ data?: VerifyApiKeyRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"verifyApiKey\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof verifyApiKey>>,\n\t\t{ data?: VerifyApiKeyRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn verifyApiKey(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type VerifyApiKeyMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof verifyApiKey>>\n>;\nexport type VerifyApiKeyMutationBody = VerifyApiKeyRequest | undefined;\nexport type VerifyApiKeyMutationError = unknown;\n\n/**\n * @summary Verify API key\n */\nexport const useVerifyApiKey = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof verifyApiKey>>,\n\t\t\tTError,\n\t\t\t{ data?: VerifyApiKeyRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof verifyApiKey>>,\n\tTError,\n\t{ data?: VerifyApiKeyRequest },\n\tTContext\n> => {\n\treturn useMutation(getVerifyApiKeyMutationOptions(options), queryClient);\n};\nexport const getGetApiKeyUrl = (id: string) => {\n\treturn `/api-keys/${id}`;\n};\n\n/**\n * Retrieves an API key by its ID.\n * @summary Get API key by ID\n */\nexport const getApiKey = async (\n\tid: string,\n\toptions?: RequestInit,\n): Promise<GetApiKeyResponse> => {\n\treturn customFetch<GetApiKeyResponse>(getGetApiKeyUrl(id), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetApiKeyQueryKey = (id: string) => {\n\treturn [`/api-keys/${id}`] as const;\n};\n\nexport const getGetApiKeyQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getApiKey>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getApiKey>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetApiKeyQueryKey(id);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getApiKey>>> = ({\n\t\tsignal,\n\t}) => getApiKey(id, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: id !== null && id !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<Awaited<ReturnType<typeof getApiKey>>, TError, TData> & {\n\t\tqueryKey: DataTag<QueryKey, TData, TError>;\n\t};\n};\n\nexport type GetApiKeyQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getApiKey>>\n>;\nexport type GetApiKeyQueryError = unknown;\n\nexport function useGetApiKey<\n\tTData = Awaited<ReturnType<typeof getApiKey>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getApiKey>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getApiKey>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getApiKey>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetApiKey<\n\tTData = Awaited<ReturnType<typeof getApiKey>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getApiKey>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getApiKey>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getApiKey>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetApiKey<\n\tTData = Awaited<ReturnType<typeof getApiKey>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getApiKey>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get API key by ID\n */\n\nexport function useGetApiKey<\n\tTData = Awaited<ReturnType<typeof getApiKey>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getApiKey>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetApiKeyQueryOptions(id, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getDeleteApiKeyUrl = (id: string) => {\n\treturn `/api-keys/${id}`;\n};\n\n/**\n * Deletes an API key.\n * @summary Delete API key\n */\nexport const deleteApiKey = async (\n\tid: string,\n\toptions?: RequestInit,\n): Promise<DeleteApiKeyResponse> => {\n\treturn customFetch<DeleteApiKeyResponse>(getDeleteApiKeyUrl(id), {\n\t\t...options,\n\t\tmethod: \"DELETE\",\n\t});\n};\n\nexport const getDeleteApiKeyMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deleteApiKey>>,\n\t\tTError,\n\t\t{ id: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deleteApiKey>>,\n\tTError,\n\t{ id: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deleteApiKey\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deleteApiKey>>,\n\t\t{ id: string }\n\t> = (props) => {\n\t\tconst { id } = props ?? {};\n\n\t\treturn deleteApiKey(id, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeleteApiKeyMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deleteApiKey>>\n>;\n\nexport type DeleteApiKeyMutationError = unknown;\n\n/**\n * @summary Delete API key\n */\nexport const useDeleteApiKey = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deleteApiKey>>,\n\t\t\tTError,\n\t\t\t{ id: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deleteApiKey>>,\n\tTError,\n\t{ id: string },\n\tTContext\n> => {\n\treturn useMutation(getDeleteApiKeyMutationOptions(options), queryClient);\n};\nexport const getUpdateApiKeyUrl = (id: string) => {\n\treturn `/api-keys/${id}`;\n};\n\n/**\n * Updates an API key's attributes.\n * @summary Update API key\n */\nexport const updateApiKey = async (\n\tid: string,\n\tupdateApiKeyRequest?: UpdateApiKeyRequest,\n\toptions?: RequestInit,\n): Promise<UpdateApiKeyResponse> => {\n\treturn customFetch<UpdateApiKeyResponse>(getUpdateApiKeyUrl(id), {\n\t\t...options,\n\t\tmethod: \"PATCH\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(updateApiKeyRequest),\n\t});\n};\n\nexport const getUpdateApiKeyMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updateApiKey>>,\n\t\tTError,\n\t\t{ id: string; data?: UpdateApiKeyRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updateApiKey>>,\n\tTError,\n\t{ id: string; data?: UpdateApiKeyRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updateApiKey\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updateApiKey>>,\n\t\t{ id: string; data?: UpdateApiKeyRequest }\n\t> = (props) => {\n\t\tconst { id, data } = props ?? {};\n\n\t\treturn updateApiKey(id, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdateApiKeyMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updateApiKey>>\n>;\nexport type UpdateApiKeyMutationBody = UpdateApiKeyRequest | undefined;\nexport type UpdateApiKeyMutationError = unknown;\n\n/**\n * @summary Update API key\n */\nexport const useUpdateApiKey = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updateApiKey>>,\n\t\t\tTError,\n\t\t\t{ id: string; data?: UpdateApiKeyRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updateApiKey>>,\n\tTError,\n\t{ id: string; data?: UpdateApiKeyRequest },\n\tTContext\n> => {\n\treturn useMutation(getUpdateApiKeyMutationOptions(options), queryClient);\n};\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as apiKey from \"../../gen/endpoints/api-keys/api-keys\";\n\nexport class ApiKeyPlugin implements Plugin {\n public readonly id = \"apiKey\";\n\n constructor() {}\n\n public init(client: AuthulaClient) {\n return wrapGenerated(apiKey, client);\n }\n}\n","import type { FetchContext, Plugin } from \"@/types\";\nimport type { ClientWithPlugins } from \"@/sdk\";\nimport type { JWTPlugin } from \"../jwt/plugin\";\nimport type { BearerPluginOptions } from \"./types\";\n\nexport class BearerPlugin implements Plugin {\n public readonly id = \"bearer\";\n private refreshPromise: Promise<any> | null = null;\n\n constructor(private readonly options?: BearerPluginOptions) {}\n\n public init(client: ClientWithPlugins<[JWTPlugin]>) {\n client.registerBeforeFetch(async (ctx: FetchContext) => {\n if (typeof document === \"undefined\") {\n return;\n }\n\n const headerName = this.options?.headerName ?? \"Authorization\";\n const token = localStorage.getItem(\"accessToken\");\n if (token) {\n ctx.init.headers = {\n ...ctx.init.headers,\n [headerName]: `Bearer ${token}`,\n };\n }\n });\n\n client.registerAfterFetch(async (ctx: FetchContext, res: Response) => {\n if (typeof document === \"undefined\") {\n return;\n }\n if (res.status !== 401) {\n return;\n }\n if (ctx.meta.retry) {\n return;\n }\n\n const refreshToken = localStorage.getItem(\"refreshToken\");\n if (!refreshToken) {\n return;\n }\n\n if (!client.jwt) {\n console.warn(\"JWT Plugin is required for Bearer token refresh.\");\n return;\n }\n\n // 🔒 SINGLE FLIGHT REFRESH\n if (!this.refreshPromise) {\n this.refreshPromise = (async () => {\n try {\n const response = await client.jwt.refreshToken({\n refreshToken: refreshToken,\n });\n if (!response) {\n return null;\n }\n\n localStorage.setItem(\"accessToken\", response.accessToken);\n localStorage.setItem(\"refreshToken\", response.refreshToken);\n\n return response;\n } finally {\n this.refreshPromise = null;\n }\n })();\n }\n\n const refreshed = await this.refreshPromise;\n if (!refreshed) {\n return;\n }\n\n const headerName = this.options?.headerName ?? \"Authorization\";\n ctx.init.headers = {\n ...ctx.init.headers,\n [headerName]: `Bearer ${refreshed.accessToken}`,\n };\n\n return \"retry\";\n });\n\n return {};\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tGetMeResponse,\n\tSignOutRequest,\n\tSignOutResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getGetMeUrl = () => {\n\treturn `/me`;\n};\n\n/**\n * Retrieves the authenticated user's profile and current session.\n * @summary Get current user\n */\nexport const getMe = async (options?: RequestInit): Promise<GetMeResponse> => {\n\treturn customFetch<GetMeResponse>(getGetMeUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetMeQueryKey = () => {\n\treturn [`/me`] as const;\n};\n\nexport const getGetMeQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getMe>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<Awaited<ReturnType<typeof getMe>>, TError, TData>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetMeQueryKey();\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getMe>>> = ({\n\t\tsignal,\n\t}) => getMe({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getMe>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetMeQueryResult = NonNullable<Awaited<ReturnType<typeof getMe>>>;\nexport type GetMeQueryError = unknown;\n\nexport function useGetMe<\n\tTData = Awaited<ReturnType<typeof getMe>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getMe>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getMe>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getMe>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetMe<\n\tTData = Awaited<ReturnType<typeof getMe>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getMe>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getMe>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getMe>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetMe<\n\tTData = Awaited<ReturnType<typeof getMe>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getMe>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get current user\n */\n\nexport function useGetMe<\n\tTData = Awaited<ReturnType<typeof getMe>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getMe>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetMeQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getSignOutUrl = () => {\n\treturn `/sign-out`;\n};\n\n/**\n * Signs out the authenticated user. Optionally sign out a specific session or all sessions.\n * @summary Sign out\n */\nexport const signOut = async (\n\tsignOutRequest?: SignOutRequest,\n\toptions?: RequestInit,\n): Promise<SignOutResponse> => {\n\treturn customFetch<SignOutResponse>(getSignOutUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(signOutRequest),\n\t});\n};\n\nexport const getSignOutMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof signOut>>,\n\t\tTError,\n\t\t{ data?: SignOutRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof signOut>>,\n\tTError,\n\t{ data?: SignOutRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"signOut\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof signOut>>,\n\t\t{ data?: SignOutRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn signOut(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type SignOutMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof signOut>>\n>;\nexport type SignOutMutationBody = SignOutRequest | undefined;\nexport type SignOutMutationError = unknown;\n\n/**\n * @summary Sign out\n */\nexport const useSignOut = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof signOut>>,\n\t\t\tTError,\n\t\t\t{ data?: SignOutRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof signOut>>,\n\tTError,\n\t{ data?: SignOutRequest },\n\tTContext\n> => {\n\treturn useMutation(getSignOutMutationOptions(options), queryClient);\n};\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as core from \"../../gen/endpoints/core/core\";\n\nexport class CorePlugin implements Plugin {\n public readonly id = \"core\";\n\n constructor() {}\n\n public init(client: AuthulaClient) {\n return wrapGenerated(core, client);\n }\n}\n","import { parseCookie } from \"cookie\";\n\nimport type { FetchContext, Plugin } from \"@/types\";\nimport type { CSRFPluginOptions } from \"./types\";\nimport type { AuthulaClient } from \"@/client\";\n\nexport class CSRFPlugin implements Plugin {\n public readonly id = \"csrf\";\n\n constructor(private readonly options: CSRFPluginOptions) {}\n\n public init(client: AuthulaClient) {\n client.registerBeforeFetch(async (ctx: FetchContext) => {\n if ([\"OPTIONS\", \"HEAD\", \"GET\"].includes(ctx.init.method || \"GET\")) {\n return;\n }\n\n if (typeof document === \"undefined\") {\n return;\n }\n\n const cookies = parseCookie(document.cookie);\n const value = cookies[this.options.cookieName];\n\n if (!value) return;\n\n ctx.init.headers = new Headers(ctx.init.headers);\n ctx.init.headers.set(this.options.headerName, value);\n });\n\n return {};\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tChangeEmailResponse,\n\tChangePasswordRequest,\n\tChangePasswordResponse,\n\tRequestEmailChangeRequest,\n\tRequestPasswordResetRequest,\n\tSendEmailVerificationRequest,\n\tSignInRequest,\n\tSignInResponse,\n\tSignUpRequest,\n\tSignUpResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getChangePasswordUrl = () => {\n\treturn `/email-password/change-password`;\n};\n\n/**\n * Changes the user's password using a reset token\n * @summary Change password\n */\nexport const changePassword = async (\n\tchangePasswordRequest?: ChangePasswordRequest,\n\toptions?: RequestInit,\n): Promise<ChangePasswordResponse> => {\n\treturn customFetch<ChangePasswordResponse>(getChangePasswordUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(changePasswordRequest),\n\t});\n};\n\nexport const getChangePasswordMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof changePassword>>,\n\t\tTError,\n\t\t{ data?: ChangePasswordRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof changePassword>>,\n\tTError,\n\t{ data?: ChangePasswordRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"changePassword\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof changePassword>>,\n\t\t{ data?: ChangePasswordRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn changePassword(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type ChangePasswordMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof changePassword>>\n>;\nexport type ChangePasswordMutationBody = ChangePasswordRequest | undefined;\nexport type ChangePasswordMutationError = unknown;\n\n/**\n * @summary Change password\n */\nexport const useChangePassword = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof changePassword>>,\n\t\t\tTError,\n\t\t\t{ data?: ChangePasswordRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof changePassword>>,\n\tTError,\n\t{ data?: ChangePasswordRequest },\n\tTContext\n> => {\n\treturn useMutation(getChangePasswordMutationOptions(options), queryClient);\n};\nexport const getRequestEmailChangeUrl = () => {\n\treturn `/email-password/request-email-change`;\n};\n\n/**\n * Requests to change the authenticated user's email address\n * @summary Request email change\n */\nexport const requestEmailChange = async (\n\trequestEmailChangeRequest?: RequestEmailChangeRequest,\n\toptions?: RequestInit,\n): Promise<ChangeEmailResponse> => {\n\treturn customFetch<ChangeEmailResponse>(getRequestEmailChangeUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(requestEmailChangeRequest),\n\t});\n};\n\nexport const getRequestEmailChangeMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof requestEmailChange>>,\n\t\tTError,\n\t\t{ data?: RequestEmailChangeRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof requestEmailChange>>,\n\tTError,\n\t{ data?: RequestEmailChangeRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"requestEmailChange\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof requestEmailChange>>,\n\t\t{ data?: RequestEmailChangeRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn requestEmailChange(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type RequestEmailChangeMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof requestEmailChange>>\n>;\nexport type RequestEmailChangeMutationBody =\n\t| RequestEmailChangeRequest\n\t| undefined;\nexport type RequestEmailChangeMutationError = unknown;\n\n/**\n * @summary Request email change\n */\nexport const useRequestEmailChange = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof requestEmailChange>>,\n\t\t\tTError,\n\t\t\t{ data?: RequestEmailChangeRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof requestEmailChange>>,\n\tTError,\n\t{ data?: RequestEmailChangeRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetRequestEmailChangeMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getRequestPasswordResetUrl = () => {\n\treturn `/email-password/request-password-reset`;\n};\n\n/**\n * Requests a password reset link to be sent to the user's email\n * @summary Request password reset\n */\nexport const requestPasswordReset = async (\n\trequestPasswordResetRequest?: RequestPasswordResetRequest,\n\toptions?: RequestInit,\n): Promise<ChangePasswordResponse> => {\n\treturn customFetch<ChangePasswordResponse>(getRequestPasswordResetUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(requestPasswordResetRequest),\n\t});\n};\n\nexport const getRequestPasswordResetMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof requestPasswordReset>>,\n\t\tTError,\n\t\t{ data?: RequestPasswordResetRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof requestPasswordReset>>,\n\tTError,\n\t{ data?: RequestPasswordResetRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"requestPasswordReset\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof requestPasswordReset>>,\n\t\t{ data?: RequestPasswordResetRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn requestPasswordReset(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type RequestPasswordResetMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof requestPasswordReset>>\n>;\nexport type RequestPasswordResetMutationBody =\n\t| RequestPasswordResetRequest\n\t| undefined;\nexport type RequestPasswordResetMutationError = unknown;\n\n/**\n * @summary Request password reset\n */\nexport const useRequestPasswordReset = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof requestPasswordReset>>,\n\t\t\tTError,\n\t\t\t{ data?: RequestPasswordResetRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof requestPasswordReset>>,\n\tTError,\n\t{ data?: RequestPasswordResetRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetRequestPasswordResetMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getSendEmailVerificationUrl = () => {\n\treturn `/email-password/send-email-verification`;\n};\n\n/**\n * Sends a verification email to the authenticated user\n * @summary Send email verification\n */\nexport const sendEmailVerification = async (\n\tsendEmailVerificationRequest?: SendEmailVerificationRequest,\n\toptions?: RequestInit,\n): Promise<ChangePasswordResponse> => {\n\treturn customFetch<ChangePasswordResponse>(getSendEmailVerificationUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(sendEmailVerificationRequest),\n\t});\n};\n\nexport const getSendEmailVerificationMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof sendEmailVerification>>,\n\t\tTError,\n\t\t{ data?: SendEmailVerificationRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof sendEmailVerification>>,\n\tTError,\n\t{ data?: SendEmailVerificationRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"sendEmailVerification\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof sendEmailVerification>>,\n\t\t{ data?: SendEmailVerificationRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn sendEmailVerification(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type SendEmailVerificationMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof sendEmailVerification>>\n>;\nexport type SendEmailVerificationMutationBody =\n\t| SendEmailVerificationRequest\n\t| undefined;\nexport type SendEmailVerificationMutationError = unknown;\n\n/**\n * @summary Send email verification\n */\nexport const useSendEmailVerification = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof sendEmailVerification>>,\n\t\t\tTError,\n\t\t\t{ data?: SendEmailVerificationRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof sendEmailVerification>>,\n\tTError,\n\t{ data?: SendEmailVerificationRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetSendEmailVerificationMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getSignInUrl = () => {\n\treturn `/email-password/sign-in`;\n};\n\n/**\n * Authenticates a user with email and password\n * @summary Sign in\n */\nexport const signIn = async (\n\tsignInRequest?: SignInRequest,\n\toptions?: RequestInit,\n): Promise<SignInResponse> => {\n\treturn customFetch<SignInResponse>(getSignInUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(signInRequest),\n\t});\n};\n\nexport const getSignInMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof signIn>>,\n\t\tTError,\n\t\t{ data?: SignInRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof signIn>>,\n\tTError,\n\t{ data?: SignInRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"signIn\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof signIn>>,\n\t\t{ data?: SignInRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn signIn(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type SignInMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof signIn>>\n>;\nexport type SignInMutationBody = SignInRequest | undefined;\nexport type SignInMutationError = unknown;\n\n/**\n * @summary Sign in\n */\nexport const useSignIn = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof signIn>>,\n\t\t\tTError,\n\t\t\t{ data?: SignInRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof signIn>>,\n\tTError,\n\t{ data?: SignInRequest },\n\tTContext\n> => {\n\treturn useMutation(getSignInMutationOptions(options), queryClient);\n};\nexport const getSignUpUrl = () => {\n\treturn `/email-password/sign-up`;\n};\n\n/**\n * Registers a new user with email and password\n * @summary Register new user\n */\nexport const signUp = async (\n\tsignUpRequest?: SignUpRequest,\n\toptions?: RequestInit,\n): Promise<SignUpResponse> => {\n\treturn customFetch<SignUpResponse>(getSignUpUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(signUpRequest),\n\t});\n};\n\nexport const getSignUpMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof signUp>>,\n\t\tTError,\n\t\t{ data?: SignUpRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof signUp>>,\n\tTError,\n\t{ data?: SignUpRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"signUp\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof signUp>>,\n\t\t{ data?: SignUpRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn signUp(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type SignUpMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof signUp>>\n>;\nexport type SignUpMutationBody = SignUpRequest | undefined;\nexport type SignUpMutationError = unknown;\n\n/**\n * @summary Register new user\n */\nexport const useSignUp = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof signUp>>,\n\t\t\tTError,\n\t\t\t{ data?: SignUpRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof signUp>>,\n\tTError,\n\t{ data?: SignUpRequest },\n\tTContext\n> => {\n\treturn useMutation(getSignUpMutationOptions(options), queryClient);\n};\nexport const getVerifyEmailUrl = () => {\n\treturn `/email-password/verify-email`;\n};\n\n/**\n * Verifies an email address or processes a password reset token using a verification token\n * @summary Verify email\n */\nexport const verifyEmail = async (\n\toptions?: RequestInit,\n): Promise<ChangePasswordResponse> => {\n\treturn customFetch<ChangePasswordResponse>(getVerifyEmailUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getVerifyEmailQueryKey = () => {\n\treturn [`/email-password/verify-email`] as const;\n};\n\nexport const getVerifyEmailQueryOptions = <\n\tTData = Awaited<ReturnType<typeof verifyEmail>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<Awaited<ReturnType<typeof verifyEmail>>, TError, TData>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getVerifyEmailQueryKey();\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof verifyEmail>>> = ({\n\t\tsignal,\n\t}) => verifyEmail({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof verifyEmail>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type VerifyEmailQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof verifyEmail>>\n>;\nexport type VerifyEmailQueryError = unknown;\n\nexport function useVerifyEmail<\n\tTData = Awaited<ReturnType<typeof verifyEmail>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof verifyEmail>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof verifyEmail>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof verifyEmail>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useVerifyEmail<\n\tTData = Awaited<ReturnType<typeof verifyEmail>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof verifyEmail>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof verifyEmail>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof verifyEmail>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useVerifyEmail<\n\tTData = Awaited<ReturnType<typeof verifyEmail>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof verifyEmail>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Verify email\n */\n\nexport function useVerifyEmail<\n\tTData = Awaited<ReturnType<typeof verifyEmail>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof verifyEmail>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getVerifyEmailQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as emailPassword from \"../../gen/endpoints/email-password-plugin/email-password-plugin\";\n\nexport class EmailPasswordPlugin implements Plugin {\n public readonly id = \"emailPassword\";\n\n public init(client: AuthulaClient) {\n return wrapGenerated(emailPassword, client);\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tRefreshTokenRequest,\n\tRefreshTokenResponse,\n\tWellKnownJWKSResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getGetJWKSUrl = () => {\n\treturn `/.well-known/jwks.json`;\n};\n\n/**\n * Returns the JSON Web Key Set (JWKS) containing the public keys used to verify JWT signatures.\n * @summary Get JWKS\n */\nexport const getJWKS = async (\n\toptions?: RequestInit,\n): Promise<WellKnownJWKSResponse> => {\n\treturn customFetch<WellKnownJWKSResponse>(getGetJWKSUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetJWKSQueryKey = () => {\n\treturn [`/.well-known/jwks.json`] as const;\n};\n\nexport const getGetJWKSQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getJWKS>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<Awaited<ReturnType<typeof getJWKS>>, TError, TData>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetJWKSQueryKey();\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getJWKS>>> = ({\n\t\tsignal,\n\t}) => getJWKS({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getJWKS>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetJWKSQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getJWKS>>\n>;\nexport type GetJWKSQueryError = unknown;\n\nexport function useGetJWKS<\n\tTData = Awaited<ReturnType<typeof getJWKS>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getJWKS>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getJWKS>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getJWKS>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetJWKS<\n\tTData = Awaited<ReturnType<typeof getJWKS>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getJWKS>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getJWKS>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getJWKS>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetJWKS<\n\tTData = Awaited<ReturnType<typeof getJWKS>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getJWKS>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get JWKS\n */\n\nexport function useGetJWKS<\n\tTData = Awaited<ReturnType<typeof getJWKS>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getJWKS>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetJWKSQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getRefreshTokenUrl = () => {\n\treturn `/token/refresh`;\n};\n\n/**\n * Exchanges a valid refresh token for a new access token and refresh token pair.\n * @summary Refresh JWT token\n */\nexport const refreshToken = async (\n\trefreshTokenRequest?: RefreshTokenRequest,\n\toptions?: RequestInit,\n): Promise<RefreshTokenResponse> => {\n\treturn customFetch<RefreshTokenResponse>(getRefreshTokenUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(refreshTokenRequest),\n\t});\n};\n\nexport const getRefreshTokenMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof refreshToken>>,\n\t\tTError,\n\t\t{ data?: RefreshTokenRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof refreshToken>>,\n\tTError,\n\t{ data?: RefreshTokenRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"refreshToken\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof refreshToken>>,\n\t\t{ data?: RefreshTokenRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn refreshToken(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type RefreshTokenMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof refreshToken>>\n>;\nexport type RefreshTokenMutationBody = RefreshTokenRequest | undefined;\nexport type RefreshTokenMutationError = unknown;\n\n/**\n * @summary Refresh JWT token\n */\nexport const useRefreshToken = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof refreshToken>>,\n\t\t\tTError,\n\t\t\t{ data?: RefreshTokenRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof refreshToken>>,\n\tTError,\n\t{ data?: RefreshTokenRequest },\n\tTContext\n> => {\n\treturn useMutation(getRefreshTokenMutationOptions(options), queryClient);\n};\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as jwt from \"../../gen/endpoints/jwt-plugin/jwt-plugin\";\n\nexport class JWTPlugin implements Plugin {\n public readonly id = \"jwt\";\n\n constructor() {}\n\n public init(client: AuthulaClient) {\n return wrapGenerated(jwt, client);\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tMagicLinkExchangeRequest,\n\tMagicLinkExchangeResponse,\n\tMagicLinkSignInRequest,\n\tMagicLinkSignInResponse,\n\tMagicLinkVerifyResponse,\n\tVerifyMagicLinkParams,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getExchangeMagicLinkUrl = () => {\n\treturn `/magic-link/exchange`;\n};\n\n/**\n * Exchanges a verified magic link token for an authenticated user session.\n * @summary Exchange magic link token for session\n */\nexport const exchangeMagicLink = async (\n\tmagicLinkExchangeRequest?: MagicLinkExchangeRequest,\n\toptions?: RequestInit,\n): Promise<MagicLinkExchangeResponse> => {\n\treturn customFetch<MagicLinkExchangeResponse>(getExchangeMagicLinkUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(magicLinkExchangeRequest),\n\t});\n};\n\nexport const getExchangeMagicLinkMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof exchangeMagicLink>>,\n\t\tTError,\n\t\t{ data?: MagicLinkExchangeRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof exchangeMagicLink>>,\n\tTError,\n\t{ data?: MagicLinkExchangeRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"exchangeMagicLink\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof exchangeMagicLink>>,\n\t\t{ data?: MagicLinkExchangeRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn exchangeMagicLink(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type ExchangeMagicLinkMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof exchangeMagicLink>>\n>;\nexport type ExchangeMagicLinkMutationBody =\n\t| MagicLinkExchangeRequest\n\t| undefined;\nexport type ExchangeMagicLinkMutationError = unknown;\n\n/**\n * @summary Exchange magic link token for session\n */\nexport const useExchangeMagicLink = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof exchangeMagicLink>>,\n\t\t\tTError,\n\t\t\t{ data?: MagicLinkExchangeRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof exchangeMagicLink>>,\n\tTError,\n\t{ data?: MagicLinkExchangeRequest },\n\tTContext\n> => {\n\treturn useMutation(getExchangeMagicLinkMutationOptions(options), queryClient);\n};\nexport const getSignInWithMagicLinkUrl = () => {\n\treturn `/magic-link/sign-in`;\n};\n\n/**\n * Sends a magic link to the given email address if an account exists. Optionally creates a new account if sign-up is enabled.\n * @summary Sign in with magic link\n */\nexport const signInWithMagicLink = async (\n\tmagicLinkSignInRequest?: MagicLinkSignInRequest,\n\toptions?: RequestInit,\n): Promise<MagicLinkSignInResponse> => {\n\treturn customFetch<MagicLinkSignInResponse>(getSignInWithMagicLinkUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(magicLinkSignInRequest),\n\t});\n};\n\nexport const getSignInWithMagicLinkMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof signInWithMagicLink>>,\n\t\tTError,\n\t\t{ data?: MagicLinkSignInRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof signInWithMagicLink>>,\n\tTError,\n\t{ data?: MagicLinkSignInRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"signInWithMagicLink\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof signInWithMagicLink>>,\n\t\t{ data?: MagicLinkSignInRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn signInWithMagicLink(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type SignInWithMagicLinkMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof signInWithMagicLink>>\n>;\nexport type SignInWithMagicLinkMutationBody =\n\t| MagicLinkSignInRequest\n\t| undefined;\nexport type SignInWithMagicLinkMutationError = unknown;\n\n/**\n * @summary Sign in with magic link\n */\nexport const useSignInWithMagicLink = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof signInWithMagicLink>>,\n\t\t\tTError,\n\t\t\t{ data?: MagicLinkSignInRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof signInWithMagicLink>>,\n\tTError,\n\t{ data?: MagicLinkSignInRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetSignInWithMagicLinkMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getVerifyMagicLinkUrl = (params: VerifyMagicLinkParams) => {\n\tconst normalizedParams = new URLSearchParams();\n\n\tObject.entries(params || {}).forEach(([key, value]) => {\n\t\tif (value !== undefined) {\n\t\t\tnormalizedParams.append(key, value === null ? \"null\" : String(value));\n\t\t}\n\t});\n\n\tconst stringifiedParams = normalizedParams.toString();\n\n\treturn stringifiedParams.length > 0\n\t\t? `/magic-link/verify?${stringifiedParams}`\n\t\t: `/magic-link/verify`;\n};\n\n/**\n * Verifies a magic link token. If a callback_url is provided and trusted, redirects the user with an exchange token appended. Otherwise returns the exchange token in the JSON response.\n * @summary Verify magic link token\n */\nexport const verifyMagicLink = async (\n\tparams: VerifyMagicLinkParams,\n\toptions?: RequestInit,\n): Promise<MagicLinkVerifyResponse> => {\n\treturn customFetch<MagicLinkVerifyResponse>(getVerifyMagicLinkUrl(params), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getVerifyMagicLinkQueryKey = (params?: VerifyMagicLinkParams) => {\n\treturn [`/magic-link/verify`, ...(params ? [params] : [])] as const;\n};\n\nexport const getVerifyMagicLinkQueryOptions = <\n\tTData = Awaited<ReturnType<typeof verifyMagicLink>>,\n\tTError = unknown,\n>(\n\tparams: VerifyMagicLinkParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getVerifyMagicLinkQueryKey(params);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof verifyMagicLink>>> = ({\n\t\tsignal,\n\t}) => verifyMagicLink(params, { signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type VerifyMagicLinkQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof verifyMagicLink>>\n>;\nexport type VerifyMagicLinkQueryError = unknown;\n\nexport function useVerifyMagicLink<\n\tTData = Awaited<ReturnType<typeof verifyMagicLink>>,\n\tTError = unknown,\n>(\n\tparams: VerifyMagicLinkParams,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useVerifyMagicLink<\n\tTData = Awaited<ReturnType<typeof verifyMagicLink>>,\n\tTError = unknown,\n>(\n\tparams: VerifyMagicLinkParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useVerifyMagicLink<\n\tTData = Awaited<ReturnType<typeof verifyMagicLink>>,\n\tTError = unknown,\n>(\n\tparams: VerifyMagicLinkParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Verify magic link token\n */\n\nexport function useVerifyMagicLink<\n\tTData = Awaited<ReturnType<typeof verifyMagicLink>>,\n\tTError = unknown,\n>(\n\tparams: VerifyMagicLinkParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getVerifyMagicLinkQueryOptions(params, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as magicLink from \"../../gen/endpoints/magic-link-plugin/magic-link-plugin\";\n\nexport class MagicLinkPlugin implements Plugin {\n public readonly id = \"magicLink\";\n\n constructor() {}\n\n public init(client: AuthulaClient) {\n return wrapGenerated(magicLink, client);\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tAuthorizeResponse,\n\tCallbackResponse,\n\tOauthAuthorizeParams,\n\tOauthCallbackParams,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getOauthAuthorizeUrl = (\n\tprovider: string,\n\tparams?: OauthAuthorizeParams,\n) => {\n\tconst normalizedParams = new URLSearchParams();\n\n\tObject.entries(params || {}).forEach(([key, value]) => {\n\t\tif (value !== undefined) {\n\t\t\tnormalizedParams.append(key, value === null ? \"null\" : String(value));\n\t\t}\n\t});\n\n\tconst stringifiedParams = normalizedParams.toString();\n\n\treturn stringifiedParams.length > 0\n\t\t? `/oauth2/authorize/${provider}?${stringifiedParams}`\n\t\t: `/oauth2/authorize/${provider}`;\n};\n\n/**\n * Initiates the OAuth2 authorization flow with the specified provider. Returns the provider's authorization URL to redirect the user to.\n * @summary Authorize with OAuth2 provider\n */\nexport const oauthAuthorize = async (\n\tprovider: string,\n\tparams?: OauthAuthorizeParams,\n\toptions?: RequestInit,\n): Promise<AuthorizeResponse> => {\n\treturn customFetch<AuthorizeResponse>(\n\t\tgetOauthAuthorizeUrl(provider, params),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"GET\",\n\t\t},\n\t);\n};\n\nexport const getOauthAuthorizeQueryKey = (\n\tprovider: string,\n\tparams?: OauthAuthorizeParams,\n) => {\n\treturn [\n\t\t`/oauth2/authorize/${provider}`,\n\t\t...(params ? [params] : []),\n\t] as const;\n};\n\nexport const getOauthAuthorizeQueryOptions = <\n\tTData = Awaited<ReturnType<typeof oauthAuthorize>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams?: OauthAuthorizeParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthAuthorize>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getOauthAuthorizeQueryKey(provider, params);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof oauthAuthorize>>> = ({\n\t\tsignal,\n\t}) => oauthAuthorize(provider, params, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: provider !== null && provider !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof oauthAuthorize>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type OauthAuthorizeQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof oauthAuthorize>>\n>;\nexport type OauthAuthorizeQueryError = unknown;\n\nexport function useOauthAuthorize<\n\tTData = Awaited<ReturnType<typeof oauthAuthorize>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams: undefined | OauthAuthorizeParams,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthAuthorize>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof oauthAuthorize>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof oauthAuthorize>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useOauthAuthorize<\n\tTData = Awaited<ReturnType<typeof oauthAuthorize>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams?: OauthAuthorizeParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthAuthorize>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof oauthAuthorize>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof oauthAuthorize>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useOauthAuthorize<\n\tTData = Awaited<ReturnType<typeof oauthAuthorize>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams?: OauthAuthorizeParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthAuthorize>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Authorize with OAuth2 provider\n */\n\nexport function useOauthAuthorize<\n\tTData = Awaited<ReturnType<typeof oauthAuthorize>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams?: OauthAuthorizeParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthAuthorize>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getOauthAuthorizeQueryOptions(provider, params, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getOauthCallbackUrl = (\n\tprovider: string,\n\tparams: OauthCallbackParams,\n) => {\n\tconst normalizedParams = new URLSearchParams();\n\n\tObject.entries(params || {}).forEach(([key, value]) => {\n\t\tif (value !== undefined) {\n\t\t\tnormalizedParams.append(key, value === null ? \"null\" : String(value));\n\t\t}\n\t});\n\n\tconst stringifiedParams = normalizedParams.toString();\n\n\treturn stringifiedParams.length > 0\n\t\t? `/oauth2/callback/${provider}?${stringifiedParams}`\n\t\t: `/oauth2/callback/${provider}`;\n};\n\n/**\n * Handles the OAuth2 callback from the provider. Exchanges the authorization code for tokens, creates or links a user account, and returns the authenticated user and session.\n * @summary OAuth2 callback\n */\nexport const oauthCallback = async (\n\tprovider: string,\n\tparams: OauthCallbackParams,\n\toptions?: RequestInit,\n): Promise<CallbackResponse> => {\n\treturn customFetch<CallbackResponse>(getOauthCallbackUrl(provider, params), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getOauthCallbackQueryKey = (\n\tprovider: string,\n\tparams?: OauthCallbackParams,\n) => {\n\treturn [`/oauth2/callback/${provider}`, ...(params ? [params] : [])] as const;\n};\n\nexport const getOauthCallbackQueryOptions = <\n\tTData = Awaited<ReturnType<typeof oauthCallback>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams: OauthCallbackParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthCallback>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getOauthCallbackQueryKey(provider, params);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof oauthCallback>>> = ({\n\t\tsignal,\n\t}) => oauthCallback(provider, params, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: provider !== null && provider !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof oauthCallback>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type OauthCallbackQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof oauthCallback>>\n>;\nexport type OauthCallbackQueryError = unknown;\n\nexport function useOauthCallback<\n\tTData = Awaited<ReturnType<typeof oauthCallback>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams: OauthCallbackParams,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthCallback>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof oauthCallback>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof oauthCallback>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useOauthCallback<\n\tTData = Awaited<ReturnType<typeof oauthCallback>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams: OauthCallbackParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthCallback>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof oauthCallback>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof oauthCallback>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useOauthCallback<\n\tTData = Awaited<ReturnType<typeof oauthCallback>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams: OauthCallbackParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthCallback>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary OAuth2 callback\n */\n\nexport function useOauthCallback<\n\tTData = Awaited<ReturnType<typeof oauthCallback>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams: OauthCallbackParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthCallback>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getOauthCallbackQueryOptions(provider, params, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types/plugins\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as oauth2 from \"../../gen/endpoints/oauth2-plugin/oauth2-plugin\";\n\nexport class OAuth2Plugin implements Plugin {\n public readonly id = \"oauth2\";\n\n public init(client: AuthulaClient) {\n return wrapGenerated(oauth2, client);\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tCreateOrganizationRequest,\n\tDeleteOrganizationResponse,\n\tOrganization,\n\tUpdateOrganizationRequest,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getListOrganizationsUrl = () => {\n\treturn `/organizations`;\n};\n\n/**\n * Lists all organizations owned by the authenticated user.\n * @summary List organizations\n */\nexport const listOrganizations = async (\n\toptions?: RequestInit,\n): Promise<Organization[] | null> => {\n\treturn customFetch<Organization[] | null>(getListOrganizationsUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListOrganizationsQueryKey = () => {\n\treturn [`/organizations`] as const;\n};\n\nexport const getListOrganizationsQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listOrganizations>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<\n\t\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\t\tTError,\n\t\t\tTData\n\t\t>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListOrganizationsQueryKey();\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof listOrganizations>>\n\t> = ({ signal }) => listOrganizations({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListOrganizationsQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listOrganizations>>\n>;\nexport type ListOrganizationsQueryError = unknown;\n\nexport function useListOrganizations<\n\tTData = Awaited<ReturnType<typeof listOrganizations>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListOrganizations<\n\tTData = Awaited<ReturnType<typeof listOrganizations>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListOrganizations<\n\tTData = Awaited<ReturnType<typeof listOrganizations>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List organizations\n */\n\nexport function useListOrganizations<\n\tTData = Awaited<ReturnType<typeof listOrganizations>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListOrganizationsQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreateOrganizationUrl = () => {\n\treturn `/organizations`;\n};\n\n/**\n * Creates a new organization with the authenticated user as the owner.\n * @summary Create organization\n */\nexport const createOrganization = async (\n\tcreateOrganizationRequest?: CreateOrganizationRequest,\n\toptions?: RequestInit,\n): Promise<Organization> => {\n\treturn customFetch<Organization>(getCreateOrganizationUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(createOrganizationRequest),\n\t});\n};\n\nexport const getCreateOrganizationMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createOrganization>>,\n\t\tTError,\n\t\t{ data?: CreateOrganizationRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createOrganization>>,\n\tTError,\n\t{ data?: CreateOrganizationRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createOrganization\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createOrganization>>,\n\t\t{ data?: CreateOrganizationRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn createOrganization(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreateOrganizationMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createOrganization>>\n>;\nexport type CreateOrganizationMutationBody =\n\t| CreateOrganizationRequest\n\t| undefined;\nexport type CreateOrganizationMutationError = unknown;\n\n/**\n * @summary Create organization\n */\nexport const useCreateOrganization = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createOrganization>>,\n\t\t\tTError,\n\t\t\t{ data?: CreateOrganizationRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createOrganization>>,\n\tTError,\n\t{ data?: CreateOrganizationRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetCreateOrganizationMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getGetOrganizationUrl = (organizationId: string) => {\n\treturn `/organizations/${organizationId}`;\n};\n\n/**\n * Retrieves an organization by its ID.\n * @summary Get organization\n */\nexport const getOrganization = async (\n\torganizationId: string,\n\toptions?: RequestInit,\n): Promise<Organization> => {\n\treturn customFetch<Organization>(getGetOrganizationUrl(organizationId), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetOrganizationQueryKey = (organizationId: string) => {\n\treturn [`/organizations/${organizationId}`] as const;\n};\n\nexport const getGetOrganizationQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getOrganization>>,\n\tTError = unknown,\n>(\n\torganizationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getGetOrganizationQueryKey(organizationId);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getOrganization>>> = ({\n\t\tsignal,\n\t}) => getOrganization(organizationId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: organizationId !== null && organizationId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetOrganizationQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getOrganization>>\n>;\nexport type GetOrganizationQueryError = unknown;\n\nexport function useGetOrganization<\n\tTData = Awaited<ReturnType<typeof getOrganization>>,\n\tTError = unknown,\n>(\n\torganizationId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getOrganization>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetOrganization<\n\tTData = Awaited<ReturnType<typeof getOrganization>>,\n\tTError = unknown,\n>(\n\torganizationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getOrganization>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetOrganization<\n\tTData = Awaited<ReturnType<typeof getOrganization>>,\n\tTError = unknown,\n>(\n\torganizationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get organization\n */\n\nexport function useGetOrganization<\n\tTData = Awaited<ReturnType<typeof getOrganization>>,\n\tTError = unknown,\n>(\n\torganizationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetOrganizationQueryOptions(organizationId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getDeleteOrganizationUrl = (organizationId: string) => {\n\treturn `/organizations/${organizationId}`;\n};\n\n/**\n * Deletes an organization.\n * @summary Delete organization\n */\nexport const deleteOrganization = async (\n\torganizationId: string,\n\toptions?: RequestInit,\n): Promise<DeleteOrganizationResponse> => {\n\treturn customFetch<DeleteOrganizationResponse>(\n\t\tgetDeleteOrganizationUrl(organizationId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"DELETE\",\n\t\t},\n\t);\n};\n\nexport const getDeleteOrganizationMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deleteOrganization>>,\n\t\tTError,\n\t\t{ organizationId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deleteOrganization>>,\n\tTError,\n\t{ organizationId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deleteOrganization\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deleteOrganization>>,\n\t\t{ organizationId: string }\n\t> = (props) => {\n\t\tconst { organizationId } = props ?? {};\n\n\t\treturn deleteOrganization(organizationId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeleteOrganizationMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deleteOrganization>>\n>;\n\nexport type DeleteOrganizationMutationError = unknown;\n\n/**\n * @summary Delete organization\n */\nexport const useDeleteOrganization = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deleteOrganization>>,\n\t\t\tTError,\n\t\t\t{ organizationId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deleteOrganization>>,\n\tTError,\n\t{ organizationId: string },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetDeleteOrganizationMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getUpdateOrganizationUrl = (organizationId: string) => {\n\treturn `/organizations/${organizationId}`;\n};\n\n/**\n * Updates an existing organization.\n * @summary Update organization\n */\nexport const updateOrganization = async (\n\torganizationId: string,\n\tupdateOrganizationRequest?: UpdateOrganizationRequest,\n\toptions?: RequestInit,\n): Promise<Organization> => {\n\treturn customFetch<Organization>(getUpdateOrganizationUrl(organizationId), {\n\t\t...options,\n\t\tmethod: \"PATCH\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(updateOrganizationRequest),\n\t});\n};\n\nexport const getUpdateOrganizationMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updateOrganization>>,\n\t\tTError,\n\t\t{ organizationId: string; data?: UpdateOrganizationRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updateOrganization>>,\n\tTError,\n\t{ organizationId: string; data?: UpdateOrganizationRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updateOrganization\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updateOrganization>>,\n\t\t{ organizationId: string; data?: UpdateOrganizationRequest }\n\t> = (props) => {\n\t\tconst { organizationId, data } = props ?? {};\n\n\t\treturn updateOrganization(organizationId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdateOrganizationMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updateOrganization>>\n>;\nexport type UpdateOrganizationMutationBody =\n\t| UpdateOrganizationRequest\n\t| undefined;\nexport type UpdateOrganizationMutationError = unknown;\n\n/**\n * @summary Update organization\n */\nexport const useUpdateOrganization = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updateOrganization>>,\n\t\t\tTError,\n\t\t\t{ organizationId: string; data?: UpdateOrganizationRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updateOrganization>>,\n\tTError,\n\t{ organizationId: string; data?: UpdateOrganizationRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetUpdateOrganizationMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as organizations from \"../../gen/endpoints/organizations/organizations\";\n\nexport class OrganizationsPlugin implements Plugin {\n public readonly id = \"organizations\";\n\n public init(client: AuthulaClient) {\n return wrapGenerated(organizations, client);\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tDisableResponse,\n\tEnableResponse,\n\tGenerateBackupCodesResponse,\n\tGetTOTPURIResponse,\n\tVerifyBackupCodeRequest,\n\tVerifyBackupCodeResponse,\n\tVerifyTOTPRequest,\n\tVerifyTOTPResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getDisableTotpUrl = () => {\n\treturn `/totp/disable`;\n};\n\n/**\n * Disables TOTP two-factor authentication for the authenticated user.\n * @summary Disable TOTP\n */\nexport const disableTotp = async (\n\toptions?: RequestInit,\n): Promise<DisableResponse> => {\n\treturn customFetch<DisableResponse>(getDisableTotpUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t});\n};\n\nexport const getDisableTotpMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof disableTotp>>,\n\t\tTError,\n\t\tvoid,\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof disableTotp>>,\n\tTError,\n\tvoid,\n\tTContext\n> => {\n\tconst mutationKey = [\"disableTotp\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof disableTotp>>,\n\t\tvoid\n\t> = () => {\n\t\treturn disableTotp(requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DisableTotpMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof disableTotp>>\n>;\n\nexport type DisableTotpMutationError = unknown;\n\n/**\n * @summary Disable TOTP\n */\nexport const useDisableTotp = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof disableTotp>>,\n\t\t\tTError,\n\t\t\tvoid,\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof disableTotp>>,\n\tTError,\n\tvoid,\n\tTContext\n> => {\n\treturn useMutation(getDisableTotpMutationOptions(options), queryClient);\n};\nexport const getEnableTotpUrl = () => {\n\treturn `/totp/enable`;\n};\n\n/**\n * Enables TOTP two-factor authentication for the authenticated user. Returns the TOTP URI and backup codes.\n * @summary Enable TOTP\n */\nexport const enableTotp = async (\n\toptions?: RequestInit,\n): Promise<EnableResponse> => {\n\treturn customFetch<EnableResponse>(getEnableTotpUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t});\n};\n\nexport const getEnableTotpMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof enableTotp>>,\n\t\tTError,\n\t\tvoid,\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof enableTotp>>,\n\tTError,\n\tvoid,\n\tTContext\n> => {\n\tconst mutationKey = [\"enableTotp\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof enableTotp>>,\n\t\tvoid\n\t> = () => {\n\t\treturn enableTotp(requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type EnableTotpMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof enableTotp>>\n>;\n\nexport type EnableTotpMutationError = unknown;\n\n/**\n * @summary Enable TOTP\n */\nexport const useEnableTotp = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof enableTotp>>,\n\t\t\tTError,\n\t\t\tvoid,\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof enableTotp>>,\n\tTError,\n\tvoid,\n\tTContext\n> => {\n\treturn useMutation(getEnableTotpMutationOptions(options), queryClient);\n};\nexport const getGenerateTotpBackupCodesUrl = () => {\n\treturn `/totp/generate-backup-codes`;\n};\n\n/**\n * Generates a new set of backup codes for the authenticated user. Previous backup codes are invalidated.\n * @summary Generate backup codes\n */\nexport const generateTotpBackupCodes = async (\n\toptions?: RequestInit,\n): Promise<GenerateBackupCodesResponse> => {\n\treturn customFetch<GenerateBackupCodesResponse>(\n\t\tgetGenerateTotpBackupCodesUrl(),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"POST\",\n\t\t},\n\t);\n};\n\nexport const getGenerateTotpBackupCodesMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof generateTotpBackupCodes>>,\n\t\tTError,\n\t\tvoid,\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof generateTotpBackupCodes>>,\n\tTError,\n\tvoid,\n\tTContext\n> => {\n\tconst mutationKey = [\"generateTotpBackupCodes\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof generateTotpBackupCodes>>,\n\t\tvoid\n\t> = () => {\n\t\treturn generateTotpBackupCodes(requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type GenerateTotpBackupCodesMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof generateTotpBackupCodes>>\n>;\n\nexport type GenerateTotpBackupCodesMutationError = unknown;\n\n/**\n * @summary Generate backup codes\n */\nexport const useGenerateTotpBackupCodes = <\n\tTError = unknown,\n\tTContext = unknown,\n>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof generateTotpBackupCodes>>,\n\t\t\tTError,\n\t\t\tvoid,\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof generateTotpBackupCodes>>,\n\tTError,\n\tvoid,\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetGenerateTotpBackupCodesMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getGetTotpURIUrl = () => {\n\treturn `/totp/get-uri`;\n};\n\n/**\n * Returns the current TOTP URI for the authenticated user's authenticator app configuration.\n * @summary Get TOTP URI\n */\nexport const getTotpURI = async (\n\toptions?: RequestInit,\n): Promise<GetTOTPURIResponse> => {\n\treturn customFetch<GetTOTPURIResponse>(getGetTotpURIUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetTotpURIQueryKey = () => {\n\treturn [`/totp/get-uri`] as const;\n};\n\nexport const getGetTotpURIQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getTotpURI>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<Awaited<ReturnType<typeof getTotpURI>>, TError, TData>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetTotpURIQueryKey();\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getTotpURI>>> = ({\n\t\tsignal,\n\t}) => getTotpURI({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getTotpURI>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetTotpURIQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getTotpURI>>\n>;\nexport type GetTotpURIQueryError = unknown;\n\nexport function useGetTotpURI<\n\tTData = Awaited<ReturnType<typeof getTotpURI>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getTotpURI>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getTotpURI>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getTotpURI>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetTotpURI<\n\tTData = Awaited<ReturnType<typeof getTotpURI>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getTotpURI>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getTotpURI>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getTotpURI>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetTotpURI<\n\tTData = Awaited<ReturnType<typeof getTotpURI>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getTotpURI>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get TOTP URI\n */\n\nexport function useGetTotpURI<\n\tTData = Awaited<ReturnType<typeof getTotpURI>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getTotpURI>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetTotpURIQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getVerifyTotpUrl = () => {\n\treturn `/totp/verify`;\n};\n\n/**\n * Verifies a TOTP code from the authenticator app and completes authentication. Requires a pending TOTP cookie set during sign-in.\n * @summary Verify TOTP code\n */\nexport const verifyTotp = async (\n\tverifyTOTPRequest?: VerifyTOTPRequest,\n\toptions?: RequestInit,\n): Promise<VerifyTOTPResponse> => {\n\treturn customFetch<VerifyTOTPResponse>(getVerifyTotpUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(verifyTOTPRequest),\n\t});\n};\n\nexport const getVerifyTotpMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof verifyTotp>>,\n\t\tTError,\n\t\t{ data?: VerifyTOTPRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof verifyTotp>>,\n\tTError,\n\t{ data?: VerifyTOTPRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"verifyTotp\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof verifyTotp>>,\n\t\t{ data?: VerifyTOTPRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn verifyTotp(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type VerifyTotpMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof verifyTotp>>\n>;\nexport type VerifyTotpMutationBody = VerifyTOTPRequest | undefined;\nexport type VerifyTotpMutationError = unknown;\n\n/**\n * @summary Verify TOTP code\n */\nexport const useVerifyTotp = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof verifyTotp>>,\n\t\t\tTError,\n\t\t\t{ data?: VerifyTOTPRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof verifyTotp>>,\n\tTError,\n\t{ data?: VerifyTOTPRequest },\n\tTContext\n> => {\n\treturn useMutation(getVerifyTotpMutationOptions(options), queryClient);\n};\nexport const getVerifyTotpBackupCodeUrl = () => {\n\treturn `/totp/verify-backup-code`;\n};\n\n/**\n * Verifies a backup code as an alternative to TOTP verification. Completes authentication if the code is valid.\n * @summary Verify backup code\n */\nexport const verifyTotpBackupCode = async (\n\tverifyBackupCodeRequest?: VerifyBackupCodeRequest,\n\toptions?: RequestInit,\n): Promise<VerifyBackupCodeResponse> => {\n\treturn customFetch<VerifyBackupCodeResponse>(getVerifyTotpBackupCodeUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(verifyBackupCodeRequest),\n\t});\n};\n\nexport const getVerifyTotpBackupCodeMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof verifyTotpBackupCode>>,\n\t\tTError,\n\t\t{ data?: VerifyBackupCodeRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof verifyTotpBackupCode>>,\n\tTError,\n\t{ data?: VerifyBackupCodeRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"verifyTotpBackupCode\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof verifyTotpBackupCode>>,\n\t\t{ data?: VerifyBackupCodeRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn verifyTotpBackupCode(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type VerifyTotpBackupCodeMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof verifyTotpBackupCode>>\n>;\nexport type VerifyTotpBackupCodeMutationBody =\n\t| VerifyBackupCodeRequest\n\t| undefined;\nexport type VerifyTotpBackupCodeMutationError = unknown;\n\n/**\n * @summary Verify backup code\n */\nexport const useVerifyTotpBackupCode = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof verifyTotpBackupCode>>,\n\t\t\tTError,\n\t\t\t{ data?: VerifyBackupCodeRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof verifyTotpBackupCode>>,\n\tTError,\n\t{ data?: VerifyBackupCodeRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetVerifyTotpBackupCodeMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types/plugins\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as totp from \"../../gen/endpoints/totp-plugin/totp-plugin\";\n\nexport class TOTPPlugin implements Plugin {\n public readonly id = \"totp\";\n\n public init(client: AuthulaClient) {\n return wrapGenerated(totp, client);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["withQueryKey","accessControl","withQueryKey","withQueryKey","withQueryKey","withQueryKey","withQueryKey","adminUsers","adminAccounts","adminUserState","adminSessionState","adminImpersonation","withQueryKey","apiKey","withQueryKey","core","withQueryKey","emailPassword","withQueryKey","jwt","withQueryKey","magicLink","withQueryKey","oauth2","withQueryKey","organizations","totp"],"sources":["../../src/utils/wrap-generated.ts","../../src/gen/endpoints/access-control/access-control.ts","../../src/plugins/access-control/plugin.ts","../../src/gen/endpoints/admin-accounts/admin-accounts.ts","../../src/gen/endpoints/admin-impersonation/admin-impersonation.ts","../../src/gen/endpoints/admin-session-state/admin-session-state.ts","../../src/gen/endpoints/admin-user-state/admin-user-state.ts","../../src/gen/endpoints/admin-users/admin-users.ts","../../src/plugins/admin/plugin.ts","../../src/gen/endpoints/api-keys/api-keys.ts","../../src/plugins/api-key/plugin.ts","../../src/plugins/bearer/plugin.ts","../../src/gen/endpoints/core/core.ts","../../src/plugins/core/plugin.ts","../../src/plugins/csrf/plugin.ts","../../src/gen/endpoints/email-password-plugin/email-password-plugin.ts","../../src/plugins/email-password/plugin.ts","../../src/gen/endpoints/jwt-plugin/jwt-plugin.ts","../../src/plugins/jwt/plugin.ts","../../src/gen/endpoints/magic-link-plugin/magic-link-plugin.ts","../../src/plugins/magic-link/plugin.ts","../../src/gen/endpoints/oauth2-plugin/oauth2-plugin.ts","../../src/plugins/oauth2/plugin.ts","../../src/gen/endpoints/organizations/organizations.ts","../../src/plugins/organizations/plugin.ts","../../src/gen/endpoints/totp-plugin/totp-plugin.ts","../../src/plugins/totp/plugin.ts"],"sourcesContent":["import type { AuthulaClient } from \"../client\";\n\nfunction isHookKey(key: string): boolean {\n return key.startsWith(\"use\") && key[3] === key[3]?.toUpperCase();\n}\n\nexport function wrapGenerated<T extends Record<string, any>>(\n mod: T,\n client: AuthulaClient,\n): T {\n const baseUrl = client.config.url.replace(/\\/+$/, \"\");\n const cookies = client.config.cookies;\n const onBeforeFetch = (ctx: any) => client.runBeforeFetch(ctx);\n const onAfterFetch = (ctx: any, res: Response) =>\n client.runAfterFetch(ctx, res);\n\n const wrapped: Record<string, any> = {};\n for (const [key, value] of Object.entries(mod)) {\n if (typeof value !== \"function\") {\n wrapped[key] = value;\n continue;\n }\n\n if (isHookKey(key)) {\n wrapped[key] = (options?: Record<string, any>, ...rest: any[]) =>\n value(\n { ...options, request: { ...options?.request, baseUrl, cookies, onBeforeFetch, onAfterFetch } },\n ...rest,\n );\n } else {\n wrapped[key] = (...args: any[]) => {\n const ctx = { baseUrl, cookies, onBeforeFetch, onAfterFetch };\n const optionsIdx = value.length - 1;\n while (args.length < optionsIdx) {\n args.push(undefined);\n }\n if (optionsIdx >= 0 && args.length === optionsIdx) {\n args.push(ctx);\n } else if (optionsIdx >= 0) {\n args[optionsIdx] = { ...args[optionsIdx], ...ctx };\n }\n return value(...args);\n };\n }\n }\n return wrapped as T;\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tAddRolePermissionRequest,\n\tAddRolePermissionResponse,\n\tAssignUserRoleRequest,\n\tAssignUserRoleResponse,\n\tCheckUserPermissionsRequest,\n\tCheckUserPermissionsResponse,\n\tCreatePermissionRequest,\n\tCreatePermissionResponse,\n\tCreateRoleRequest,\n\tCreateRoleResponse,\n\tDeletePermissionResponse,\n\tDeleteRoleResponse,\n\tGetUserPermissionsResponse,\n\tPermission,\n\tRemoveRolePermissionResponse,\n\tRemoveUserRoleResponse,\n\tReplaceRolePermissionResponse,\n\tReplaceRolePermissionsRequest,\n\tReplaceUserRolesRequest,\n\tReplaceUserRolesResponse,\n\tRole,\n\tRoleDetails,\n\tUpdatePermissionRequest,\n\tUpdatePermissionResponse,\n\tUpdateRoleRequest,\n\tUpdateRoleResponse,\n\tUserPermissionInfo,\n\tUserRoleInfo,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getListPermissionsUrl = () => {\n\treturn `/access-control/permissions`;\n};\n\n/**\n * Lists all permissions.\n * @summary List permissions\n */\nexport const listPermissions = async (\n\toptions?: RequestInit,\n): Promise<Permission[] | null> => {\n\treturn customFetch<Permission[] | null>(getListPermissionsUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListPermissionsQueryKey = () => {\n\treturn [`/access-control/permissions`] as const;\n};\n\nexport const getListPermissionsQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listPermissions>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<Awaited<ReturnType<typeof listPermissions>>, TError, TData>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListPermissionsQueryKey();\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof listPermissions>>> = ({\n\t\tsignal,\n\t}) => listPermissions({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listPermissions>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListPermissionsQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listPermissions>>\n>;\nexport type ListPermissionsQueryError = unknown;\n\nexport function useListPermissions<\n\tTData = Awaited<ReturnType<typeof listPermissions>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listPermissions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listPermissions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListPermissions<\n\tTData = Awaited<ReturnType<typeof listPermissions>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listPermissions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listPermissions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListPermissions<\n\tTData = Awaited<ReturnType<typeof listPermissions>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List permissions\n */\n\nexport function useListPermissions<\n\tTData = Awaited<ReturnType<typeof listPermissions>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListPermissionsQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreatePermissionUrl = () => {\n\treturn `/access-control/permissions`;\n};\n\n/**\n * Creates a new permission.\n * @summary Create permission\n */\nexport const createPermission = async (\n\tcreatePermissionRequest?: CreatePermissionRequest,\n\toptions?: RequestInit,\n): Promise<CreatePermissionResponse> => {\n\treturn customFetch<CreatePermissionResponse>(getCreatePermissionUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(createPermissionRequest),\n\t});\n};\n\nexport const getCreatePermissionMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createPermission>>,\n\t\tTError,\n\t\t{ data?: CreatePermissionRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createPermission>>,\n\tTError,\n\t{ data?: CreatePermissionRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createPermission\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createPermission>>,\n\t\t{ data?: CreatePermissionRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn createPermission(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreatePermissionMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createPermission>>\n>;\nexport type CreatePermissionMutationBody = CreatePermissionRequest | undefined;\nexport type CreatePermissionMutationError = unknown;\n\n/**\n * @summary Create permission\n */\nexport const useCreatePermission = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createPermission>>,\n\t\t\tTError,\n\t\t\t{ data?: CreatePermissionRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createPermission>>,\n\tTError,\n\t{ data?: CreatePermissionRequest },\n\tTContext\n> => {\n\treturn useMutation(getCreatePermissionMutationOptions(options), queryClient);\n};\nexport const getGetPermissionUrl = (permissionId: string) => {\n\treturn `/access-control/permissions/${permissionId}`;\n};\n\n/**\n * Retrieves a permission by its ID.\n * @summary Get permission by ID\n */\nexport const getPermission = async (\n\tpermissionId: string,\n\toptions?: RequestInit,\n): Promise<Permission> => {\n\treturn customFetch<Permission>(getGetPermissionUrl(permissionId), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetPermissionQueryKey = (permissionId: string) => {\n\treturn [`/access-control/permissions/${permissionId}`] as const;\n};\n\nexport const getGetPermissionQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getPermission>>,\n\tTError = unknown,\n>(\n\tpermissionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getPermission>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getGetPermissionQueryKey(permissionId);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getPermission>>> = ({\n\t\tsignal,\n\t}) => getPermission(permissionId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: permissionId !== null && permissionId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getPermission>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetPermissionQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getPermission>>\n>;\nexport type GetPermissionQueryError = unknown;\n\nexport function useGetPermission<\n\tTData = Awaited<ReturnType<typeof getPermission>>,\n\tTError = unknown,\n>(\n\tpermissionId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getPermission>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getPermission>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getPermission>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetPermission<\n\tTData = Awaited<ReturnType<typeof getPermission>>,\n\tTError = unknown,\n>(\n\tpermissionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getPermission>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getPermission>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getPermission>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetPermission<\n\tTData = Awaited<ReturnType<typeof getPermission>>,\n\tTError = unknown,\n>(\n\tpermissionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getPermission>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get permission by ID\n */\n\nexport function useGetPermission<\n\tTData = Awaited<ReturnType<typeof getPermission>>,\n\tTError = unknown,\n>(\n\tpermissionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getPermission>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetPermissionQueryOptions(permissionId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getDeletePermissionUrl = (permissionId: string) => {\n\treturn `/access-control/permissions/${permissionId}`;\n};\n\n/**\n * Deletes a permission.\n * @summary Delete permission\n */\nexport const deletePermission = async (\n\tpermissionId: string,\n\toptions?: RequestInit,\n): Promise<DeletePermissionResponse> => {\n\treturn customFetch<DeletePermissionResponse>(\n\t\tgetDeletePermissionUrl(permissionId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"DELETE\",\n\t\t},\n\t);\n};\n\nexport const getDeletePermissionMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deletePermission>>,\n\t\tTError,\n\t\t{ permissionId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deletePermission>>,\n\tTError,\n\t{ permissionId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deletePermission\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deletePermission>>,\n\t\t{ permissionId: string }\n\t> = (props) => {\n\t\tconst { permissionId } = props ?? {};\n\n\t\treturn deletePermission(permissionId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeletePermissionMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deletePermission>>\n>;\n\nexport type DeletePermissionMutationError = unknown;\n\n/**\n * @summary Delete permission\n */\nexport const useDeletePermission = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deletePermission>>,\n\t\t\tTError,\n\t\t\t{ permissionId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deletePermission>>,\n\tTError,\n\t{ permissionId: string },\n\tTContext\n> => {\n\treturn useMutation(getDeletePermissionMutationOptions(options), queryClient);\n};\nexport const getUpdatePermissionUrl = (permissionId: string) => {\n\treturn `/access-control/permissions/${permissionId}`;\n};\n\n/**\n * Updates a permission's description.\n * @summary Update permission\n */\nexport const updatePermission = async (\n\tpermissionId: string,\n\tupdatePermissionRequest?: UpdatePermissionRequest,\n\toptions?: RequestInit,\n): Promise<UpdatePermissionResponse> => {\n\treturn customFetch<UpdatePermissionResponse>(\n\t\tgetUpdatePermissionUrl(permissionId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"PATCH\",\n\t\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\t\tbody: JSON.stringify(updatePermissionRequest),\n\t\t},\n\t);\n};\n\nexport const getUpdatePermissionMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updatePermission>>,\n\t\tTError,\n\t\t{ permissionId: string; data?: UpdatePermissionRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updatePermission>>,\n\tTError,\n\t{ permissionId: string; data?: UpdatePermissionRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updatePermission\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updatePermission>>,\n\t\t{ permissionId: string; data?: UpdatePermissionRequest }\n\t> = (props) => {\n\t\tconst { permissionId, data } = props ?? {};\n\n\t\treturn updatePermission(permissionId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdatePermissionMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updatePermission>>\n>;\nexport type UpdatePermissionMutationBody = UpdatePermissionRequest | undefined;\nexport type UpdatePermissionMutationError = unknown;\n\n/**\n * @summary Update permission\n */\nexport const useUpdatePermission = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updatePermission>>,\n\t\t\tTError,\n\t\t\t{ permissionId: string; data?: UpdatePermissionRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updatePermission>>,\n\tTError,\n\t{ permissionId: string; data?: UpdatePermissionRequest },\n\tTContext\n> => {\n\treturn useMutation(getUpdatePermissionMutationOptions(options), queryClient);\n};\nexport const getListRolesUrl = () => {\n\treturn `/access-control/roles`;\n};\n\n/**\n * Lists all roles.\n * @summary List roles\n */\nexport const listRoles = async (\n\toptions?: RequestInit,\n): Promise<Role[] | null> => {\n\treturn customFetch<Role[] | null>(getListRolesUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListRolesQueryKey = () => {\n\treturn [`/access-control/roles`] as const;\n};\n\nexport const getListRolesQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listRoles>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<Awaited<ReturnType<typeof listRoles>>, TError, TData>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListRolesQueryKey();\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof listRoles>>> = ({\n\t\tsignal,\n\t}) => listRoles({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listRoles>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListRolesQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listRoles>>\n>;\nexport type ListRolesQueryError = unknown;\n\nexport function useListRoles<\n\tTData = Awaited<ReturnType<typeof listRoles>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listRoles>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listRoles>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listRoles>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListRoles<\n\tTData = Awaited<ReturnType<typeof listRoles>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listRoles>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listRoles>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listRoles>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListRoles<\n\tTData = Awaited<ReturnType<typeof listRoles>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listRoles>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List roles\n */\n\nexport function useListRoles<\n\tTData = Awaited<ReturnType<typeof listRoles>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listRoles>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListRolesQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreateRoleUrl = () => {\n\treturn `/access-control/roles`;\n};\n\n/**\n * Creates a new role.\n * @summary Create role\n */\nexport const createRole = async (\n\tcreateRoleRequest?: CreateRoleRequest,\n\toptions?: RequestInit,\n): Promise<CreateRoleResponse> => {\n\treturn customFetch<CreateRoleResponse>(getCreateRoleUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(createRoleRequest),\n\t});\n};\n\nexport const getCreateRoleMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createRole>>,\n\t\tTError,\n\t\t{ data?: CreateRoleRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createRole>>,\n\tTError,\n\t{ data?: CreateRoleRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createRole\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createRole>>,\n\t\t{ data?: CreateRoleRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn createRole(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreateRoleMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createRole>>\n>;\nexport type CreateRoleMutationBody = CreateRoleRequest | undefined;\nexport type CreateRoleMutationError = unknown;\n\n/**\n * @summary Create role\n */\nexport const useCreateRole = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createRole>>,\n\t\t\tTError,\n\t\t\t{ data?: CreateRoleRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createRole>>,\n\tTError,\n\t{ data?: CreateRoleRequest },\n\tTContext\n> => {\n\treturn useMutation(getCreateRoleMutationOptions(options), queryClient);\n};\nexport const getGetRoleByNameUrl = (roleName: string) => {\n\treturn `/access-control/roles/by-name/${roleName}`;\n};\n\n/**\n * Retrieves a role by its name.\n * @summary Get role by name\n */\nexport const getRoleByName = async (\n\troleName: string,\n\toptions?: RequestInit,\n): Promise<Role> => {\n\treturn customFetch<Role>(getGetRoleByNameUrl(roleName), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetRoleByNameQueryKey = (roleName: string) => {\n\treturn [`/access-control/roles/by-name/${roleName}`] as const;\n};\n\nexport const getGetRoleByNameQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getRoleByName>>,\n\tTError = unknown,\n>(\n\troleName: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRoleByName>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetRoleByNameQueryKey(roleName);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getRoleByName>>> = ({\n\t\tsignal,\n\t}) => getRoleByName(roleName, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: roleName !== null && roleName !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getRoleByName>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetRoleByNameQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getRoleByName>>\n>;\nexport type GetRoleByNameQueryError = unknown;\n\nexport function useGetRoleByName<\n\tTData = Awaited<ReturnType<typeof getRoleByName>>,\n\tTError = unknown,\n>(\n\troleName: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRoleByName>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getRoleByName>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getRoleByName>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetRoleByName<\n\tTData = Awaited<ReturnType<typeof getRoleByName>>,\n\tTError = unknown,\n>(\n\troleName: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRoleByName>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getRoleByName>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getRoleByName>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetRoleByName<\n\tTData = Awaited<ReturnType<typeof getRoleByName>>,\n\tTError = unknown,\n>(\n\troleName: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRoleByName>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get role by name\n */\n\nexport function useGetRoleByName<\n\tTData = Awaited<ReturnType<typeof getRoleByName>>,\n\tTError = unknown,\n>(\n\troleName: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRoleByName>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetRoleByNameQueryOptions(roleName, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getGetRoleUrl = (roleId: string) => {\n\treturn `/access-control/roles/${roleId}`;\n};\n\n/**\n * Retrieves a role by its ID, including its permissions.\n * @summary Get role by ID\n */\nexport const getRole = async (\n\troleId: string,\n\toptions?: RequestInit,\n): Promise<RoleDetails> => {\n\treturn customFetch<RoleDetails>(getGetRoleUrl(roleId), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetRoleQueryKey = (roleId: string) => {\n\treturn [`/access-control/roles/${roleId}`] as const;\n};\n\nexport const getGetRoleQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getRole>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRole>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetRoleQueryKey(roleId);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getRole>>> = ({\n\t\tsignal,\n\t}) => getRole(roleId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: roleId !== null && roleId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<Awaited<ReturnType<typeof getRole>>, TError, TData> & {\n\t\tqueryKey: DataTag<QueryKey, TData, TError>;\n\t};\n};\n\nexport type GetRoleQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getRole>>\n>;\nexport type GetRoleQueryError = unknown;\n\nexport function useGetRole<\n\tTData = Awaited<ReturnType<typeof getRole>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRole>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getRole>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getRole>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetRole<\n\tTData = Awaited<ReturnType<typeof getRole>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRole>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getRole>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getRole>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetRole<\n\tTData = Awaited<ReturnType<typeof getRole>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRole>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get role by ID\n */\n\nexport function useGetRole<\n\tTData = Awaited<ReturnType<typeof getRole>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getRole>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetRoleQueryOptions(roleId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getDeleteRoleUrl = (roleId: string) => {\n\treturn `/access-control/roles/${roleId}`;\n};\n\n/**\n * Deletes a role.\n * @summary Delete role\n */\nexport const deleteRole = async (\n\troleId: string,\n\toptions?: RequestInit,\n): Promise<DeleteRoleResponse> => {\n\treturn customFetch<DeleteRoleResponse>(getDeleteRoleUrl(roleId), {\n\t\t...options,\n\t\tmethod: \"DELETE\",\n\t});\n};\n\nexport const getDeleteRoleMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deleteRole>>,\n\t\tTError,\n\t\t{ roleId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deleteRole>>,\n\tTError,\n\t{ roleId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deleteRole\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deleteRole>>,\n\t\t{ roleId: string }\n\t> = (props) => {\n\t\tconst { roleId } = props ?? {};\n\n\t\treturn deleteRole(roleId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeleteRoleMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deleteRole>>\n>;\n\nexport type DeleteRoleMutationError = unknown;\n\n/**\n * @summary Delete role\n */\nexport const useDeleteRole = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deleteRole>>,\n\t\t\tTError,\n\t\t\t{ roleId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deleteRole>>,\n\tTError,\n\t{ roleId: string },\n\tTContext\n> => {\n\treturn useMutation(getDeleteRoleMutationOptions(options), queryClient);\n};\nexport const getUpdateRoleUrl = (roleId: string) => {\n\treturn `/access-control/roles/${roleId}`;\n};\n\n/**\n * Updates a role's attributes.\n * @summary Update role\n */\nexport const updateRole = async (\n\troleId: string,\n\tupdateRoleRequest?: UpdateRoleRequest,\n\toptions?: RequestInit,\n): Promise<UpdateRoleResponse> => {\n\treturn customFetch<UpdateRoleResponse>(getUpdateRoleUrl(roleId), {\n\t\t...options,\n\t\tmethod: \"PATCH\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(updateRoleRequest),\n\t});\n};\n\nexport const getUpdateRoleMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updateRole>>,\n\t\tTError,\n\t\t{ roleId: string; data?: UpdateRoleRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updateRole>>,\n\tTError,\n\t{ roleId: string; data?: UpdateRoleRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updateRole\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updateRole>>,\n\t\t{ roleId: string; data?: UpdateRoleRequest }\n\t> = (props) => {\n\t\tconst { roleId, data } = props ?? {};\n\n\t\treturn updateRole(roleId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdateRoleMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updateRole>>\n>;\nexport type UpdateRoleMutationBody = UpdateRoleRequest | undefined;\nexport type UpdateRoleMutationError = unknown;\n\n/**\n * @summary Update role\n */\nexport const useUpdateRole = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updateRole>>,\n\t\t\tTError,\n\t\t\t{ roleId: string; data?: UpdateRoleRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updateRole>>,\n\tTError,\n\t{ roleId: string; data?: UpdateRoleRequest },\n\tTContext\n> => {\n\treturn useMutation(getUpdateRoleMutationOptions(options), queryClient);\n};\nexport const getListRolePermissionsUrl = (roleId: string) => {\n\treturn `/access-control/roles/${roleId}/permissions`;\n};\n\n/**\n * Lists all permissions assigned to a role.\n * @summary List role permissions\n */\nexport const listRolePermissions = async (\n\troleId: string,\n\toptions?: RequestInit,\n): Promise<UserPermissionInfo[] | null> => {\n\treturn customFetch<UserPermissionInfo[] | null>(\n\t\tgetListRolePermissionsUrl(roleId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"GET\",\n\t\t},\n\t);\n};\n\nexport const getListRolePermissionsQueryKey = (roleId: string) => {\n\treturn [`/access-control/roles/${roleId}/permissions`] as const;\n};\n\nexport const getListRolePermissionsQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listRolePermissions>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getListRolePermissionsQueryKey(roleId);\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof listRolePermissions>>\n\t> = ({ signal }) =>\n\t\tlistRolePermissions(roleId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: roleId !== null && roleId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListRolePermissionsQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listRolePermissions>>\n>;\nexport type ListRolePermissionsQueryError = unknown;\n\nexport function useListRolePermissions<\n\tTData = Awaited<ReturnType<typeof listRolePermissions>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListRolePermissions<\n\tTData = Awaited<ReturnType<typeof listRolePermissions>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListRolePermissions<\n\tTData = Awaited<ReturnType<typeof listRolePermissions>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List role permissions\n */\n\nexport function useListRolePermissions<\n\tTData = Awaited<ReturnType<typeof listRolePermissions>>,\n\tTError = unknown,\n>(\n\troleId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRolePermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListRolePermissionsQueryOptions(roleId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getReplaceRolePermissionsUrl = (roleId: string) => {\n\treturn `/access-control/roles/${roleId}/permissions`;\n};\n\n/**\n * Replaces all permissions assigned to a role with a new set.\n * @summary Replace role permissions\n */\nexport const replaceRolePermissions = async (\n\troleId: string,\n\treplaceRolePermissionsRequest?: ReplaceRolePermissionsRequest,\n\toptions?: RequestInit,\n): Promise<ReplaceRolePermissionResponse> => {\n\treturn customFetch<ReplaceRolePermissionResponse>(\n\t\tgetReplaceRolePermissionsUrl(roleId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"PUT\",\n\t\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\t\tbody: JSON.stringify(replaceRolePermissionsRequest),\n\t\t},\n\t);\n};\n\nexport const getReplaceRolePermissionsMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof replaceRolePermissions>>,\n\t\tTError,\n\t\t{ roleId: string; data?: ReplaceRolePermissionsRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof replaceRolePermissions>>,\n\tTError,\n\t{ roleId: string; data?: ReplaceRolePermissionsRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"replaceRolePermissions\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof replaceRolePermissions>>,\n\t\t{ roleId: string; data?: ReplaceRolePermissionsRequest }\n\t> = (props) => {\n\t\tconst { roleId, data } = props ?? {};\n\n\t\treturn replaceRolePermissions(roleId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type ReplaceRolePermissionsMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof replaceRolePermissions>>\n>;\nexport type ReplaceRolePermissionsMutationBody =\n\t| ReplaceRolePermissionsRequest\n\t| undefined;\nexport type ReplaceRolePermissionsMutationError = unknown;\n\n/**\n * @summary Replace role permissions\n */\nexport const useReplaceRolePermissions = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof replaceRolePermissions>>,\n\t\t\tTError,\n\t\t\t{ roleId: string; data?: ReplaceRolePermissionsRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof replaceRolePermissions>>,\n\tTError,\n\t{ roleId: string; data?: ReplaceRolePermissionsRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetReplaceRolePermissionsMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getAddRolePermissionUrl = (roleId: string) => {\n\treturn `/access-control/roles/${roleId}/permissions`;\n};\n\n/**\n * Assigns a permission to a role.\n * @summary Assign permission to role\n */\nexport const addRolePermission = async (\n\troleId: string,\n\taddRolePermissionRequest?: AddRolePermissionRequest,\n\toptions?: RequestInit,\n): Promise<AddRolePermissionResponse> => {\n\treturn customFetch<AddRolePermissionResponse>(\n\t\tgetAddRolePermissionUrl(roleId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\t\tbody: JSON.stringify(addRolePermissionRequest),\n\t\t},\n\t);\n};\n\nexport const getAddRolePermissionMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof addRolePermission>>,\n\t\tTError,\n\t\t{ roleId: string; data?: AddRolePermissionRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof addRolePermission>>,\n\tTError,\n\t{ roleId: string; data?: AddRolePermissionRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"addRolePermission\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof addRolePermission>>,\n\t\t{ roleId: string; data?: AddRolePermissionRequest }\n\t> = (props) => {\n\t\tconst { roleId, data } = props ?? {};\n\n\t\treturn addRolePermission(roleId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type AddRolePermissionMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof addRolePermission>>\n>;\nexport type AddRolePermissionMutationBody =\n\t| AddRolePermissionRequest\n\t| undefined;\nexport type AddRolePermissionMutationError = unknown;\n\n/**\n * @summary Assign permission to role\n */\nexport const useAddRolePermission = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof addRolePermission>>,\n\t\t\tTError,\n\t\t\t{ roleId: string; data?: AddRolePermissionRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof addRolePermission>>,\n\tTError,\n\t{ roleId: string; data?: AddRolePermissionRequest },\n\tTContext\n> => {\n\treturn useMutation(getAddRolePermissionMutationOptions(options), queryClient);\n};\nexport const getRemoveRolePermissionUrl = (\n\troleId: string,\n\tpermissionId: string,\n) => {\n\treturn `/access-control/roles/${roleId}/permissions/${permissionId}`;\n};\n\n/**\n * Removes a permission from a role.\n * @summary Remove role permission\n */\nexport const removeRolePermission = async (\n\troleId: string,\n\tpermissionId: string,\n\toptions?: RequestInit,\n): Promise<RemoveRolePermissionResponse> => {\n\treturn customFetch<RemoveRolePermissionResponse>(\n\t\tgetRemoveRolePermissionUrl(roleId, permissionId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"DELETE\",\n\t\t},\n\t);\n};\n\nexport const getRemoveRolePermissionMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof removeRolePermission>>,\n\t\tTError,\n\t\t{ roleId: string; permissionId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof removeRolePermission>>,\n\tTError,\n\t{ roleId: string; permissionId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"removeRolePermission\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof removeRolePermission>>,\n\t\t{ roleId: string; permissionId: string }\n\t> = (props) => {\n\t\tconst { roleId, permissionId } = props ?? {};\n\n\t\treturn removeRolePermission(roleId, permissionId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type RemoveRolePermissionMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof removeRolePermission>>\n>;\n\nexport type RemoveRolePermissionMutationError = unknown;\n\n/**\n * @summary Remove role permission\n */\nexport const useRemoveRolePermission = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof removeRolePermission>>,\n\t\t\tTError,\n\t\t\t{ roleId: string; permissionId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof removeRolePermission>>,\n\tTError,\n\t{ roleId: string; permissionId: string },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetRemoveRolePermissionMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getGetUserPermissionsUrl = (userId: string) => {\n\treturn `/access-control/users/${userId}/permissions`;\n};\n\n/**\n * Retrieves all permissions granted to a user through their roles.\n * @summary Get user permissions\n */\nexport const getUserPermissions = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<GetUserPermissionsResponse> => {\n\treturn customFetch<GetUserPermissionsResponse>(\n\t\tgetGetUserPermissionsUrl(userId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"GET\",\n\t\t},\n\t);\n};\n\nexport const getGetUserPermissionsQueryKey = (userId: string) => {\n\treturn [`/access-control/users/${userId}/permissions`] as const;\n};\n\nexport const getGetUserPermissionsQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getUserPermissions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getGetUserPermissionsQueryKey(userId);\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof getUserPermissions>>\n\t> = ({ signal }) => getUserPermissions(userId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: userId !== null && userId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetUserPermissionsQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getUserPermissions>>\n>;\nexport type GetUserPermissionsQueryError = unknown;\n\nexport function useGetUserPermissions<\n\tTData = Awaited<ReturnType<typeof getUserPermissions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetUserPermissions<\n\tTData = Awaited<ReturnType<typeof getUserPermissions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetUserPermissions<\n\tTData = Awaited<ReturnType<typeof getUserPermissions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get user permissions\n */\n\nexport function useGetUserPermissions<\n\tTData = Awaited<ReturnType<typeof getUserPermissions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getUserPermissions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetUserPermissionsQueryOptions(userId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCheckUserPermissionsUrl = (userId: string) => {\n\treturn `/access-control/users/${userId}/permissions/check`;\n};\n\n/**\n * Checks whether a user has all the specified permissions.\n * @summary Check user permissions\n */\nexport const checkUserPermissions = async (\n\tuserId: string,\n\tcheckUserPermissionsRequest?: CheckUserPermissionsRequest,\n\toptions?: RequestInit,\n): Promise<CheckUserPermissionsResponse> => {\n\treturn customFetch<CheckUserPermissionsResponse>(\n\t\tgetCheckUserPermissionsUrl(userId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\t\tbody: JSON.stringify(checkUserPermissionsRequest),\n\t\t},\n\t);\n};\n\nexport const getCheckUserPermissionsMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof checkUserPermissions>>,\n\t\tTError,\n\t\t{ userId: string; data?: CheckUserPermissionsRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof checkUserPermissions>>,\n\tTError,\n\t{ userId: string; data?: CheckUserPermissionsRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"checkUserPermissions\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof checkUserPermissions>>,\n\t\t{ userId: string; data?: CheckUserPermissionsRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn checkUserPermissions(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CheckUserPermissionsMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof checkUserPermissions>>\n>;\nexport type CheckUserPermissionsMutationBody =\n\t| CheckUserPermissionsRequest\n\t| undefined;\nexport type CheckUserPermissionsMutationError = unknown;\n\n/**\n * @summary Check user permissions\n */\nexport const useCheckUserPermissions = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof checkUserPermissions>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: CheckUserPermissionsRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof checkUserPermissions>>,\n\tTError,\n\t{ userId: string; data?: CheckUserPermissionsRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetCheckUserPermissionsMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getListUserRolesUrl = (userId: string) => {\n\treturn `/access-control/users/${userId}/roles`;\n};\n\n/**\n * Lists all roles assigned to a user.\n * @summary List user roles\n */\nexport const listUserRoles = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<UserRoleInfo[] | null> => {\n\treturn customFetch<UserRoleInfo[] | null>(getListUserRolesUrl(userId), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListUserRolesQueryKey = (userId: string) => {\n\treturn [`/access-control/users/${userId}/roles`] as const;\n};\n\nexport const getListUserRolesQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listUserRoles>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUserRoles>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListUserRolesQueryKey(userId);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof listUserRoles>>> = ({\n\t\tsignal,\n\t}) => listUserRoles(userId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: userId !== null && userId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listUserRoles>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListUserRolesQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listUserRoles>>\n>;\nexport type ListUserRolesQueryError = unknown;\n\nexport function useListUserRoles<\n\tTData = Awaited<ReturnType<typeof listUserRoles>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUserRoles>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUserRoles>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUserRoles>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUserRoles<\n\tTData = Awaited<ReturnType<typeof listUserRoles>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUserRoles>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUserRoles>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUserRoles>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUserRoles<\n\tTData = Awaited<ReturnType<typeof listUserRoles>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUserRoles>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List user roles\n */\n\nexport function useListUserRoles<\n\tTData = Awaited<ReturnType<typeof listUserRoles>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUserRoles>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListUserRolesQueryOptions(userId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getReplaceUserRolesUrl = (userId: string) => {\n\treturn `/access-control/users/${userId}/roles`;\n};\n\n/**\n * Replaces all roles assigned to a user with a new set.\n * @summary Replace user roles\n */\nexport const replaceUserRoles = async (\n\tuserId: string,\n\treplaceUserRolesRequest?: ReplaceUserRolesRequest,\n\toptions?: RequestInit,\n): Promise<ReplaceUserRolesResponse> => {\n\treturn customFetch<ReplaceUserRolesResponse>(getReplaceUserRolesUrl(userId), {\n\t\t...options,\n\t\tmethod: \"PUT\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(replaceUserRolesRequest),\n\t});\n};\n\nexport const getReplaceUserRolesMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof replaceUserRoles>>,\n\t\tTError,\n\t\t{ userId: string; data?: ReplaceUserRolesRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof replaceUserRoles>>,\n\tTError,\n\t{ userId: string; data?: ReplaceUserRolesRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"replaceUserRoles\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof replaceUserRoles>>,\n\t\t{ userId: string; data?: ReplaceUserRolesRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn replaceUserRoles(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type ReplaceUserRolesMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof replaceUserRoles>>\n>;\nexport type ReplaceUserRolesMutationBody = ReplaceUserRolesRequest | undefined;\nexport type ReplaceUserRolesMutationError = unknown;\n\n/**\n * @summary Replace user roles\n */\nexport const useReplaceUserRoles = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof replaceUserRoles>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: ReplaceUserRolesRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof replaceUserRoles>>,\n\tTError,\n\t{ userId: string; data?: ReplaceUserRolesRequest },\n\tTContext\n> => {\n\treturn useMutation(getReplaceUserRolesMutationOptions(options), queryClient);\n};\nexport const getAssignUserRoleUrl = (userId: string) => {\n\treturn `/access-control/users/${userId}/roles`;\n};\n\n/**\n * Assigns a role to a user.\n * @summary Assign role to user\n */\nexport const assignUserRole = async (\n\tuserId: string,\n\tassignUserRoleRequest?: AssignUserRoleRequest,\n\toptions?: RequestInit,\n): Promise<AssignUserRoleResponse> => {\n\treturn customFetch<AssignUserRoleResponse>(getAssignUserRoleUrl(userId), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(assignUserRoleRequest),\n\t});\n};\n\nexport const getAssignUserRoleMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof assignUserRole>>,\n\t\tTError,\n\t\t{ userId: string; data?: AssignUserRoleRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof assignUserRole>>,\n\tTError,\n\t{ userId: string; data?: AssignUserRoleRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"assignUserRole\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof assignUserRole>>,\n\t\t{ userId: string; data?: AssignUserRoleRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn assignUserRole(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type AssignUserRoleMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof assignUserRole>>\n>;\nexport type AssignUserRoleMutationBody = AssignUserRoleRequest | undefined;\nexport type AssignUserRoleMutationError = unknown;\n\n/**\n * @summary Assign role to user\n */\nexport const useAssignUserRole = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof assignUserRole>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: AssignUserRoleRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof assignUserRole>>,\n\tTError,\n\t{ userId: string; data?: AssignUserRoleRequest },\n\tTContext\n> => {\n\treturn useMutation(getAssignUserRoleMutationOptions(options), queryClient);\n};\nexport const getRemoveUserRoleUrl = (userId: string, roleId: string) => {\n\treturn `/access-control/users/${userId}/roles/${roleId}`;\n};\n\n/**\n * Removes a role from a user.\n * @summary Remove user role\n */\nexport const removeUserRole = async (\n\tuserId: string,\n\troleId: string,\n\toptions?: RequestInit,\n): Promise<RemoveUserRoleResponse> => {\n\treturn customFetch<RemoveUserRoleResponse>(\n\t\tgetRemoveUserRoleUrl(userId, roleId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"DELETE\",\n\t\t},\n\t);\n};\n\nexport const getRemoveUserRoleMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof removeUserRole>>,\n\t\tTError,\n\t\t{ userId: string; roleId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof removeUserRole>>,\n\tTError,\n\t{ userId: string; roleId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"removeUserRole\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof removeUserRole>>,\n\t\t{ userId: string; roleId: string }\n\t> = (props) => {\n\t\tconst { userId, roleId } = props ?? {};\n\n\t\treturn removeUserRole(userId, roleId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type RemoveUserRoleMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof removeUserRole>>\n>;\n\nexport type RemoveUserRoleMutationError = unknown;\n\n/**\n * @summary Remove user role\n */\nexport const useRemoveUserRole = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof removeUserRole>>,\n\t\t\tTError,\n\t\t\t{ userId: string; roleId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof removeUserRole>>,\n\tTError,\n\t{ userId: string; roleId: string },\n\tTContext\n> => {\n\treturn useMutation(getRemoveUserRoleMutationOptions(options), queryClient);\n};\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as accessControl from \"../../gen/endpoints/access-control/access-control\";\n\nexport class AccessControlPlugin implements Plugin {\n public readonly id = \"accessControl\";\n\n constructor() {}\n\n public init(client: AuthulaClient) {\n return wrapGenerated(accessControl, client);\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tCreateAccountRequest,\n\tCreateAccountResponse,\n\tDeleteAccountResponse,\n\tGetAccountByIDResponse,\n\tUpdateAccountRequest,\n\tUpdateAccountResponse,\n\tUserAccountsResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getGetAccountUrl = (id: string) => {\n\treturn `/admin/accounts/${id}`;\n};\n\n/**\n * Retrieves an account by its ID.\n * @summary Get account by ID\n */\nexport const getAccount = async (\n\tid: string,\n\toptions?: RequestInit,\n): Promise<GetAccountByIDResponse> => {\n\treturn customFetch<GetAccountByIDResponse>(getGetAccountUrl(id), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetAccountQueryKey = (id: string) => {\n\treturn [`/admin/accounts/${id}`] as const;\n};\n\nexport const getGetAccountQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getAccount>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getAccount>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetAccountQueryKey(id);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getAccount>>> = ({\n\t\tsignal,\n\t}) => getAccount(id, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: id !== null && id !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getAccount>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetAccountQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getAccount>>\n>;\nexport type GetAccountQueryError = unknown;\n\nexport function useGetAccount<\n\tTData = Awaited<ReturnType<typeof getAccount>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getAccount>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getAccount>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getAccount>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetAccount<\n\tTData = Awaited<ReturnType<typeof getAccount>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getAccount>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getAccount>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getAccount>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetAccount<\n\tTData = Awaited<ReturnType<typeof getAccount>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getAccount>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get account by ID\n */\n\nexport function useGetAccount<\n\tTData = Awaited<ReturnType<typeof getAccount>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getAccount>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetAccountQueryOptions(id, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getDeleteAccountUrl = (id: string) => {\n\treturn `/admin/accounts/${id}`;\n};\n\n/**\n * Deletes an account.\n * @summary Delete account\n */\nexport const deleteAccount = async (\n\tid: string,\n\toptions?: RequestInit,\n): Promise<DeleteAccountResponse> => {\n\treturn customFetch<DeleteAccountResponse>(getDeleteAccountUrl(id), {\n\t\t...options,\n\t\tmethod: \"DELETE\",\n\t});\n};\n\nexport const getDeleteAccountMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deleteAccount>>,\n\t\tTError,\n\t\t{ id: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deleteAccount>>,\n\tTError,\n\t{ id: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deleteAccount\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deleteAccount>>,\n\t\t{ id: string }\n\t> = (props) => {\n\t\tconst { id } = props ?? {};\n\n\t\treturn deleteAccount(id, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeleteAccountMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deleteAccount>>\n>;\n\nexport type DeleteAccountMutationError = unknown;\n\n/**\n * @summary Delete account\n */\nexport const useDeleteAccount = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deleteAccount>>,\n\t\t\tTError,\n\t\t\t{ id: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deleteAccount>>,\n\tTError,\n\t{ id: string },\n\tTContext\n> => {\n\treturn useMutation(getDeleteAccountMutationOptions(options), queryClient);\n};\nexport const getUpdateAccountUrl = (id: string) => {\n\treturn `/admin/accounts/${id}`;\n};\n\n/**\n * Updates an account's attributes.\n * @summary Update account\n */\nexport const updateAccount = async (\n\tid: string,\n\tupdateAccountRequest?: UpdateAccountRequest,\n\toptions?: RequestInit,\n): Promise<UpdateAccountResponse> => {\n\treturn customFetch<UpdateAccountResponse>(getUpdateAccountUrl(id), {\n\t\t...options,\n\t\tmethod: \"PATCH\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(updateAccountRequest),\n\t});\n};\n\nexport const getUpdateAccountMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updateAccount>>,\n\t\tTError,\n\t\t{ id: string; data?: UpdateAccountRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updateAccount>>,\n\tTError,\n\t{ id: string; data?: UpdateAccountRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updateAccount\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updateAccount>>,\n\t\t{ id: string; data?: UpdateAccountRequest }\n\t> = (props) => {\n\t\tconst { id, data } = props ?? {};\n\n\t\treturn updateAccount(id, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdateAccountMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updateAccount>>\n>;\nexport type UpdateAccountMutationBody = UpdateAccountRequest | undefined;\nexport type UpdateAccountMutationError = unknown;\n\n/**\n * @summary Update account\n */\nexport const useUpdateAccount = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updateAccount>>,\n\t\t\tTError,\n\t\t\t{ id: string; data?: UpdateAccountRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updateAccount>>,\n\tTError,\n\t{ id: string; data?: UpdateAccountRequest },\n\tTContext\n> => {\n\treturn useMutation(getUpdateAccountMutationOptions(options), queryClient);\n};\nexport const getListUserAccountsUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/accounts`;\n};\n\n/**\n * Lists all accounts for a user.\n * @summary List user accounts\n */\nexport const listUserAccounts = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<UserAccountsResponse> => {\n\treturn customFetch<UserAccountsResponse>(getListUserAccountsUrl(userId), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListUserAccountsQueryKey = (userId: string) => {\n\treturn [`/admin/users/${userId}/accounts`] as const;\n};\n\nexport const getListUserAccountsQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listUserAccounts>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getListUserAccountsQueryKey(userId);\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof listUserAccounts>>\n\t> = ({ signal }) => listUserAccounts(userId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: userId !== null && userId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListUserAccountsQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listUserAccounts>>\n>;\nexport type ListUserAccountsQueryError = unknown;\n\nexport function useListUserAccounts<\n\tTData = Awaited<ReturnType<typeof listUserAccounts>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUserAccounts<\n\tTData = Awaited<ReturnType<typeof listUserAccounts>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUserAccounts<\n\tTData = Awaited<ReturnType<typeof listUserAccounts>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List user accounts\n */\n\nexport function useListUserAccounts<\n\tTData = Awaited<ReturnType<typeof listUserAccounts>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserAccounts>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListUserAccountsQueryOptions(userId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreateAccountUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/accounts`;\n};\n\n/**\n * Creates a new account for a user.\n * @summary Create account\n */\nexport const createAccount = async (\n\tuserId: string,\n\tcreateAccountRequest?: CreateAccountRequest,\n\toptions?: RequestInit,\n): Promise<CreateAccountResponse> => {\n\treturn customFetch<CreateAccountResponse>(getCreateAccountUrl(userId), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(createAccountRequest),\n\t});\n};\n\nexport const getCreateAccountMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createAccount>>,\n\t\tTError,\n\t\t{ userId: string; data?: CreateAccountRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createAccount>>,\n\tTError,\n\t{ userId: string; data?: CreateAccountRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createAccount\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createAccount>>,\n\t\t{ userId: string; data?: CreateAccountRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn createAccount(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreateAccountMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createAccount>>\n>;\nexport type CreateAccountMutationBody = CreateAccountRequest | undefined;\nexport type CreateAccountMutationError = unknown;\n\n/**\n * @summary Create account\n */\nexport const useCreateAccount = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createAccount>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: CreateAccountRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createAccount>>,\n\tTError,\n\t{ userId: string; data?: CreateAccountRequest },\n\tTContext\n> => {\n\treturn useMutation(getCreateAccountMutationOptions(options), queryClient);\n};\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tGetImpersonationByIDResponse,\n\tImpersonation,\n\tStartImpersonationRequest,\n\tStartImpersonationResponse,\n\tStopImpersonationResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getListImpersonationsUrl = () => {\n\treturn `/admin/impersonations`;\n};\n\n/**\n * Lists all impersonations.\n * @summary List impersonations\n */\nexport const listImpersonations = async (\n\toptions?: RequestInit,\n): Promise<Impersonation[] | null> => {\n\treturn customFetch<Impersonation[] | null>(getListImpersonationsUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListImpersonationsQueryKey = () => {\n\treturn [`/admin/impersonations`] as const;\n};\n\nexport const getListImpersonationsQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listImpersonations>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<\n\t\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\t\tTError,\n\t\t\tTData\n\t\t>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListImpersonationsQueryKey();\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof listImpersonations>>\n\t> = ({ signal }) => listImpersonations({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListImpersonationsQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listImpersonations>>\n>;\nexport type ListImpersonationsQueryError = unknown;\n\nexport function useListImpersonations<\n\tTData = Awaited<ReturnType<typeof listImpersonations>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListImpersonations<\n\tTData = Awaited<ReturnType<typeof listImpersonations>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListImpersonations<\n\tTData = Awaited<ReturnType<typeof listImpersonations>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List impersonations\n */\n\nexport function useListImpersonations<\n\tTData = Awaited<ReturnType<typeof listImpersonations>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listImpersonations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListImpersonationsQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getStartImpersonationUrl = () => {\n\treturn `/admin/impersonations`;\n};\n\n/**\n * Starts an impersonation session as a target user.\n * @summary Start impersonation\n */\nexport const startImpersonation = async (\n\tstartImpersonationRequest?: StartImpersonationRequest,\n\toptions?: RequestInit,\n): Promise<StartImpersonationResponse> => {\n\treturn customFetch<StartImpersonationResponse>(getStartImpersonationUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(startImpersonationRequest),\n\t});\n};\n\nexport const getStartImpersonationMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof startImpersonation>>,\n\t\tTError,\n\t\t{ data?: StartImpersonationRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof startImpersonation>>,\n\tTError,\n\t{ data?: StartImpersonationRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"startImpersonation\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof startImpersonation>>,\n\t\t{ data?: StartImpersonationRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn startImpersonation(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type StartImpersonationMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof startImpersonation>>\n>;\nexport type StartImpersonationMutationBody =\n\t| StartImpersonationRequest\n\t| undefined;\nexport type StartImpersonationMutationError = unknown;\n\n/**\n * @summary Start impersonation\n */\nexport const useStartImpersonation = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof startImpersonation>>,\n\t\t\tTError,\n\t\t\t{ data?: StartImpersonationRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof startImpersonation>>,\n\tTError,\n\t{ data?: StartImpersonationRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetStartImpersonationMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getGetImpersonationUrl = (impersonationId: string) => {\n\treturn `/admin/impersonations/${impersonationId}`;\n};\n\n/**\n * Retrieves an impersonation by its ID.\n * @summary Get impersonation by ID\n */\nexport const getImpersonation = async (\n\timpersonationId: string,\n\toptions?: RequestInit,\n): Promise<GetImpersonationByIDResponse> => {\n\treturn customFetch<GetImpersonationByIDResponse>(\n\t\tgetGetImpersonationUrl(impersonationId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"GET\",\n\t\t},\n\t);\n};\n\nexport const getGetImpersonationQueryKey = (impersonationId: string) => {\n\treturn [`/admin/impersonations/${impersonationId}`] as const;\n};\n\nexport const getGetImpersonationQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getImpersonation>>,\n\tTError = unknown,\n>(\n\timpersonationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getGetImpersonationQueryKey(impersonationId);\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof getImpersonation>>\n\t> = ({ signal }) =>\n\t\tgetImpersonation(impersonationId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: impersonationId !== null && impersonationId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetImpersonationQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getImpersonation>>\n>;\nexport type GetImpersonationQueryError = unknown;\n\nexport function useGetImpersonation<\n\tTData = Awaited<ReturnType<typeof getImpersonation>>,\n\tTError = unknown,\n>(\n\timpersonationId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetImpersonation<\n\tTData = Awaited<ReturnType<typeof getImpersonation>>,\n\tTError = unknown,\n>(\n\timpersonationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetImpersonation<\n\tTData = Awaited<ReturnType<typeof getImpersonation>>,\n\tTError = unknown,\n>(\n\timpersonationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get impersonation by ID\n */\n\nexport function useGetImpersonation<\n\tTData = Awaited<ReturnType<typeof getImpersonation>>,\n\tTError = unknown,\n>(\n\timpersonationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getImpersonation>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetImpersonationQueryOptions(\n\t\timpersonationId,\n\t\toptions,\n\t);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getStopImpersonationUrl = (impersonationId: string) => {\n\treturn `/admin/impersonations/${impersonationId}/stop`;\n};\n\n/**\n * Stops an impersonation session and restores the original session.\n * @summary Stop impersonation\n */\nexport const stopImpersonation = async (\n\timpersonationId: string,\n\toptions?: RequestInit,\n): Promise<StopImpersonationResponse> => {\n\treturn customFetch<StopImpersonationResponse>(\n\t\tgetStopImpersonationUrl(impersonationId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"POST\",\n\t\t},\n\t);\n};\n\nexport const getStopImpersonationMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof stopImpersonation>>,\n\t\tTError,\n\t\t{ impersonationId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof stopImpersonation>>,\n\tTError,\n\t{ impersonationId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"stopImpersonation\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof stopImpersonation>>,\n\t\t{ impersonationId: string }\n\t> = (props) => {\n\t\tconst { impersonationId } = props ?? {};\n\n\t\treturn stopImpersonation(impersonationId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type StopImpersonationMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof stopImpersonation>>\n>;\n\nexport type StopImpersonationMutationError = unknown;\n\n/**\n * @summary Stop impersonation\n */\nexport const useStopImpersonation = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof stopImpersonation>>,\n\t\t\tTError,\n\t\t\t{ impersonationId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof stopImpersonation>>,\n\tTError,\n\t{ impersonationId: string },\n\tTContext\n> => {\n\treturn useMutation(getStopImpersonationMutationOptions(options), queryClient);\n};\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tAdminSessionState,\n\tCreateSessionStateRequest,\n\tDeleteSessionStateResponse,\n\tGetSessionStateResponse,\n\tRevokeSessionRequest,\n\tRevokeSessionResponse,\n\tUpsertSessionStateRequest,\n\tUpsertSessionStateResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getListRevokedSessionStatesUrl = () => {\n\treturn `/admin/sessions/states/revoked`;\n};\n\n/**\n * Lists all revoked session states.\n * @summary List revoked session states\n */\nexport const listRevokedSessionStates = async (\n\toptions?: RequestInit,\n): Promise<AdminSessionState[] | null> => {\n\treturn customFetch<AdminSessionState[] | null>(\n\t\tgetListRevokedSessionStatesUrl(),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"GET\",\n\t\t},\n\t);\n};\n\nexport const getListRevokedSessionStatesQueryKey = () => {\n\treturn [`/admin/sessions/states/revoked`] as const;\n};\n\nexport const getListRevokedSessionStatesQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listRevokedSessionStates>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<\n\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\t\tTError,\n\t\t\tTData\n\t\t>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getListRevokedSessionStatesQueryKey();\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>\n\t> = ({ signal }) => listRevokedSessionStates({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListRevokedSessionStatesQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listRevokedSessionStates>>\n>;\nexport type ListRevokedSessionStatesQueryError = unknown;\n\nexport function useListRevokedSessionStates<\n\tTData = Awaited<ReturnType<typeof listRevokedSessionStates>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListRevokedSessionStates<\n\tTData = Awaited<ReturnType<typeof listRevokedSessionStates>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListRevokedSessionStates<\n\tTData = Awaited<ReturnType<typeof listRevokedSessionStates>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List revoked session states\n */\n\nexport function useListRevokedSessionStates<\n\tTData = Awaited<ReturnType<typeof listRevokedSessionStates>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listRevokedSessionStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListRevokedSessionStatesQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getRevokeSessionUrl = (sessionId: string) => {\n\treturn `/admin/sessions/${sessionId}/revoke`;\n};\n\n/**\n * Revokes a session.\n * @summary Revoke session\n */\nexport const revokeSession = async (\n\tsessionId: string,\n\trevokeSessionRequest?: RevokeSessionRequest,\n\toptions?: RequestInit,\n): Promise<RevokeSessionResponse> => {\n\treturn customFetch<RevokeSessionResponse>(getRevokeSessionUrl(sessionId), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(revokeSessionRequest),\n\t});\n};\n\nexport const getRevokeSessionMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof revokeSession>>,\n\t\tTError,\n\t\t{ sessionId: string; data?: RevokeSessionRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof revokeSession>>,\n\tTError,\n\t{ sessionId: string; data?: RevokeSessionRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"revokeSession\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof revokeSession>>,\n\t\t{ sessionId: string; data?: RevokeSessionRequest }\n\t> = (props) => {\n\t\tconst { sessionId, data } = props ?? {};\n\n\t\treturn revokeSession(sessionId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type RevokeSessionMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof revokeSession>>\n>;\nexport type RevokeSessionMutationBody = RevokeSessionRequest | undefined;\nexport type RevokeSessionMutationError = unknown;\n\n/**\n * @summary Revoke session\n */\nexport const useRevokeSession = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof revokeSession>>,\n\t\t\tTError,\n\t\t\t{ sessionId: string; data?: RevokeSessionRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof revokeSession>>,\n\tTError,\n\t{ sessionId: string; data?: RevokeSessionRequest },\n\tTContext\n> => {\n\treturn useMutation(getRevokeSessionMutationOptions(options), queryClient);\n};\nexport const getGetSessionStateUrl = (sessionId: string) => {\n\treturn `/admin/sessions/${sessionId}/state`;\n};\n\n/**\n * Retrieves the state of a session.\n * @summary Get session state\n */\nexport const getSessionState = async (\n\tsessionId: string,\n\toptions?: RequestInit,\n): Promise<GetSessionStateResponse> => {\n\treturn customFetch<GetSessionStateResponse>(\n\t\tgetGetSessionStateUrl(sessionId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"GET\",\n\t\t},\n\t);\n};\n\nexport const getGetSessionStateQueryKey = (sessionId: string) => {\n\treturn [`/admin/sessions/${sessionId}/state`] as const;\n};\n\nexport const getGetSessionStateQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getSessionState>>,\n\tTError = unknown,\n>(\n\tsessionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getGetSessionStateQueryKey(sessionId);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getSessionState>>> = ({\n\t\tsignal,\n\t}) => getSessionState(sessionId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: sessionId !== null && sessionId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetSessionStateQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getSessionState>>\n>;\nexport type GetSessionStateQueryError = unknown;\n\nexport function useGetSessionState<\n\tTData = Awaited<ReturnType<typeof getSessionState>>,\n\tTError = unknown,\n>(\n\tsessionId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getSessionState>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetSessionState<\n\tTData = Awaited<ReturnType<typeof getSessionState>>,\n\tTError = unknown,\n>(\n\tsessionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getSessionState>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetSessionState<\n\tTData = Awaited<ReturnType<typeof getSessionState>>,\n\tTError = unknown,\n>(\n\tsessionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get session state\n */\n\nexport function useGetSessionState<\n\tTData = Awaited<ReturnType<typeof getSessionState>>,\n\tTError = unknown,\n>(\n\tsessionId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getSessionState>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetSessionStateQueryOptions(sessionId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreateSessionStateUrl = (sessionId: string) => {\n\treturn `/admin/sessions/${sessionId}/state`;\n};\n\n/**\n * Creates the state for a session.\n * @summary Create session state\n */\nexport const createSessionState = async (\n\tsessionId: string,\n\tcreateSessionStateRequest?: CreateSessionStateRequest,\n\toptions?: RequestInit,\n): Promise<UpsertSessionStateResponse> => {\n\treturn customFetch<UpsertSessionStateResponse>(\n\t\tgetCreateSessionStateUrl(sessionId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\t\tbody: JSON.stringify(createSessionStateRequest),\n\t\t},\n\t);\n};\n\nexport const getCreateSessionStateMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createSessionState>>,\n\t\tTError,\n\t\t{ sessionId: string; data?: CreateSessionStateRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createSessionState>>,\n\tTError,\n\t{ sessionId: string; data?: CreateSessionStateRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createSessionState\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createSessionState>>,\n\t\t{ sessionId: string; data?: CreateSessionStateRequest }\n\t> = (props) => {\n\t\tconst { sessionId, data } = props ?? {};\n\n\t\treturn createSessionState(sessionId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreateSessionStateMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createSessionState>>\n>;\nexport type CreateSessionStateMutationBody =\n\t| CreateSessionStateRequest\n\t| undefined;\nexport type CreateSessionStateMutationError = unknown;\n\n/**\n * @summary Create session state\n */\nexport const useCreateSessionState = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createSessionState>>,\n\t\t\tTError,\n\t\t\t{ sessionId: string; data?: CreateSessionStateRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createSessionState>>,\n\tTError,\n\t{ sessionId: string; data?: CreateSessionStateRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetCreateSessionStateMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getDeleteSessionStateUrl = (sessionId: string) => {\n\treturn `/admin/sessions/${sessionId}/state`;\n};\n\n/**\n * Deletes the state of a session.\n * @summary Delete session state\n */\nexport const deleteSessionState = async (\n\tsessionId: string,\n\toptions?: RequestInit,\n): Promise<DeleteSessionStateResponse> => {\n\treturn customFetch<DeleteSessionStateResponse>(\n\t\tgetDeleteSessionStateUrl(sessionId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"DELETE\",\n\t\t},\n\t);\n};\n\nexport const getDeleteSessionStateMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deleteSessionState>>,\n\t\tTError,\n\t\t{ sessionId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deleteSessionState>>,\n\tTError,\n\t{ sessionId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deleteSessionState\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deleteSessionState>>,\n\t\t{ sessionId: string }\n\t> = (props) => {\n\t\tconst { sessionId } = props ?? {};\n\n\t\treturn deleteSessionState(sessionId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeleteSessionStateMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deleteSessionState>>\n>;\n\nexport type DeleteSessionStateMutationError = unknown;\n\n/**\n * @summary Delete session state\n */\nexport const useDeleteSessionState = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deleteSessionState>>,\n\t\t\tTError,\n\t\t\t{ sessionId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deleteSessionState>>,\n\tTError,\n\t{ sessionId: string },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetDeleteSessionStateMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getUpdateSessionStateUrl = (sessionId: string) => {\n\treturn `/admin/sessions/${sessionId}/state`;\n};\n\n/**\n * Updates the state of a session.\n * @summary Update session state\n */\nexport const updateSessionState = async (\n\tsessionId: string,\n\tupsertSessionStateRequest?: UpsertSessionStateRequest,\n\toptions?: RequestInit,\n): Promise<UpsertSessionStateResponse> => {\n\treturn customFetch<UpsertSessionStateResponse>(\n\t\tgetUpdateSessionStateUrl(sessionId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"PATCH\",\n\t\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\t\tbody: JSON.stringify(upsertSessionStateRequest),\n\t\t},\n\t);\n};\n\nexport const getUpdateSessionStateMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updateSessionState>>,\n\t\tTError,\n\t\t{ sessionId: string; data?: UpsertSessionStateRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updateSessionState>>,\n\tTError,\n\t{ sessionId: string; data?: UpsertSessionStateRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updateSessionState\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updateSessionState>>,\n\t\t{ sessionId: string; data?: UpsertSessionStateRequest }\n\t> = (props) => {\n\t\tconst { sessionId, data } = props ?? {};\n\n\t\treturn updateSessionState(sessionId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdateSessionStateMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updateSessionState>>\n>;\nexport type UpdateSessionStateMutationBody =\n\t| UpsertSessionStateRequest\n\t| undefined;\nexport type UpdateSessionStateMutationError = unknown;\n\n/**\n * @summary Update session state\n */\nexport const useUpdateSessionState = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updateSessionState>>,\n\t\t\tTError,\n\t\t\t{ sessionId: string; data?: UpsertSessionStateRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updateSessionState>>,\n\tTError,\n\t{ sessionId: string; data?: UpsertSessionStateRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetUpdateSessionStateMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tAdminUserSession,\n\tAdminUserState,\n\tBanUserRequest,\n\tBanUserResponse,\n\tCreateUserStateRequest,\n\tDeleteUserStateResponse,\n\tGetUserStateResponse,\n\tUnbanUserResponse,\n\tUpsertUserStateRequest,\n\tUpsertUserStateResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getListBannedUserStatesUrl = () => {\n\treturn `/admin/users/states/banned`;\n};\n\n/**\n * Lists all banned user states.\n * @summary List banned user states\n */\nexport const listBannedUserStates = async (\n\toptions?: RequestInit,\n): Promise<AdminUserState[] | null> => {\n\treturn customFetch<AdminUserState[] | null>(getListBannedUserStatesUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListBannedUserStatesQueryKey = () => {\n\treturn [`/admin/users/states/banned`] as const;\n};\n\nexport const getListBannedUserStatesQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listBannedUserStates>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<\n\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\t\tTError,\n\t\t\tTData\n\t\t>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListBannedUserStatesQueryKey();\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof listBannedUserStates>>\n\t> = ({ signal }) => listBannedUserStates({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListBannedUserStatesQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listBannedUserStates>>\n>;\nexport type ListBannedUserStatesQueryError = unknown;\n\nexport function useListBannedUserStates<\n\tTData = Awaited<ReturnType<typeof listBannedUserStates>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListBannedUserStates<\n\tTData = Awaited<ReturnType<typeof listBannedUserStates>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListBannedUserStates<\n\tTData = Awaited<ReturnType<typeof listBannedUserStates>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List banned user states\n */\n\nexport function useListBannedUserStates<\n\tTData = Awaited<ReturnType<typeof listBannedUserStates>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listBannedUserStates>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListBannedUserStatesQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getBanUserUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/ban`;\n};\n\n/**\n * Bans a user.\n * @summary Ban user\n */\nexport const banUser = async (\n\tuserId: string,\n\tbanUserRequest?: BanUserRequest,\n\toptions?: RequestInit,\n): Promise<BanUserResponse> => {\n\treturn customFetch<BanUserResponse>(getBanUserUrl(userId), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(banUserRequest),\n\t});\n};\n\nexport const getBanUserMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof banUser>>,\n\t\tTError,\n\t\t{ userId: string; data?: BanUserRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof banUser>>,\n\tTError,\n\t{ userId: string; data?: BanUserRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"banUser\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof banUser>>,\n\t\t{ userId: string; data?: BanUserRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn banUser(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type BanUserMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof banUser>>\n>;\nexport type BanUserMutationBody = BanUserRequest | undefined;\nexport type BanUserMutationError = unknown;\n\n/**\n * @summary Ban user\n */\nexport const useBanUser = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof banUser>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: BanUserRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof banUser>>,\n\tTError,\n\t{ userId: string; data?: BanUserRequest },\n\tTContext\n> => {\n\treturn useMutation(getBanUserMutationOptions(options), queryClient);\n};\nexport const getListUserSessionsUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/sessions`;\n};\n\n/**\n * Lists all sessions for a user.\n * @summary List user sessions\n */\nexport const listUserSessions = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<AdminUserSession[] | null> => {\n\treturn customFetch<AdminUserSession[] | null>(\n\t\tgetListUserSessionsUrl(userId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"GET\",\n\t\t},\n\t);\n};\n\nexport const getListUserSessionsQueryKey = (userId: string) => {\n\treturn [`/admin/users/${userId}/sessions`] as const;\n};\n\nexport const getListUserSessionsQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listUserSessions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getListUserSessionsQueryKey(userId);\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof listUserSessions>>\n\t> = ({ signal }) => listUserSessions(userId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: userId !== null && userId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListUserSessionsQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listUserSessions>>\n>;\nexport type ListUserSessionsQueryError = unknown;\n\nexport function useListUserSessions<\n\tTData = Awaited<ReturnType<typeof listUserSessions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUserSessions<\n\tTData = Awaited<ReturnType<typeof listUserSessions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUserSessions<\n\tTData = Awaited<ReturnType<typeof listUserSessions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List user sessions\n */\n\nexport function useListUserSessions<\n\tTData = Awaited<ReturnType<typeof listUserSessions>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listUserSessions>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListUserSessionsQueryOptions(userId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getGetUserStateUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/state`;\n};\n\n/**\n * Retrieves the state of a user.\n * @summary Get user state\n */\nexport const getUserState = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<GetUserStateResponse> => {\n\treturn customFetch<GetUserStateResponse>(getGetUserStateUrl(userId), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetUserStateQueryKey = (userId: string) => {\n\treturn [`/admin/users/${userId}/state`] as const;\n};\n\nexport const getGetUserStateQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getUserState>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUserState>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetUserStateQueryKey(userId);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getUserState>>> = ({\n\t\tsignal,\n\t}) => getUserState(userId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: userId !== null && userId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getUserState>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetUserStateQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getUserState>>\n>;\nexport type GetUserStateQueryError = unknown;\n\nexport function useGetUserState<\n\tTData = Awaited<ReturnType<typeof getUserState>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUserState>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getUserState>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getUserState>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetUserState<\n\tTData = Awaited<ReturnType<typeof getUserState>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUserState>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getUserState>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getUserState>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetUserState<\n\tTData = Awaited<ReturnType<typeof getUserState>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUserState>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get user state\n */\n\nexport function useGetUserState<\n\tTData = Awaited<ReturnType<typeof getUserState>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUserState>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetUserStateQueryOptions(userId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreateUserStateUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/state`;\n};\n\n/**\n * Creates the state for a user.\n * @summary Create user state\n */\nexport const createUserState = async (\n\tuserId: string,\n\tcreateUserStateRequest?: CreateUserStateRequest,\n\toptions?: RequestInit,\n): Promise<UpsertUserStateResponse> => {\n\treturn customFetch<UpsertUserStateResponse>(getCreateUserStateUrl(userId), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(createUserStateRequest),\n\t});\n};\n\nexport const getCreateUserStateMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createUserState>>,\n\t\tTError,\n\t\t{ userId: string; data?: CreateUserStateRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createUserState>>,\n\tTError,\n\t{ userId: string; data?: CreateUserStateRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createUserState\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createUserState>>,\n\t\t{ userId: string; data?: CreateUserStateRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn createUserState(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreateUserStateMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createUserState>>\n>;\nexport type CreateUserStateMutationBody = CreateUserStateRequest | undefined;\nexport type CreateUserStateMutationError = unknown;\n\n/**\n * @summary Create user state\n */\nexport const useCreateUserState = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createUserState>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: CreateUserStateRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createUserState>>,\n\tTError,\n\t{ userId: string; data?: CreateUserStateRequest },\n\tTContext\n> => {\n\treturn useMutation(getCreateUserStateMutationOptions(options), queryClient);\n};\nexport const getDeleteUserStateUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/state`;\n};\n\n/**\n * Deletes the state of a user.\n * @summary Delete user state\n */\nexport const deleteUserState = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<DeleteUserStateResponse> => {\n\treturn customFetch<DeleteUserStateResponse>(getDeleteUserStateUrl(userId), {\n\t\t...options,\n\t\tmethod: \"DELETE\",\n\t});\n};\n\nexport const getDeleteUserStateMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deleteUserState>>,\n\t\tTError,\n\t\t{ userId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deleteUserState>>,\n\tTError,\n\t{ userId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deleteUserState\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deleteUserState>>,\n\t\t{ userId: string }\n\t> = (props) => {\n\t\tconst { userId } = props ?? {};\n\n\t\treturn deleteUserState(userId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeleteUserStateMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deleteUserState>>\n>;\n\nexport type DeleteUserStateMutationError = unknown;\n\n/**\n * @summary Delete user state\n */\nexport const useDeleteUserState = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deleteUserState>>,\n\t\t\tTError,\n\t\t\t{ userId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deleteUserState>>,\n\tTError,\n\t{ userId: string },\n\tTContext\n> => {\n\treturn useMutation(getDeleteUserStateMutationOptions(options), queryClient);\n};\nexport const getUpdateUserStateUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/state`;\n};\n\n/**\n * Updates the state of a user.\n * @summary Update user state\n */\nexport const updateUserState = async (\n\tuserId: string,\n\tupsertUserStateRequest?: UpsertUserStateRequest,\n\toptions?: RequestInit,\n): Promise<UpsertUserStateResponse> => {\n\treturn customFetch<UpsertUserStateResponse>(getUpdateUserStateUrl(userId), {\n\t\t...options,\n\t\tmethod: \"PATCH\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(upsertUserStateRequest),\n\t});\n};\n\nexport const getUpdateUserStateMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updateUserState>>,\n\t\tTError,\n\t\t{ userId: string; data?: UpsertUserStateRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updateUserState>>,\n\tTError,\n\t{ userId: string; data?: UpsertUserStateRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updateUserState\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updateUserState>>,\n\t\t{ userId: string; data?: UpsertUserStateRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn updateUserState(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdateUserStateMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updateUserState>>\n>;\nexport type UpdateUserStateMutationBody = UpsertUserStateRequest | undefined;\nexport type UpdateUserStateMutationError = unknown;\n\n/**\n * @summary Update user state\n */\nexport const useUpdateUserState = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updateUserState>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: UpsertUserStateRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updateUserState>>,\n\tTError,\n\t{ userId: string; data?: UpsertUserStateRequest },\n\tTContext\n> => {\n\treturn useMutation(getUpdateUserStateMutationOptions(options), queryClient);\n};\nexport const getUnbanUserUrl = (userId: string) => {\n\treturn `/admin/users/${userId}/unban`;\n};\n\n/**\n * Unbans a user.\n * @summary Unban user\n */\nexport const unbanUser = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<UnbanUserResponse> => {\n\treturn customFetch<UnbanUserResponse>(getUnbanUserUrl(userId), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t});\n};\n\nexport const getUnbanUserMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof unbanUser>>,\n\t\tTError,\n\t\t{ userId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof unbanUser>>,\n\tTError,\n\t{ userId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"unbanUser\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof unbanUser>>,\n\t\t{ userId: string }\n\t> = (props) => {\n\t\tconst { userId } = props ?? {};\n\n\t\treturn unbanUser(userId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UnbanUserMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof unbanUser>>\n>;\n\nexport type UnbanUserMutationError = unknown;\n\n/**\n * @summary Unban user\n */\nexport const useUnbanUser = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof unbanUser>>,\n\t\t\tTError,\n\t\t\t{ userId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof unbanUser>>,\n\tTError,\n\t{ userId: string },\n\tTContext\n> => {\n\treturn useMutation(getUnbanUserMutationOptions(options), queryClient);\n};\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tCreateUserRequest,\n\tCreateUserResponse,\n\tDeleteUserResponse,\n\tGetUserByIDResponse,\n\tListUsersParams,\n\tUpdateUserRequest,\n\tUpdateUserResponse,\n\tUsersPage,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getListUsersUrl = (params?: ListUsersParams) => {\n\tconst normalizedParams = new URLSearchParams();\n\n\tObject.entries(params || {}).forEach(([key, value]) => {\n\t\tif (value !== undefined) {\n\t\t\tnormalizedParams.append(key, value === null ? \"null\" : String(value));\n\t\t}\n\t});\n\n\tconst stringifiedParams = normalizedParams.toString();\n\n\treturn stringifiedParams.length > 0\n\t\t? `/admin/users?${stringifiedParams}`\n\t\t: `/admin/users`;\n};\n\n/**\n * Lists users with cursor-based pagination.\n * @summary List users\n */\nexport const listUsers = async (\n\tparams?: ListUsersParams,\n\toptions?: RequestInit,\n): Promise<UsersPage> => {\n\treturn customFetch<UsersPage>(getListUsersUrl(params), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListUsersQueryKey = (params?: ListUsersParams) => {\n\treturn [`/admin/users`, ...(params ? [params] : [])] as const;\n};\n\nexport const getListUsersQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listUsers>>,\n\tTError = unknown,\n>(\n\tparams?: ListUsersParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUsers>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListUsersQueryKey(params);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof listUsers>>> = ({\n\t\tsignal,\n\t}) => listUsers(params, { signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listUsers>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListUsersQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listUsers>>\n>;\nexport type ListUsersQueryError = unknown;\n\nexport function useListUsers<\n\tTData = Awaited<ReturnType<typeof listUsers>>,\n\tTError = unknown,\n>(\n\tparams: undefined | ListUsersParams,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUsers>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUsers>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUsers>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUsers<\n\tTData = Awaited<ReturnType<typeof listUsers>>,\n\tTError = unknown,\n>(\n\tparams?: ListUsersParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUsers>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listUsers>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listUsers>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListUsers<\n\tTData = Awaited<ReturnType<typeof listUsers>>,\n\tTError = unknown,\n>(\n\tparams?: ListUsersParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUsers>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List users\n */\n\nexport function useListUsers<\n\tTData = Awaited<ReturnType<typeof listUsers>>,\n\tTError = unknown,\n>(\n\tparams?: ListUsersParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listUsers>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListUsersQueryOptions(params, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreateUserUrl = () => {\n\treturn `/admin/users`;\n};\n\n/**\n * Creates a new user with the specified attributes.\n * @summary Create user\n */\nexport const createUser = async (\n\tcreateUserRequest?: CreateUserRequest,\n\toptions?: RequestInit,\n): Promise<CreateUserResponse> => {\n\treturn customFetch<CreateUserResponse>(getCreateUserUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(createUserRequest),\n\t});\n};\n\nexport const getCreateUserMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createUser>>,\n\t\tTError,\n\t\t{ data?: CreateUserRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createUser>>,\n\tTError,\n\t{ data?: CreateUserRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createUser\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createUser>>,\n\t\t{ data?: CreateUserRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn createUser(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreateUserMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createUser>>\n>;\nexport type CreateUserMutationBody = CreateUserRequest | undefined;\nexport type CreateUserMutationError = unknown;\n\n/**\n * @summary Create user\n */\nexport const useCreateUser = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createUser>>,\n\t\t\tTError,\n\t\t\t{ data?: CreateUserRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createUser>>,\n\tTError,\n\t{ data?: CreateUserRequest },\n\tTContext\n> => {\n\treturn useMutation(getCreateUserMutationOptions(options), queryClient);\n};\nexport const getGetUserUrl = (userId: string) => {\n\treturn `/admin/users/${userId}`;\n};\n\n/**\n * Retrieves a user by their ID.\n * @summary Get user by ID\n */\nexport const getUser = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<GetUserByIDResponse> => {\n\treturn customFetch<GetUserByIDResponse>(getGetUserUrl(userId), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetUserQueryKey = (userId: string) => {\n\treturn [`/admin/users/${userId}`] as const;\n};\n\nexport const getGetUserQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getUser>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUser>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetUserQueryKey(userId);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getUser>>> = ({\n\t\tsignal,\n\t}) => getUser(userId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: userId !== null && userId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<Awaited<ReturnType<typeof getUser>>, TError, TData> & {\n\t\tqueryKey: DataTag<QueryKey, TData, TError>;\n\t};\n};\n\nexport type GetUserQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getUser>>\n>;\nexport type GetUserQueryError = unknown;\n\nexport function useGetUser<\n\tTData = Awaited<ReturnType<typeof getUser>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUser>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getUser>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getUser>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetUser<\n\tTData = Awaited<ReturnType<typeof getUser>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUser>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getUser>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getUser>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetUser<\n\tTData = Awaited<ReturnType<typeof getUser>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUser>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get user by ID\n */\n\nexport function useGetUser<\n\tTData = Awaited<ReturnType<typeof getUser>>,\n\tTError = unknown,\n>(\n\tuserId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getUser>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetUserQueryOptions(userId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getDeleteUserUrl = (userId: string) => {\n\treturn `/admin/users/${userId}`;\n};\n\n/**\n * Deletes a user.\n * @summary Delete user\n */\nexport const deleteUser = async (\n\tuserId: string,\n\toptions?: RequestInit,\n): Promise<DeleteUserResponse> => {\n\treturn customFetch<DeleteUserResponse>(getDeleteUserUrl(userId), {\n\t\t...options,\n\t\tmethod: \"DELETE\",\n\t});\n};\n\nexport const getDeleteUserMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deleteUser>>,\n\t\tTError,\n\t\t{ userId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deleteUser>>,\n\tTError,\n\t{ userId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deleteUser\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deleteUser>>,\n\t\t{ userId: string }\n\t> = (props) => {\n\t\tconst { userId } = props ?? {};\n\n\t\treturn deleteUser(userId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeleteUserMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deleteUser>>\n>;\n\nexport type DeleteUserMutationError = unknown;\n\n/**\n * @summary Delete user\n */\nexport const useDeleteUser = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deleteUser>>,\n\t\t\tTError,\n\t\t\t{ userId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deleteUser>>,\n\tTError,\n\t{ userId: string },\n\tTContext\n> => {\n\treturn useMutation(getDeleteUserMutationOptions(options), queryClient);\n};\nexport const getUpdateUserUrl = (userId: string) => {\n\treturn `/admin/users/${userId}`;\n};\n\n/**\n * Updates a user's attributes.\n * @summary Update user\n */\nexport const updateUser = async (\n\tuserId: string,\n\tupdateUserRequest?: UpdateUserRequest,\n\toptions?: RequestInit,\n): Promise<UpdateUserResponse> => {\n\treturn customFetch<UpdateUserResponse>(getUpdateUserUrl(userId), {\n\t\t...options,\n\t\tmethod: \"PATCH\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(updateUserRequest),\n\t});\n};\n\nexport const getUpdateUserMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updateUser>>,\n\t\tTError,\n\t\t{ userId: string; data?: UpdateUserRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updateUser>>,\n\tTError,\n\t{ userId: string; data?: UpdateUserRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updateUser\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updateUser>>,\n\t\t{ userId: string; data?: UpdateUserRequest }\n\t> = (props) => {\n\t\tconst { userId, data } = props ?? {};\n\n\t\treturn updateUser(userId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdateUserMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updateUser>>\n>;\nexport type UpdateUserMutationBody = UpdateUserRequest | undefined;\nexport type UpdateUserMutationError = unknown;\n\n/**\n * @summary Update user\n */\nexport const useUpdateUser = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updateUser>>,\n\t\t\tTError,\n\t\t\t{ userId: string; data?: UpdateUserRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updateUser>>,\n\tTError,\n\t{ userId: string; data?: UpdateUserRequest },\n\tTContext\n> => {\n\treturn useMutation(getUpdateUserMutationOptions(options), queryClient);\n};\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as adminAccounts from \"../../gen/endpoints/admin-accounts/admin-accounts\";\nimport * as adminImpersonation from \"../../gen/endpoints/admin-impersonation/admin-impersonation\";\nimport * as adminSessionState from \"../../gen/endpoints/admin-session-state/admin-session-state\";\nimport * as adminUserState from \"../../gen/endpoints/admin-user-state/admin-user-state\";\nimport * as adminUsers from \"../../gen/endpoints/admin-users/admin-users\";\n\nexport class AdminPlugin implements Plugin {\n public readonly id = \"admin\";\n\n constructor() {}\n\n public init(client: AuthulaClient) {\n return {\n ...wrapGenerated(adminUsers, client),\n ...wrapGenerated(adminAccounts, client),\n ...wrapGenerated(adminUserState, client),\n ...wrapGenerated(adminSessionState, client),\n ...wrapGenerated(adminImpersonation, client),\n };\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tCreateApiKeyRequest,\n\tCreateApiKeyResponse,\n\tDeleteApiKeyResponse,\n\tGetAllApiKeysResponse,\n\tGetApiKeyResponse,\n\tListApiKeysParams,\n\tUpdateApiKeyRequest,\n\tUpdateApiKeyResponse,\n\tVerifyApiKeyRequest,\n\tVerifyApiKeyResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getListApiKeysUrl = (params?: ListApiKeysParams) => {\n\tconst normalizedParams = new URLSearchParams();\n\n\tObject.entries(params || {}).forEach(([key, value]) => {\n\t\tif (value !== undefined) {\n\t\t\tnormalizedParams.append(key, value === null ? \"null\" : String(value));\n\t\t}\n\t});\n\n\tconst stringifiedParams = normalizedParams.toString();\n\n\treturn stringifiedParams.length > 0\n\t\t? `/api-keys?${stringifiedParams}`\n\t\t: `/api-keys`;\n};\n\n/**\n * Lists API keys with pagination, optionally filtered by owner.\n * @summary List API keys\n */\nexport const listApiKeys = async (\n\tparams?: ListApiKeysParams,\n\toptions?: RequestInit,\n): Promise<GetAllApiKeysResponse> => {\n\treturn customFetch<GetAllApiKeysResponse>(getListApiKeysUrl(params), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListApiKeysQueryKey = (params?: ListApiKeysParams) => {\n\treturn [`/api-keys`, ...(params ? [params] : [])] as const;\n};\n\nexport const getListApiKeysQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listApiKeys>>,\n\tTError = unknown,\n>(\n\tparams?: ListApiKeysParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listApiKeys>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListApiKeysQueryKey(params);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof listApiKeys>>> = ({\n\t\tsignal,\n\t}) => listApiKeys(params, { signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listApiKeys>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListApiKeysQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listApiKeys>>\n>;\nexport type ListApiKeysQueryError = unknown;\n\nexport function useListApiKeys<\n\tTData = Awaited<ReturnType<typeof listApiKeys>>,\n\tTError = unknown,\n>(\n\tparams: undefined | ListApiKeysParams,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listApiKeys>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listApiKeys>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listApiKeys>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListApiKeys<\n\tTData = Awaited<ReturnType<typeof listApiKeys>>,\n\tTError = unknown,\n>(\n\tparams?: ListApiKeysParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listApiKeys>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listApiKeys>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listApiKeys>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListApiKeys<\n\tTData = Awaited<ReturnType<typeof listApiKeys>>,\n\tTError = unknown,\n>(\n\tparams?: ListApiKeysParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listApiKeys>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List API keys\n */\n\nexport function useListApiKeys<\n\tTData = Awaited<ReturnType<typeof listApiKeys>>,\n\tTError = unknown,\n>(\n\tparams?: ListApiKeysParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof listApiKeys>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListApiKeysQueryOptions(params, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreateApiKeyUrl = () => {\n\treturn `/api-keys`;\n};\n\n/**\n * Creates a new API key for the specified owner.\n * @summary Create API key\n */\nexport const createApiKey = async (\n\tcreateApiKeyRequest?: CreateApiKeyRequest,\n\toptions?: RequestInit,\n): Promise<CreateApiKeyResponse> => {\n\treturn customFetch<CreateApiKeyResponse>(getCreateApiKeyUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(createApiKeyRequest),\n\t});\n};\n\nexport const getCreateApiKeyMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createApiKey>>,\n\t\tTError,\n\t\t{ data?: CreateApiKeyRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createApiKey>>,\n\tTError,\n\t{ data?: CreateApiKeyRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createApiKey\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createApiKey>>,\n\t\t{ data?: CreateApiKeyRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn createApiKey(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreateApiKeyMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createApiKey>>\n>;\nexport type CreateApiKeyMutationBody = CreateApiKeyRequest | undefined;\nexport type CreateApiKeyMutationError = unknown;\n\n/**\n * @summary Create API key\n */\nexport const useCreateApiKey = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createApiKey>>,\n\t\t\tTError,\n\t\t\t{ data?: CreateApiKeyRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createApiKey>>,\n\tTError,\n\t{ data?: CreateApiKeyRequest },\n\tTContext\n> => {\n\treturn useMutation(getCreateApiKeyMutationOptions(options), queryClient);\n};\nexport const getVerifyApiKeyUrl = () => {\n\treturn `/api-keys/verify`;\n};\n\n/**\n * Verifies an API key by its raw value and returns the associated key details.\n * @summary Verify API key\n */\nexport const verifyApiKey = async (\n\tverifyApiKeyRequest?: VerifyApiKeyRequest,\n\toptions?: RequestInit,\n): Promise<VerifyApiKeyResponse> => {\n\treturn customFetch<VerifyApiKeyResponse>(getVerifyApiKeyUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(verifyApiKeyRequest),\n\t});\n};\n\nexport const getVerifyApiKeyMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof verifyApiKey>>,\n\t\tTError,\n\t\t{ data?: VerifyApiKeyRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof verifyApiKey>>,\n\tTError,\n\t{ data?: VerifyApiKeyRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"verifyApiKey\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof verifyApiKey>>,\n\t\t{ data?: VerifyApiKeyRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn verifyApiKey(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type VerifyApiKeyMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof verifyApiKey>>\n>;\nexport type VerifyApiKeyMutationBody = VerifyApiKeyRequest | undefined;\nexport type VerifyApiKeyMutationError = unknown;\n\n/**\n * @summary Verify API key\n */\nexport const useVerifyApiKey = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof verifyApiKey>>,\n\t\t\tTError,\n\t\t\t{ data?: VerifyApiKeyRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof verifyApiKey>>,\n\tTError,\n\t{ data?: VerifyApiKeyRequest },\n\tTContext\n> => {\n\treturn useMutation(getVerifyApiKeyMutationOptions(options), queryClient);\n};\nexport const getGetApiKeyUrl = (id: string) => {\n\treturn `/api-keys/${id}`;\n};\n\n/**\n * Retrieves an API key by its ID.\n * @summary Get API key by ID\n */\nexport const getApiKey = async (\n\tid: string,\n\toptions?: RequestInit,\n): Promise<GetApiKeyResponse> => {\n\treturn customFetch<GetApiKeyResponse>(getGetApiKeyUrl(id), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetApiKeyQueryKey = (id: string) => {\n\treturn [`/api-keys/${id}`] as const;\n};\n\nexport const getGetApiKeyQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getApiKey>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getApiKey>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetApiKeyQueryKey(id);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getApiKey>>> = ({\n\t\tsignal,\n\t}) => getApiKey(id, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: id !== null && id !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<Awaited<ReturnType<typeof getApiKey>>, TError, TData> & {\n\t\tqueryKey: DataTag<QueryKey, TData, TError>;\n\t};\n};\n\nexport type GetApiKeyQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getApiKey>>\n>;\nexport type GetApiKeyQueryError = unknown;\n\nexport function useGetApiKey<\n\tTData = Awaited<ReturnType<typeof getApiKey>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getApiKey>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getApiKey>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getApiKey>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetApiKey<\n\tTData = Awaited<ReturnType<typeof getApiKey>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getApiKey>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getApiKey>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getApiKey>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetApiKey<\n\tTData = Awaited<ReturnType<typeof getApiKey>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getApiKey>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get API key by ID\n */\n\nexport function useGetApiKey<\n\tTData = Awaited<ReturnType<typeof getApiKey>>,\n\tTError = unknown,\n>(\n\tid: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getApiKey>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetApiKeyQueryOptions(id, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getDeleteApiKeyUrl = (id: string) => {\n\treturn `/api-keys/${id}`;\n};\n\n/**\n * Deletes an API key.\n * @summary Delete API key\n */\nexport const deleteApiKey = async (\n\tid: string,\n\toptions?: RequestInit,\n): Promise<DeleteApiKeyResponse> => {\n\treturn customFetch<DeleteApiKeyResponse>(getDeleteApiKeyUrl(id), {\n\t\t...options,\n\t\tmethod: \"DELETE\",\n\t});\n};\n\nexport const getDeleteApiKeyMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deleteApiKey>>,\n\t\tTError,\n\t\t{ id: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deleteApiKey>>,\n\tTError,\n\t{ id: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deleteApiKey\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deleteApiKey>>,\n\t\t{ id: string }\n\t> = (props) => {\n\t\tconst { id } = props ?? {};\n\n\t\treturn deleteApiKey(id, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeleteApiKeyMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deleteApiKey>>\n>;\n\nexport type DeleteApiKeyMutationError = unknown;\n\n/**\n * @summary Delete API key\n */\nexport const useDeleteApiKey = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deleteApiKey>>,\n\t\t\tTError,\n\t\t\t{ id: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deleteApiKey>>,\n\tTError,\n\t{ id: string },\n\tTContext\n> => {\n\treturn useMutation(getDeleteApiKeyMutationOptions(options), queryClient);\n};\nexport const getUpdateApiKeyUrl = (id: string) => {\n\treturn `/api-keys/${id}`;\n};\n\n/**\n * Updates an API key's attributes.\n * @summary Update API key\n */\nexport const updateApiKey = async (\n\tid: string,\n\tupdateApiKeyRequest?: UpdateApiKeyRequest,\n\toptions?: RequestInit,\n): Promise<UpdateApiKeyResponse> => {\n\treturn customFetch<UpdateApiKeyResponse>(getUpdateApiKeyUrl(id), {\n\t\t...options,\n\t\tmethod: \"PATCH\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(updateApiKeyRequest),\n\t});\n};\n\nexport const getUpdateApiKeyMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updateApiKey>>,\n\t\tTError,\n\t\t{ id: string; data?: UpdateApiKeyRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updateApiKey>>,\n\tTError,\n\t{ id: string; data?: UpdateApiKeyRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updateApiKey\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updateApiKey>>,\n\t\t{ id: string; data?: UpdateApiKeyRequest }\n\t> = (props) => {\n\t\tconst { id, data } = props ?? {};\n\n\t\treturn updateApiKey(id, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdateApiKeyMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updateApiKey>>\n>;\nexport type UpdateApiKeyMutationBody = UpdateApiKeyRequest | undefined;\nexport type UpdateApiKeyMutationError = unknown;\n\n/**\n * @summary Update API key\n */\nexport const useUpdateApiKey = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updateApiKey>>,\n\t\t\tTError,\n\t\t\t{ id: string; data?: UpdateApiKeyRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updateApiKey>>,\n\tTError,\n\t{ id: string; data?: UpdateApiKeyRequest },\n\tTContext\n> => {\n\treturn useMutation(getUpdateApiKeyMutationOptions(options), queryClient);\n};\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as apiKey from \"../../gen/endpoints/api-keys/api-keys\";\n\nexport class ApiKeyPlugin implements Plugin {\n public readonly id = \"apiKey\";\n\n constructor() {}\n\n public init(client: AuthulaClient) {\n return wrapGenerated(apiKey, client);\n }\n}\n","import type { FetchContext, Plugin } from \"@/types\";\nimport type { ClientWithPlugins } from \"@/sdk\";\nimport type { JWTPlugin } from \"../jwt/plugin\";\nimport type { BearerPluginOptions } from \"./types\";\n\nexport class BearerPlugin implements Plugin {\n public readonly id = \"bearer\";\n private refreshPromise: Promise<any> | null = null;\n\n constructor(private readonly options?: BearerPluginOptions) {}\n\n public init(client: ClientWithPlugins<[JWTPlugin]>) {\n client.registerBeforeFetch(async (ctx: FetchContext) => {\n if (typeof document === \"undefined\") {\n return;\n }\n\n const headerName = this.options?.headerName ?? \"Authorization\";\n const token = localStorage.getItem(\"accessToken\");\n if (token) {\n if (!(ctx.init.headers instanceof Headers)) {\n ctx.init.headers = new Headers(ctx.init.headers);\n }\n ctx.init.headers.set(headerName, `Bearer ${token}`);\n }\n });\n\n client.registerAfterFetch(async (ctx: FetchContext, res: Response) => {\n if (typeof document === \"undefined\") {\n return;\n }\n if (res.status !== 401) {\n return;\n }\n if (ctx.meta.retry) {\n return;\n }\n\n const refreshToken = localStorage.getItem(\"refreshToken\");\n if (!refreshToken) {\n return;\n }\n\n if (!client.jwt) {\n console.warn(\"JWT Plugin is required for Bearer token refresh.\");\n return;\n }\n\n // 🔒 SINGLE FLIGHT REFRESH\n if (!this.refreshPromise) {\n this.refreshPromise = (async () => {\n try {\n const response = await client.jwt.refreshToken({\n refreshToken: refreshToken,\n });\n if (!response) {\n return null;\n }\n\n localStorage.setItem(\"accessToken\", response.accessToken);\n localStorage.setItem(\"refreshToken\", response.refreshToken);\n\n return response;\n } finally {\n this.refreshPromise = null;\n }\n })();\n }\n\n const refreshed = await this.refreshPromise;\n if (!refreshed) {\n return;\n }\n\n const headerName = this.options?.headerName ?? \"Authorization\";\n if (!(ctx.init.headers instanceof Headers)) {\n ctx.init.headers = new Headers(ctx.init.headers);\n }\n ctx.init.headers.set(headerName, `Bearer ${refreshed.accessToken}`);\n\n return \"retry\";\n });\n\n return {};\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tGetMeResponse,\n\tSignOutRequest,\n\tSignOutResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getGetMeUrl = () => {\n\treturn `/me`;\n};\n\n/**\n * Retrieves the authenticated user's profile and current session.\n * @summary Get current user\n */\nexport const getMe = async (options?: RequestInit): Promise<GetMeResponse> => {\n\treturn customFetch<GetMeResponse>(getGetMeUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetMeQueryKey = () => {\n\treturn [`/me`] as const;\n};\n\nexport const getGetMeQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getMe>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<Awaited<ReturnType<typeof getMe>>, TError, TData>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetMeQueryKey();\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getMe>>> = ({\n\t\tsignal,\n\t}) => getMe({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getMe>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetMeQueryResult = NonNullable<Awaited<ReturnType<typeof getMe>>>;\nexport type GetMeQueryError = unknown;\n\nexport function useGetMe<\n\tTData = Awaited<ReturnType<typeof getMe>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getMe>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getMe>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getMe>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetMe<\n\tTData = Awaited<ReturnType<typeof getMe>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getMe>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getMe>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getMe>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetMe<\n\tTData = Awaited<ReturnType<typeof getMe>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getMe>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get current user\n */\n\nexport function useGetMe<\n\tTData = Awaited<ReturnType<typeof getMe>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getMe>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetMeQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getSignOutUrl = () => {\n\treturn `/sign-out`;\n};\n\n/**\n * Signs out the authenticated user. Optionally sign out a specific session or all sessions.\n * @summary Sign out\n */\nexport const signOut = async (\n\tsignOutRequest?: SignOutRequest,\n\toptions?: RequestInit,\n): Promise<SignOutResponse> => {\n\treturn customFetch<SignOutResponse>(getSignOutUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(signOutRequest),\n\t});\n};\n\nexport const getSignOutMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof signOut>>,\n\t\tTError,\n\t\t{ data?: SignOutRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof signOut>>,\n\tTError,\n\t{ data?: SignOutRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"signOut\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof signOut>>,\n\t\t{ data?: SignOutRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn signOut(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type SignOutMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof signOut>>\n>;\nexport type SignOutMutationBody = SignOutRequest | undefined;\nexport type SignOutMutationError = unknown;\n\n/**\n * @summary Sign out\n */\nexport const useSignOut = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof signOut>>,\n\t\t\tTError,\n\t\t\t{ data?: SignOutRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof signOut>>,\n\tTError,\n\t{ data?: SignOutRequest },\n\tTContext\n> => {\n\treturn useMutation(getSignOutMutationOptions(options), queryClient);\n};\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as core from \"../../gen/endpoints/core/core\";\n\nexport class CorePlugin implements Plugin {\n public readonly id = \"core\";\n\n constructor() {}\n\n public init(client: AuthulaClient) {\n return wrapGenerated(core, client);\n }\n}\n","import type { FetchContext, Plugin } from \"@/types\";\nimport type { CSRFPluginOptions } from \"./types\";\nimport type { AuthulaClient } from \"@/client\";\n\nexport class CSRFPlugin implements Plugin {\n public readonly id = \"csrf\";\n\n constructor(private readonly options: CSRFPluginOptions) {}\n\n public init(client: AuthulaClient) {\n client.registerBeforeFetch(async (ctx: FetchContext) => {\n if ([\"OPTIONS\", \"HEAD\", \"GET\"].includes(ctx.init.method || \"GET\")) {\n return;\n }\n\n const value =\n ctx.cookies?.[this.options.cookieName] ??\n (await client.getCookie(this.options.cookieName));\n\n if (!value) {\n return;\n }\n\n ctx.init.headers = new Headers(ctx.init.headers);\n ctx.init.headers.set(this.options.headerName, value);\n });\n\n return {};\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tChangeEmailResponse,\n\tChangePasswordRequest,\n\tChangePasswordResponse,\n\tRequestEmailChangeRequest,\n\tRequestPasswordResetRequest,\n\tSendEmailVerificationRequest,\n\tSignInRequest,\n\tSignInResponse,\n\tSignUpRequest,\n\tSignUpResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getChangePasswordUrl = () => {\n\treturn `/email-password/change-password`;\n};\n\n/**\n * Changes the user's password using a reset token\n * @summary Change password\n */\nexport const changePassword = async (\n\tchangePasswordRequest?: ChangePasswordRequest,\n\toptions?: RequestInit,\n): Promise<ChangePasswordResponse> => {\n\treturn customFetch<ChangePasswordResponse>(getChangePasswordUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(changePasswordRequest),\n\t});\n};\n\nexport const getChangePasswordMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof changePassword>>,\n\t\tTError,\n\t\t{ data?: ChangePasswordRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof changePassword>>,\n\tTError,\n\t{ data?: ChangePasswordRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"changePassword\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof changePassword>>,\n\t\t{ data?: ChangePasswordRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn changePassword(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type ChangePasswordMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof changePassword>>\n>;\nexport type ChangePasswordMutationBody = ChangePasswordRequest | undefined;\nexport type ChangePasswordMutationError = unknown;\n\n/**\n * @summary Change password\n */\nexport const useChangePassword = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof changePassword>>,\n\t\t\tTError,\n\t\t\t{ data?: ChangePasswordRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof changePassword>>,\n\tTError,\n\t{ data?: ChangePasswordRequest },\n\tTContext\n> => {\n\treturn useMutation(getChangePasswordMutationOptions(options), queryClient);\n};\nexport const getRequestEmailChangeUrl = () => {\n\treturn `/email-password/request-email-change`;\n};\n\n/**\n * Requests to change the authenticated user's email address\n * @summary Request email change\n */\nexport const requestEmailChange = async (\n\trequestEmailChangeRequest?: RequestEmailChangeRequest,\n\toptions?: RequestInit,\n): Promise<ChangeEmailResponse> => {\n\treturn customFetch<ChangeEmailResponse>(getRequestEmailChangeUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(requestEmailChangeRequest),\n\t});\n};\n\nexport const getRequestEmailChangeMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof requestEmailChange>>,\n\t\tTError,\n\t\t{ data?: RequestEmailChangeRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof requestEmailChange>>,\n\tTError,\n\t{ data?: RequestEmailChangeRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"requestEmailChange\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof requestEmailChange>>,\n\t\t{ data?: RequestEmailChangeRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn requestEmailChange(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type RequestEmailChangeMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof requestEmailChange>>\n>;\nexport type RequestEmailChangeMutationBody =\n\t| RequestEmailChangeRequest\n\t| undefined;\nexport type RequestEmailChangeMutationError = unknown;\n\n/**\n * @summary Request email change\n */\nexport const useRequestEmailChange = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof requestEmailChange>>,\n\t\t\tTError,\n\t\t\t{ data?: RequestEmailChangeRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof requestEmailChange>>,\n\tTError,\n\t{ data?: RequestEmailChangeRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetRequestEmailChangeMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getRequestPasswordResetUrl = () => {\n\treturn `/email-password/request-password-reset`;\n};\n\n/**\n * Requests a password reset link to be sent to the user's email\n * @summary Request password reset\n */\nexport const requestPasswordReset = async (\n\trequestPasswordResetRequest?: RequestPasswordResetRequest,\n\toptions?: RequestInit,\n): Promise<ChangePasswordResponse> => {\n\treturn customFetch<ChangePasswordResponse>(getRequestPasswordResetUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(requestPasswordResetRequest),\n\t});\n};\n\nexport const getRequestPasswordResetMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof requestPasswordReset>>,\n\t\tTError,\n\t\t{ data?: RequestPasswordResetRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof requestPasswordReset>>,\n\tTError,\n\t{ data?: RequestPasswordResetRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"requestPasswordReset\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof requestPasswordReset>>,\n\t\t{ data?: RequestPasswordResetRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn requestPasswordReset(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type RequestPasswordResetMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof requestPasswordReset>>\n>;\nexport type RequestPasswordResetMutationBody =\n\t| RequestPasswordResetRequest\n\t| undefined;\nexport type RequestPasswordResetMutationError = unknown;\n\n/**\n * @summary Request password reset\n */\nexport const useRequestPasswordReset = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof requestPasswordReset>>,\n\t\t\tTError,\n\t\t\t{ data?: RequestPasswordResetRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof requestPasswordReset>>,\n\tTError,\n\t{ data?: RequestPasswordResetRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetRequestPasswordResetMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getSendEmailVerificationUrl = () => {\n\treturn `/email-password/send-email-verification`;\n};\n\n/**\n * Sends a verification email to the authenticated user\n * @summary Send email verification\n */\nexport const sendEmailVerification = async (\n\tsendEmailVerificationRequest?: SendEmailVerificationRequest,\n\toptions?: RequestInit,\n): Promise<ChangePasswordResponse> => {\n\treturn customFetch<ChangePasswordResponse>(getSendEmailVerificationUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(sendEmailVerificationRequest),\n\t});\n};\n\nexport const getSendEmailVerificationMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof sendEmailVerification>>,\n\t\tTError,\n\t\t{ data?: SendEmailVerificationRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof sendEmailVerification>>,\n\tTError,\n\t{ data?: SendEmailVerificationRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"sendEmailVerification\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof sendEmailVerification>>,\n\t\t{ data?: SendEmailVerificationRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn sendEmailVerification(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type SendEmailVerificationMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof sendEmailVerification>>\n>;\nexport type SendEmailVerificationMutationBody =\n\t| SendEmailVerificationRequest\n\t| undefined;\nexport type SendEmailVerificationMutationError = unknown;\n\n/**\n * @summary Send email verification\n */\nexport const useSendEmailVerification = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof sendEmailVerification>>,\n\t\t\tTError,\n\t\t\t{ data?: SendEmailVerificationRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof sendEmailVerification>>,\n\tTError,\n\t{ data?: SendEmailVerificationRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetSendEmailVerificationMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getSignInUrl = () => {\n\treturn `/email-password/sign-in`;\n};\n\n/**\n * Authenticates a user with email and password\n * @summary Sign in\n */\nexport const signIn = async (\n\tsignInRequest?: SignInRequest,\n\toptions?: RequestInit,\n): Promise<SignInResponse> => {\n\treturn customFetch<SignInResponse>(getSignInUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(signInRequest),\n\t});\n};\n\nexport const getSignInMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof signIn>>,\n\t\tTError,\n\t\t{ data?: SignInRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof signIn>>,\n\tTError,\n\t{ data?: SignInRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"signIn\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof signIn>>,\n\t\t{ data?: SignInRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn signIn(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type SignInMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof signIn>>\n>;\nexport type SignInMutationBody = SignInRequest | undefined;\nexport type SignInMutationError = unknown;\n\n/**\n * @summary Sign in\n */\nexport const useSignIn = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof signIn>>,\n\t\t\tTError,\n\t\t\t{ data?: SignInRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof signIn>>,\n\tTError,\n\t{ data?: SignInRequest },\n\tTContext\n> => {\n\treturn useMutation(getSignInMutationOptions(options), queryClient);\n};\nexport const getSignUpUrl = () => {\n\treturn `/email-password/sign-up`;\n};\n\n/**\n * Registers a new user with email and password\n * @summary Register new user\n */\nexport const signUp = async (\n\tsignUpRequest?: SignUpRequest,\n\toptions?: RequestInit,\n): Promise<SignUpResponse> => {\n\treturn customFetch<SignUpResponse>(getSignUpUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(signUpRequest),\n\t});\n};\n\nexport const getSignUpMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof signUp>>,\n\t\tTError,\n\t\t{ data?: SignUpRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof signUp>>,\n\tTError,\n\t{ data?: SignUpRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"signUp\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof signUp>>,\n\t\t{ data?: SignUpRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn signUp(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type SignUpMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof signUp>>\n>;\nexport type SignUpMutationBody = SignUpRequest | undefined;\nexport type SignUpMutationError = unknown;\n\n/**\n * @summary Register new user\n */\nexport const useSignUp = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof signUp>>,\n\t\t\tTError,\n\t\t\t{ data?: SignUpRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof signUp>>,\n\tTError,\n\t{ data?: SignUpRequest },\n\tTContext\n> => {\n\treturn useMutation(getSignUpMutationOptions(options), queryClient);\n};\nexport const getVerifyEmailUrl = () => {\n\treturn `/email-password/verify-email`;\n};\n\n/**\n * Verifies an email address or processes a password reset token using a verification token\n * @summary Verify email\n */\nexport const verifyEmail = async (\n\toptions?: RequestInit,\n): Promise<ChangePasswordResponse> => {\n\treturn customFetch<ChangePasswordResponse>(getVerifyEmailUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getVerifyEmailQueryKey = () => {\n\treturn [`/email-password/verify-email`] as const;\n};\n\nexport const getVerifyEmailQueryOptions = <\n\tTData = Awaited<ReturnType<typeof verifyEmail>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<Awaited<ReturnType<typeof verifyEmail>>, TError, TData>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getVerifyEmailQueryKey();\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof verifyEmail>>> = ({\n\t\tsignal,\n\t}) => verifyEmail({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof verifyEmail>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type VerifyEmailQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof verifyEmail>>\n>;\nexport type VerifyEmailQueryError = unknown;\n\nexport function useVerifyEmail<\n\tTData = Awaited<ReturnType<typeof verifyEmail>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof verifyEmail>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof verifyEmail>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof verifyEmail>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useVerifyEmail<\n\tTData = Awaited<ReturnType<typeof verifyEmail>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof verifyEmail>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof verifyEmail>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof verifyEmail>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useVerifyEmail<\n\tTData = Awaited<ReturnType<typeof verifyEmail>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof verifyEmail>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Verify email\n */\n\nexport function useVerifyEmail<\n\tTData = Awaited<ReturnType<typeof verifyEmail>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof verifyEmail>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getVerifyEmailQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as emailPassword from \"../../gen/endpoints/email-password-plugin/email-password-plugin\";\n\nexport class EmailPasswordPlugin implements Plugin {\n public readonly id = \"emailPassword\";\n\n public init(client: AuthulaClient) {\n return wrapGenerated(emailPassword, client);\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tRefreshTokenRequest,\n\tRefreshTokenResponse,\n\tWellKnownJWKSResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getGetJWKSUrl = () => {\n\treturn `/.well-known/jwks.json`;\n};\n\n/**\n * Returns the JSON Web Key Set (JWKS) containing the public keys used to verify JWT signatures.\n * @summary Get JWKS\n */\nexport const getJWKS = async (\n\toptions?: RequestInit,\n): Promise<WellKnownJWKSResponse> => {\n\treturn customFetch<WellKnownJWKSResponse>(getGetJWKSUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetJWKSQueryKey = () => {\n\treturn [`/.well-known/jwks.json`] as const;\n};\n\nexport const getGetJWKSQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getJWKS>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<Awaited<ReturnType<typeof getJWKS>>, TError, TData>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetJWKSQueryKey();\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getJWKS>>> = ({\n\t\tsignal,\n\t}) => getJWKS({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getJWKS>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetJWKSQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getJWKS>>\n>;\nexport type GetJWKSQueryError = unknown;\n\nexport function useGetJWKS<\n\tTData = Awaited<ReturnType<typeof getJWKS>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getJWKS>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getJWKS>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getJWKS>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetJWKS<\n\tTData = Awaited<ReturnType<typeof getJWKS>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getJWKS>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getJWKS>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getJWKS>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetJWKS<\n\tTData = Awaited<ReturnType<typeof getJWKS>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getJWKS>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get JWKS\n */\n\nexport function useGetJWKS<\n\tTData = Awaited<ReturnType<typeof getJWKS>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getJWKS>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetJWKSQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getRefreshTokenUrl = () => {\n\treturn `/token/refresh`;\n};\n\n/**\n * Exchanges a valid refresh token for a new access token and refresh token pair.\n * @summary Refresh JWT token\n */\nexport const refreshToken = async (\n\trefreshTokenRequest?: RefreshTokenRequest,\n\toptions?: RequestInit,\n): Promise<RefreshTokenResponse> => {\n\treturn customFetch<RefreshTokenResponse>(getRefreshTokenUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(refreshTokenRequest),\n\t});\n};\n\nexport const getRefreshTokenMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof refreshToken>>,\n\t\tTError,\n\t\t{ data?: RefreshTokenRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof refreshToken>>,\n\tTError,\n\t{ data?: RefreshTokenRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"refreshToken\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof refreshToken>>,\n\t\t{ data?: RefreshTokenRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn refreshToken(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type RefreshTokenMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof refreshToken>>\n>;\nexport type RefreshTokenMutationBody = RefreshTokenRequest | undefined;\nexport type RefreshTokenMutationError = unknown;\n\n/**\n * @summary Refresh JWT token\n */\nexport const useRefreshToken = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof refreshToken>>,\n\t\t\tTError,\n\t\t\t{ data?: RefreshTokenRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof refreshToken>>,\n\tTError,\n\t{ data?: RefreshTokenRequest },\n\tTContext\n> => {\n\treturn useMutation(getRefreshTokenMutationOptions(options), queryClient);\n};\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as jwt from \"../../gen/endpoints/jwt-plugin/jwt-plugin\";\n\nexport class JWTPlugin implements Plugin {\n public readonly id = \"jwt\";\n\n constructor() {}\n\n public init(client: AuthulaClient) {\n return wrapGenerated(jwt, client);\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tMagicLinkExchangeRequest,\n\tMagicLinkExchangeResponse,\n\tMagicLinkSignInRequest,\n\tMagicLinkSignInResponse,\n\tMagicLinkVerifyResponse,\n\tVerifyMagicLinkParams,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getExchangeMagicLinkUrl = () => {\n\treturn `/magic-link/exchange`;\n};\n\n/**\n * Exchanges a verified magic link token for an authenticated user session.\n * @summary Exchange magic link token for session\n */\nexport const exchangeMagicLink = async (\n\tmagicLinkExchangeRequest?: MagicLinkExchangeRequest,\n\toptions?: RequestInit,\n): Promise<MagicLinkExchangeResponse> => {\n\treturn customFetch<MagicLinkExchangeResponse>(getExchangeMagicLinkUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(magicLinkExchangeRequest),\n\t});\n};\n\nexport const getExchangeMagicLinkMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof exchangeMagicLink>>,\n\t\tTError,\n\t\t{ data?: MagicLinkExchangeRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof exchangeMagicLink>>,\n\tTError,\n\t{ data?: MagicLinkExchangeRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"exchangeMagicLink\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof exchangeMagicLink>>,\n\t\t{ data?: MagicLinkExchangeRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn exchangeMagicLink(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type ExchangeMagicLinkMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof exchangeMagicLink>>\n>;\nexport type ExchangeMagicLinkMutationBody =\n\t| MagicLinkExchangeRequest\n\t| undefined;\nexport type ExchangeMagicLinkMutationError = unknown;\n\n/**\n * @summary Exchange magic link token for session\n */\nexport const useExchangeMagicLink = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof exchangeMagicLink>>,\n\t\t\tTError,\n\t\t\t{ data?: MagicLinkExchangeRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof exchangeMagicLink>>,\n\tTError,\n\t{ data?: MagicLinkExchangeRequest },\n\tTContext\n> => {\n\treturn useMutation(getExchangeMagicLinkMutationOptions(options), queryClient);\n};\nexport const getSignInWithMagicLinkUrl = () => {\n\treturn `/magic-link/sign-in`;\n};\n\n/**\n * Sends a magic link to the given email address if an account exists. Optionally creates a new account if sign-up is enabled.\n * @summary Sign in with magic link\n */\nexport const signInWithMagicLink = async (\n\tmagicLinkSignInRequest?: MagicLinkSignInRequest,\n\toptions?: RequestInit,\n): Promise<MagicLinkSignInResponse> => {\n\treturn customFetch<MagicLinkSignInResponse>(getSignInWithMagicLinkUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(magicLinkSignInRequest),\n\t});\n};\n\nexport const getSignInWithMagicLinkMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof signInWithMagicLink>>,\n\t\tTError,\n\t\t{ data?: MagicLinkSignInRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof signInWithMagicLink>>,\n\tTError,\n\t{ data?: MagicLinkSignInRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"signInWithMagicLink\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof signInWithMagicLink>>,\n\t\t{ data?: MagicLinkSignInRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn signInWithMagicLink(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type SignInWithMagicLinkMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof signInWithMagicLink>>\n>;\nexport type SignInWithMagicLinkMutationBody =\n\t| MagicLinkSignInRequest\n\t| undefined;\nexport type SignInWithMagicLinkMutationError = unknown;\n\n/**\n * @summary Sign in with magic link\n */\nexport const useSignInWithMagicLink = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof signInWithMagicLink>>,\n\t\t\tTError,\n\t\t\t{ data?: MagicLinkSignInRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof signInWithMagicLink>>,\n\tTError,\n\t{ data?: MagicLinkSignInRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetSignInWithMagicLinkMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getVerifyMagicLinkUrl = (params: VerifyMagicLinkParams) => {\n\tconst normalizedParams = new URLSearchParams();\n\n\tObject.entries(params || {}).forEach(([key, value]) => {\n\t\tif (value !== undefined) {\n\t\t\tnormalizedParams.append(key, value === null ? \"null\" : String(value));\n\t\t}\n\t});\n\n\tconst stringifiedParams = normalizedParams.toString();\n\n\treturn stringifiedParams.length > 0\n\t\t? `/magic-link/verify?${stringifiedParams}`\n\t\t: `/magic-link/verify`;\n};\n\n/**\n * Verifies a magic link token. If a callback_url is provided and trusted, redirects the user with an exchange token appended. Otherwise returns the exchange token in the JSON response.\n * @summary Verify magic link token\n */\nexport const verifyMagicLink = async (\n\tparams: VerifyMagicLinkParams,\n\toptions?: RequestInit,\n): Promise<MagicLinkVerifyResponse> => {\n\treturn customFetch<MagicLinkVerifyResponse>(getVerifyMagicLinkUrl(params), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getVerifyMagicLinkQueryKey = (params?: VerifyMagicLinkParams) => {\n\treturn [`/magic-link/verify`, ...(params ? [params] : [])] as const;\n};\n\nexport const getVerifyMagicLinkQueryOptions = <\n\tTData = Awaited<ReturnType<typeof verifyMagicLink>>,\n\tTError = unknown,\n>(\n\tparams: VerifyMagicLinkParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getVerifyMagicLinkQueryKey(params);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof verifyMagicLink>>> = ({\n\t\tsignal,\n\t}) => verifyMagicLink(params, { signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type VerifyMagicLinkQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof verifyMagicLink>>\n>;\nexport type VerifyMagicLinkQueryError = unknown;\n\nexport function useVerifyMagicLink<\n\tTData = Awaited<ReturnType<typeof verifyMagicLink>>,\n\tTError = unknown,\n>(\n\tparams: VerifyMagicLinkParams,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useVerifyMagicLink<\n\tTData = Awaited<ReturnType<typeof verifyMagicLink>>,\n\tTError = unknown,\n>(\n\tparams: VerifyMagicLinkParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useVerifyMagicLink<\n\tTData = Awaited<ReturnType<typeof verifyMagicLink>>,\n\tTError = unknown,\n>(\n\tparams: VerifyMagicLinkParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Verify magic link token\n */\n\nexport function useVerifyMagicLink<\n\tTData = Awaited<ReturnType<typeof verifyMagicLink>>,\n\tTError = unknown,\n>(\n\tparams: VerifyMagicLinkParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof verifyMagicLink>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getVerifyMagicLinkQueryOptions(params, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as magicLink from \"../../gen/endpoints/magic-link-plugin/magic-link-plugin\";\n\nexport class MagicLinkPlugin implements Plugin {\n public readonly id = \"magicLink\";\n\n constructor() {}\n\n public init(client: AuthulaClient) {\n return wrapGenerated(magicLink, client);\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tAuthorizeResponse,\n\tCallbackResponse,\n\tOauthAuthorizeParams,\n\tOauthCallbackParams,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getOauthAuthorizeUrl = (\n\tprovider: string,\n\tparams?: OauthAuthorizeParams,\n) => {\n\tconst normalizedParams = new URLSearchParams();\n\n\tObject.entries(params || {}).forEach(([key, value]) => {\n\t\tif (value !== undefined) {\n\t\t\tnormalizedParams.append(key, value === null ? \"null\" : String(value));\n\t\t}\n\t});\n\n\tconst stringifiedParams = normalizedParams.toString();\n\n\treturn stringifiedParams.length > 0\n\t\t? `/oauth2/authorize/${provider}?${stringifiedParams}`\n\t\t: `/oauth2/authorize/${provider}`;\n};\n\n/**\n * Initiates the OAuth2 authorization flow with the specified provider. Returns the provider's authorization URL to redirect the user to.\n * @summary Authorize with OAuth2 provider\n */\nexport const oauthAuthorize = async (\n\tprovider: string,\n\tparams?: OauthAuthorizeParams,\n\toptions?: RequestInit,\n): Promise<AuthorizeResponse> => {\n\treturn customFetch<AuthorizeResponse>(\n\t\tgetOauthAuthorizeUrl(provider, params),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"GET\",\n\t\t},\n\t);\n};\n\nexport const getOauthAuthorizeQueryKey = (\n\tprovider: string,\n\tparams?: OauthAuthorizeParams,\n) => {\n\treturn [\n\t\t`/oauth2/authorize/${provider}`,\n\t\t...(params ? [params] : []),\n\t] as const;\n};\n\nexport const getOauthAuthorizeQueryOptions = <\n\tTData = Awaited<ReturnType<typeof oauthAuthorize>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams?: OauthAuthorizeParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthAuthorize>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getOauthAuthorizeQueryKey(provider, params);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof oauthAuthorize>>> = ({\n\t\tsignal,\n\t}) => oauthAuthorize(provider, params, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: provider !== null && provider !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof oauthAuthorize>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type OauthAuthorizeQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof oauthAuthorize>>\n>;\nexport type OauthAuthorizeQueryError = unknown;\n\nexport function useOauthAuthorize<\n\tTData = Awaited<ReturnType<typeof oauthAuthorize>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams: undefined | OauthAuthorizeParams,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthAuthorize>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof oauthAuthorize>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof oauthAuthorize>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useOauthAuthorize<\n\tTData = Awaited<ReturnType<typeof oauthAuthorize>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams?: OauthAuthorizeParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthAuthorize>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof oauthAuthorize>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof oauthAuthorize>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useOauthAuthorize<\n\tTData = Awaited<ReturnType<typeof oauthAuthorize>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams?: OauthAuthorizeParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthAuthorize>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Authorize with OAuth2 provider\n */\n\nexport function useOauthAuthorize<\n\tTData = Awaited<ReturnType<typeof oauthAuthorize>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams?: OauthAuthorizeParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthAuthorize>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getOauthAuthorizeQueryOptions(provider, params, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getOauthCallbackUrl = (\n\tprovider: string,\n\tparams: OauthCallbackParams,\n) => {\n\tconst normalizedParams = new URLSearchParams();\n\n\tObject.entries(params || {}).forEach(([key, value]) => {\n\t\tif (value !== undefined) {\n\t\t\tnormalizedParams.append(key, value === null ? \"null\" : String(value));\n\t\t}\n\t});\n\n\tconst stringifiedParams = normalizedParams.toString();\n\n\treturn stringifiedParams.length > 0\n\t\t? `/oauth2/callback/${provider}?${stringifiedParams}`\n\t\t: `/oauth2/callback/${provider}`;\n};\n\n/**\n * Handles the OAuth2 callback from the provider. Exchanges the authorization code for tokens, creates or links a user account, and returns the authenticated user and session.\n * @summary OAuth2 callback\n */\nexport const oauthCallback = async (\n\tprovider: string,\n\tparams: OauthCallbackParams,\n\toptions?: RequestInit,\n): Promise<CallbackResponse> => {\n\treturn customFetch<CallbackResponse>(getOauthCallbackUrl(provider, params), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getOauthCallbackQueryKey = (\n\tprovider: string,\n\tparams?: OauthCallbackParams,\n) => {\n\treturn [`/oauth2/callback/${provider}`, ...(params ? [params] : [])] as const;\n};\n\nexport const getOauthCallbackQueryOptions = <\n\tTData = Awaited<ReturnType<typeof oauthCallback>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams: OauthCallbackParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthCallback>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getOauthCallbackQueryKey(provider, params);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof oauthCallback>>> = ({\n\t\tsignal,\n\t}) => oauthCallback(provider, params, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: provider !== null && provider !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof oauthCallback>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type OauthCallbackQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof oauthCallback>>\n>;\nexport type OauthCallbackQueryError = unknown;\n\nexport function useOauthCallback<\n\tTData = Awaited<ReturnType<typeof oauthCallback>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams: OauthCallbackParams,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthCallback>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof oauthCallback>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof oauthCallback>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useOauthCallback<\n\tTData = Awaited<ReturnType<typeof oauthCallback>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams: OauthCallbackParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthCallback>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof oauthCallback>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof oauthCallback>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useOauthCallback<\n\tTData = Awaited<ReturnType<typeof oauthCallback>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams: OauthCallbackParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthCallback>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary OAuth2 callback\n */\n\nexport function useOauthCallback<\n\tTData = Awaited<ReturnType<typeof oauthCallback>>,\n\tTError = unknown,\n>(\n\tprovider: string,\n\tparams: OauthCallbackParams,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof oauthCallback>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getOauthCallbackQueryOptions(provider, params, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types/plugins\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as oauth2 from \"../../gen/endpoints/oauth2-plugin/oauth2-plugin\";\n\nexport class OAuth2Plugin implements Plugin {\n public readonly id = \"oauth2\";\n\n public init(client: AuthulaClient) {\n return wrapGenerated(oauth2, client);\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tCreateOrganizationRequest,\n\tDeleteOrganizationResponse,\n\tOrganization,\n\tUpdateOrganizationRequest,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getListOrganizationsUrl = () => {\n\treturn `/organizations`;\n};\n\n/**\n * Lists all organizations owned by the authenticated user.\n * @summary List organizations\n */\nexport const listOrganizations = async (\n\toptions?: RequestInit,\n): Promise<Organization[] | null> => {\n\treturn customFetch<Organization[] | null>(getListOrganizationsUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getListOrganizationsQueryKey = () => {\n\treturn [`/organizations`] as const;\n};\n\nexport const getListOrganizationsQueryOptions = <\n\tTData = Awaited<ReturnType<typeof listOrganizations>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<\n\t\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\t\tTError,\n\t\t\tTData\n\t\t>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getListOrganizationsQueryKey();\n\n\tconst queryFn: QueryFunction<\n\t\tAwaited<ReturnType<typeof listOrganizations>>\n\t> = ({ signal }) => listOrganizations({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type ListOrganizationsQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof listOrganizations>>\n>;\nexport type ListOrganizationsQueryError = unknown;\n\nexport function useListOrganizations<\n\tTData = Awaited<ReturnType<typeof listOrganizations>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListOrganizations<\n\tTData = Awaited<ReturnType<typeof listOrganizations>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useListOrganizations<\n\tTData = Awaited<ReturnType<typeof listOrganizations>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary List organizations\n */\n\nexport function useListOrganizations<\n\tTData = Awaited<ReturnType<typeof listOrganizations>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof listOrganizations>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getListOrganizationsQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getCreateOrganizationUrl = () => {\n\treturn `/organizations`;\n};\n\n/**\n * Creates a new organization with the authenticated user as the owner.\n * @summary Create organization\n */\nexport const createOrganization = async (\n\tcreateOrganizationRequest?: CreateOrganizationRequest,\n\toptions?: RequestInit,\n): Promise<Organization> => {\n\treturn customFetch<Organization>(getCreateOrganizationUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(createOrganizationRequest),\n\t});\n};\n\nexport const getCreateOrganizationMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof createOrganization>>,\n\t\tTError,\n\t\t{ data?: CreateOrganizationRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof createOrganization>>,\n\tTError,\n\t{ data?: CreateOrganizationRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"createOrganization\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof createOrganization>>,\n\t\t{ data?: CreateOrganizationRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn createOrganization(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type CreateOrganizationMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof createOrganization>>\n>;\nexport type CreateOrganizationMutationBody =\n\t| CreateOrganizationRequest\n\t| undefined;\nexport type CreateOrganizationMutationError = unknown;\n\n/**\n * @summary Create organization\n */\nexport const useCreateOrganization = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof createOrganization>>,\n\t\t\tTError,\n\t\t\t{ data?: CreateOrganizationRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof createOrganization>>,\n\tTError,\n\t{ data?: CreateOrganizationRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetCreateOrganizationMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getGetOrganizationUrl = (organizationId: string) => {\n\treturn `/organizations/${organizationId}`;\n};\n\n/**\n * Retrieves an organization by its ID.\n * @summary Get organization\n */\nexport const getOrganization = async (\n\torganizationId: string,\n\toptions?: RequestInit,\n): Promise<Organization> => {\n\treturn customFetch<Organization>(getGetOrganizationUrl(organizationId), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetOrganizationQueryKey = (organizationId: string) => {\n\treturn [`/organizations/${organizationId}`] as const;\n};\n\nexport const getGetOrganizationQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getOrganization>>,\n\tTError = unknown,\n>(\n\torganizationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey =\n\t\tqueryOptions?.queryKey ?? getGetOrganizationQueryKey(organizationId);\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getOrganization>>> = ({\n\t\tsignal,\n\t}) => getOrganization(organizationId, { signal, ...requestOptions });\n\n\treturn {\n\t\tqueryKey,\n\t\tqueryFn,\n\t\tenabled: organizationId !== null && organizationId !== undefined,\n\t\t...queryOptions,\n\t} as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetOrganizationQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getOrganization>>\n>;\nexport type GetOrganizationQueryError = unknown;\n\nexport function useGetOrganization<\n\tTData = Awaited<ReturnType<typeof getOrganization>>,\n\tTError = unknown,\n>(\n\torganizationId: string,\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getOrganization>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetOrganization<\n\tTData = Awaited<ReturnType<typeof getOrganization>>,\n\tTError = unknown,\n>(\n\torganizationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getOrganization>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetOrganization<\n\tTData = Awaited<ReturnType<typeof getOrganization>>,\n\tTError = unknown,\n>(\n\torganizationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get organization\n */\n\nexport function useGetOrganization<\n\tTData = Awaited<ReturnType<typeof getOrganization>>,\n\tTError = unknown,\n>(\n\torganizationId: string,\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<\n\t\t\t\tAwaited<ReturnType<typeof getOrganization>>,\n\t\t\t\tTError,\n\t\t\t\tTData\n\t\t\t>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetOrganizationQueryOptions(organizationId, options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getDeleteOrganizationUrl = (organizationId: string) => {\n\treturn `/organizations/${organizationId}`;\n};\n\n/**\n * Deletes an organization.\n * @summary Delete organization\n */\nexport const deleteOrganization = async (\n\torganizationId: string,\n\toptions?: RequestInit,\n): Promise<DeleteOrganizationResponse> => {\n\treturn customFetch<DeleteOrganizationResponse>(\n\t\tgetDeleteOrganizationUrl(organizationId),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"DELETE\",\n\t\t},\n\t);\n};\n\nexport const getDeleteOrganizationMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof deleteOrganization>>,\n\t\tTError,\n\t\t{ organizationId: string },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof deleteOrganization>>,\n\tTError,\n\t{ organizationId: string },\n\tTContext\n> => {\n\tconst mutationKey = [\"deleteOrganization\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof deleteOrganization>>,\n\t\t{ organizationId: string }\n\t> = (props) => {\n\t\tconst { organizationId } = props ?? {};\n\n\t\treturn deleteOrganization(organizationId, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DeleteOrganizationMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof deleteOrganization>>\n>;\n\nexport type DeleteOrganizationMutationError = unknown;\n\n/**\n * @summary Delete organization\n */\nexport const useDeleteOrganization = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof deleteOrganization>>,\n\t\t\tTError,\n\t\t\t{ organizationId: string },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof deleteOrganization>>,\n\tTError,\n\t{ organizationId: string },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetDeleteOrganizationMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getUpdateOrganizationUrl = (organizationId: string) => {\n\treturn `/organizations/${organizationId}`;\n};\n\n/**\n * Updates an existing organization.\n * @summary Update organization\n */\nexport const updateOrganization = async (\n\torganizationId: string,\n\tupdateOrganizationRequest?: UpdateOrganizationRequest,\n\toptions?: RequestInit,\n): Promise<Organization> => {\n\treturn customFetch<Organization>(getUpdateOrganizationUrl(organizationId), {\n\t\t...options,\n\t\tmethod: \"PATCH\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(updateOrganizationRequest),\n\t});\n};\n\nexport const getUpdateOrganizationMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof updateOrganization>>,\n\t\tTError,\n\t\t{ organizationId: string; data?: UpdateOrganizationRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof updateOrganization>>,\n\tTError,\n\t{ organizationId: string; data?: UpdateOrganizationRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"updateOrganization\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof updateOrganization>>,\n\t\t{ organizationId: string; data?: UpdateOrganizationRequest }\n\t> = (props) => {\n\t\tconst { organizationId, data } = props ?? {};\n\n\t\treturn updateOrganization(organizationId, data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type UpdateOrganizationMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof updateOrganization>>\n>;\nexport type UpdateOrganizationMutationBody =\n\t| UpdateOrganizationRequest\n\t| undefined;\nexport type UpdateOrganizationMutationError = unknown;\n\n/**\n * @summary Update organization\n */\nexport const useUpdateOrganization = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof updateOrganization>>,\n\t\t\tTError,\n\t\t\t{ organizationId: string; data?: UpdateOrganizationRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof updateOrganization>>,\n\tTError,\n\t{ organizationId: string; data?: UpdateOrganizationRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetUpdateOrganizationMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as organizations from \"../../gen/endpoints/organizations/organizations\";\n\nexport class OrganizationsPlugin implements Plugin {\n public readonly id = \"organizations\";\n\n public init(client: AuthulaClient) {\n return wrapGenerated(organizations, client);\n }\n}\n","/**\n * Generated by orval v8.20.0 🍺\n * Do not edit manually.\n * Authula API\n * Authula API - An open-source authentication solution that scales with you.\n * OpenAPI spec version: 0.1.0\n */\n\nimport type {\n\tDataTag,\n\tDefinedInitialDataOptions,\n\tDefinedUseQueryResult,\n\tMutationFunction,\n\tQueryClient,\n\tQueryFunction,\n\tQueryKey,\n\tUndefinedInitialDataOptions,\n\tUseMutationOptions,\n\tUseMutationResult,\n\tUseQueryOptions,\n\tUseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { customFetch } from \"../../../mutators/custom-fetch\";\nimport type {\n\tDisableResponse,\n\tEnableResponse,\n\tGenerateBackupCodesResponse,\n\tGetTOTPURIResponse,\n\tVerifyBackupCodeRequest,\n\tVerifyBackupCodeResponse,\n\tVerifyTOTPRequest,\n\tVerifyTOTPResponse,\n} from \"../../models\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nconst withQueryKey = <T extends object, K>(\n\tquery: T,\n\tqueryKey: K,\n): T & { queryKey: K } => {\n\tconst result = { queryKey } as T & { queryKey: K };\n\tfor (const key of Object.keys(query)) {\n\t\t// The explicit queryKey always wins, matching the previous\n\t\t// `{ ...query, queryKey }` spread where it was set last.\n\t\tif (key === \"queryKey\") continue;\n\t\tObject.defineProperty(result, key, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => (query as Record<string, unknown>)[key],\n\t\t});\n\t}\n\treturn result;\n};\n\nexport const getDisableTotpUrl = () => {\n\treturn `/totp/disable`;\n};\n\n/**\n * Disables TOTP two-factor authentication for the authenticated user.\n * @summary Disable TOTP\n */\nexport const disableTotp = async (\n\toptions?: RequestInit,\n): Promise<DisableResponse> => {\n\treturn customFetch<DisableResponse>(getDisableTotpUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t});\n};\n\nexport const getDisableTotpMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof disableTotp>>,\n\t\tTError,\n\t\tvoid,\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof disableTotp>>,\n\tTError,\n\tvoid,\n\tTContext\n> => {\n\tconst mutationKey = [\"disableTotp\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof disableTotp>>,\n\t\tvoid\n\t> = () => {\n\t\treturn disableTotp(requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type DisableTotpMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof disableTotp>>\n>;\n\nexport type DisableTotpMutationError = unknown;\n\n/**\n * @summary Disable TOTP\n */\nexport const useDisableTotp = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof disableTotp>>,\n\t\t\tTError,\n\t\t\tvoid,\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof disableTotp>>,\n\tTError,\n\tvoid,\n\tTContext\n> => {\n\treturn useMutation(getDisableTotpMutationOptions(options), queryClient);\n};\nexport const getEnableTotpUrl = () => {\n\treturn `/totp/enable`;\n};\n\n/**\n * Enables TOTP two-factor authentication for the authenticated user. Returns the TOTP URI and backup codes.\n * @summary Enable TOTP\n */\nexport const enableTotp = async (\n\toptions?: RequestInit,\n): Promise<EnableResponse> => {\n\treturn customFetch<EnableResponse>(getEnableTotpUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t});\n};\n\nexport const getEnableTotpMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof enableTotp>>,\n\t\tTError,\n\t\tvoid,\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof enableTotp>>,\n\tTError,\n\tvoid,\n\tTContext\n> => {\n\tconst mutationKey = [\"enableTotp\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof enableTotp>>,\n\t\tvoid\n\t> = () => {\n\t\treturn enableTotp(requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type EnableTotpMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof enableTotp>>\n>;\n\nexport type EnableTotpMutationError = unknown;\n\n/**\n * @summary Enable TOTP\n */\nexport const useEnableTotp = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof enableTotp>>,\n\t\t\tTError,\n\t\t\tvoid,\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof enableTotp>>,\n\tTError,\n\tvoid,\n\tTContext\n> => {\n\treturn useMutation(getEnableTotpMutationOptions(options), queryClient);\n};\nexport const getGenerateTotpBackupCodesUrl = () => {\n\treturn `/totp/generate-backup-codes`;\n};\n\n/**\n * Generates a new set of backup codes for the authenticated user. Previous backup codes are invalidated.\n * @summary Generate backup codes\n */\nexport const generateTotpBackupCodes = async (\n\toptions?: RequestInit,\n): Promise<GenerateBackupCodesResponse> => {\n\treturn customFetch<GenerateBackupCodesResponse>(\n\t\tgetGenerateTotpBackupCodesUrl(),\n\t\t{\n\t\t\t...options,\n\t\t\tmethod: \"POST\",\n\t\t},\n\t);\n};\n\nexport const getGenerateTotpBackupCodesMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof generateTotpBackupCodes>>,\n\t\tTError,\n\t\tvoid,\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof generateTotpBackupCodes>>,\n\tTError,\n\tvoid,\n\tTContext\n> => {\n\tconst mutationKey = [\"generateTotpBackupCodes\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof generateTotpBackupCodes>>,\n\t\tvoid\n\t> = () => {\n\t\treturn generateTotpBackupCodes(requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type GenerateTotpBackupCodesMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof generateTotpBackupCodes>>\n>;\n\nexport type GenerateTotpBackupCodesMutationError = unknown;\n\n/**\n * @summary Generate backup codes\n */\nexport const useGenerateTotpBackupCodes = <\n\tTError = unknown,\n\tTContext = unknown,\n>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof generateTotpBackupCodes>>,\n\t\t\tTError,\n\t\t\tvoid,\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof generateTotpBackupCodes>>,\n\tTError,\n\tvoid,\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetGenerateTotpBackupCodesMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\nexport const getGetTotpURIUrl = () => {\n\treturn `/totp/get-uri`;\n};\n\n/**\n * Returns the current TOTP URI for the authenticated user's authenticator app configuration.\n * @summary Get TOTP URI\n */\nexport const getTotpURI = async (\n\toptions?: RequestInit,\n): Promise<GetTOTPURIResponse> => {\n\treturn customFetch<GetTOTPURIResponse>(getGetTotpURIUrl(), {\n\t\t...options,\n\t\tmethod: \"GET\",\n\t});\n};\n\nexport const getGetTotpURIQueryKey = () => {\n\treturn [`/totp/get-uri`] as const;\n};\n\nexport const getGetTotpURIQueryOptions = <\n\tTData = Awaited<ReturnType<typeof getTotpURI>>,\n\tTError = unknown,\n>(options?: {\n\tquery?: Partial<\n\t\tUseQueryOptions<Awaited<ReturnType<typeof getTotpURI>>, TError, TData>\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}) => {\n\tconst { query: queryOptions, request: requestOptions } = options ?? {};\n\n\tconst queryKey = queryOptions?.queryKey ?? getGetTotpURIQueryKey();\n\n\tconst queryFn: QueryFunction<Awaited<ReturnType<typeof getTotpURI>>> = ({\n\t\tsignal,\n\t}) => getTotpURI({ signal, ...requestOptions });\n\n\treturn { queryKey, queryFn, ...queryOptions } as UseQueryOptions<\n\t\tAwaited<ReturnType<typeof getTotpURI>>,\n\t\tTError,\n\t\tTData\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n};\n\nexport type GetTotpURIQueryResult = NonNullable<\n\tAwaited<ReturnType<typeof getTotpURI>>\n>;\nexport type GetTotpURIQueryError = unknown;\n\nexport function useGetTotpURI<\n\tTData = Awaited<ReturnType<typeof getTotpURI>>,\n\tTError = unknown,\n>(\n\toptions: {\n\t\tquery: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getTotpURI>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tDefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getTotpURI>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getTotpURI>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): DefinedUseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetTotpURI<\n\tTData = Awaited<ReturnType<typeof getTotpURI>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getTotpURI>>, TError, TData>\n\t\t> &\n\t\t\tPick<\n\t\t\t\tUndefinedInitialDataOptions<\n\t\t\t\t\tAwaited<ReturnType<typeof getTotpURI>>,\n\t\t\t\t\tTError,\n\t\t\t\t\tAwaited<ReturnType<typeof getTotpURI>>\n\t\t\t\t>,\n\t\t\t\t\"initialData\"\n\t\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\nexport function useGetTotpURI<\n\tTData = Awaited<ReturnType<typeof getTotpURI>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getTotpURI>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n};\n/**\n * @summary Get TOTP URI\n */\n\nexport function useGetTotpURI<\n\tTData = Awaited<ReturnType<typeof getTotpURI>>,\n\tTError = unknown,\n>(\n\toptions?: {\n\t\tquery?: Partial<\n\t\t\tUseQueryOptions<Awaited<ReturnType<typeof getTotpURI>>, TError, TData>\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseQueryResult<TData, TError> & {\n\tqueryKey: DataTag<QueryKey, TData, TError>;\n} {\n\tconst queryOptions = getGetTotpURIQueryOptions(options);\n\n\tconst query = useQuery(queryOptions, queryClient) as UseQueryResult<\n\t\tTData,\n\t\tTError\n\t> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n\treturn withQueryKey(query, queryOptions.queryKey);\n}\n\nexport const getVerifyTotpUrl = () => {\n\treturn `/totp/verify`;\n};\n\n/**\n * Verifies a TOTP code from the authenticator app and completes authentication. Requires a pending TOTP cookie set during sign-in.\n * @summary Verify TOTP code\n */\nexport const verifyTotp = async (\n\tverifyTOTPRequest?: VerifyTOTPRequest,\n\toptions?: RequestInit,\n): Promise<VerifyTOTPResponse> => {\n\treturn customFetch<VerifyTOTPResponse>(getVerifyTotpUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(verifyTOTPRequest),\n\t});\n};\n\nexport const getVerifyTotpMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof verifyTotp>>,\n\t\tTError,\n\t\t{ data?: VerifyTOTPRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof verifyTotp>>,\n\tTError,\n\t{ data?: VerifyTOTPRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"verifyTotp\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof verifyTotp>>,\n\t\t{ data?: VerifyTOTPRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn verifyTotp(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type VerifyTotpMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof verifyTotp>>\n>;\nexport type VerifyTotpMutationBody = VerifyTOTPRequest | undefined;\nexport type VerifyTotpMutationError = unknown;\n\n/**\n * @summary Verify TOTP code\n */\nexport const useVerifyTotp = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof verifyTotp>>,\n\t\t\tTError,\n\t\t\t{ data?: VerifyTOTPRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof verifyTotp>>,\n\tTError,\n\t{ data?: VerifyTOTPRequest },\n\tTContext\n> => {\n\treturn useMutation(getVerifyTotpMutationOptions(options), queryClient);\n};\nexport const getVerifyTotpBackupCodeUrl = () => {\n\treturn `/totp/verify-backup-code`;\n};\n\n/**\n * Verifies a backup code as an alternative to TOTP verification. Completes authentication if the code is valid.\n * @summary Verify backup code\n */\nexport const verifyTotpBackupCode = async (\n\tverifyBackupCodeRequest?: VerifyBackupCodeRequest,\n\toptions?: RequestInit,\n): Promise<VerifyBackupCodeResponse> => {\n\treturn customFetch<VerifyBackupCodeResponse>(getVerifyTotpBackupCodeUrl(), {\n\t\t...options,\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\", ...options?.headers },\n\t\tbody: JSON.stringify(verifyBackupCodeRequest),\n\t});\n};\n\nexport const getVerifyTotpBackupCodeMutationOptions = <\n\tTError = unknown,\n\tTContext = unknown,\n>(options?: {\n\tmutation?: UseMutationOptions<\n\t\tAwaited<ReturnType<typeof verifyTotpBackupCode>>,\n\t\tTError,\n\t\t{ data?: VerifyBackupCodeRequest },\n\t\tTContext\n\t>;\n\trequest?: SecondParameter<typeof customFetch>;\n}): UseMutationOptions<\n\tAwaited<ReturnType<typeof verifyTotpBackupCode>>,\n\tTError,\n\t{ data?: VerifyBackupCodeRequest },\n\tTContext\n> => {\n\tconst mutationKey = [\"verifyTotpBackupCode\"];\n\tconst { mutation: mutationOptions, request: requestOptions } = options\n\t\t? options.mutation &&\n\t\t\t\"mutationKey\" in options.mutation &&\n\t\t\toptions.mutation.mutationKey\n\t\t\t? options\n\t\t\t: { ...options, mutation: { ...options.mutation, mutationKey } }\n\t\t: { mutation: { mutationKey }, request: undefined };\n\n\tconst mutationFn: MutationFunction<\n\t\tAwaited<ReturnType<typeof verifyTotpBackupCode>>,\n\t\t{ data?: VerifyBackupCodeRequest }\n\t> = (props) => {\n\t\tconst { data } = props ?? {};\n\n\t\treturn verifyTotpBackupCode(data, requestOptions);\n\t};\n\n\treturn { mutationFn, ...mutationOptions };\n};\n\nexport type VerifyTotpBackupCodeMutationResult = NonNullable<\n\tAwaited<ReturnType<typeof verifyTotpBackupCode>>\n>;\nexport type VerifyTotpBackupCodeMutationBody =\n\t| VerifyBackupCodeRequest\n\t| undefined;\nexport type VerifyTotpBackupCodeMutationError = unknown;\n\n/**\n * @summary Verify backup code\n */\nexport const useVerifyTotpBackupCode = <TError = unknown, TContext = unknown>(\n\toptions?: {\n\t\tmutation?: UseMutationOptions<\n\t\t\tAwaited<ReturnType<typeof verifyTotpBackupCode>>,\n\t\t\tTError,\n\t\t\t{ data?: VerifyBackupCodeRequest },\n\t\t\tTContext\n\t\t>;\n\t\trequest?: SecondParameter<typeof customFetch>;\n\t},\n\tqueryClient?: QueryClient,\n): UseMutationResult<\n\tAwaited<ReturnType<typeof verifyTotpBackupCode>>,\n\tTError,\n\t{ data?: VerifyBackupCodeRequest },\n\tTContext\n> => {\n\treturn useMutation(\n\t\tgetVerifyTotpBackupCodeMutationOptions(options),\n\t\tqueryClient,\n\t);\n};\n","import type { AuthulaClient } from \"@/client\";\nimport type { Plugin } from \"@/types/plugins\";\nimport { wrapGenerated } from \"@/utils/wrap-generated\";\nimport * as totp from \"../../gen/endpoints/totp-plugin/totp-plugin\";\n\nexport class TOTPPlugin implements Plugin {\n public readonly id = \"totp\";\n\n public init(client: AuthulaClient) {\n return wrapGenerated(totp, client);\n }\n}\n"],"mappings":"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"}
|