mirror of
https://github.com/samiyev/puaros.git
synced 2025-12-27 23:06:54 +05:00
feat(guardian): add guardian package - code quality analyzer
Add @puaros/guardian package v0.1.0 - code quality guardian for vibe coders and enterprise teams. Features: - Hardcode detection (magic numbers, magic strings) - Circular dependency detection - Naming convention enforcement (Clean Architecture) - Architecture violation detection - CLI tool with comprehensive reporting - 159 tests with 80%+ coverage - Smart suggestions for fixes - Built for AI-assisted development Built with Clean Architecture and DDD principles. Works with Claude, GPT, Copilot, Cursor, and any AI coding assistant.
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import { User } from "../aggregates/User"
|
||||
import { UserId } from "../value-objects/UserId"
|
||||
import { Email } from "../value-objects/Email"
|
||||
|
||||
/**
|
||||
* User Repository Interface
|
||||
*
|
||||
* DDD Pattern: Repository
|
||||
* - Interface in domain layer
|
||||
* - Implementation in infrastructure layer
|
||||
* - Collection-like API for aggregates
|
||||
*
|
||||
* SOLID Principles:
|
||||
* - DIP: domain depends on abstraction
|
||||
* - ISP: focused interface
|
||||
* - SRP: manages User persistence
|
||||
*
|
||||
* Clean Architecture:
|
||||
* - Domain doesn't know about DB
|
||||
* - Infrastructure implements this
|
||||
*/
|
||||
export interface IUserRepository {
|
||||
/**
|
||||
* Save user (create or update)
|
||||
*/
|
||||
save(user: User): Promise<void>
|
||||
|
||||
/**
|
||||
* Find user by ID
|
||||
*/
|
||||
findById(id: UserId): Promise<User | null>
|
||||
|
||||
/**
|
||||
* Find user by email
|
||||
*/
|
||||
findByEmail(email: Email): Promise<User | null>
|
||||
|
||||
/**
|
||||
* Find all users
|
||||
*/
|
||||
findAll(): Promise<User[]>
|
||||
|
||||
/**
|
||||
* Find active users
|
||||
*/
|
||||
findActive(): Promise<User[]>
|
||||
|
||||
/**
|
||||
* Delete user
|
||||
*/
|
||||
delete(id: UserId): Promise<void>
|
||||
|
||||
/**
|
||||
* Check if user exists
|
||||
*/
|
||||
exists(id: UserId): Promise<boolean>
|
||||
}
|
||||
Reference in New Issue
Block a user