forked from FINAKON/HelpProject
1. Initial Commit - a boiler plate code and POC to realize the concept of context sensitive help 2. Frontend code written in ReactJS 3. Backend code written in Java, Spring Boot Framework 4. Frontend Start: pre-requisites : node, npm npm run dev ==> to start the frontend vite server 5. Backend Start: pre-requisites : java, mvn mvn spring-boot:run ==> to start the backend server 6. Visit http://localhost:5173/ for basic demo of help, press F1 in textboxes 7. Visit http://localhost:5173/editor and enter "admin123" to add/modify texts. Happy Coding !!! Thank you, Bhargava.
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
|