@entityauth/auth-client
Version:
TypeScript/JavaScript client SDK for Entity Auth - complete authentication infrastructure with organizations, sessions, and real-time security
146 lines (144 loc) • 3.94 kB
TypeScript
type LoginInput = {
email: string;
password: string;
/**
* @deprecated Configure tenantId once via EntityAuth.init({ tenantId }).
*/
tenantId?: string;
};
type LoginOutput = {
accessToken: string;
userId: string;
sessionId: string;
} | {
accessToken: string;
refreshToken: string;
userId: string;
sessionId: string;
};
declare function init(options: {
tenantId: string;
baseURL?: string;
}): void;
declare class EntityAuthClient {
private readonly baseURL;
private accessToken;
private readonly tokenListeners;
private refreshInFlight;
constructor(options?: {
baseURL?: string;
});
getAccessToken(): string | null;
onTokenChange(listener: (token: string | null) => void): () => void;
private setAccessToken;
applyAccessToken(token: string): void;
fetch(input: string, init?: RequestInit): Promise<Response>;
private refreshSingleFlight;
register(input: {
email: string;
password: string;
tenantId?: string;
}): Promise<unknown>;
login(input: LoginInput): Promise<{
accessToken: string;
userId: string;
sessionId: string;
} | {
accessToken: string;
refreshToken: string;
userId: string;
sessionId: string;
}>;
refresh(headerRefreshToken?: string): Promise<unknown>;
logout(): Promise<unknown>;
getOpenAPI(): Promise<unknown>;
graphql<T = unknown>(query: string, variables?: Record<string, unknown>): Promise<T>;
createOrg(input: {
tenantId?: string;
name: string;
slug: string;
ownerId: string;
}): Promise<any>;
addMember(input: {
orgId: string;
userId: string;
role: string;
}): Promise<any>;
switchOrg(input: {
orgId: string;
}): Promise<any>;
getUserOrganizations(): Promise<any>;
getCurrentTenantId(): Promise<any>;
setUsername(input: {
username: string;
}): Promise<any>;
checkUsername(input: {
value: string;
}): Promise<{
valid: boolean;
available: boolean;
}>;
getUserMe(): Promise<any>;
userByUsername(input: {
username: string;
}): Promise<any>;
userByEmail(input: {
email: string;
}): Promise<any>;
getConvexConfig(): Promise<any>;
openapi(): Promise<unknown>;
getCurrentSession(): Promise<any>;
listSessions(options?: {
includeRevoked?: boolean;
}): Promise<any>;
getSessionById(input: {
id: string;
}): Promise<any>;
revokeSession(input: {
sessionId: string;
}): Promise<any>;
revokeSessionsByUser(input: {
userId: string;
}): Promise<any>;
}
declare const SDK: {
register(input: {
email: string;
password: string;
tenantId?: string;
}): Promise<unknown>;
login(input: LoginInput): Promise<LoginOutput>;
refresh(headerRefreshToken?: string): Promise<unknown>;
logout(): Promise<unknown>;
createOrg(input: {
tenantId?: string;
name: string;
slug: string;
ownerId: string;
}): Promise<unknown>;
addMember(input: {
orgId: string;
userId: string;
role: string;
}): Promise<unknown>;
switchOrg(input: {
orgId: string;
}): Promise<unknown>;
getUserOrganizations(): Promise<unknown>;
getCurrentTenantId(): Promise<string>;
openapi(): Promise<unknown>;
getCurrentSession(): Promise<unknown>;
listSessions(options?: {
includeRevoked?: boolean;
}): Promise<unknown>;
getSessionById(input: {
id: string;
}): Promise<unknown>;
revokeSession(input: {
sessionId: string;
}): Promise<unknown>;
revokeSessionsByUser(input: {
userId: string;
}): Promise<unknown>;
};
export { EntityAuthClient, type LoginInput, type LoginOutput, SDK, init };