denwa-web-shared
Version:
A shared library for Next.js App Router projects containing reusable components, hooks, schemas, and utilities.
36 lines (35 loc) • 1.47 kB
TypeScript
/** Пара токенов одной стороны (access или refresh). */
export interface SessionToken {
token: string;
exp?: number;
}
export interface SessionTokens {
accessToken?: SessionToken;
refreshToken?: SessionToken;
}
export interface SessionUser {
id: string;
profileId: string;
phone?: string | null;
email?: string | null;
name?: string | null;
surname?: string | null;
roles: string[];
maxRolePriority?: number | null;
tokens?: SessionTokens;
}
export declare const sessionTokensSchema: import('../..').SchemaLike<SessionTokens>;
export declare const sessionUserSchema: import('../..').SchemaLike<SessionUser>;
/**
* Парсит сырое значение сессионной куки (JSON) и валидирует схемой.
* Возвращает null при отсутствии значения или невалидных данных.
*/
export declare const parseSessionCookie: (rawValue: string | null | undefined) => SessionUser | null;
/**
* Инициалы пользователя: ФамилияИмя → «ИФ», при отсутствии — первая буква email.
*/
export declare const getUserInitials: (user?: SessionUser | null) => string;
/**
* Отображаемое имя: «Фамилия Имя», при отсутствии — email или телефон.
*/
export declare const getUserDisplayName: (user?: SessionUser | null) => string;