| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 | /// <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;    asObject?: boolean;    url?: string | 'inline';}export function minify(files: string | string[] | { [file: string]: string }, options?: MinifyOptions): Promise<MinifyOutput>;
 |