@better-auth-ui/core
Version:
Authentication components and data utilities for [Better Auth](https://better-auth.com), available for React and Solid.
387 lines (386 loc) • 9.75 kB
JavaScript
import { t as e } from "../../auth-query-keys-B_bcsA3s.js";
import { t } from "../../create-auth-plugin-BXWyolC8.js";
import { skipToken as n } from "@tanstack/query-core";
//#region src/plugins/admin/admin-localization.ts
var r = {
accessDenied: "Access denied",
accessDeniedDescription: "You do not have permission to manage users.",
active: "Active",
accountInformation: "Account information",
admin: "Administration",
banned: "Banned",
banDuration: "Ban duration (days)",
banDurationDescription: "Leave blank for a permanent ban.",
banExpires: "Ban expires",
banReason: "Ban reason",
banUser: "Ban user",
cancel: "Cancel",
close: "Close",
copyUserId: "Copy user ID",
created: "Created",
createUser: "Create user",
deleteUser: "Delete user",
dangerZone: "Danger zone",
email: "Email",
emailVerified: "Email verified",
endsWith: "Ends with",
filterAllStatuses: "All statuses",
loadUsersError: "Could not load users",
loadUsersErrorDescription: "Try again or check your Admin plugin configuration.",
name: "Name",
moreActions: "More actions",
noUsers: "No users found",
noUsersDescription: "Change the search or create a user.",
nextPage: "Next page",
previousPage: "Previous page",
impersonateUser: "Impersonate user",
overview: "Overview",
password: "Password",
profileAndAccess: "Profile and access",
retry: "Retry",
role: "Role",
search: "Search",
searchOperator: "Search operator",
searchContains: "Contains",
startsWith: "Starts with",
searchByEmail: "Search by email",
searchByName: "Search by name",
sessions: "Sessions",
noSessions: "No active sessions",
revoke: "Revoke",
revokeAllSessions: "Revoke all sessions",
saveRole: "Save role",
saveChanges: "Save changes",
saveUser: "Save user",
setPassword: "Set password",
security: "Security",
status: "Status",
sort: "Sort",
sortNewest: "Newest first",
sortOldest: "Oldest first",
sortNameAscending: "Name A-Z",
sortNameDescending: "Name Z-A",
stopImpersonating: "Stop impersonating",
userDetails: "User details",
userId: "User ID",
unknownView: "Unknown admin view",
unknownViewDescription: "This static admin path is not registered.",
unbanUser: "Unban user",
users: "Users",
usersDescription: "Manage user access, roles, and sessions.",
usersPaginationRange: "{{from}}-{{to}} of {{total}}"
}, i = {
all: ["auth", "admin"],
banUser: [
"auth",
"admin",
"banUser"
],
createUser: [
"auth",
"admin",
"createUser"
],
impersonateUser: [
"auth",
"admin",
"impersonateUser"
],
removeUser: [
"auth",
"admin",
"removeUser"
],
revokeUserSession: [
"auth",
"admin",
"revokeUserSession"
],
revokeUserSessions: [
"auth",
"admin",
"revokeUserSessions"
],
setRole: [
"auth",
"admin",
"setRole"
],
setUserPassword: [
"auth",
"admin",
"setUserPassword"
],
stopImpersonating: [
"auth",
"admin",
"stopImpersonating"
],
unbanUser: [
"auth",
"admin",
"unbanUser"
],
updateUser: [
"auth",
"admin",
"updateUser"
]
}, a = {
all: (t) => [...e.user(t), "admin"],
users: {
all: (e) => [...a.all(e), "users"],
lists: (e) => [...a.users.all(e), "list"],
list: (e, t) => [...a.users.lists(e), t],
details: (e) => [...a.users.all(e), "detail"],
detail: (e, t) => [...a.users.details(e), t ?? null],
sessions: (e, t) => [...a.users.detail(e, t), "sessions"]
},
permissions: {
all: (e) => [...a.all(e), "permissions"],
has: (e, t) => [...a.permissions.all(e), t]
}
};
//#endregion
//#region src/plugins/admin/admin-mutations.ts
function o(e, t) {
return {
mutationKey: i.createUser,
mutationFn: (t) => e.admin.createUser({
...t,
fetchOptions: {
...t.fetchOptions,
throw: !0
}
}),
meta: { awaits: [a.users.lists(t)] }
};
}
function s(e, t) {
return {
mutationKey: i.updateUser,
mutationFn: (t) => e.admin.updateUser({
...t,
fetchOptions: {
...t.fetchOptions,
throw: !0
}
}),
meta: { awaits: [a.users.lists(t), a.users.details(t)] }
};
}
function c(e, t) {
return {
mutationKey: i.setRole,
mutationFn: (t) => e.admin.setRole({
...t,
fetchOptions: {
...t.fetchOptions,
throw: !0
}
}),
meta: { awaits: [a.users.lists(t), a.users.details(t)] }
};
}
function l(e, t = () => {}) {
return {
mutationKey: i.setUserPassword,
mutationFn: (t) => e.admin.setUserPassword({
...t,
fetchOptions: {
...t.fetchOptions,
throw: !0
}
}),
gcTime: 0,
onSettled: t
};
}
function u(e, t) {
return {
mutationKey: i.banUser,
mutationFn: (t) => e.admin.banUser({
...t,
fetchOptions: {
...t.fetchOptions,
throw: !0
}
}),
meta: { awaits: [a.users.lists(t), a.users.details(t)] }
};
}
function d(e, t) {
return {
mutationKey: i.unbanUser,
mutationFn: (t) => e.admin.unbanUser({
...t,
fetchOptions: {
...t.fetchOptions,
throw: !0
}
}),
meta: { awaits: [a.users.lists(t), a.users.details(t)] }
};
}
function f(e, t, n) {
return {
mutationKey: i.revokeUserSession,
mutationFn: (t) => e.admin.revokeUserSession({
...t,
fetchOptions: {
...t.fetchOptions,
throw: !0
}
}),
meta: { awaits: [a.users.sessions(t, n)] }
};
}
function p(e, t, n) {
return {
mutationKey: i.revokeUserSessions,
mutationFn: (t) => e.admin.revokeUserSessions({
...t,
fetchOptions: {
...t.fetchOptions,
throw: !0
}
}),
meta: { awaits: [a.users.sessions(t, n)] }
};
}
function m(t, n) {
return {
mutationKey: i.impersonateUser,
mutationFn: (e) => t.admin.impersonateUser({
...e,
fetchOptions: {
...e.fetchOptions,
throw: !0
}
}),
meta: {
removes: [a.all(n)],
awaits: [e.session]
}
};
}
function h(e, t) {
return {
mutationKey: i.removeUser,
mutationFn: (t) => e.admin.removeUser({
...t,
fetchOptions: {
...t.fetchOptions,
throw: !0
}
}),
meta: { awaits: [a.users.lists(t), a.users.details(t)] }
};
}
//#endregion
//#region src/plugins/admin/admin-plugin.ts
var g = (e) => {
let t = e ?? 20;
return Number.isFinite(t) ? Math.min(100, Math.max(1, Math.floor(t))) : 20;
}, _ = (e) => {
let t = Array.from(new Set(e?.map((e) => e.trim()).filter(Boolean)));
return t.length ? t : ["user", "admin"];
}, v = (e) => {
let t = typeof e == "string" ? [e] : e;
return Array.from(new Set(t?.map((e) => e.trim()).filter(Boolean)));
};
function y(e, t = ["admin"], n = []) {
return n.includes(e.id) ? !0 : (e.role?.split(",").map((e) => e.trim()).filter(Boolean))?.some((e) => t.includes(e)) ?? !1;
}
function b(e) {
return !e || typeof e != "object" || !("session" in e) || !e.session || typeof e.session != "object" || !("impersonatedBy" in e.session) ? !1 : typeof e.session.impersonatedBy == "string" && e.session.impersonatedBy.length > 0;
}
var x = t("admin", (e = {}) => {
let t = _(e.roles), n = e.defaultRole?.trim() || t[0] || "user", i = v(e.adminRoles);
return {
adminRoles: i.length ? i : ["admin"],
adminUserIds: v(e.adminUserIds),
allowMultipleRoles: e.allowMultipleRoles ?? !0,
defaultRole: n,
impersonationRedirectTo: e.impersonationRedirectTo,
localization: {
...r,
...e.localization
},
pageSize: g(e.pageSize),
roles: t.includes(n) ? t : [n, ...t],
showIpAddress: e.showIpAddress ?? !1
};
}), S = class extends Error {
code;
status;
statusText;
constructor(e) {
super(e.message || e.statusText || "Admin request failed"), this.name = "AdminClientError", this.code = e.code, this.status = e.status, this.statusText = e.statusText;
}
}, C = (e) => {
if (e.error) throw new S(e.error);
return e.data;
};
function w(e, t, r = {}) {
return {
queryKey: a.users.list(t, r),
meta: { errorPresentation: "inline" },
queryFn: t ? async ({ signal: t }) => C(await e.admin.listUsers({
query: r,
fetchOptions: { signal: t }
})) : n
};
}
function T(e, t, r) {
return {
queryKey: a.users.detail(t, r),
meta: { errorPresentation: "inline" },
queryFn: t && r ? async ({ signal: t }) => C(await e.admin.getUser({
query: { id: r },
fetchOptions: { signal: t }
})) : n
};
}
function E(e, t, r) {
return {
queryKey: a.users.sessions(t, r),
meta: { errorPresentation: "inline" },
queryFn: t && r ? async ({ signal: t }) => C(await e.admin.listUserSessions({
userId: r,
fetchOptions: { signal: t }
})) : n
};
}
function D(e, t, r) {
return {
queryKey: a.permissions.has(t, r),
queryFn: t ? async ({ signal: t }) => C(await e.admin.hasPermission({
permissions: r,
fetchOptions: { signal: t }
})) : n
};
}
var O = (e, t, n, r) => e.ensureQueryData(w(t, n, r)), k = (e, t, n, r) => e.fetchQuery(T(t, n, r));
//#endregion
//#region src/plugins/admin/admin-route.ts
function A(e, t) {
if (e !== void 0) return t.find((t) => t.path === e);
}
//#endregion
//#region src/plugins/admin/stop-impersonating-mutation.ts
function j(t) {
return {
mutationKey: i.stopImpersonating,
mutationFn: (e) => t.admin.stopImpersonating({
...e ?? {},
fetchOptions: {
...e?.fetchOptions,
throw: !0
}
}),
meta: { awaits: [e.session] }
};
}
//#endregion
export { S as AdminClientError, r as adminLocalization, i as adminMutationKeys, D as adminPermissionOptions, x as adminPlugin, a as adminQueryKeys, T as adminUserOptions, E as adminUserSessionsOptions, w as adminUsersOptions, u as banAdminUserOptions, o as createAdminUserOptions, O as ensureAdminUsers, k as fetchAdminUser, m as impersonateAdminUserOptions, y as isAdminTarget, b as isImpersonatingSession, h as removeAdminUserOptions, A as resolveAdminPath, f as revokeAdminUserSessionOptions, p as revokeAdminUserSessionsOptions, l as setAdminUserPasswordOptions, c as setAdminUserRoleOptions, j as stopImpersonatingOptions, d as unbanAdminUserOptions, s as updateAdminUserOptions };