import type { AssessorRepository } from '../persistence/assessor-repository'; export type RemediationReadMethods = Pick; export interface RemediationReadPort extends RemediationReadMethods { currentRevision(): Promise } export function remediationReadPortFrom(repository: RemediationReadMethods, revision: () => Promise): RemediationReadPort { return Object.freeze({ currentRevision: revision, getProject: repository.getProject.bind(repository), listAssessments: repository.listAssessments.bind(repository), loadAssessmentModel: repository.loadAssessmentModel.bind(repository), queryUnifiedResults: repository.queryUnifiedResults.bind(repository), listPolicyEvaluations: repository.listPolicyEvaluations.bind(repository), listCurrentPolicyEvaluationsForMetrics: repository.listCurrentPolicyEvaluationsForMetrics?.bind(repository), listMicrosoftSecurityBaselineAnalyses: repository.listMicrosoftSecurityBaselineAnalyses.bind(repository) }); }