Files
boc/packages/infrastructure/src/index.ts
T

56 lines
1.6 KiB
TypeScript
Raw Normal View History

/**
* @landvex/infrastructure
*
* Persistence adapters and infrastructure for LandveX domain.
*
* Architecture:
* - Domain defines interfaces (WHAT)
* - Infrastructure implements them (HOW)
* - Domain never depends on infrastructure
*/
// Repository interfaces (defined by domain, exported for convenience)
export {
Repository,
FieldSessionRepository,
MissionRepository,
DecisionCaseRepository,
ArtifactRegistry,
EventStore,
UnitOfWork,
} from './repositories/repository-interfaces';
// In-memory adapters (for testing)
export { InMemoryFieldSessionRepository } from './adapters/in-memory-session-repository';
export { InMemoryMissionRepository } from './adapters/in-memory-mission-repository';
export { InMemoryDecisionCaseRepository } from './adapters/in-memory-decision-case-repository';
export { InMemoryArtifactRegistry } from './adapters/in-memory-artifact-registry';
export { InMemoryEventStore } from './adapters/in-memory-event-store';
export { InMemoryUnitOfWork } from './adapters/in-memory-unit-of-work';
// PostgreSQL adapters (for production)
export {
PostgresFieldSessionRepository,
PostgresMissionRepository,
PostgresDecisionCaseRepository,
PostgresArtifactRegistry,
PostgresConfig,
} from './adapters/postgresql';
// API Key repositories
export {
ApiKeyRepository,
ApiKeyUsageRepository,
} from './repositories/api-key-repository';
export {
PostgresApiKeyRepository,
PostgresApiKeyUsageRepository,
PostgresApiKeyConfig,
} from './adapters/postgresql/postgres-api-key-repository';
export {
InMemoryApiKeyRepository,
InMemoryApiKeyUsageRepository,
} from './adapters/in-memory-api-key-repository';