Standardize settings file naming and relocate documentation files Fix code quality violations from rsx:check Reorganize user_management directory into logical subdirectories Move Quill Bundle to core and align with Tom Select pattern Simplify Site Settings page to focus on core site information Complete Phase 5: Multi-tenant authentication with login flow and site selection Add route query parameter rule and synchronize filename validation logic Fix critical bug in UpdateNpmCommand causing missing JavaScript stubs Implement filename convention rule and resolve VS Code auto-rename conflict Implement js-sanitizer RPC server to eliminate 900+ Node.js process spawns Implement RPC server architecture for JavaScript parsing WIP: Add RPC server infrastructure for JS parsing (partial implementation) Update jqhtml terminology from destroy to stop, fix datagrid DOM preservation Add JQHTML-CLASS-01 rule and fix redundant class names Improve code quality rules and resolve violations Remove legacy fatal error format in favor of unified 'fatal' error type Filter internal keys from window.rsxapp output Update button styling and comprehensive form/modal documentation Add conditional fly-in animation for modals Fix non-deterministic bundle compilation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
225 lines
4.8 KiB
TypeScript
225 lines
4.8 KiB
TypeScript
/**
|
||
* 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
|