@better-auth-kit/app-invite
Version:
Invite users to your application and allow them to sign up.
1,353 lines (1,349 loc) • 32.9 kB
TypeScript
// Generated by dts-bundle-generator v9.5.1
import { User } from 'better-auth';
import { z } from 'zod';
declare const appInvitationSchema: z.ZodObject<{
id: z.ZodDefault<z.ZodString>;
name: z.ZodOptional<z.ZodString>;
email: z.ZodOptional<z.ZodString>;
status: z.ZodDefault<z.ZodEnum<[
"pending",
"accepted",
"rejected",
"canceled"
]>>;
/**
* The id of the user who invited the user.
*/
inviterId: z.ZodString;
expiresAt: z.ZodDate;
domainWhitelist: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
id: string;
status: "pending" | "accepted" | "rejected" | "canceled";
inviterId: string;
expiresAt: Date;
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
}, {
inviterId: string;
expiresAt: Date;
id?: string | undefined;
name?: string | undefined;
email?: string | undefined;
status?: "pending" | "accepted" | "rejected" | "canceled" | undefined;
domainWhitelist?: string | undefined;
}>;
export type AppInvitation = z.infer<typeof appInvitationSchema>;
export interface AppInviteOptions {
/**
* Define whether a user is allowed to send invitations.
*
* You can also pass a function that returns a boolean.
*
* @example
* ```ts
* allowUserToCreateInvitation: async (user) => {
* const canInvite: boolean = await hasPermission(user, 'send-invitation');
* return canInvite;
* }
* ```
* @default true
*/
allowUserToCreateInvitation?: boolean | ((user: User, type: "personal" | "public") => Promise<boolean> | boolean);
/**
* Define whether a user is allowed to cancel invitations.
*
* By default users can only cancel invitations issued by themself.
*/
allowUserToCancelInvitation?: (data: {
user: User;
invitation: AppInvitation;
}) => Promise<boolean> | boolean;
/**
* The expiration time for the invitation link.
*
* @default 48 hours
*/
invitationExpiresIn?: number;
/**
* Send an email with the
* invitation link to the user.
*/
sendInvitationEmail?: (data: {
/**
* the invitation id
*/
id: string;
/**
* the name of the user
*/
name?: string;
/**
* the email of the user
*/
email: string;
/**
* the member who is inviting the user
*/
inviter: User;
}, request?: Request) => Promise<void>;
/**
* The schema for the app-invite plugin.
*/
schema?: {
appInvitation?: {
modelName?: string;
fields?: {
[key in keyof Omit<AppInvitation, "id">]?: string;
};
};
};
/**
* Automatically sign in the user after sign up
*/
autoSignIn?: boolean;
/**
* Rate limit configuration.
*
* @default {
* window: 60,
* max: 5,
* }
*/
rateLimit?: {
window: number;
max: number;
};
$Infer?: {
/**
* Infer additional fields for the user
*/
AdditionalFields?: Record<string, any>;
};
}
/**
* App Invite plugin for Better Auth. This plugin allows you to invite other users the the app.
*
* @example
* ```ts
* const auth createAuth({
* plugins: [
* appInvite({
* sendInvitationEmail: async (data) => {
* // ...
* }
* })
* ]
* })
* ```
*/
export declare const appInvite: <O extends AppInviteOptions>(opts?: O) => {
id: "app-invite";
endpoints: {
createAppInvitation: {
<AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: {
body: {
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
resend?: boolean | undefined;
};
} & {
method?: "POST" | undefined;
} & {
query?: Record<string, any> | undefined;
} & {
params?: Record<string, any>;
} & {
request?: Request;
} & {
headers?: HeadersInit;
} & {
asResponse?: boolean;
returnHeaders?: boolean;
use?: import("better-call").Middleware[];
path?: string;
} & {
asResponse?: AsResponse | undefined;
returnHeaders?: ReturnHeaders | undefined;
}): Promise<[
AsResponse
] extends [
true
] ? Response : [
ReturnHeaders
] extends [
true
] ? {
headers: Headers;
response: {
id: string;
status: "pending" | "accepted" | "rejected" | "canceled";
inviterId: string;
expiresAt: Date;
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
};
} : {
id: string;
status: "pending" | "accepted" | "rejected" | "canceled";
inviterId: string;
expiresAt: Date;
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
}>;
options: {
method: "POST";
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;
name: string;
email: string;
emailVerified: boolean;
createdAt: Date;
updatedAt: Date;
image?: string | null | undefined;
};
};
}>)[];
body: z.ZodObject<{
name: z.ZodOptional<z.ZodString>;
email: z.ZodOptional<z.ZodString>;
resend: z.ZodOptional<z.ZodBoolean>;
domainWhitelist: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
resend?: boolean | undefined;
}, {
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
resend?: boolean | undefined;
}>;
metadata: {
openapi: {
operationId: string;
description: string;
responses: {
"200": {
description: string;
content: {
"application/json": {
schema: {
$ref: string;
};
};
};
};
};
};
};
} & {
use: any[];
};
path: "/invite-user";
};
getAppInvitation: {
<AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: {
body?: undefined;
} & {
method?: "GET" | undefined;
} & {
query: {
id: string;
};
} & {
params?: Record<string, any>;
} & {
request?: Request;
} & {
headers?: HeadersInit;
} & {
asResponse?: boolean;
returnHeaders?: boolean;
use?: import("better-call").Middleware[];
path?: string;
} & {
asResponse?: AsResponse | undefined;
returnHeaders?: ReturnHeaders | undefined;
}): Promise<[
AsResponse
] extends [
true
] ? Response : [
ReturnHeaders
] extends [
true
] ? {
headers: Headers;
response: {
inviterEmail: string;
id: string;
status: "pending" | "accepted" | "rejected" | "canceled";
inviterId: string;
expiresAt: Date;
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
};
} : {
inviterEmail: string;
id: string;
status: "pending" | "accepted" | "rejected" | "canceled";
inviterId: string;
expiresAt: Date;
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
}>;
options: {
method: "GET";
query: z.ZodObject<{
id: z.ZodString;
}, "strip", z.ZodTypeAny, {
id: string;
}, {
id: string;
}>;
metadata: {
openapi: {
operationId: string;
description: string;
responses: {
"200": {
description: string;
content: {
"application/json": {
schema: {
$ref: string;
type: "object";
properties: {
id: {
type: string;
};
name: {
type: string;
};
email: {
type: string;
};
inviterId: {
type: string;
};
status: {
type: string;
};
expiresAt: {
type: string;
};
inviterEmail: {
type: string;
};
};
required: string[];
};
};
};
};
};
};
};
} & {
use: any[];
};
path: "/get-app-invitation";
};
acceptAppInvitation: {
<AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(...inputCtx: import("better-call").HasRequiredKeys<import("better-call").InputContext<"/accept-invitation", {
method: "POST";
query: z.ZodOptional<z.ZodObject<{
callbackURL: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
callbackURL?: string | undefined;
}, {
callbackURL?: string | undefined;
}>>;
use: ((inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<void>)[];
body: z.ZodIntersection<z.ZodObject<{
invitationId: z.ZodString;
}, "strip", z.ZodTypeAny, {
invitationId: string;
}, {
invitationId: string;
}>, z.ZodRecord<z.ZodString, z.ZodAny>>;
metadata: {
$Infer: {
body: {
invitationId: string;
name?: string;
email?: string;
password: string;
} & (O["$Infer"] extends {
AdditionalFields: Record<string, any>;
} ? O["$Infer"]["AdditionalFields"] : {});
};
openapi: {
operationId: string;
description: string;
requestBody: {
content: {
"application/json": {
schema: {
type: "object";
properties: {
name: {
type: string;
description: string;
};
email: {
type: string;
description: string;
};
password: {
type: string;
description: string;
};
};
required: string[];
};
};
};
};
responses: {
"200": {
description: string;
content: {
"application/json": {
schema: {
type: "object";
properties: {
token: {
type: string;
};
invitation: {
type: string;
};
user: {
type: string;
};
};
};
};
};
};
};
};
};
} & {
use: any[];
}>> extends true ? [
import("better-call").InferBodyInput<{
method: "POST";
query: z.ZodOptional<z.ZodObject<{
callbackURL: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
callbackURL?: string | undefined;
}, {
callbackURL?: string | undefined;
}>>;
use: ((inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<void>)[];
body: z.ZodIntersection<z.ZodObject<{
invitationId: z.ZodString;
}, "strip", z.ZodTypeAny, {
invitationId: string;
}, {
invitationId: string;
}>, z.ZodRecord<z.ZodString, z.ZodAny>>;
metadata: {
$Infer: {
body: {
invitationId: string;
name?: string;
email?: string;
password: string;
} & (O["$Infer"] extends {
AdditionalFields: Record<string, any>;
} ? O["$Infer"]["AdditionalFields"] : {});
};
openapi: {
operationId: string;
description: string;
requestBody: {
content: {
"application/json": {
schema: {
type: "object";
properties: {
name: {
type: string;
description: string;
};
email: {
type: string;
description: string;
};
password: {
type: string;
description: string;
};
};
required: string[];
};
};
};
};
responses: {
"200": {
description: string;
content: {
"application/json": {
schema: {
type: "object";
properties: {
token: {
type: string;
};
invitation: {
type: string;
};
user: {
type: string;
};
};
};
};
};
};
};
};
};
} & {
use: any[];
}, {
invitationId: string;
name?: string;
email?: string;
password: string;
} & (O["$Infer"] extends {
AdditionalFields: Record<string, any>;
} ? O["$Infer"]["AdditionalFields"] : {})> & {
method?: "POST" | undefined;
} & {
query?: {
callbackURL?: string | undefined;
} | undefined;
} & {
params?: Record<string, any>;
} & {
request?: Request;
} & {
headers?: HeadersInit;
} & {
asResponse?: boolean;
returnHeaders?: boolean;
use?: import("better-call").Middleware[];
path?: string;
} & {
asResponse?: AsResponse | undefined;
returnHeaders?: ReturnHeaders | undefined;
}
] : [
((import("better-call").InferBodyInput<{
method: "POST";
query: z.ZodOptional<z.ZodObject<{
callbackURL: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
callbackURL?: string | undefined;
}, {
callbackURL?: string | undefined;
}>>;
use: ((inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<void>)[];
body: z.ZodIntersection<z.ZodObject<{
invitationId: z.ZodString;
}, "strip", z.ZodTypeAny, {
invitationId: string;
}, {
invitationId: string;
}>, z.ZodRecord<z.ZodString, z.ZodAny>>;
metadata: {
$Infer: {
body: {
invitationId: string;
name?: string;
email?: string;
password: string;
} & (O["$Infer"] extends {
AdditionalFields: Record<string, any>;
} ? O["$Infer"]["AdditionalFields"] : {});
};
openapi: {
operationId: string;
description: string;
requestBody: {
content: {
"application/json": {
schema: {
type: "object";
properties: {
name: {
type: string;
description: string;
};
email: {
type: string;
description: string;
};
password: {
type: string;
description: string;
};
};
required: string[];
};
};
};
};
responses: {
"200": {
description: string;
content: {
"application/json": {
schema: {
type: "object";
properties: {
token: {
type: string;
};
invitation: {
type: string;
};
user: {
type: string;
};
};
};
};
};
};
};
};
};
} & {
use: any[];
}, {
invitationId: string;
name?: string;
email?: string;
password: string;
} & (O["$Infer"] extends {
AdditionalFields: Record<string, any>;
} ? O["$Infer"]["AdditionalFields"] : {})> & {
method?: "POST" | undefined;
} & {
query?: {
callbackURL?: string | undefined;
} | undefined;
} & {
params?: Record<string, any>;
} & {
request?: Request;
} & {
headers?: HeadersInit;
} & {
asResponse?: boolean;
returnHeaders?: boolean;
use?: import("better-call").Middleware[];
path?: string;
} & {
asResponse?: AsResponse | undefined;
returnHeaders?: ReturnHeaders | undefined;
}) | undefined)?
]): Promise<[
AsResponse
] extends [
true
] ? Response : [
ReturnHeaders
] extends [
true
] ? {
headers: Headers;
response: {
token: null;
user: {
id: string;
email: string;
name: string;
image: string | null | undefined;
emailVerified: boolean;
createdAt: Date;
updatedAt: Date;
};
invitation: {
id: string;
status: "pending" | "accepted" | "rejected" | "canceled";
inviterId: string;
expiresAt: Date;
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
} | null;
} | {
token: string;
user: {
id: string;
email: string;
name: string;
image: string | null | undefined;
emailVerified: boolean;
createdAt: Date;
updatedAt: Date;
};
invitation: {
id: string;
status: "pending" | "accepted" | "rejected" | "canceled";
inviterId: string;
expiresAt: Date;
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
} | null;
};
} : {
token: null;
user: {
id: string;
email: string;
name: string;
image: string | null | undefined;
emailVerified: boolean;
createdAt: Date;
updatedAt: Date;
};
invitation: {
id: string;
status: "pending" | "accepted" | "rejected" | "canceled";
inviterId: string;
expiresAt: Date;
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
} | null;
} | {
token: string;
user: {
id: string;
email: string;
name: string;
image: string | null | undefined;
emailVerified: boolean;
createdAt: Date;
updatedAt: Date;
};
invitation: {
id: string;
status: "pending" | "accepted" | "rejected" | "canceled";
inviterId: string;
expiresAt: Date;
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
} | null;
}>;
options: {
method: "POST";
query: z.ZodOptional<z.ZodObject<{
callbackURL: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
callbackURL?: string | undefined;
}, {
callbackURL?: string | undefined;
}>>;
use: ((inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<void>)[];
body: z.ZodIntersection<z.ZodObject<{
invitationId: z.ZodString;
}, "strip", z.ZodTypeAny, {
invitationId: string;
}, {
invitationId: string;
}>, z.ZodRecord<z.ZodString, z.ZodAny>>;
metadata: {
$Infer: {
body: {
invitationId: string;
name?: string;
email?: string;
password: string;
} & (O["$Infer"] extends {
AdditionalFields: Record<string, any>;
} ? O["$Infer"]["AdditionalFields"] : {});
};
openapi: {
operationId: string;
description: string;
requestBody: {
content: {
"application/json": {
schema: {
type: "object";
properties: {
name: {
type: string;
description: string;
};
email: {
type: string;
description: string;
};
password: {
type: string;
description: string;
};
};
required: string[];
};
};
};
};
responses: {
"200": {
description: string;
content: {
"application/json": {
schema: {
type: "object";
properties: {
token: {
type: string;
};
invitation: {
type: string;
};
user: {
type: string;
};
};
};
};
};
};
};
};
};
} & {
use: any[];
};
path: "/accept-invitation";
};
rejectAppInvitation: {
<AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: {
body: {
invitationId: string;
};
} & {
method?: "POST" | undefined;
} & {
query?: {
callbackURL?: string | undefined;
} | undefined;
} & {
params?: Record<string, any>;
} & {
request?: Request;
} & {
headers?: HeadersInit;
} & {
asResponse?: boolean;
returnHeaders?: boolean;
use?: import("better-call").Middleware[];
path?: string;
} & {
asResponse?: AsResponse | undefined;
returnHeaders?: ReturnHeaders | undefined;
}): Promise<[
AsResponse
] extends [
true
] ? Response : [
ReturnHeaders
] extends [
true
] ? {
headers: Headers;
response: {
token: null;
invitation: {
id: string;
status: "pending" | "accepted" | "rejected" | "canceled";
inviterId: string;
expiresAt: Date;
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
} | null;
user: null;
};
} : {
token: null;
invitation: {
id: string;
status: "pending" | "accepted" | "rejected" | "canceled";
inviterId: string;
expiresAt: Date;
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
} | null;
user: null;
}>;
options: {
method: "POST";
query: z.ZodOptional<z.ZodObject<{
callbackURL: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
callbackURL?: string | undefined;
}, {
callbackURL?: string | undefined;
}>>;
body: z.ZodObject<{
invitationId: z.ZodString;
}, "strip", z.ZodTypeAny, {
invitationId: string;
}, {
invitationId: string;
}>;
use: ((inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<void>)[];
metadata: {
openapi: {
operationId: string;
description: string;
requestBody: {
content: {
"application/json": {
schema: {
type: "object";
properties: {
invitationId: {
type: string;
};
};
required: string[];
};
};
};
};
responses: {
"200": {
description: string;
content: {
"application/json": {
schema: {
type: "object";
properties: {
token: {
type: string;
};
invitation: {
type: string;
};
user: {
type: string;
};
};
};
};
};
};
};
};
};
} & {
use: any[];
};
path: "/reject-invitation";
};
cancelAppInvitation: {
<AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: {
body: {
invitationId: string;
};
} & {
method?: "POST" | undefined;
} & {
query?: Record<string, any> | undefined;
} & {
params?: Record<string, any>;
} & {
request?: Request;
} & {
headers?: HeadersInit;
} & {
asResponse?: boolean;
returnHeaders?: boolean;
use?: import("better-call").Middleware[];
path?: string;
} & {
asResponse?: AsResponse | undefined;
returnHeaders?: ReturnHeaders | undefined;
}): Promise<[
AsResponse
] extends [
true
] ? Response : [
ReturnHeaders
] extends [
true
] ? {
headers: Headers;
response: {
id: string;
status: "pending" | "accepted" | "rejected" | "canceled";
inviterId: string;
expiresAt: Date;
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
} | null;
} : {
id: string;
status: "pending" | "accepted" | "rejected" | "canceled";
inviterId: string;
expiresAt: Date;
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
} | null>;
options: {
method: "POST";
body: z.ZodObject<{
invitationId: z.ZodString;
}, "strip", z.ZodTypeAny, {
invitationId: string;
}, {
invitationId: string;
}>;
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;
name: string;
email: string;
emailVerified: boolean;
createdAt: Date;
updatedAt: Date;
image?: string | null | undefined;
};
};
}>)[];
openapi: {
operationId: string;
description: string;
responses: {
"200": {
description: string;
content: {
"application/json": {
schema: {
$ref: string;
};
};
};
};
};
};
} & {
use: any[];
};
path: "/cancel-invitation";
};
listAppInvitations: {
<AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: {
body?: undefined;
} & {
method?: "GET" | undefined;
} & {
query: {
searchValue?: string | undefined;
searchField?: "name" | "email" | "domainWhitelist" | undefined;
searchOperator?: "contains" | "starts_with" | "ends_with" | undefined;
limit?: string | number | undefined;
offset?: string | number | undefined;
sortBy?: string | undefined;
sortDirection?: "asc" | "desc" | undefined;
filterField?: string | undefined;
filterValue?: string | number | undefined;
filterOperator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | undefined;
};
} & {
params?: Record<string, any>;
} & {
request?: Request;
} & {
headers?: HeadersInit;
} & {
asResponse?: boolean;
returnHeaders?: boolean;
use?: import("better-call").Middleware[];
path?: string;
} & {
asResponse?: AsResponse | undefined;
returnHeaders?: ReturnHeaders | undefined;
}): Promise<[
AsResponse
] extends [
true
] ? Response : [
ReturnHeaders
] extends [
true
] ? {
headers: Headers;
response: {
invitations: {
id: string;
status: "pending" | "accepted" | "rejected" | "canceled";
inviterId: string;
expiresAt: Date;
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
}[];
limit: number | undefined;
offset: number | undefined;
} | {
invitations: never[];
};
} : {
invitations: {
id: string;
status: "pending" | "accepted" | "rejected" | "canceled";
inviterId: string;
expiresAt: Date;
name?: string | undefined;
email?: string | undefined;
domainWhitelist?: string | undefined;
}[];
limit: number | undefined;
offset: number | undefined;
} | {
invitations: never[];
}>;
options: {
method: "GET";
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;
name: string;
email: string;
emailVerified: boolean;
createdAt: Date;
updatedAt: Date;
image?: string | null | undefined;
};
};
}>)[];
query: z.ZodObject<{
searchValue: z.ZodOptional<z.ZodString>;
searchField: z.ZodOptional<z.ZodEnum<[
"name",
"email",
"domainWhitelist"
]>>;
searchOperator: z.ZodOptional<z.ZodEnum<[
"contains",
"starts_with",
"ends_with"
]>>;
limit: z.ZodOptional<z.ZodUnion<[
z.ZodString,
z.ZodNumber
]>>;
offset: z.ZodOptional<z.ZodUnion<[
z.ZodString,
z.ZodNumber
]>>;
sortBy: z.ZodOptional<z.ZodString>;
sortDirection: z.ZodOptional<z.ZodEnum<[
"asc",
"desc"
]>>;
filterField: z.ZodOptional<z.ZodString>;
filterValue: z.ZodOptional<z.ZodUnion<[
z.ZodString,
z.ZodNumber
]>>;
filterOperator: z.ZodOptional<z.ZodEnum<[
"eq",
"ne",
"lt",
"lte",
"gt",
"gte"
]>>;
}, "strip", z.ZodTypeAny, {
searchValue?: string | undefined;
searchField?: "name" | "email" | "domainWhitelist" | undefined;
searchOperator?: "contains" | "starts_with" | "ends_with" | undefined;
limit?: string | number | undefined;
offset?: string | number | undefined;
sortBy?: string | undefined;
sortDirection?: "asc" | "desc" | undefined;
filterField?: string | undefined;
filterValue?: string | number | undefined;
filterOperator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | undefined;
}, {
searchValue?: string | undefined;
searchField?: "name" | "email" | "domainWhitelist" | undefined;
searchOperator?: "contains" | "starts_with" | "ends_with" | undefined;
limit?: string | number | undefined;
offset?: string | number | undefined;
sortBy?: string | undefined;
sortDirection?: "asc" | "desc" | undefined;
filterField?: string | undefined;
filterValue?: string | number | undefined;
filterOperator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | undefined;
}>;
metadata: {
openapi: {
operationId: string;
summary: string;
description: string;
responses: {
200: {
description: string;
content: {
"application/json": {
schema: {
type: "object";
properties: {
invitations: {
type: string;
items: {
$ref: string;
};
};
total: {
type: string;
};
limit: {
type: string[];
};
offset: {
type: string[];
};
};
};
};
};
};
};
};
};
} & {
use: any[];
};
path: "/list-invitations";
};
};
rateLimit: {
pathMatcher(path: string): boolean;
window: number;
max: number;
}[];
schema: {
appInvitation: {
modelName: string | undefined;
fields: {
name: {
type: "string";
required: false;
sortable: true;
fieldName: string | undefined;
};
email: {
type: "string";
required: false;
sortable: true;
fieldName: string | undefined;
};
status: {
type: "string";
required: true;
sortable: true;
defaultValue: string;
fieldName: string | undefined;
};
expiresAt: {
type: "date";
required: true;
fieldName: string | undefined;
};
inviterId: {
type: "string";
references: {
model: string;
field: string;
};
fieldName: string | undefined;
required: true;
};
domainWhitelist: {
type: "string";
required: false;
fieldName: string | undefined;
};
};
};
};
$Infer: {
AppInvitation: AppInvitation;
};
$ERROR_CODES: {
readonly USER_IS_ALREADY_A_MEMBER_OF_THIS_APPLICATION: "User is already a member of this application";
readonly USER_WAS_ALREADY_INVITED_TO_THIS_APPLICATION: "User was already invited to this application";
readonly INVITER_IS_NO_LONGER_A_MEMBER_OF_THIS_APPLICATION: "Inviter is no longer a member of this application";
readonly APP_INVITATION_NOT_FOUND: "App invitation not found";
readonly YOU_ARE_NOT_ALLOWED_TO_CANCEL_THIS_APP_INVITATION: "You are not allowed to cancel this app invitation";
readonly YOU_ARE_NOT_ALLOWED_TO_INVITE_USERS_TO_THIS_APPLICATION: "You are not allowed to invite users to this application";
readonly THIS_APP_INVITATION_CANT_BE_REJECTED: "This app invitation can't be rejected";
readonly EMAIL_DOMAIN_IS_NOT_IN_WHITELIST: "Email domain is not in whitelist";
};
};
export {};