You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							224 lines
						
					
					
						
							4.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							224 lines
						
					
					
						
							4.8 KiB
						
					
					
				
								/**
							 | 
						|
								 * Return array of browsers by selection queries.
							 | 
						|
								 *
							 | 
						|
								 * ```js
							 | 
						|
								 * browserslist('IE >= 10, IE 8') //=> ['ie 11', 'ie 10', 'ie 8']
							 | 
						|
								 * ```
							 | 
						|
								 *
							 | 
						|
								 * @param queries Browser queries.
							 | 
						|
								 * @param opts Options.
							 | 
						|
								 * @returns Array with browser names in Can I Use.
							 | 
						|
								 */
							 | 
						|
								declare function browserslist(
							 | 
						|
								  queries?: string | readonly string[] | null,
							 | 
						|
								  opts?: browserslist.Options
							 | 
						|
								): string[]
							 | 
						|
								
							 | 
						|
								declare namespace browserslist {
							 | 
						|
								  interface Query {
							 | 
						|
								    compose: 'or' | 'and'
							 | 
						|
								    type: string
							 | 
						|
								    query: string
							 | 
						|
								    not?: true
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  interface Options {
							 | 
						|
								    /**
							 | 
						|
								     * Path to processed file. It will be used to find config files.
							 | 
						|
								     */
							 | 
						|
								    path?: string | false
							 | 
						|
								    /**
							 | 
						|
								     * Processing environment. It will be used to take right queries
							 | 
						|
								     * from config file.
							 | 
						|
								     */
							 | 
						|
								    env?: string
							 | 
						|
								    /**
							 | 
						|
								     * Custom browser usage statistics for "> 1% in my stats" query.
							 | 
						|
								     */
							 | 
						|
								    stats?: Stats | string
							 | 
						|
								    /**
							 | 
						|
								     * Path to config file with queries.
							 | 
						|
								     */
							 | 
						|
								    config?: string
							 | 
						|
								    /**
							 | 
						|
								     * Do not throw on unknown version in direct query.
							 | 
						|
								     */
							 | 
						|
								    ignoreUnknownVersions?: boolean
							 | 
						|
								    /**
							 | 
						|
								     * Throw an error if env is not found.
							 | 
						|
								     */
							 | 
						|
								    throwOnMissing?: boolean
							 | 
						|
								    /**
							 | 
						|
								     * Disable security checks for extend query.
							 | 
						|
								     */
							 | 
						|
								    dangerousExtend?: boolean
							 | 
						|
								    /**
							 | 
						|
								     * Alias mobile browsers to the desktop version when Can I Use
							 | 
						|
								     * doesn’t have data about the specified version.
							 | 
						|
								     */
							 | 
						|
								    mobileToDesktop?: boolean
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  type Config = {
							 | 
						|
								    defaults: string[]
							 | 
						|
								    [section: string]: string[] | undefined
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  interface Stats {
							 | 
						|
								    [browser: string]: {
							 | 
						|
								      [version: string]: number
							 | 
						|
								    }
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Browser names aliases.
							 | 
						|
								   */
							 | 
						|
								  let aliases: {
							 | 
						|
								    [alias: string]: string | undefined
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Aliases to work with joined versions like `ios_saf 7.0-7.1`.
							 | 
						|
								   */
							 | 
						|
								  let versionAliases: {
							 | 
						|
								    [browser: string]:
							 | 
						|
								      | {
							 | 
						|
								          [version: string]: string | undefined
							 | 
						|
								        }
							 | 
						|
								      | undefined
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Can I Use only provides a few versions for some browsers (e.g. `and_chr`).
							 | 
						|
								   *
							 | 
						|
								   * Fallback to a similar browser for unknown versions.
							 | 
						|
								   */
							 | 
						|
								  let desktopNames: {
							 | 
						|
								    [browser: string]: string | undefined
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  let data: {
							 | 
						|
								    [browser: string]:
							 | 
						|
								      | {
							 | 
						|
								          name: string
							 | 
						|
								          versions: string[]
							 | 
						|
								          released: string[]
							 | 
						|
								          releaseDate: {
							 | 
						|
								            [version: string]: number | undefined | null
							 | 
						|
								          }
							 | 
						|
								        }
							 | 
						|
								      | undefined
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  let nodeVersions: string[]
							 | 
						|
								
							 | 
						|
								  interface Usage {
							 | 
						|
								    [version: string]: number
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  let usage: {
							 | 
						|
								    global?: Usage
							 | 
						|
								    custom?: Usage | null
							 | 
						|
								    [country: string]: Usage | undefined | null
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  let cache: {
							 | 
						|
								    [feature: string]: {
							 | 
						|
								      [name: string]: {
							 | 
						|
								        [version: string]: string
							 | 
						|
								      }
							 | 
						|
								    }
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Default browsers query
							 | 
						|
								   */
							 | 
						|
								  let defaults: readonly string[]
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Which statistics should be used. Country code or custom statistics.
							 | 
						|
								   * Pass `"my stats"` to load statistics from `Browserslist` files.
							 | 
						|
								   */
							 | 
						|
								  type StatsOptions = string | 'my stats' | Stats | { dataByBrowser: Stats }
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Return browsers market coverage.
							 | 
						|
								   *
							 | 
						|
								   * ```js
							 | 
						|
								   * browserslist.coverage(browserslist('> 1% in US'), 'US') //=> 83.1
							 | 
						|
								   * ```
							 | 
						|
								   *
							 | 
						|
								   * @param browsers Browsers names in Can I Use.
							 | 
						|
								   * @param stats Which statistics should be used.
							 | 
						|
								   * @returns Total market coverage for all selected browsers.
							 | 
						|
								   */
							 | 
						|
								  function coverage(browsers: readonly string[], stats?: StatsOptions): number
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Get queries AST to analyze the config content.
							 | 
						|
								   *
							 | 
						|
								   * @param queries Browser queries.
							 | 
						|
								   * @param opts Options.
							 | 
						|
								   * @returns An array of the data of each query in the config.
							 | 
						|
								   */
							 | 
						|
								  function parse(
							 | 
						|
								    queries?: string | readonly string[] | null,
							 | 
						|
								    opts?: browserslist.Options
							 | 
						|
								  ): Query[]
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Return queries for specific file inside the project.
							 | 
						|
								   *
							 | 
						|
								   * ```js
							 | 
						|
								   * browserslist.loadConfig({
							 | 
						|
								   *   file: process.cwd()
							 | 
						|
								   * }) ?? browserslist.defaults
							 | 
						|
								   * ```
							 | 
						|
								   */
							 | 
						|
								  function loadConfig(options: LoadConfigOptions): string[] | undefined
							 | 
						|
								
							 | 
						|
								  function clearCaches(): void
							 | 
						|
								
							 | 
						|
								  function parseConfig(string: string): Config
							 | 
						|
								
							 | 
						|
								  function readConfig(file: string): Config
							 | 
						|
								
							 | 
						|
								  function findConfig(...pathSegments: string[]): Config | undefined
							 | 
						|
								
							 | 
						|
								  function findConfigFile(...pathSegments: string[]): string | undefined
							 | 
						|
								
							 | 
						|
								  interface LoadConfigOptions {
							 | 
						|
								    /**
							 | 
						|
								     * Path to config file
							 | 
						|
								     * */
							 | 
						|
								    config?: string
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Path to file inside the project to find Browserslist config
							 | 
						|
								     * in closest folder
							 | 
						|
								     */
							 | 
						|
								    path?: string
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Environment to choose part of config.
							 | 
						|
								     */
							 | 
						|
								    env?: string
							 | 
						|
								  }
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								declare global {
							 | 
						|
								  namespace NodeJS {
							 | 
						|
								    interface ProcessEnv {
							 | 
						|
								      BROWSERSLIST?: string
							 | 
						|
								      BROWSERSLIST_CONFIG?: string
							 | 
						|
								      BROWSERSLIST_DANGEROUS_EXTEND?: string
							 | 
						|
								      BROWSERSLIST_DISABLE_CACHE?: string
							 | 
						|
								      BROWSERSLIST_ENV?: string
							 | 
						|
								      BROWSERSLIST_IGNORE_OLD_DATA?: string
							 | 
						|
								      BROWSERSLIST_STATS?: string
							 | 
						|
								      BROWSERSLIST_ROOT_PATH?: string
							 | 
						|
								    }
							 | 
						|
								  }
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								export = browserslist
							 | 
						|
								
							 |