/opt/canhelp/node_modules/better-auth/dist/plugins/organization
Edit: /opt/canhelp/node_modules/better-auth/dist/plugins/organization/organization.d.mts (14399B)
import { AccessControl, ArrayElement, Statements } from "../access/types.mjs";
import { OrganizationOptions } from "./types.mjs";
import { InferInvitation, InferMember, InferOrganization, InferTeam, OrganizationSchema, Team, TeamMember } from "./schema.mjs";
import { ORGANIZATION_ERROR_CODES } from "./error-codes.mjs";
import { createOrgRole, deleteOrgRole, getOrgRole, listOrgRoles, updateOrgRole } from "./routes/crud-access-control.mjs";
import { acceptInvitation, cancelInvitation, createInvitation, getInvitation, listInvitations, listUserInvitations, rejectInvitation } from "./routes/crud-invites.mjs";
import { addMember, getActiveMember, getActiveMemberRole, leaveOrganization, listMembers, removeMember, updateMemberRole } from "./routes/crud-members.mjs";
import { checkOrganizationSlug, createOrganization, deleteOrganization, getFullOrganization, listOrganizations, setActiveOrganization, updateOrganization } from "./routes/crud-org.mjs";
import { addTeamMember, createTeam, listOrganizationTeams, listTeamMembers, listUserTeams, removeTeam, removeTeamMember, setActiveTeam, updateTeam } from "./routes/crud-team.mjs";
import { hasPermission } from "./has-permission.mjs";
import * as better_call0 from "better-call";
import * as z from "zod";
//#region src/plugins/organization/organization.d.ts
declare module "@better-auth/core" {
interface BetterAuthPluginRegistry
{
organization: {
creator: OrganizationCreator;
};
}
}
type DefaultOrganizationPlugin = {
id: "organization";
endpoints: OrganizationEndpoints;
schema: OrganizationSchema;
$Infer: {
Organization: InferOrganization;
Invitation: InferInvitation;
Member: InferMember;
Team: Options["teams"] extends {
enabled: true;
} ? Team : never;
TeamMember: Options["teams"] extends {
enabled: true;
} ? TeamMember : never;
ActiveOrganization: Options["teams"] extends {
enabled: true;
} ? {
members: InferMember[];
invitations: InferInvitation[];
teams: InferTeam[];
} & InferOrganization : {
members: InferMember[];
invitations: InferInvitation[];
} & InferOrganization;
};
$ERROR_CODES: typeof ORGANIZATION_ERROR_CODES;
options: NoInfer;
};
interface OrganizationCreator {
(options?: Options | undefined): DefaultOrganizationPlugin;
}
declare function parseRoles(roles: string | string[]): string;
type DynamicAccessControlEndpoints = {
createOrgRole: ReturnType>;
deleteOrgRole: ReturnType>;
listOrgRoles: ReturnType>;
getOrgRole: ReturnType>;
updateOrgRole: ReturnType>;
};
type TeamEndpoints = {
createTeam: ReturnType>;
listOrganizationTeams: ReturnType>;
removeTeam: ReturnType>;
updateTeam: ReturnType>;
setActiveTeam: ReturnType>;
listUserTeams: ReturnType>;
listTeamMembers: ReturnType>;
addTeamMember: ReturnType>;
removeTeamMember: ReturnType>;
};
type OrganizationEndpoints = {
createOrganization: ReturnType>;
updateOrganization: ReturnType>;
deleteOrganization: ReturnType>;
setActiveOrganization: ReturnType>;
getFullOrganization: ReturnType>;
listOrganizations: ReturnType>;
createInvitation: ReturnType>;
cancelInvitation: ReturnType>;
acceptInvitation: ReturnType>;
getInvitation: ReturnType>;
rejectInvitation: ReturnType>;
listInvitations: ReturnType>;
getActiveMember: ReturnType>;
checkOrganizationSlug: ReturnType>;
addMember: ReturnType>;
removeMember: ReturnType>;
updateMemberRole: ReturnType>;
leaveOrganization: ReturnType>;
listUserInvitations: ReturnType>;
listMembers: ReturnType>;
getActiveMemberRole: ReturnType>;
hasPermission: ReturnType>;
};
declare const createHasPermission: (options: O) => better_call0.StrictEndpoint<"/organization/has-permission", {
method: "POST";
requireHeaders: true;
body: z.ZodIntersection;
}, z.core.$strip>, z.ZodUnion>;
permissions: z.ZodUndefined;
}, z.core.$strip>, z.ZodObject<{
permission: z.ZodUndefined;
permissions: z.ZodRecord>;
}, z.core.$strip>]>>;
use: ((inputContext: better_call0.MiddlewareInputContext<{
use: ((inputContext: better_call0.MiddlewareInputContext) => Promise<{
session: {
session: Record & {
id: string;
createdAt: Date;
updatedAt: Date;
userId: string;
expiresAt: Date;
token: string;
ipAddress?: string | null | undefined;
userAgent?: string | null | undefined;
};
user: Record & {
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: {
permissions: { [key in keyof (O["ac"] extends AccessControl ? S : {
readonly organization: readonly ["update", "delete"];
readonly member: readonly ["create", "update", "delete"];
readonly invitation: readonly ["create", "cancel"];
readonly team: readonly ["create", "update", "delete"];
readonly ac: readonly ["create", "read", "update", "delete"];
})]?: ((O["ac"] extends AccessControl ? S : {
readonly organization: readonly ["update", "delete"];
readonly member: readonly ["create", "update", "delete"];
readonly invitation: readonly ["create", "cancel"];
readonly team: readonly ["create", "update", "delete"];
readonly ac: readonly ["create", "read", "update", "delete"];
})[key] extends readonly unknown[] ? ArrayElement<(O["ac"] extends AccessControl ? S : {
readonly organization: readonly ["update", "delete"];
readonly member: readonly ["create", "update", "delete"];
readonly invitation: readonly ["create", "cancel"];
readonly team: readonly ["create", "update", "delete"];
readonly ac: readonly ["create", "read", "update", "delete"];
})[key]> : never)[] | undefined };
} & {
organizationId?: string | undefined;
};
};
openapi: {
description: string;
requestBody: {
content: {
"application/json": {
schema: {
type: "object";
properties: {
permission: {
type: string;
description: string;
deprecated: boolean;
};
permissions: {
type: string;
description: string;
};
};
required: string[];
};
};
};
};
responses: {
"200": {
description: string;
content: {
"application/json": {
schema: {
type: "object";
properties: {
error: {
type: string;
};
success: {
type: string;
};
};
required: string[];
};
};
};
};
};
};
};
}, {
error: null;
success: boolean;
}>;
type OrganizationPlugin = {
id: "organization";
endpoints: OrganizationEndpoints & (O extends {
teams: {
enabled: true;
};
} ? TeamEndpoints : {}) & (O extends {
dynamicAccessControl: {
enabled: true;
};
} ? DynamicAccessControlEndpoints : {});
schema: OrganizationSchema;
$Infer: {
Organization: InferOrganization;
Invitation: InferInvitation;
Member: InferMember;
Team: O["teams"] extends {
enabled: true;
} ? Team : never;
TeamMember: O["teams"] extends {
enabled: true;
} ? TeamMember : never;
ActiveOrganization: O["teams"] extends {
enabled: true;
} ? {
members: InferMember[];
invitations: InferInvitation[];
teams: InferTeam[];
} & InferOrganization : {
members: InferMember[];
invitations: InferInvitation[];
} & InferOrganization;
};
$ERROR_CODES: typeof ORGANIZATION_ERROR_CODES;
options: NoInfer;
};
/**
* Organization plugin for Better Auth. Organization allows you to create teams, members,
* and manage access control for your users.
*
* @example
* ```ts
* const auth = betterAuth({
* plugins: [
* organization({
* allowUserToCreateOrganization: true,
* }),
* ],
* });
* ```
*/
declare function organization(options?: O | undefined): {
id: "organization";
endpoints: OrganizationEndpoints & TeamEndpoints;
schema: OrganizationSchema;
$Infer: {
Organization: InferOrganization;
Invitation: InferInvitation;
Member: InferMember;
Team: O["teams"] extends {
enabled: true;
} ? Team : never;
TeamMember: O["teams"] extends {
enabled: true;
} ? TeamMember : never;
ActiveOrganization: O["teams"] extends {
enabled: true;
} ? {
members: InferMember[];
invitations: InferInvitation[];
teams: InferTeam[];
} & InferOrganization : {
members: InferMember[];
invitations: InferInvitation[];
} & InferOrganization;
};
$ERROR_CODES: typeof ORGANIZATION_ERROR_CODES;
options: NoInfer;
};
declare function organization(options?: O | undefined): {
id: "organization";
endpoints: OrganizationEndpoints & TeamEndpoints & DynamicAccessControlEndpoints;
schema: OrganizationSchema;
$Infer: {
Organization: InferOrganization;
Invitation: InferInvitation;
Member: InferMember;
Team: O["teams"] extends {
enabled: true;
} ? Team : never;
TeamMember: O["teams"] extends {
enabled: true;
} ? TeamMember : never;
ActiveOrganization: O["teams"] extends {
enabled: true;
} ? {
members: InferMember[];
invitations: InferInvitation[];
teams: InferTeam[];
} & InferOrganization : {
members: InferMember[];
invitations: InferInvitation[];
} & InferOrganization;
};
$ERROR_CODES: typeof ORGANIZATION_ERROR_CODES;
options: NoInfer;
};
declare function organization(options?: O | undefined): {
id: "organization";
endpoints: OrganizationEndpoints & DynamicAccessControlEndpoints;
schema: OrganizationSchema;
$Infer: {
Organization: InferOrganization;
Invitation: InferInvitation;
Member: InferMember;
Team: O["teams"] extends {
enabled: true;
} ? Team : never;
TeamMember: O["teams"] extends {
enabled: true;
} ? TeamMember : never;
ActiveOrganization: O["teams"] extends {
enabled: true;
} ? {
members: InferMember[];
invitations: InferInvitation[];
teams: InferTeam[];
} & InferOrganization : {
members: InferMember[];
invitations: InferInvitation[];
} & InferOrganization;
};
$ERROR_CODES: typeof ORGANIZATION_ERROR_CODES;
options: NoInfer;
};
declare function organization(options?: O | undefined): DefaultOrganizationPlugin;
//#endregion
export { DefaultOrganizationPlugin, DynamicAccessControlEndpoints, OrganizationCreator, OrganizationEndpoints, OrganizationPlugin, TeamEndpoints, organization, parseRoles };
//# sourceMappingURL=organization.d.mts.map