rea/src/application/AppleApplicationService.ts

28 lines
1.0 KiB
TypeScript

import type { AnalysisError } from "../domain/errors.js";
import type { Evidence } from "../domain/evidence.js";
import {
appleApplicationProjectionInputSchema,
projectAppleApplication,
} from "../domain/appleApplication.js";
import type { Result } from "../domain/result.js";
import { APPLE_APPLICATION_PROVIDER } from "./InvestigationProviders.js";
import { projectInventoryEvidence } from "./InventoryProjectionEvidence.js";
const OPERATION = "project_apple_application_graph" as const;
/** Project authenticated IPA inventory Evidence into Apple application evidence. */
export const projectAppleApplicationEvidence = (
rawInput: unknown,
): Result<Evidence, AnalysisError> => {
return projectInventoryEvidence({
rawInput,
schema: appleApplicationProjectionInputSchema,
project: projectAppleApplication,
operation: OPERATION,
predicateType: "rea.apple-application-graph/v1",
provider: APPLE_APPLICATION_PROVIDER,
subjectFormat: () => "ipa",
protocolError: "Apple application projection produced an invalid result",
});
};