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.
		
		
		
		
		
			
		
			
				
					211 lines
				
				6.0 KiB
			
		
		
			
		
	
	
					211 lines
				
				6.0 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								/// <reference lib="es2015" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import { SectionedSourceMapInput, EncodedSourceMap, DecodedSourceMap } from '@jridgewell/source-map';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export type ECMA = 5 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								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?: boolean;
							 | 
						||
| 
								 | 
							
								    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;
							 | 
						||
| 
								 | 
							
								    loops?: boolean;
							 | 
						||
| 
								 | 
							
								    module?: boolean;
							 | 
						||
| 
								 | 
							
								    negate_iife?: boolean;
							 | 
						||
| 
								 | 
							
								    passes?: number;
							 | 
						||
| 
								 | 
							
								    properties?: boolean;
							 | 
						||
| 
								 | 
							
								    pure_funcs?: string[];
							 | 
						||
| 
								 | 
							
								    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;
							 | 
						||
| 
								 | 
							
								    url?: string | 'inline';
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export function minify(files: string | string[] | { [file: string]: string }, options?: MinifyOptions): Promise<MinifyOutput>;
							 |