Path: blob/main/plugin-utils/lib/BrowserEmulator.ts
1028 views
import { IBoundLog } from '@secret-agent/interfaces/ILog';1import {2BrowserEmulatorClassDecorator,3IBrowserEmulator,4IBrowserEmulatorClass,5ISelectBrowserMeta,6} from '@secret-agent/interfaces/ICorePlugin';7import { PluginTypes } from '@secret-agent/interfaces/IPluginTypes';8import ICorePluginCreateOptions from '@secret-agent/interfaces/ICorePluginCreateOptions';9import IBrowserEngine from '@secret-agent/interfaces/IBrowserEngine';10import ICorePlugins from '@secret-agent/interfaces/ICorePlugins';11import { IVersion } from '@secret-agent/interfaces/IUserAgentOption';12import IDeviceProfile from '@secret-agent/interfaces/IDeviceProfile';1314@BrowserEmulatorClassDecorator15export default class BrowserEmulator implements IBrowserEmulator {16public static readonly id: string;17public static readonly type = PluginTypes.BrowserEmulator;1819public readonly id: string;2021public readonly browserName: string;22public readonly browserVersion: IVersion;2324public readonly operatingSystemName: string;25public readonly operatingSystemVersion: IVersion;26public readonly operatingSystemPlatform: string;2728public readonly userAgentString: string;29public readonly browserEngine: IBrowserEngine;30public readonly logger: IBoundLog;31public readonly deviceProfile: IDeviceProfile;3233protected readonly corePlugins: ICorePlugins;3435constructor({36userAgentOption,37browserEngine,38corePlugins,39logger,40deviceProfile,41}: ICorePluginCreateOptions) {42this.id = (this.constructor as IBrowserEmulatorClass).id;43this.browserName = userAgentOption.browserName;44this.browserVersion = userAgentOption.browserVersion;4546this.operatingSystemPlatform = userAgentOption.operatingSystemPlatform;47this.operatingSystemName = userAgentOption.operatingSystemName;48this.operatingSystemVersion = userAgentOption.operatingSystemVersion;4950this.userAgentString = userAgentOption.string;51this.browserEngine = browserEngine;5253this.corePlugins = corePlugins;54this.logger = logger;55this.deviceProfile = deviceProfile ?? {};56}5758// eslint-disable-next-line @typescript-eslint/no-unused-vars59public static selectBrowserMeta(userAgentSelector: string): ISelectBrowserMeta {60throw new Error('selectBrowserMeta() is missing implementation');61}62}636465