mirror of
https://github.com/morluto/rea.git
synced 2026-10-29 19:05:45 +00:00
46 lines
1.8 KiB
TypeScript
46 lines
1.8 KiB
TypeScript
import type { AvailabilityPolicy } from "../application/CapabilityInventory.js";
|
|
import type { EvidenceFilePolicy } from "../domain/evidenceBundle.js";
|
|
import type { ProcessExecutionPolicy } from "../domain/processCapture.js";
|
|
|
|
export type SessionAvailability = AvailabilityPolicy;
|
|
|
|
export interface SessionAvailabilityDefaults {
|
|
readonly processPolicy: ProcessExecutionPolicy;
|
|
readonly evidenceFilePolicy: EvidenceFilePolicy;
|
|
readonly optionalFeatures?: Pick<
|
|
SessionAvailability,
|
|
| "browserObservationEnabled"
|
|
| "browserScenarioEnabled"
|
|
| "electronObservationEnabled"
|
|
| "electronAutomationEnabled"
|
|
| "v8InspectorObservationEnabled"
|
|
| "javascriptReplayEnabled"
|
|
| "managedRuntimeEnabled"
|
|
>;
|
|
}
|
|
|
|
/** Select configured availability reporting or the target-free defaults. */
|
|
export const sessionAvailabilityPolicy = (
|
|
configured: (() => SessionAvailability) | undefined,
|
|
defaults: SessionAvailabilityDefaults,
|
|
): (() => SessionAvailability) =>
|
|
configured ??
|
|
(() => ({
|
|
processCaptureEnabled: defaults.processPolicy.status === "enabled",
|
|
evidenceFileRoots: defaults.evidenceFilePolicy.roots.length,
|
|
browserObservationEnabled:
|
|
defaults.optionalFeatures?.browserObservationEnabled ?? false,
|
|
browserScenarioEnabled:
|
|
defaults.optionalFeatures?.browserScenarioEnabled ?? false,
|
|
electronObservationEnabled:
|
|
defaults.optionalFeatures?.electronObservationEnabled ?? false,
|
|
electronAutomationEnabled:
|
|
defaults.optionalFeatures?.electronAutomationEnabled ?? false,
|
|
v8InspectorObservationEnabled:
|
|
defaults.optionalFeatures?.v8InspectorObservationEnabled ?? false,
|
|
javascriptReplayEnabled:
|
|
defaults.optionalFeatures?.javascriptReplayEnabled ?? false,
|
|
managedRuntimeEnabled:
|
|
defaults.optionalFeatures?.managedRuntimeEnabled ?? false,
|
|
}));
|