/**
* @memberof eg.agent
* @typedef
* @property - Agent name 에이전트 이름
* @property - Agent version 에이전트 버전
* @property - Agent major version 에이전트 메이저 버전
*/
export interface AgentVersionInfo {
name: string;
version: string;
majorVersion: number;
}
/**
**
* @memberof eg.agent
* @extends eg.agent.AgentVersionInfo
* @typedef - OS information OS 정보
*/
export interface AgentOSInfo extends AgentVersionInfo {}
/**
* @memberof eg.agent
* @extends eg.agent.AgentVersionInfo
* @typedef - Browser information 브라우저 정보
* @property - Whether the browser is webkit 브라우저가 webkit인지 여부
* @property - Version of the webkit. If it is not webkit, "-1" is returned.webkit의 버전. webkit가 아닌 경우 "-1"을 반환한다.
* @property - Whether the browser is chromium. Check applewebkit/537.6 and chrome브라우저가 chromium인지 여부. applewebkit/537.6과 chrome을 검사한다.
* @property - Version of the chromium. If it is not chromium, "-1" is returned.chromium의 버전. chromium이 아닌 경우 "-1"을 반환한다.
* @property - Whether the browser is webview.브라우저가 웹뷰인지 여부
*/
export interface AgentBrowserInfo extends AgentVersionInfo {
webkit: boolean;
webkitVersion: string;
chromium: boolean;
chromiumVersion: string;
webview: boolean;
}
/**
* @memberof eg.agent
* @typedef - All Agent information 모든 에이전트 정보
* @property - Browser information 브라우저 정보
* @property - OS information OS 정보
* @property - Whether the browser is for mobile모바일 브라우저 여부
* @property - Whether agent information is obtained from Client Hints 에이전트 정보가 Client Hints로 얻어온 정보인지 여부
*/
export interface AgentInfo {
browser: AgentBrowserInfo;
os: AgentOSInfo;
isMobile: boolean;
isHints: boolean;
}
export interface PresetInfo {
test: string;
id: string;
brand?: boolean;
versionTest?: string;
versionAlias?: string;
}
export interface PresetResult {
preset: PresetInfo | null;
version: string;
}
export interface NavigatorUABrandVersion {
brand: string;
version: string;
}
export interface UADataValues {
platform: string;
platformVersion: string;
architecture: string;
model: string;
uaFullVersion: string;
fullVersionList: NavigatorUABrandVersion[];
}
export interface NavigatorUAData {
brands?: NavigatorUABrandVersion[];
uaList?: NavigatorUABrandVersion[];
mobile: boolean;
platform: string;
getHighEntropyValues(hints: readonly T[]): Promise<{
[key in T]: UADataValues[key]
}>;
}