better-auth
Version:
The most comprehensive authentication framework for TypeScript.
391 lines • 12.1 kB
text/typescript
import { InferAdditionalFieldsFromPluginOptions } from "../../../db/field.mjs";
import { ExactRoleStatements } from "../../access/types.mjs";
import "../../../db/index.mjs";
import { OrganizationOptions } from "../types.mjs";
import { OrganizationRole } from "../schema.mjs";
import "../../index.mjs";
import * as z from "zod";
//#region src/plugins/organization/routes/crud-access-control.d.ts
type IsExactlyEmptyObject<T> = keyof T extends never ? T extends {} ? {} extends T ? true : false : false : false;
declare const createOrgRole: <O extends OrganizationOptions>(options: O) => import("better-call").StrictEndpoint<"/organization/create-role", {
method: "POST";
body: z.ZodObject<{
organizationId: z.ZodOptional<z.ZodString>;
role: z.ZodString;
permission: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>;
additionalFields: z.ZodOptional<z.ZodObject<{
[x: string]: z.ZodAny;
}, z.core.$strip>>;
}, z.core.$strip>;
metadata: {
$Infer: {
body: {
organizationId?: string | undefined;
role: string;
permission: Record<string, string[]>;
} & (IsExactlyEmptyObject<InferAdditionalFieldsFromPluginOptions<"organizationRole", O, true>> extends true ? {
additionalFields?: {} | undefined;
} : {
additionalFields: InferAdditionalFieldsFromPluginOptions<"organizationRole", O, true>;
});
};
};
requireHeaders: true;
use: ((inputContext: import("better-call").MiddlewareInputContext<{
use: ((inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<{
session: {
session: Record<string, any> & {
id: string;
createdAt: Date;
updatedAt: Date;
userId: string;
expiresAt: Date;
token: string;
ipAddress?: string | null | undefined;
userAgent?: string | null | undefined;
};
user: Record<string, any> & {
id: string;
createdAt: Date;
updatedAt: Date;
email: string;
emailVerified: boolean;
name: string;
image?: string | null | undefined;
};
};
}>)[];
}>) => Promise<{
session: {
session: {
id: string;
createdAt: Date;
updatedAt: Date;
userId: string;
expiresAt: Date;
token: string;
ipAddress?: string | null | undefined;
userAgent?: string | null | undefined;
} & {
activeTeamId?: string | undefined;
activeOrganizationId?: string | undefined;
};
user: {
id: string;
createdAt: Date;
updatedAt: Date;
email: string;
emailVerified: boolean;
name: string;
image?: string | null | undefined;
};
};
}>)[];
}, {
success: boolean;
roleData: {
id: string;
organizationId: string;
role: string;
permission: Record<string, string[]>;
createdAt: Date;
updatedAt?: Date | undefined;
} & InferAdditionalFieldsFromPluginOptions<"organizationRole", O, false>;
statements: ExactRoleStatements<Record<string, string[]>>;
}>;
declare const deleteOrgRole: <O extends OrganizationOptions>(options: O) => import("better-call").StrictEndpoint<"/organization/delete-role", {
method: "POST";
body: z.ZodIntersection<z.ZodObject<{
organizationId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>, z.ZodUnion<readonly [z.ZodObject<{
roleName: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
roleId: z.ZodString;
}, z.core.$strip>]>>;
requireHeaders: true;
use: ((inputContext: import("better-call").MiddlewareInputContext<{
use: ((inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<{
session: {
session: Record<string, any> & {
id: string;
createdAt: Date;
updatedAt: Date;
userId: string;
expiresAt: Date;
token: string;
ipAddress?: string | null | undefined;
userAgent?: string | null | undefined;
};
user: Record<string, any> & {
id: string;
createdAt: Date;
updatedAt: Date;
email: string;
emailVerified: boolean;
name: string;
image?: string | null | undefined;
};
};
}>)[];
}>) => Promise<{
session: {
session: {
id: string;
createdAt: Date;
updatedAt: Date;
userId: string;
expiresAt: Date;
token: string;
ipAddress?: string | null | undefined;
userAgent?: string | null | undefined;
} & {
activeTeamId?: string | undefined;
activeOrganizationId?: string | undefined;
};
user: {
id: string;
createdAt: Date;
updatedAt: Date;
email: string;
emailVerified: boolean;
name: string;
image?: string | null | undefined;
};
};
}>)[];
metadata: {
$Infer: {
body: {
roleName?: string | undefined;
roleId?: string | undefined;
organizationId?: string | undefined;
};
};
};
}, {
success: boolean;
}>;
declare const listOrgRoles: <O extends OrganizationOptions>(options: O) => import("better-call").StrictEndpoint<"/organization/list-roles", {
method: "GET";
requireHeaders: true;
use: ((inputContext: import("better-call").MiddlewareInputContext<{
use: ((inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<{
session: {
session: Record<string, any> & {
id: string;
createdAt: Date;
updatedAt: Date;
userId: string;
expiresAt: Date;
token: string;
ipAddress?: string | null | undefined;
userAgent?: string | null | undefined;
};
user: Record<string, any> & {
id: string;
createdAt: Date;
updatedAt: Date;
email: string;
emailVerified: boolean;
name: string;
image?: string | null | undefined;
};
};
}>)[];
}>) => Promise<{
session: {
session: {
id: string;
createdAt: Date;
updatedAt: Date;
userId: string;
expiresAt: Date;
token: string;
ipAddress?: string | null | undefined;
userAgent?: string | null | undefined;
} & {
activeTeamId?: string | undefined;
activeOrganizationId?: string | undefined;
};
user: {
id: string;
createdAt: Date;
updatedAt: Date;
email: string;
emailVerified: boolean;
name: string;
image?: string | null | undefined;
};
};
}>)[];
query: z.ZodOptional<z.ZodObject<{
organizationId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, ({
id: string;
organizationId: string;
role: string;
permission: Record<string, string[]>;
createdAt: Date;
updatedAt?: Date | undefined;
} & InferAdditionalFieldsFromPluginOptions<"organizationRole", O, false>)[]>;
declare const getOrgRole: <O extends OrganizationOptions>(options: O) => import("better-call").StrictEndpoint<"/organization/get-role", {
method: "GET";
requireHeaders: true;
use: ((inputContext: import("better-call").MiddlewareInputContext<{
use: ((inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<{
session: {
session: Record<string, any> & {
id: string;
createdAt: Date;
updatedAt: Date;
userId: string;
expiresAt: Date;
token: string;
ipAddress?: string | null | undefined;
userAgent?: string | null | undefined;
};
user: Record<string, any> & {
id: string;
createdAt: Date;
updatedAt: Date;
email: string;
emailVerified: boolean;
name: string;
image?: string | null | undefined;
};
};
}>)[];
}>) => Promise<{
session: {
session: {
id: string;
createdAt: Date;
updatedAt: Date;
userId: string;
expiresAt: Date;
token: string;
ipAddress?: string | null | undefined;
userAgent?: string | null | undefined;
} & {
activeTeamId?: string | undefined;
activeOrganizationId?: string | undefined;
};
user: {
id: string;
createdAt: Date;
updatedAt: Date;
email: string;
emailVerified: boolean;
name: string;
image?: string | null | undefined;
};
};
}>)[];
query: z.ZodOptional<z.ZodIntersection<z.ZodObject<{
organizationId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>, z.ZodUnion<readonly [z.ZodObject<{
roleName: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
roleId: z.ZodString;
}, z.core.$strip>]>>>;
metadata: {
$Infer: {
query: {
organizationId?: string | undefined;
roleName?: string | undefined;
roleId?: string | undefined;
};
};
};
}, {
id: string;
organizationId: string;
role: string;
permission: Record<string, string[]>;
createdAt: Date;
updatedAt?: Date | undefined;
} & InferAdditionalFieldsFromPluginOptions<"organizationRole", O, false>>;
declare const updateOrgRole: <O extends OrganizationOptions>(options: O) => import("better-call").StrictEndpoint<"/organization/update-role", {
method: "POST";
body: z.ZodIntersection<z.ZodObject<{
organizationId: z.ZodOptional<z.ZodString>;
data: z.ZodObject<{
permission: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
roleName: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
}, z.core.$strip>, z.ZodUnion<readonly [z.ZodObject<{
roleName: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
roleId: z.ZodString;
}, z.core.$strip>]>>;
metadata: {
$Infer: {
body: {
organizationId?: string | undefined;
data: {
permission?: Record<string, string[]> | undefined;
roleName?: string | undefined;
} & Partial<InferAdditionalFieldsFromPluginOptions<"organizationRole", O, true>>;
roleName?: string | undefined;
roleId?: string | undefined;
};
};
};
requireHeaders: true;
use: ((inputContext: import("better-call").MiddlewareInputContext<{
use: ((inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<{
session: {
session: Record<string, any> & {
id: string;
createdAt: Date;
updatedAt: Date;
userId: string;
expiresAt: Date;
token: string;
ipAddress?: string | null | undefined;
userAgent?: string | null | undefined;
};
user: Record<string, any> & {
id: string;
createdAt: Date;
updatedAt: Date;
email: string;
emailVerified: boolean;
name: string;
image?: string | null | undefined;
};
};
}>)[];
}>) => Promise<{
session: {
session: {
id: string;
createdAt: Date;
updatedAt: Date;
userId: string;
expiresAt: Date;
token: string;
ipAddress?: string | null | undefined;
userAgent?: string | null | undefined;
} & {
activeTeamId?: string | undefined;
activeOrganizationId?: string | undefined;
};
user: {
id: string;
createdAt: Date;
updatedAt: Date;
email: string;
emailVerified: boolean;
name: string;
image?: string | null | undefined;
};
};
}>)[];
}, {
success: boolean;
roleData: OrganizationRole & InferAdditionalFieldsFromPluginOptions<"organizationRole", O, false>;
}>;
//#endregion
export { createOrgRole, deleteOrgRole, getOrgRole, listOrgRoles, updateOrgRole };