mirror of
https://github.com/bitwarden/browser
synced 2026-01-08 03:23:50 +00:00
* refactor: update clientType enum * refactor: update deviceType filename * refactor: update encryptedExportType filename * refactor: update encryptionType filename * refactor: update eventType filename * refactor: update fieldType filename * refactor: update fileUploadType filename * refactor: update hashPurpose filename * refactor: update htmlStorageLocation filename * refactor: update kdfType filename * refactor: update keySuffixOptions filename * refactor: update linkedIdType filename * refactor: update logLevelType filename * refactor: update nativeMessagingVersion filename * refactor: update notificationType filename * refactor: update productType filename * refactor: update secureNoteType filename * refactor: update stateVersion filename * refactor: update storageLocation filename * refactor: update themeType filename * refactor: update uriMatchType filename * fix: update kdfType classes missed in initial pass, refs AC-1266 * fix: missing import update for device-type * refactor: add barrel file for enums and update pathed import statements, refs AC-1266 * fix: incorrect import statements for web, refs AC-1266 * fix: missed import statement updates (browser), refs AC-1266 * fix: missed import statement changes (cli), refs AC-1266 * fix: missed import statement changes (desktop), refs AC-1266 * fix: prettier, refs AC-1266 * refactor: (libs) update relative paths to use barrel file, refs AC-1266 * fix: missed find/replace import statements for SecureNoteType, refs AC-1266 * refactor: apply .enum suffix to enums folder and modify leftover relative paths, refs AC-1266 * fix: find/replace errors for native-messaging-version, refs AC-1266
157 lines
3.0 KiB
TypeScript
157 lines
3.0 KiB
TypeScript
import * as child_process from "child_process";
|
|
|
|
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
|
import { ClientType, DeviceType } from "@bitwarden/common/enums";
|
|
|
|
// eslint-disable-next-line
|
|
const open = require("open");
|
|
|
|
export class CliPlatformUtilsService implements PlatformUtilsService {
|
|
clientType: ClientType;
|
|
|
|
private deviceCache: DeviceType = null;
|
|
|
|
constructor(clientType: ClientType, private packageJson: any) {
|
|
this.clientType = clientType;
|
|
}
|
|
|
|
getDevice(): DeviceType {
|
|
if (!this.deviceCache) {
|
|
switch (process.platform) {
|
|
case "win32":
|
|
this.deviceCache = DeviceType.WindowsDesktop;
|
|
break;
|
|
case "darwin":
|
|
this.deviceCache = DeviceType.MacOsDesktop;
|
|
break;
|
|
case "linux":
|
|
default:
|
|
this.deviceCache = DeviceType.LinuxDesktop;
|
|
break;
|
|
}
|
|
}
|
|
|
|
return this.deviceCache;
|
|
}
|
|
|
|
getDeviceString(): string {
|
|
const device = DeviceType[this.getDevice()].toLowerCase();
|
|
return device.replace("desktop", "");
|
|
}
|
|
|
|
getClientType() {
|
|
return this.clientType;
|
|
}
|
|
|
|
isFirefox() {
|
|
return false;
|
|
}
|
|
|
|
isChrome() {
|
|
return false;
|
|
}
|
|
|
|
isEdge() {
|
|
return false;
|
|
}
|
|
|
|
isOpera() {
|
|
return false;
|
|
}
|
|
|
|
isVivaldi() {
|
|
return false;
|
|
}
|
|
|
|
isSafari() {
|
|
return false;
|
|
}
|
|
|
|
isMacAppStore() {
|
|
return false;
|
|
}
|
|
|
|
isViewOpen() {
|
|
return Promise.resolve(false);
|
|
}
|
|
|
|
launchUri(uri: string, options?: any): void {
|
|
if (process.platform === "linux") {
|
|
child_process.spawnSync("xdg-open", [uri]);
|
|
} else {
|
|
open(uri);
|
|
}
|
|
}
|
|
|
|
getApplicationVersion(): Promise<string> {
|
|
return Promise.resolve(this.packageJson.version);
|
|
}
|
|
|
|
async getApplicationVersionNumber(): Promise<string> {
|
|
return (await this.getApplicationVersion()).split(RegExp("[+|-]"))[0].trim();
|
|
}
|
|
|
|
getApplicationVersionSync(): string {
|
|
return this.packageJson.version;
|
|
}
|
|
|
|
supportsWebAuthn(win: Window) {
|
|
return false;
|
|
}
|
|
|
|
supportsDuo(): boolean {
|
|
return false;
|
|
}
|
|
|
|
showToast(
|
|
type: "error" | "success" | "warning" | "info",
|
|
title: string,
|
|
text: string | string[],
|
|
options?: any
|
|
): void {
|
|
throw new Error("Not implemented.");
|
|
}
|
|
|
|
showDialog(
|
|
text: string,
|
|
title?: string,
|
|
confirmText?: string,
|
|
cancelText?: string,
|
|
type?: string
|
|
): Promise<boolean> {
|
|
throw new Error("Not implemented.");
|
|
}
|
|
|
|
isDev(): boolean {
|
|
return process.env.BWCLI_ENV === "development";
|
|
}
|
|
|
|
isSelfHost(): boolean {
|
|
return false;
|
|
}
|
|
|
|
copyToClipboard(text: string, options?: any): void {
|
|
throw new Error("Not implemented.");
|
|
}
|
|
|
|
readFromClipboard(options?: any): Promise<string> {
|
|
throw new Error("Not implemented.");
|
|
}
|
|
|
|
supportsBiometric(): Promise<boolean> {
|
|
return Promise.resolve(false);
|
|
}
|
|
|
|
authenticateBiometric(): Promise<boolean> {
|
|
return Promise.resolve(false);
|
|
}
|
|
|
|
supportsSecureStorage(): boolean {
|
|
return false;
|
|
}
|
|
|
|
getAutofillKeyboardShortcut(): Promise<string> {
|
|
return null;
|
|
}
|
|
}
|