2022-08-26 05:00:14 +02:00
|
|
|
import {
|
|
|
|
flagEnabled as baseFlagEnabled,
|
|
|
|
devFlagEnabled as baseDevFlagEnabled,
|
|
|
|
devFlagValue as baseDevFlagValue,
|
|
|
|
SharedFlags,
|
|
|
|
SharedDevFlags,
|
2023-06-06 22:34:53 +02:00
|
|
|
} from "@bitwarden/common/platform/misc/flags";
|
2022-08-18 16:23:16 +02:00
|
|
|
|
2023-06-06 22:34:53 +02:00
|
|
|
import { GroupPolicyEnvironment } from "../admin-console/types/group-policy-environment";
|
2022-08-16 14:05:03 +02:00
|
|
|
|
2024-01-17 21:01:24 +01:00
|
|
|
import { BrowserApi } from "./browser/browser-api";
|
|
|
|
|
2022-08-26 05:00:14 +02:00
|
|
|
// required to avoid linting errors when there are no flags
|
2024-04-08 17:46:24 +02:00
|
|
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
2023-10-25 20:27:32 +02:00
|
|
|
export type Flags = {
|
|
|
|
accountSwitching?: boolean;
|
|
|
|
} & SharedFlags;
|
2022-08-16 14:05:03 +02:00
|
|
|
|
2022-08-26 05:00:14 +02:00
|
|
|
// required to avoid linting errors when there are no flags
|
2024-04-08 17:46:24 +02:00
|
|
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
2022-08-16 14:05:03 +02:00
|
|
|
export type DevFlags = {
|
|
|
|
storeSessionDecrypted?: boolean;
|
2022-08-18 16:23:16 +02:00
|
|
|
managedEnvironment?: GroupPolicyEnvironment;
|
2022-08-26 05:00:14 +02:00
|
|
|
} & SharedDevFlags;
|
2022-08-16 14:05:03 +02:00
|
|
|
|
2022-08-26 05:00:14 +02:00
|
|
|
export function flagEnabled(flag: keyof Flags): boolean {
|
|
|
|
return baseFlagEnabled<Flags>(flag);
|
2022-08-18 16:23:16 +02:00
|
|
|
}
|
|
|
|
|
2022-08-26 05:00:14 +02:00
|
|
|
export function devFlagEnabled(flag: keyof DevFlags) {
|
|
|
|
return baseDevFlagEnabled<DevFlags>(flag);
|
|
|
|
}
|
2022-08-18 16:23:16 +02:00
|
|
|
|
2022-08-26 05:00:14 +02:00
|
|
|
export function devFlagValue(flag: keyof DevFlags) {
|
|
|
|
return baseDevFlagValue(flag);
|
2022-08-16 14:05:03 +02:00
|
|
|
}
|
2024-01-17 21:01:24 +01:00
|
|
|
|
|
|
|
/** 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");
|
|
|
|
}
|