import { flagEnabled as baseFlagEnabled, devFlagEnabled as baseDevFlagEnabled, devFlagValue as baseDevFlagValue, SharedFlags, SharedDevFlags, } from "@bitwarden/common/platform/misc/flags"; import { GroupPolicyEnvironment } from "../admin-console/types/group-policy-environment"; import { BrowserApi } from "./browser/browser-api"; // required to avoid linting errors when there are no flags // eslint-disable-next-line @typescript-eslint/ban-types export type Flags = { accountSwitching?: boolean; } & SharedFlags; // required to avoid linting errors when there are no flags // eslint-disable-next-line @typescript-eslint/ban-types export type DevFlags = { storeSessionDecrypted?: boolean; managedEnvironment?: GroupPolicyEnvironment; } & SharedDevFlags; export function flagEnabled(flag: keyof Flags): boolean { return baseFlagEnabled(flag); } export function devFlagEnabled(flag: keyof DevFlags) { return baseDevFlagEnabled(flag); } export function devFlagValue(flag: keyof DevFlags) { return baseDevFlagValue(flag); } /** Helper method to sync flag specifically for account switching, which as platform-based values. * If this pattern needs to be repeated, it's better handled by increasing complexity of webpack configurations * Not by expanding these flag getters. */ export function enableAccountSwitching(): boolean { if (BrowserApi.isSafariApi) { return false; } return flagEnabled("accountSwitching"); }