2020-09-23 17:49:16 +02:00
|
|
|
import * as child_process from 'child_process';
|
2019-03-16 03:33:19 +01:00
|
|
|
|
|
|
|
import { DeviceType } from '../../enums/deviceType';
|
|
|
|
|
|
|
|
import { PlatformUtilsService } from '../../abstractions/platformUtils.service';
|
|
|
|
|
2020-09-23 17:49:16 +02:00
|
|
|
// tslint:disable-next-line
|
|
|
|
const open = require('open');
|
|
|
|
|
2019-03-16 03:33:19 +01:00
|
|
|
export class CliPlatformUtilsService implements PlatformUtilsService {
|
|
|
|
identityClientId: string;
|
|
|
|
|
|
|
|
private deviceCache: DeviceType = null;
|
|
|
|
|
|
|
|
constructor(identityClientId: string, private packageJson: any) {
|
|
|
|
this.identityClientId = identityClientId;
|
|
|
|
}
|
|
|
|
|
|
|
|
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', '');
|
|
|
|
}
|
|
|
|
|
|
|
|
isFirefox() {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
isChrome() {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
isEdge() {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
isOpera() {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
isVivaldi() {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
isSafari() {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
isIE() {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
isMacAppStore() {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
analyticsId() {
|
|
|
|
return null as string;
|
|
|
|
}
|
|
|
|
|
|
|
|
isViewOpen() {
|
2019-08-20 19:47:15 +02:00
|
|
|
return Promise.resolve(false);
|
2019-03-16 03:33:19 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
lockTimeout(): number {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
launchUri(uri: string, options?: any): void {
|
2020-09-23 17:49:16 +02:00
|
|
|
if (process.platform === 'linux') {
|
|
|
|
child_process.spawnSync('xdg-open', [uri]);
|
|
|
|
} else {
|
|
|
|
open(uri);
|
|
|
|
}
|
2019-03-16 03:33:19 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
saveFile(win: Window, blobData: any, blobOptions: any, fileName: string): void {
|
|
|
|
throw new Error('Not implemented.');
|
|
|
|
}
|
|
|
|
|
|
|
|
getApplicationVersion(): string {
|
|
|
|
return this.packageJson.version;
|
|
|
|
}
|
|
|
|
|
|
|
|
supportsU2f(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.');
|
|
|
|
}
|
|
|
|
|
|
|
|
eventTrack(action: string, label?: string, options?: any) {
|
|
|
|
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.');
|
|
|
|
}
|
2020-07-23 19:32:20 +02:00
|
|
|
|
|
|
|
supportsBiometric(): Promise<boolean> {
|
|
|
|
return Promise.resolve(false);
|
|
|
|
}
|
|
|
|
|
|
|
|
authenticateBiometric(): Promise<boolean> {
|
|
|
|
return Promise.resolve(false);
|
|
|
|
}
|
2019-03-16 03:33:19 +01:00
|
|
|
}
|