qnote/web/src/lib/const.ts
2025-04-22 19:38:31 +03:00

36 lines
1.4 KiB
TypeScript

// export const API_BASE_ADDR = import.meta.env.PROD ? "/api" : "http://localhost:8080/api"
export const API_BASE_ADDR = "/api"
// Lifetimes of *in-memory* authentication tokens in milliseconds
export const AT_EXP_MS = 15 * 60 * 1000 // 15 min.
export const CSRF_EXP_MS = 12 * 60 * 60 * 1000 // 12 h.
export const REFRESH_BUF = 30 * 1000 // 30 s.
// User registration password restrictions
export const MIN_PASSWORD_LENGTH = 12
export const MAX_PASSWORD_LENGTH = 72
export const MIN_PASSWORD_ENTROPY = 60.0
export const ENTROPY_CLASSES: Array<[RegExp, number]> = [
[/[a-z]/, 24], // 26
[/[A-Z]/, 24], // 26
[/\d/, 10],
[/[!@#$%^&*()\-_+=\[\]{}|;:'",.<>\/?`~\\]/, 32] // 40
]
export const TITLE_MAX_LENGTH = 150
export const UUID_REGEX = new RegExp(
"^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
"i"
)
// View cookie configuration (holds UNIX timestamp value of the actual refresh token cookie's expiration date)
export const VIEW_COOKIE_PATH = import.meta.env.VITE_VIEW_COOKIE_PATH || "/"
export const VIEW_COOKIE_DOMAIN = import.meta.env.VITE_VIEW_COOKIE_DOMAIN || "localhost"
export const COOKIE_SAME_SITE = import.meta.env.VITE_COOKIE_SAME_SITE || "strict"
export const COOKIE_SECURE = import.meta.env.PROD ? true : false
// Error/success notification display durations
export const ERR_NOTIFICATION_DUR = 8 * 1000 // 8 s.
export const SUC_NOTIFICATION_DUR = 8 * 1000 // 8 s.