diff --git a/index.d.ts b/index.d.ts index 49e797b..46c2230 100644 --- a/index.d.ts +++ b/index.d.ts @@ -6,219 +6,218 @@ export = Bowser; export as namespace Bowser; declare namespace Bowser { + /** + * Creates a Parser instance + * @param {string} UA - User agent string + * @param {boolean} skipParsing + */ - /** - * Creates a Parser instance - * @param {string} UA - User agent string - * @param {boolean} skipParsing - */ + function getParser(UA: string, skipParsing?: boolean): Parser.Parser; - function getParser(UA: string, skipParsing?: boolean): Parser.Parser; + /** + * Creates a Parser instance and runs Parser.getResult immediately + * @param UA - User agent string + * @returns {Parser.ParsedResult} + */ - /** - * Creates a Parser instance and runs Parser.getResult immediately - * @param UA - User agent string - * @returns {Parser.ParsedResult} - */ + function parse(UA: string): Parser.ParsedResult; - function parse(UA: string): Parser.ParsedResult; -} - -declare namespace Parser { - class Parser { - constructor(UA: string, skipParsing?: boolean); - - /** - * Get parsed browser object - * @return {BrowserDetails} Browser's details - */ - - getBrowser(): BrowserDetails; - - /** - * Get browser's name - * @return {String} Browser's name or an empty string - */ - - getBrowserName(): string; - - /** - * Get browser's version - * @return {String} version of browser - */ + namespace Parser { + interface Parser { + constructor(UA: string, skipParsing?: boolean): Parser.Parser; - getBrowserVersion(): string; + /** + * Get parsed browser object + * @return {BrowserDetails} Browser's details + */ - /** - * Get OS - * @return {OSDetails} - OS Details - * - * @example - * this.getOS(); // { - * // name: 'macOS', - * // version: '10.11.12', - * // } - */ + getBrowser(): BrowserDetails; - getOS(): OSDetails; + /** + * Get browser's name + * @return {String} Browser's name or an empty string + */ - /** - * Get OS name - * @param {Boolean} [toLowerCase] return lower-cased value - * @return {String} name of the OS — macOS, Windows, Linux, etc. - */ + getBrowserName(): string; - getOSName(toLowerCase?: boolean): string; + /** + * Get browser's version + * @return {String} version of browser + */ - /** - * Get OS version - * @return {String} full version with dots ('10.11.12', '5.6', etc) - */ - - getOSVersion(): string; + getBrowserVersion(): string; - /** - * Get parsed platform - * @returns {PlatformDetails} - */ + /** + * Get OS + * @return {OSDetails} - OS Details + * + * @example + * this.getOS(); // { + * // name: 'macOS', + * // version: '10.11.12', + * // } + */ - getPlatform(): PlatformDetails; + getOS(): OSDetails; - /** - * Get platform name - * @param {boolean} toLowerCase - */ - - getPlatformType(toLowerCase?: boolean): string; - - /** - * Get parsed engine - * @returns {EngineDetails} - */ - - getEngine(): EngineDetails; - - /** - * Get parsed result - * @return {ParsedResult} - */ - - getResult(): ParsedResult; - - /** - * Get UserAgent string of current Parser instance - * @return {String} User-Agent String of the current object - */ - - getUA(): string; - - /** - * Is anything? Check if the browser is called "anything", - * the OS called "anything" or the platform called "anything" - * @param {String} anything - * @returns {Boolean} - */ - - is(anything: any): boolean; - - /** - * Parse full information about the browser - */ - - parse(): void; - - /** - * Get parsed browser object - * @returns {BrowserDetails} - */ - - parseBrowser(): BrowserDetails; - - /** - * Get parsed engine - * @returns {EngineDetails} - */ - - parseEngine(): EngineDetails; - - /** - * Parse OS and save it to this.parsedResult.os - * @returns {OSDetails} - */ - - parseOS(): OSDetails; - - /** - * Get parsed platform - * @returns {PlatformDetails} - */ - - parsePlatform(): PlatformDetails; - - /** - * Check if parsed browser matches certain conditions - * - * @param {checkTree} checkTree It's one or two layered object, - * which can include a platform or an OS on the first layer - * and should have browsers specs on the bottom-laying layer - * - * @returns {Boolean|undefined} Whether the browser satisfies the set conditions or not. - * Returns `undefined` when the browser is no described in the checkTree object. - * - * @example - * const browser = new Bowser(UA); - * if (browser.check({chrome: '>118.01.1322' })) - * // or with os - * if (browser.check({windows: { chrome: '>118.01.1322' } })) - * // or with platforms - * if (browser.check({desktop: { chrome: '>118.01.1322' } })) - */ - - satisfies(checkTree: checkTree): boolean | undefined; - - /** - * Check if any of the given values satifies `.is(anything)` - * @param {string[]} anythings - * @returns {boolean} true if at least one condition is satisfied, false otherwise. - */ - - some(anythings: string[]): boolean | undefined; - - /** - * Test a UA string for a regexp - * @param regex - * @returns {boolean} true if the regex matches the UA, false otherwise. - */ - - test(regex: RegExp): boolean; - } - - interface ParsedResult { - browser: BrowserDetails; - os: OSDetails; - platform: PlatformDetails; - engine: EngineDetails; - } - - interface Details { - name?: string; - version?: string; - } - - interface OSDetails extends Details { - versionName?: string; - } - - interface PlatformDetails { - type?: string; - vendor?: string; - model?: string; - } - - type BrowserDetails = Details; - type EngineDetails = Details; - - interface checkTree { - [key: string]: any; - } + /** + * Get OS name + * @param {Boolean} [toLowerCase] return lower-cased value + * @return {String} name of the OS — macOS, Windows, Linux, etc. + */ + + getOSName(toLowerCase?: boolean): string; + + /** + * Get OS version + * @return {String} full version with dots ('10.11.12', '5.6', etc) + */ + + getOSVersion(): string; + + /** + * Get parsed platform + * @returns {PlatformDetails} + */ + + getPlatform(): PlatformDetails; + + /** + * Get platform name + * @param {boolean} toLowerCase + */ + + getPlatformType(toLowerCase?: boolean): string; + + /** + * Get parsed engine + * @returns {EngineDetails} + */ + + getEngine(): EngineDetails; + + /** + * Get parsed result + * @return {ParsedResult} + */ + + getResult(): ParsedResult; + + /** + * Get UserAgent string of current Parser instance + * @return {String} User-Agent String of the current object + */ + + getUA(): string; + + /** + * Is anything? Check if the browser is called "anything", + * the OS called "anything" or the platform called "anything" + * @param {String} anything + * @returns {Boolean} + */ + + is(anything: any): boolean; + + /** + * Parse full information about the browser + */ + + parse(): void; + + /** + * Get parsed browser object + * @returns {BrowserDetails} + */ + + parseBrowser(): BrowserDetails; + + /** + * Get parsed engine + * @returns {EngineDetails} + */ + + parseEngine(): EngineDetails; + + /** + * Parse OS and save it to this.parsedResult.os + * @returns {OSDetails} + */ + + parseOS(): OSDetails; + + /** + * Get parsed platform + * @returns {PlatformDetails} + */ + + parsePlatform(): PlatformDetails; + + /** + * Check if parsed browser matches certain conditions + * + * @param {checkTree} checkTree It's one or two layered object, + * which can include a platform or an OS on the first layer + * and should have browsers specs on the bottom-laying layer + * + * @returns {Boolean|undefined} Whether the browser satisfies the set conditions or not. + * Returns `undefined` when the browser is no described in the checkTree object. + * + * @example + * const browser = new Bowser(UA); + * if (browser.check({chrome: '>118.01.1322' })) + * // or with os + * if (browser.check({windows: { chrome: '>118.01.1322' } })) + * // or with platforms + * if (browser.check({desktop: { chrome: '>118.01.1322' } })) + */ + + satisfies(checkTree: checkTree): boolean | undefined; + + /** + * Check if any of the given values satifies `.is(anything)` + * @param {string[]} anythings + * @returns {boolean} true if at least one condition is satisfied, false otherwise. + */ + + some(anythings: string[]): boolean | undefined; + + /** + * Test a UA string for a regexp + * @param regex + * @returns {boolean} true if the regex matches the UA, false otherwise. + */ + + test(regex: RegExp): boolean; + } + + interface ParsedResult { + browser: BrowserDetails; + os: OSDetails; + platform: PlatformDetails; + engine: EngineDetails; + } + + interface Details { + name?: string; + version?: string; + } + + interface OSDetails extends Details { + versionName?: string; + } + + interface PlatformDetails { + type?: string; + vendor?: string; + model?: string; + } + + type BrowserDetails = Details; + type EngineDetails = Details; + + interface checkTree { + [key: string]: any; + } + } }