mirror of
https://github.com/morluto/rea.git
synced 2026-10-28 10:25:42 +00:00
59 lines
2.1 KiB
TypeScript
59 lines
2.1 KiB
TypeScript
import type { AvailabilityPolicy } from "../application/CapabilityInventory.js";
|
|
import type { OptionalProviderLoadFailures } from "../application/OptionalObservationProviders.js";
|
|
import { platform } from "node:process";
|
|
|
|
export type SessionAvailability = AvailabilityPolicy;
|
|
|
|
export interface SessionAvailabilityDefaults {
|
|
readonly optionalProviderLoadFailures?:
|
|
| OptionalProviderLoadFailures
|
|
| undefined;
|
|
readonly optionalFeatures?: Pick<
|
|
SessionAvailability,
|
|
| "browserObservationEnabled"
|
|
| "browserScenarioEnabled"
|
|
| "electronObservationEnabled"
|
|
| "electronAutomationEnabled"
|
|
| "v8InspectorObservationEnabled"
|
|
| "androidAnalysisEnabled"
|
|
| "firmwareInspectionEnabled"
|
|
| "firmwareExtractionEnabled"
|
|
>;
|
|
}
|
|
|
|
/** Select configured availability reporting or the target-free defaults. */
|
|
export const sessionAvailabilityPolicy = (
|
|
configured: (() => SessionAvailability) | undefined,
|
|
defaults: SessionAvailabilityDefaults,
|
|
): (() => SessionAvailability) => {
|
|
const policy =
|
|
configured ??
|
|
(() => ({
|
|
processCaptureEnabled: platform !== "win32",
|
|
firmwareInspectionEnabled:
|
|
defaults.optionalFeatures?.firmwareInspectionEnabled ?? false,
|
|
firmwareExtractionEnabled:
|
|
defaults.optionalFeatures?.firmwareExtractionEnabled ?? false,
|
|
androidAnalysisEnabled:
|
|
defaults.optionalFeatures?.androidAnalysisEnabled ?? false,
|
|
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,
|
|
}));
|
|
return () => ({
|
|
...policy(),
|
|
...(defaults.optionalProviderLoadFailures === undefined
|
|
? {}
|
|
: {
|
|
optionalProviderLoadFailures: defaults.optionalProviderLoadFailures,
|
|
}),
|
|
});
|
|
};
|