218 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			218 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/// <reference lib="es2015" />
 | 
						|
 | 
						|
import { SectionedSourceMapInput, EncodedSourceMap, DecodedSourceMap } from '@jridgewell/source-map';
 | 
						|
 | 
						|
export type ECMA = 5 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020;
 | 
						|
 | 
						|
export type ConsoleProperty = keyof typeof console;
 | 
						|
type DropConsoleOption = boolean | ConsoleProperty[];
 | 
						|
 | 
						|
export interface ParseOptions {
 | 
						|
    bare_returns?: boolean;
 | 
						|
    /** @deprecated legacy option. Currently, all supported EcmaScript is valid to parse. */
 | 
						|
    ecma?: ECMA;
 | 
						|
    html5_comments?: boolean;
 | 
						|
    shebang?: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export interface CompressOptions {
 | 
						|
    arguments?: boolean;
 | 
						|
    arrows?: boolean;
 | 
						|
    booleans_as_integers?: boolean;
 | 
						|
    booleans?: boolean;
 | 
						|
    collapse_vars?: boolean;
 | 
						|
    comparisons?: boolean;
 | 
						|
    computed_props?: boolean;
 | 
						|
    conditionals?: boolean;
 | 
						|
    dead_code?: boolean;
 | 
						|
    defaults?: boolean;
 | 
						|
    directives?: boolean;
 | 
						|
    drop_console?: DropConsoleOption;
 | 
						|
    drop_debugger?: boolean;
 | 
						|
    ecma?: ECMA;
 | 
						|
    evaluate?: boolean;
 | 
						|
    expression?: boolean;
 | 
						|
    global_defs?: object;
 | 
						|
    hoist_funs?: boolean;
 | 
						|
    hoist_props?: boolean;
 | 
						|
    hoist_vars?: boolean;
 | 
						|
    ie8?: boolean;
 | 
						|
    if_return?: boolean;
 | 
						|
    inline?: boolean | InlineFunctions;
 | 
						|
    join_vars?: boolean;
 | 
						|
    keep_classnames?: boolean | RegExp;
 | 
						|
    keep_fargs?: boolean;
 | 
						|
    keep_fnames?: boolean | RegExp;
 | 
						|
    keep_infinity?: boolean;
 | 
						|
    lhs_constants?: boolean;
 | 
						|
    loops?: boolean;
 | 
						|
    module?: boolean;
 | 
						|
    negate_iife?: boolean;
 | 
						|
    passes?: number;
 | 
						|
    properties?: boolean;
 | 
						|
    pure_funcs?: string[];
 | 
						|
    pure_new?: boolean;
 | 
						|
    pure_getters?: boolean | 'strict';
 | 
						|
    reduce_funcs?: boolean;
 | 
						|
    reduce_vars?: boolean;
 | 
						|
    sequences?: boolean | number;
 | 
						|
    side_effects?: boolean;
 | 
						|
    switches?: boolean;
 | 
						|
    toplevel?: boolean;
 | 
						|
    top_retain?: null | string | string[] | RegExp;
 | 
						|
    typeofs?: boolean;
 | 
						|
    unsafe_arrows?: boolean;
 | 
						|
    unsafe?: boolean;
 | 
						|
    unsafe_comps?: boolean;
 | 
						|
    unsafe_Function?: boolean;
 | 
						|
    unsafe_math?: boolean;
 | 
						|
    unsafe_symbols?: boolean;
 | 
						|
    unsafe_methods?: boolean;
 | 
						|
    unsafe_proto?: boolean;
 | 
						|
    unsafe_regexp?: boolean;
 | 
						|
    unsafe_undefined?: boolean;
 | 
						|
    unused?: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export enum InlineFunctions {
 | 
						|
    Disabled = 0,
 | 
						|
    SimpleFunctions = 1,
 | 
						|
    WithArguments = 2,
 | 
						|
    WithArgumentsAndVariables = 3
 | 
						|
}
 | 
						|
 | 
						|
export interface MangleOptions {
 | 
						|
    eval?: boolean;
 | 
						|
    keep_classnames?: boolean | RegExp;
 | 
						|
    keep_fnames?: boolean | RegExp;
 | 
						|
    module?: boolean;
 | 
						|
    nth_identifier?: SimpleIdentifierMangler | WeightedIdentifierMangler;
 | 
						|
    properties?: boolean | ManglePropertiesOptions;
 | 
						|
    reserved?: string[];
 | 
						|
    safari10?: boolean;
 | 
						|
    toplevel?: boolean;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * An identifier mangler for which the output is invariant with respect to the source code.
 | 
						|
 */
 | 
						|
export interface SimpleIdentifierMangler {
 | 
						|
    /**
 | 
						|
     * Obtains the nth most favored (usually shortest) identifier to rename a variable to.
 | 
						|
     * The mangler will increment n and retry until the return value is not in use in scope, and is not a reserved word.
 | 
						|
     * This function is expected to be stable; Evaluating get(n) === get(n) should always return true.
 | 
						|
     * @param n The ordinal of the identifier.
 | 
						|
     */
 | 
						|
    get(n: number): string;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * An identifier mangler that leverages character frequency analysis to determine identifier precedence.
 | 
						|
 */
 | 
						|
export interface WeightedIdentifierMangler extends SimpleIdentifierMangler {
 | 
						|
    /**
 | 
						|
     * Modifies the internal weighting of the input characters by the specified delta.
 | 
						|
     * Will be invoked on the entire printed AST, and then deduct mangleable identifiers.
 | 
						|
     * @param chars The characters to modify the weighting of.
 | 
						|
     * @param delta The numeric weight to add to the characters.
 | 
						|
     */
 | 
						|
    consider(chars: string, delta: number): number;
 | 
						|
    /**
 | 
						|
     * Resets character weights.
 | 
						|
     */
 | 
						|
    reset(): void;
 | 
						|
    /**
 | 
						|
     * Sorts identifiers by character frequency, in preparation for calls to get(n).
 | 
						|
     */
 | 
						|
    sort(): void;
 | 
						|
}
 | 
						|
 | 
						|
export interface ManglePropertiesOptions {
 | 
						|
    builtins?: boolean;
 | 
						|
    debug?: boolean;
 | 
						|
    keep_quoted?: boolean | 'strict';
 | 
						|
    nth_identifier?: SimpleIdentifierMangler | WeightedIdentifierMangler;
 | 
						|
    regex?: RegExp | string;
 | 
						|
    reserved?: string[];
 | 
						|
}
 | 
						|
 | 
						|
export interface FormatOptions {
 | 
						|
    ascii_only?: boolean;
 | 
						|
    /** @deprecated Not implemented anymore */
 | 
						|
    beautify?: boolean;
 | 
						|
    braces?: boolean;
 | 
						|
    comments?: boolean | 'all' | 'some' | RegExp | ( (node: any, comment: {
 | 
						|
        value: string,
 | 
						|
        type: 'comment1' | 'comment2' | 'comment3' | 'comment4',
 | 
						|
        pos: number,
 | 
						|
        line: number,
 | 
						|
        col: number,
 | 
						|
    }) => boolean );
 | 
						|
    ecma?: ECMA;
 | 
						|
    ie8?: boolean;
 | 
						|
    keep_numbers?: boolean;
 | 
						|
    indent_level?: number;
 | 
						|
    indent_start?: number;
 | 
						|
    inline_script?: boolean;
 | 
						|
    keep_quoted_props?: boolean;
 | 
						|
    max_line_len?: number | false;
 | 
						|
    preamble?: string;
 | 
						|
    preserve_annotations?: boolean;
 | 
						|
    quote_keys?: boolean;
 | 
						|
    quote_style?: OutputQuoteStyle;
 | 
						|
    safari10?: boolean;
 | 
						|
    semicolons?: boolean;
 | 
						|
    shebang?: boolean;
 | 
						|
    shorthand?: boolean;
 | 
						|
    source_map?: SourceMapOptions;
 | 
						|
    webkit?: boolean;
 | 
						|
    width?: number;
 | 
						|
    wrap_iife?: boolean;
 | 
						|
    wrap_func_args?: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export enum OutputQuoteStyle {
 | 
						|
    PreferDouble = 0,
 | 
						|
    AlwaysSingle = 1,
 | 
						|
    AlwaysDouble = 2,
 | 
						|
    AlwaysOriginal = 3
 | 
						|
}
 | 
						|
 | 
						|
export interface MinifyOptions {
 | 
						|
    compress?: boolean | CompressOptions;
 | 
						|
    ecma?: ECMA;
 | 
						|
    enclose?: boolean | string;
 | 
						|
    ie8?: boolean;
 | 
						|
    keep_classnames?: boolean | RegExp;
 | 
						|
    keep_fnames?: boolean | RegExp;
 | 
						|
    mangle?: boolean | MangleOptions;
 | 
						|
    module?: boolean;
 | 
						|
    nameCache?: object;
 | 
						|
    format?: FormatOptions;
 | 
						|
    /** @deprecated */
 | 
						|
    output?: FormatOptions;
 | 
						|
    parse?: ParseOptions;
 | 
						|
    safari10?: boolean;
 | 
						|
    sourceMap?: boolean | SourceMapOptions;
 | 
						|
    toplevel?: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export interface MinifyOutput {
 | 
						|
    code?: string;
 | 
						|
    map?: EncodedSourceMap | string;
 | 
						|
    decoded_map?: DecodedSourceMap | null;
 | 
						|
}
 | 
						|
 | 
						|
export interface SourceMapOptions {
 | 
						|
    /** Source map object, 'inline' or source map file content */
 | 
						|
    content?: SectionedSourceMapInput | string;
 | 
						|
    includeSources?: boolean;
 | 
						|
    filename?: string;
 | 
						|
    root?: string;
 | 
						|
    asObject?: boolean;
 | 
						|
    url?: string | 'inline';
 | 
						|
}
 | 
						|
 | 
						|
export function minify(files: string | string[] | { [file: string]: string }, options?: MinifyOptions): Promise<MinifyOutput>;
 | 
						|
export function minify_sync(files: string | string[] | { [file: string]: string }, options?: MinifyOptions): MinifyOutput;
 |