From 95e80ef62c3c9d048659ec9237942eeaab9c8b4b Mon Sep 17 00:00:00 2001 From: Danijel Martinek Date: Tue, 5 May 2026 00:39:01 +0200 Subject: [PATCH] feat(auth): add IUsersRepository + IAuthenticationService interfaces --- .../repositories/users-repository.interface.ts | 7 +++++++ .../services/authentication-service.interface.ts | 14 ++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 packages/auth/src/application/repositories/users-repository.interface.ts create mode 100644 packages/auth/src/application/services/authentication-service.interface.ts diff --git a/packages/auth/src/application/repositories/users-repository.interface.ts b/packages/auth/src/application/repositories/users-repository.interface.ts new file mode 100644 index 0000000..9e03e0a --- /dev/null +++ b/packages/auth/src/application/repositories/users-repository.interface.ts @@ -0,0 +1,7 @@ +import type { User } from "../../entities/user"; + +export interface IUsersRepository { + getUser(id: string): Promise; + getUserByUsername(username: string): Promise; + createUser(input: User): Promise; +} diff --git a/packages/auth/src/application/services/authentication-service.interface.ts b/packages/auth/src/application/services/authentication-service.interface.ts new file mode 100644 index 0000000..0e5f873 --- /dev/null +++ b/packages/auth/src/application/services/authentication-service.interface.ts @@ -0,0 +1,14 @@ +import type { Cookie } from "../../entities/cookie"; +import type { Session } from "../../entities/session"; +import type { User } from "../../entities/user"; + +export interface IAuthenticationService { + generateUserId(): string; + hashPassword(password: string): Promise; + verifyPassword(hash: string, password: string): Promise; + validateSession( + sessionId: string, + ): Promise<{ user: User; session: Session }>; + createSession(user: User): Promise<{ session: Session; cookie: Cookie }>; + invalidateSession(sessionId: string): Promise<{ blankCookie: Cookie }>; +}