{"version":3,"sources":["../../src/session/types.ts"],"sourcesContent":["import type { Principal } from '../core/index';\n\nexport interface Authentication extends Principal {\n  '@class': string;\n  principal?: Principal;\n  authorities?: string[];\n  credentials?: object;\n  details?: object;\n}\n\nexport interface SecurityContext {\n  '@class': string;\n  authentication?: Authentication;\n}\n\nexport type Namespace = `${string}:session`;\n\n// package org.springframework.session;\nexport interface Session {\n  getId(): string;\n  changeSessionId(): string;\n\n  getAttribute(name: string): string | number | null;\n  getAttributeNames(): string[];\n  setAttribute(name: string, value: string | number): void;\n  removeAttribute(name: string): void;\n\n  getCreationTime(): number;\n  getLastAccessedTime(): number;\n  setLastAccessedTime(lastAccessedTime: number): void;\n\n  getMaxInactiveInterval(): number;\n  setMaxInactiveInterval(interval: number): void;\n\n  isExpired(): boolean;\n}\n\nexport interface SessionRepository<S extends Session = Session> {\n  createSession(): S;\n  save(session: S): Promise<void>;\n  findById(sessionId: string): Promise<S | null>;\n  deleteById(sessionId: string): Promise<void>;\n\n  // FindByIndexNameSessionRepository\n  findByIndexNameAndIndexValue(indexName: string, indexValue: string): Promise<Map<string, S>>;\n  findByPrincipalName(principalName: string): Promise<Map<string, S>>;\n\n  // added\n  cleanupExpiredSessions(cleanupCount?: number): Promise<void>;\n}\n\nexport interface KVRepository {\n  setItem(key: string, value: string, expiresIn?: number): Promise<void>;\n  getItem(key: string): Promise<string | null>;\n  removeItem(key: string): Promise<void>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}