add build
This commit is contained in:
28
node_modules/terser/CHANGELOG.md
generated
vendored
Normal file
28
node_modules/terser/CHANGELOG.md
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
# Changelog
|
||||
|
||||
## v3.17.0
|
||||
|
||||
- More DOM properties added to --mangle-properties's DOM property list
|
||||
- Closed issue where if 2 functions had the same argument name, Terser would not inline them together properly
|
||||
- Fixed issue with `hasOwnProperty.call`
|
||||
- You can now list files to minify in a Terser config file
|
||||
- Started replacing `new Array(<number>)` with an array literal
|
||||
- Started using ES6 capabilities like `Set` and the `includes` method for strings and arrays
|
||||
|
||||
## v3.16.1
|
||||
|
||||
- Fixed issue where Terser being imported with `import` would cause it not to work due to the `__esModule` property. (PR #254 was submitted, which was nice, but since it wasn't a pure commonJS approach I decided to go with my own solution)
|
||||
|
||||
## v3.16.0
|
||||
|
||||
- No longer leaves names like Array or Object or window as a SimpleStatement (statement which is just a single expression).
|
||||
- Add support for sections sourcemaps (IndexedSourceMapConsumer)
|
||||
- Drops node.js v4 and starts using commonJS
|
||||
- Is now built with rollup
|
||||
|
||||
## v3.15.0
|
||||
|
||||
- Inlined spread syntax (`[...[1, 2, 3], 4, 5] => [1, 2, 3, 4, 5]`) in arrays and objects.
|
||||
- Fixed typo in compressor warning
|
||||
- Fixed inline source map input bug
|
||||
- Fixed parsing of template literals with unnecessary escapes (Like `\\a`)
|
29
node_modules/terser/LICENSE
generated
vendored
Normal file
29
node_modules/terser/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
UglifyJS is released under the BSD license:
|
||||
|
||||
Copyright 2012-2018 (c) Mihai Bazon <mihai.bazon@gmail.com>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY
|
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
||||
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
5
node_modules/terser/PATRONS.md
generated
vendored
Normal file
5
node_modules/terser/PATRONS.md
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
* 38elements
|
||||
* CKEditor
|
||||
* Philippe Léger
|
||||
* Piotrek Koszuliński
|
||||
* Viktor Hubert
|
1305
node_modules/terser/README.md
generated
vendored
Normal file
1305
node_modules/terser/README.md
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
484
node_modules/terser/bin/uglifyjs
generated
vendored
Normal file
484
node_modules/terser/bin/uglifyjs
generated
vendored
Normal file
@@ -0,0 +1,484 @@
|
||||
#!/usr/bin/env node
|
||||
// -*- js -*-
|
||||
/* eslint-env node */
|
||||
|
||||
"use strict";
|
||||
|
||||
require("../tools/exit.js");
|
||||
|
||||
var fs = require("fs");
|
||||
var info = require("../package.json");
|
||||
var path = require("path");
|
||||
var program = require("commander");
|
||||
|
||||
var bundle_path = __dirname + (process.env.TERSER_NO_BUNDLE ?
|
||||
"/../dist/bundle.js" :
|
||||
"/../dist/bundle.min.js");
|
||||
var UglifyJS = require(bundle_path);
|
||||
try {
|
||||
require("source-map-support").install();
|
||||
} catch (err) {}
|
||||
|
||||
var skip_keys = [ "cname", "inlined", "parent_scope", "scope", "uses_eval", "uses_with" ];
|
||||
var files = {};
|
||||
var options = {
|
||||
compress: false,
|
||||
mangle: false
|
||||
};
|
||||
program.version(info.name + " " + info.version);
|
||||
program.parseArgv = program.parse;
|
||||
program.parse = undefined;
|
||||
if (process.argv.includes("ast")) program.helpInformation = describe_ast;
|
||||
else if (process.argv.includes("options")) program.helpInformation = function() {
|
||||
var text = [];
|
||||
var options = UglifyJS.default_options();
|
||||
for (var option in options) {
|
||||
text.push("--" + (option === "output" ? "beautify" : option === "sourceMap" ? "source-map" : option) + " options:");
|
||||
text.push(format_object(options[option]));
|
||||
text.push("");
|
||||
}
|
||||
return text.join("\n");
|
||||
};
|
||||
program.option("-p, --parse <options>", "Specify parser options.", parse_js());
|
||||
program.option("-c, --compress [options]", "Enable compressor/specify compressor options.", parse_js());
|
||||
program.option("-m, --mangle [options]", "Mangle names/specify mangler options.", parse_js());
|
||||
program.option("--mangle-props [options]", "Mangle properties/specify mangler options.", parse_js());
|
||||
program.option("-b, --beautify [options]", "Beautify output/specify output options.", parse_js());
|
||||
program.option("-o, --output <file>", "Output file (default STDOUT).");
|
||||
program.option("--comments [filter]", "Preserve copyright comments in the output.");
|
||||
program.option("--config-file <file>", "Read minify() options from JSON file.");
|
||||
program.option("-d, --define <expr>[=value]", "Global definitions.", parse_js("define"));
|
||||
program.option("--ecma <version>", "Specify ECMAScript release: 5, 6, 7 or 8.");
|
||||
program.option("-e, --enclose [arg[,...][:value[,...]]]", "Embed output in a big function with configurable arguments and values.");
|
||||
program.option("--ie8", "Support non-standard Internet Explorer 8.");
|
||||
program.option("--keep-classnames", "Do not mangle/drop class names.");
|
||||
program.option("--keep-fnames", "Do not mangle/drop function names. Useful for code relying on Function.prototype.name.");
|
||||
program.option("--module", "Input is an ES6 module");
|
||||
program.option("--name-cache <file>", "File to hold mangled name mappings.");
|
||||
program.option("--rename", "Force symbol expansion.");
|
||||
program.option("--no-rename", "Disable symbol expansion.");
|
||||
program.option("--safari10", "Support non-standard Safari 10.");
|
||||
program.option("--source-map [options]", "Enable source map/specify source map options.", parse_source_map());
|
||||
program.option("--timings", "Display operations run time on STDERR.");
|
||||
program.option("--toplevel", "Compress and/or mangle variables in toplevel scope.");
|
||||
program.option("--verbose", "Print diagnostic messages.");
|
||||
program.option("--warn", "Print warning messages.");
|
||||
program.option("--wrap <name>", "Embed everything as a function with “exports” corresponding to “name” globally.");
|
||||
program.arguments("[files...]").parseArgv(process.argv);
|
||||
if (program.configFile) {
|
||||
options = JSON.parse(read_file(program.configFile));
|
||||
}
|
||||
if (!program.output && program.sourceMap && program.sourceMap.url != "inline") {
|
||||
fatal("ERROR: cannot write source map to STDOUT");
|
||||
}
|
||||
[
|
||||
"compress",
|
||||
"enclose",
|
||||
"ie8",
|
||||
"mangle",
|
||||
"module",
|
||||
"safari10",
|
||||
"sourceMap",
|
||||
"toplevel",
|
||||
"wrap"
|
||||
].forEach(function(name) {
|
||||
if (name in program) {
|
||||
options[name] = program[name];
|
||||
}
|
||||
});
|
||||
if ("ecma" in program) {
|
||||
if (program.ecma != (program.ecma | 0)) fatal("ERROR: ecma must be an integer");
|
||||
options.ecma = program.ecma | 0;
|
||||
}
|
||||
if (program.beautify) {
|
||||
options.output = typeof program.beautify == "object" ? program.beautify : {};
|
||||
if (!("beautify" in options.output)) {
|
||||
options.output.beautify = true;
|
||||
}
|
||||
}
|
||||
if (program.comments) {
|
||||
if (typeof options.output != "object") options.output = {};
|
||||
options.output.comments = typeof program.comments == "string" ? program.comments : "some";
|
||||
}
|
||||
if (program.define) {
|
||||
if (typeof options.compress != "object") options.compress = {};
|
||||
if (typeof options.compress.global_defs != "object") options.compress.global_defs = {};
|
||||
for (var expr in program.define) {
|
||||
options.compress.global_defs[expr] = program.define[expr];
|
||||
}
|
||||
}
|
||||
if (program.keepClassnames) {
|
||||
options.keep_classnames = true;
|
||||
}
|
||||
if (program.keepFnames) {
|
||||
options.keep_fnames = true;
|
||||
}
|
||||
if (program.mangleProps) {
|
||||
if (program.mangleProps.domprops) {
|
||||
delete program.mangleProps.domprops;
|
||||
} else {
|
||||
if (typeof program.mangleProps != "object") program.mangleProps = {};
|
||||
if (!Array.isArray(program.mangleProps.reserved)) program.mangleProps.reserved = [];
|
||||
}
|
||||
if (typeof options.mangle != "object") options.mangle = {};
|
||||
options.mangle.properties = program.mangleProps;
|
||||
}
|
||||
if (program.nameCache) {
|
||||
options.nameCache = JSON.parse(read_file(program.nameCache, "{}"));
|
||||
}
|
||||
if (program.output == "ast") {
|
||||
options.output = {
|
||||
ast: true,
|
||||
code: false
|
||||
};
|
||||
}
|
||||
if (program.parse) {
|
||||
if (!program.parse.acorn && !program.parse.spidermonkey) {
|
||||
options.parse = program.parse;
|
||||
} else if (program.sourceMap && program.sourceMap.content == "inline") {
|
||||
fatal("ERROR: inline source map only works with built-in parser");
|
||||
}
|
||||
}
|
||||
if (~program.rawArgs.indexOf("--rename")) {
|
||||
options.rename = true;
|
||||
} else if (!program.rename) {
|
||||
options.rename = false;
|
||||
}
|
||||
var convert_path = function(name) {
|
||||
return name;
|
||||
};
|
||||
if (typeof program.sourceMap == "object" && "base" in program.sourceMap) {
|
||||
convert_path = function() {
|
||||
var base = program.sourceMap.base;
|
||||
delete options.sourceMap.base;
|
||||
return function(name) {
|
||||
return path.relative(base, name);
|
||||
};
|
||||
}();
|
||||
}
|
||||
if (program.verbose) {
|
||||
options.warnings = "verbose";
|
||||
} else if (program.warn) {
|
||||
options.warnings = true;
|
||||
}
|
||||
|
||||
let filesList;
|
||||
if (options.files && options.files.length) {
|
||||
filesList = options.files;
|
||||
|
||||
delete options.files;
|
||||
} else if (program.args.length) {
|
||||
filesList = program.args;
|
||||
}
|
||||
|
||||
if (filesList) {
|
||||
simple_glob(filesList).forEach(function(name) {
|
||||
files[convert_path(name)] = read_file(name);
|
||||
});
|
||||
run();
|
||||
} else {
|
||||
var chunks = [];
|
||||
process.stdin.setEncoding("utf8");
|
||||
process.stdin.on("data", function(chunk) {
|
||||
chunks.push(chunk);
|
||||
}).on("end", function() {
|
||||
files = [ chunks.join("") ];
|
||||
run();
|
||||
});
|
||||
process.stdin.resume();
|
||||
}
|
||||
|
||||
function convert_ast(fn) {
|
||||
return UglifyJS.AST_Node.from_mozilla_ast(Object.keys(files).reduce(fn, null));
|
||||
}
|
||||
|
||||
function run() {
|
||||
UglifyJS.AST_Node.warn_function = function(msg) {
|
||||
print_error("WARN: " + msg);
|
||||
};
|
||||
if (program.timings) options.timings = true;
|
||||
try {
|
||||
if (program.parse) {
|
||||
if (program.parse.acorn) {
|
||||
files = convert_ast(function(toplevel, name) {
|
||||
return require("acorn").parse(files[name], {
|
||||
ecmaVersion: 2018,
|
||||
locations: true,
|
||||
program: toplevel,
|
||||
sourceFile: name,
|
||||
sourceType: options.module || program.parse.module ? "module" : "script"
|
||||
});
|
||||
});
|
||||
} else if (program.parse.spidermonkey) {
|
||||
files = convert_ast(function(toplevel, name) {
|
||||
var obj = JSON.parse(files[name]);
|
||||
if (!toplevel) return obj;
|
||||
toplevel.body = toplevel.body.concat(obj.body);
|
||||
return toplevel;
|
||||
});
|
||||
}
|
||||
}
|
||||
} catch (ex) {
|
||||
fatal(ex);
|
||||
}
|
||||
var result = UglifyJS.minify(files, options);
|
||||
if (result.error) {
|
||||
var ex = result.error;
|
||||
if (ex.name == "SyntaxError") {
|
||||
print_error("Parse error at " + ex.filename + ":" + ex.line + "," + ex.col);
|
||||
var col = ex.col;
|
||||
var lines = files[ex.filename].split(/\r?\n/);
|
||||
var line = lines[ex.line - 1];
|
||||
if (!line && !col) {
|
||||
line = lines[ex.line - 2];
|
||||
col = line.length;
|
||||
}
|
||||
if (line) {
|
||||
var limit = 70;
|
||||
if (col > limit) {
|
||||
line = line.slice(col - limit);
|
||||
col = limit;
|
||||
}
|
||||
print_error(line.slice(0, 80));
|
||||
print_error(line.slice(0, col).replace(/\S/g, " ") + "^");
|
||||
}
|
||||
}
|
||||
if (ex.defs) {
|
||||
print_error("Supported options:");
|
||||
print_error(format_object(ex.defs));
|
||||
}
|
||||
fatal(ex);
|
||||
} else if (program.output == "ast") {
|
||||
if (!options.compress && !options.mangle) {
|
||||
result.ast.figure_out_scope({});
|
||||
}
|
||||
print(JSON.stringify(result.ast, function(key, value) {
|
||||
if (value) switch (key) {
|
||||
case "thedef":
|
||||
return symdef(value);
|
||||
case "enclosed":
|
||||
return value.length ? value.map(symdef) : undefined;
|
||||
case "variables":
|
||||
case "functions":
|
||||
case "globals":
|
||||
return value.size() ? value.map(symdef) : undefined;
|
||||
}
|
||||
if (skip_key(key)) return;
|
||||
if (value instanceof UglifyJS.AST_Token) return;
|
||||
if (value instanceof UglifyJS.Dictionary) return;
|
||||
if (value instanceof UglifyJS.AST_Node) {
|
||||
var result = {
|
||||
_class: "AST_" + value.TYPE
|
||||
};
|
||||
if (value.block_scope) {
|
||||
result.variables = value.block_scope.variables;
|
||||
result.functions = value.block_scope.functions;
|
||||
result.enclosed = value.block_scope.enclosed;
|
||||
}
|
||||
value.CTOR.PROPS.forEach(function(prop) {
|
||||
result[prop] = value[prop];
|
||||
});
|
||||
return result;
|
||||
}
|
||||
return value;
|
||||
}, 2));
|
||||
} else if (program.output == "spidermonkey") {
|
||||
print(JSON.stringify(UglifyJS.minify(result.code, {
|
||||
compress: false,
|
||||
mangle: false,
|
||||
output: {
|
||||
ast: true,
|
||||
code: false
|
||||
}
|
||||
}).ast.to_mozilla_ast(), null, 2));
|
||||
} else if (program.output) {
|
||||
fs.writeFileSync(program.output, result.code);
|
||||
if (result.map) {
|
||||
fs.writeFileSync(program.output + ".map", result.map);
|
||||
}
|
||||
} else {
|
||||
print(result.code);
|
||||
}
|
||||
if (program.nameCache) {
|
||||
fs.writeFileSync(program.nameCache, JSON.stringify(options.nameCache));
|
||||
}
|
||||
if (result.timings) for (var phase in result.timings) {
|
||||
print_error("- " + phase + ": " + result.timings[phase].toFixed(3) + "s");
|
||||
}
|
||||
}
|
||||
|
||||
function fatal(message) {
|
||||
if (message instanceof Error) message = message.stack.replace(/^\S*?Error:/, "ERROR:");
|
||||
print_error(message);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// A file glob function that only supports "*" and "?" wildcards in the basename.
|
||||
// Example: "foo/bar/*baz??.*.js"
|
||||
// Argument `glob` may be a string or an array of strings.
|
||||
// Returns an array of strings. Garbage in, garbage out.
|
||||
function simple_glob(glob) {
|
||||
if (Array.isArray(glob)) {
|
||||
return [].concat.apply([], glob.map(simple_glob));
|
||||
}
|
||||
if (glob && glob.match(/[*?]/)) {
|
||||
var dir = path.dirname(glob);
|
||||
try {
|
||||
var entries = fs.readdirSync(dir);
|
||||
} catch (ex) {}
|
||||
if (entries) {
|
||||
var pattern = "^" + path.basename(glob)
|
||||
.replace(/[.+^$[\]\\(){}]/g, "\\$&")
|
||||
.replace(/\*/g, "[^/\\\\]*")
|
||||
.replace(/\?/g, "[^/\\\\]") + "$";
|
||||
var mod = process.platform === "win32" ? "i" : "";
|
||||
var rx = new RegExp(pattern, mod);
|
||||
var results = entries.filter(function(name) {
|
||||
return rx.test(name);
|
||||
}).map(function(name) {
|
||||
return path.join(dir, name);
|
||||
});
|
||||
if (results.length) return results;
|
||||
}
|
||||
}
|
||||
return [ glob ];
|
||||
}
|
||||
|
||||
function read_file(path, default_value) {
|
||||
try {
|
||||
return fs.readFileSync(path, "utf8");
|
||||
} catch (ex) {
|
||||
if ((ex.code == "ENOENT" || ex.code == "ENAMETOOLONG") && default_value != null) return default_value;
|
||||
fatal(ex);
|
||||
}
|
||||
}
|
||||
|
||||
function parse_js(flag) {
|
||||
return function(value, options) {
|
||||
options = options || {};
|
||||
try {
|
||||
UglifyJS.minify(value, {
|
||||
parse: {
|
||||
expression: true
|
||||
},
|
||||
compress: false,
|
||||
mangle: false,
|
||||
output: {
|
||||
ast: true,
|
||||
code: false
|
||||
}
|
||||
}).ast.walk(new UglifyJS.TreeWalker(function(node) {
|
||||
if (node instanceof UglifyJS.AST_Assign) {
|
||||
var name = node.left.print_to_string();
|
||||
var value = node.right;
|
||||
if (flag) {
|
||||
options[name] = value;
|
||||
} else if (value instanceof UglifyJS.AST_Array) {
|
||||
options[name] = value.elements.map(to_string);
|
||||
} else {
|
||||
options[name] = to_string(value);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (node instanceof UglifyJS.AST_Symbol || node instanceof UglifyJS.AST_PropAccess) {
|
||||
var name = node.print_to_string();
|
||||
options[name] = true;
|
||||
return true;
|
||||
}
|
||||
if (!(node instanceof UglifyJS.AST_Sequence)) throw node;
|
||||
|
||||
function to_string(value) {
|
||||
return value instanceof UglifyJS.AST_Constant ? value.getValue() : value.print_to_string({
|
||||
quote_keys: true
|
||||
});
|
||||
}
|
||||
}));
|
||||
} catch(ex) {
|
||||
if (flag) {
|
||||
fatal("Error parsing arguments for '" + flag + "': " + value);
|
||||
} else {
|
||||
options[value] = null;
|
||||
}
|
||||
}
|
||||
return options;
|
||||
};
|
||||
}
|
||||
|
||||
function parse_source_map() {
|
||||
var parse = parse_js();
|
||||
return function(value, options) {
|
||||
var hasContent = options && "content" in options;
|
||||
var settings = parse(value, options);
|
||||
if (!hasContent && settings.content && settings.content != "inline") {
|
||||
settings.content = read_file(settings.content, settings.content);
|
||||
}
|
||||
return settings;
|
||||
};
|
||||
}
|
||||
|
||||
function skip_key(key) {
|
||||
return skip_keys.includes(key);
|
||||
}
|
||||
|
||||
function symdef(def) {
|
||||
var ret = (1e6 + def.id) + " " + def.name;
|
||||
if (def.mangled_name) ret += " " + def.mangled_name;
|
||||
return ret;
|
||||
}
|
||||
|
||||
function format_object(obj) {
|
||||
var lines = [];
|
||||
var padding = "";
|
||||
Object.keys(obj).map(function(name) {
|
||||
if (padding.length < name.length) padding = Array(name.length + 1).join(" ");
|
||||
return [ name, JSON.stringify(obj[name]) ];
|
||||
}).forEach(function(tokens) {
|
||||
lines.push(" " + tokens[0] + padding.slice(tokens[0].length - 2) + tokens[1]);
|
||||
});
|
||||
return lines.join("\n");
|
||||
}
|
||||
|
||||
function print_error(msg) {
|
||||
process.stderr.write(msg);
|
||||
process.stderr.write("\n");
|
||||
}
|
||||
|
||||
function print(txt) {
|
||||
process.stdout.write(txt);
|
||||
process.stdout.write("\n");
|
||||
}
|
||||
|
||||
function describe_ast() {
|
||||
var out = UglifyJS.OutputStream({ beautify: true });
|
||||
function doitem(ctor) {
|
||||
out.print("AST_" + ctor.TYPE);
|
||||
var props = ctor.SELF_PROPS.filter(function(prop) {
|
||||
return !/^\$/.test(prop);
|
||||
});
|
||||
if (props.length > 0) {
|
||||
out.space();
|
||||
out.with_parens(function() {
|
||||
props.forEach(function(prop, i) {
|
||||
if (i) out.space();
|
||||
out.print(prop);
|
||||
});
|
||||
});
|
||||
}
|
||||
if (ctor.documentation) {
|
||||
out.space();
|
||||
out.print_string(ctor.documentation);
|
||||
}
|
||||
if (ctor.SUBCLASSES.length > 0) {
|
||||
out.space();
|
||||
out.with_block(function() {
|
||||
ctor.SUBCLASSES.forEach(function(ctor, i) {
|
||||
out.indent();
|
||||
doitem(ctor);
|
||||
out.newline();
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
doitem(UglifyJS.AST_Node);
|
||||
return out + "\n";
|
||||
}
|
4
node_modules/terser/bin/uglifyjsnobundle
generated
vendored
Normal file
4
node_modules/terser/bin/uglifyjsnobundle
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env node
|
||||
/* eslint-env node */
|
||||
process.env.TERSER_NO_BUNDLE = "1";
|
||||
require("./uglifyjs");
|
408
node_modules/terser/node_modules/commander/CHANGELOG.md
generated
vendored
Normal file
408
node_modules/terser/node_modules/commander/CHANGELOG.md
generated
vendored
Normal file
@@ -0,0 +1,408 @@
|
||||
|
||||
2.20.0 / 2019-04-02
|
||||
==================
|
||||
|
||||
* fix: resolve symbolic links completely when hunting for subcommands (#935)
|
||||
* Update index.d.ts (#930)
|
||||
* Update Readme.md (#924)
|
||||
* Remove --save option as it isn't required anymore (#918)
|
||||
* Add link to the license file (#900)
|
||||
* Added example of receiving args from options (#858)
|
||||
* Added missing semicolon (#882)
|
||||
* Add extension to .eslintrc (#876)
|
||||
|
||||
2.19.0 / 2018-10-02
|
||||
==================
|
||||
|
||||
* Removed newline after Options and Commands headers (#864)
|
||||
* Bugfix - Error output (#862)
|
||||
* Fix to change default value to string (#856)
|
||||
|
||||
2.18.0 / 2018-09-07
|
||||
==================
|
||||
|
||||
* Standardize help output (#853)
|
||||
* chmod 644 travis.yml (#851)
|
||||
* add support for execute typescript subcommand via ts-node (#849)
|
||||
|
||||
2.17.1 / 2018-08-07
|
||||
==================
|
||||
|
||||
* Fix bug in command emit (#844)
|
||||
|
||||
2.17.0 / 2018-08-03
|
||||
==================
|
||||
|
||||
* fixed newline output after help information (#833)
|
||||
* Fix to emit the action even without command (#778)
|
||||
* npm update (#823)
|
||||
|
||||
2.16.0 / 2018-06-29
|
||||
==================
|
||||
|
||||
* Remove Makefile and `test/run` (#821)
|
||||
* Make 'npm test' run on Windows (#820)
|
||||
* Add badge to display install size (#807)
|
||||
* chore: cache node_modules (#814)
|
||||
* chore: remove Node.js 4 (EOL), add Node.js 10 (#813)
|
||||
* fixed typo in readme (#812)
|
||||
* Fix types (#804)
|
||||
* Update eslint to resolve vulnerabilities in lodash (#799)
|
||||
* updated readme with custom event listeners. (#791)
|
||||
* fix tests (#794)
|
||||
|
||||
2.15.0 / 2018-03-07
|
||||
==================
|
||||
|
||||
* Update downloads badge to point to graph of downloads over time instead of duplicating link to npm
|
||||
* Arguments description
|
||||
|
||||
2.14.1 / 2018-02-07
|
||||
==================
|
||||
|
||||
* Fix typing of help function
|
||||
|
||||
2.14.0 / 2018-02-05
|
||||
==================
|
||||
|
||||
* only register the option:version event once
|
||||
* Fixes issue #727: Passing empty string for option on command is set to undefined
|
||||
* enable eqeqeq rule
|
||||
* resolves #754 add linter configuration to project
|
||||
* resolves #560 respect custom name for version option
|
||||
* document how to override the version flag
|
||||
* document using options per command
|
||||
|
||||
2.13.0 / 2018-01-09
|
||||
==================
|
||||
|
||||
* Do not print default for --no-
|
||||
* remove trailing spaces in command help
|
||||
* Update CI's Node.js to LTS and latest version
|
||||
* typedefs: Command and Option types added to commander namespace
|
||||
|
||||
2.12.2 / 2017-11-28
|
||||
==================
|
||||
|
||||
* fix: typings are not shipped
|
||||
|
||||
2.12.1 / 2017-11-23
|
||||
==================
|
||||
|
||||
* Move @types/node to dev dependency
|
||||
|
||||
2.12.0 / 2017-11-22
|
||||
==================
|
||||
|
||||
* add attributeName() method to Option objects
|
||||
* Documentation updated for options with --no prefix
|
||||
* typings: `outputHelp` takes a string as the first parameter
|
||||
* typings: use overloads
|
||||
* feat(typings): update to match js api
|
||||
* Print default value in option help
|
||||
* Fix translation error
|
||||
* Fail when using same command and alias (#491)
|
||||
* feat(typings): add help callback
|
||||
* fix bug when description is add after command with options (#662)
|
||||
* Format js code
|
||||
* Rename History.md to CHANGELOG.md (#668)
|
||||
* feat(typings): add typings to support TypeScript (#646)
|
||||
* use current node
|
||||
|
||||
2.11.0 / 2017-07-03
|
||||
==================
|
||||
|
||||
* Fix help section order and padding (#652)
|
||||
* feature: support for signals to subcommands (#632)
|
||||
* Fixed #37, --help should not display first (#447)
|
||||
* Fix translation errors. (#570)
|
||||
* Add package-lock.json
|
||||
* Remove engines
|
||||
* Upgrade package version
|
||||
* Prefix events to prevent conflicts between commands and options (#494)
|
||||
* Removing dependency on graceful-readlink
|
||||
* Support setting name in #name function and make it chainable
|
||||
* Add .vscode directory to .gitignore (Visual Studio Code metadata)
|
||||
* Updated link to ruby commander in readme files
|
||||
|
||||
2.10.0 / 2017-06-19
|
||||
==================
|
||||
|
||||
* Update .travis.yml. drop support for older node.js versions.
|
||||
* Fix require arguments in README.md
|
||||
* On SemVer you do not start from 0.0.1
|
||||
* Add missing semi colon in readme
|
||||
* Add save param to npm install
|
||||
* node v6 travis test
|
||||
* Update Readme_zh-CN.md
|
||||
* Allow literal '--' to be passed-through as an argument
|
||||
* Test subcommand alias help
|
||||
* link build badge to master branch
|
||||
* Support the alias of Git style sub-command
|
||||
* added keyword commander for better search result on npm
|
||||
* Fix Sub-Subcommands
|
||||
* test node.js stable
|
||||
* Fixes TypeError when a command has an option called `--description`
|
||||
* Update README.md to make it beginner friendly and elaborate on the difference between angled and square brackets.
|
||||
* Add chinese Readme file
|
||||
|
||||
2.9.0 / 2015-10-13
|
||||
==================
|
||||
|
||||
* Add option `isDefault` to set default subcommand #415 @Qix-
|
||||
* Add callback to allow filtering or post-processing of help text #434 @djulien
|
||||
* Fix `undefined` text in help information close #414 #416 @zhiyelee
|
||||
|
||||
2.8.1 / 2015-04-22
|
||||
==================
|
||||
|
||||
* Back out `support multiline description` Close #396 #397
|
||||
|
||||
2.8.0 / 2015-04-07
|
||||
==================
|
||||
|
||||
* Add `process.execArg` support, execution args like `--harmony` will be passed to sub-commands #387 @DigitalIO @zhiyelee
|
||||
* Fix bug in Git-style sub-commands #372 @zhiyelee
|
||||
* Allow commands to be hidden from help #383 @tonylukasavage
|
||||
* When git-style sub-commands are in use, yet none are called, display help #382 @claylo
|
||||
* Add ability to specify arguments syntax for top-level command #258 @rrthomas
|
||||
* Support multiline descriptions #208 @zxqfox
|
||||
|
||||
2.7.1 / 2015-03-11
|
||||
==================
|
||||
|
||||
* Revert #347 (fix collisions when option and first arg have same name) which causes a bug in #367.
|
||||
|
||||
2.7.0 / 2015-03-09
|
||||
==================
|
||||
|
||||
* Fix git-style bug when installed globally. Close #335 #349 @zhiyelee
|
||||
* Fix collisions when option and first arg have same name. Close #346 #347 @tonylukasavage
|
||||
* Add support for camelCase on `opts()`. Close #353 @nkzawa
|
||||
* Add node.js 0.12 and io.js to travis.yml
|
||||
* Allow RegEx options. #337 @palanik
|
||||
* Fixes exit code when sub-command failing. Close #260 #332 @pirelenito
|
||||
* git-style `bin` files in $PATH make sense. Close #196 #327 @zhiyelee
|
||||
|
||||
2.6.0 / 2014-12-30
|
||||
==================
|
||||
|
||||
* added `Command#allowUnknownOption` method. Close #138 #318 @doozr @zhiyelee
|
||||
* Add application description to the help msg. Close #112 @dalssoft
|
||||
|
||||
2.5.1 / 2014-12-15
|
||||
==================
|
||||
|
||||
* fixed two bugs incurred by variadic arguments. Close #291 @Quentin01 #302 @zhiyelee
|
||||
|
||||
2.5.0 / 2014-10-24
|
||||
==================
|
||||
|
||||
* add support for variadic arguments. Closes #277 @whitlockjc
|
||||
|
||||
2.4.0 / 2014-10-17
|
||||
==================
|
||||
|
||||
* fixed a bug on executing the coercion function of subcommands option. Closes #270
|
||||
* added `Command.prototype.name` to retrieve command name. Closes #264 #266 @tonylukasavage
|
||||
* added `Command.prototype.opts` to retrieve all the options as a simple object of key-value pairs. Closes #262 @tonylukasavage
|
||||
* fixed a bug on subcommand name. Closes #248 @jonathandelgado
|
||||
* fixed function normalize doesn’t honor option terminator. Closes #216 @abbr
|
||||
|
||||
2.3.0 / 2014-07-16
|
||||
==================
|
||||
|
||||
* add command alias'. Closes PR #210
|
||||
* fix: Typos. Closes #99
|
||||
* fix: Unused fs module. Closes #217
|
||||
|
||||
2.2.0 / 2014-03-29
|
||||
==================
|
||||
|
||||
* add passing of previous option value
|
||||
* fix: support subcommands on windows. Closes #142
|
||||
* Now the defaultValue passed as the second argument of the coercion function.
|
||||
|
||||
2.1.0 / 2013-11-21
|
||||
==================
|
||||
|
||||
* add: allow cflag style option params, unit test, fixes #174
|
||||
|
||||
2.0.0 / 2013-07-18
|
||||
==================
|
||||
|
||||
* remove input methods (.prompt, .confirm, etc)
|
||||
|
||||
1.3.2 / 2013-07-18
|
||||
==================
|
||||
|
||||
* add support for sub-commands to co-exist with the original command
|
||||
|
||||
1.3.1 / 2013-07-18
|
||||
==================
|
||||
|
||||
* add quick .runningCommand hack so you can opt-out of other logic when running a sub command
|
||||
|
||||
1.3.0 / 2013-07-09
|
||||
==================
|
||||
|
||||
* add EACCES error handling
|
||||
* fix sub-command --help
|
||||
|
||||
1.2.0 / 2013-06-13
|
||||
==================
|
||||
|
||||
* allow "-" hyphen as an option argument
|
||||
* support for RegExp coercion
|
||||
|
||||
1.1.1 / 2012-11-20
|
||||
==================
|
||||
|
||||
* add more sub-command padding
|
||||
* fix .usage() when args are present. Closes #106
|
||||
|
||||
1.1.0 / 2012-11-16
|
||||
==================
|
||||
|
||||
* add git-style executable subcommand support. Closes #94
|
||||
|
||||
1.0.5 / 2012-10-09
|
||||
==================
|
||||
|
||||
* fix `--name` clobbering. Closes #92
|
||||
* fix examples/help. Closes #89
|
||||
|
||||
1.0.4 / 2012-09-03
|
||||
==================
|
||||
|
||||
* add `outputHelp()` method.
|
||||
|
||||
1.0.3 / 2012-08-30
|
||||
==================
|
||||
|
||||
* remove invalid .version() defaulting
|
||||
|
||||
1.0.2 / 2012-08-24
|
||||
==================
|
||||
|
||||
* add `--foo=bar` support [arv]
|
||||
* fix password on node 0.8.8. Make backward compatible with 0.6 [focusaurus]
|
||||
|
||||
1.0.1 / 2012-08-03
|
||||
==================
|
||||
|
||||
* fix issue #56
|
||||
* fix tty.setRawMode(mode) was moved to tty.ReadStream#setRawMode() (i.e. process.stdin.setRawMode())
|
||||
|
||||
1.0.0 / 2012-07-05
|
||||
==================
|
||||
|
||||
* add support for optional option descriptions
|
||||
* add defaulting of `.version()` to package.json's version
|
||||
|
||||
0.6.1 / 2012-06-01
|
||||
==================
|
||||
|
||||
* Added: append (yes or no) on confirmation
|
||||
* Added: allow node.js v0.7.x
|
||||
|
||||
0.6.0 / 2012-04-10
|
||||
==================
|
||||
|
||||
* Added `.prompt(obj, callback)` support. Closes #49
|
||||
* Added default support to .choose(). Closes #41
|
||||
* Fixed the choice example
|
||||
|
||||
0.5.1 / 2011-12-20
|
||||
==================
|
||||
|
||||
* Fixed `password()` for recent nodes. Closes #36
|
||||
|
||||
0.5.0 / 2011-12-04
|
||||
==================
|
||||
|
||||
* Added sub-command option support [itay]
|
||||
|
||||
0.4.3 / 2011-12-04
|
||||
==================
|
||||
|
||||
* Fixed custom help ordering. Closes #32
|
||||
|
||||
0.4.2 / 2011-11-24
|
||||
==================
|
||||
|
||||
* Added travis support
|
||||
* Fixed: line-buffered input automatically trimmed. Closes #31
|
||||
|
||||
0.4.1 / 2011-11-18
|
||||
==================
|
||||
|
||||
* Removed listening for "close" on --help
|
||||
|
||||
0.4.0 / 2011-11-15
|
||||
==================
|
||||
|
||||
* Added support for `--`. Closes #24
|
||||
|
||||
0.3.3 / 2011-11-14
|
||||
==================
|
||||
|
||||
* Fixed: wait for close event when writing help info [Jerry Hamlet]
|
||||
|
||||
0.3.2 / 2011-11-01
|
||||
==================
|
||||
|
||||
* Fixed long flag definitions with values [felixge]
|
||||
|
||||
0.3.1 / 2011-10-31
|
||||
==================
|
||||
|
||||
* Changed `--version` short flag to `-V` from `-v`
|
||||
* Changed `.version()` so it's configurable [felixge]
|
||||
|
||||
0.3.0 / 2011-10-31
|
||||
==================
|
||||
|
||||
* Added support for long flags only. Closes #18
|
||||
|
||||
0.2.1 / 2011-10-24
|
||||
==================
|
||||
|
||||
* "node": ">= 0.4.x < 0.7.0". Closes #20
|
||||
|
||||
0.2.0 / 2011-09-26
|
||||
==================
|
||||
|
||||
* Allow for defaults that are not just boolean. Default peassignment only occurs for --no-*, optional, and required arguments. [Jim Isaacs]
|
||||
|
||||
0.1.0 / 2011-08-24
|
||||
==================
|
||||
|
||||
* Added support for custom `--help` output
|
||||
|
||||
0.0.5 / 2011-08-18
|
||||
==================
|
||||
|
||||
* Changed: when the user enters nothing prompt for password again
|
||||
* Fixed issue with passwords beginning with numbers [NuckChorris]
|
||||
|
||||
0.0.4 / 2011-08-15
|
||||
==================
|
||||
|
||||
* Fixed `Commander#args`
|
||||
|
||||
0.0.3 / 2011-08-15
|
||||
==================
|
||||
|
||||
* Added default option value support
|
||||
|
||||
0.0.2 / 2011-08-15
|
||||
==================
|
||||
|
||||
* Added mask support to `Command#password(str[, mask], fn)`
|
||||
* Added `Command#password(str, fn)`
|
||||
|
||||
0.0.1 / 2010-01-03
|
||||
==================
|
||||
|
||||
* Initial release
|
22
node_modules/terser/node_modules/commander/LICENSE
generated
vendored
Normal file
22
node_modules/terser/node_modules/commander/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
(The MIT License)
|
||||
|
||||
Copyright (c) 2011 TJ Holowaychuk <tj@vision-media.ca>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
'Software'), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
428
node_modules/terser/node_modules/commander/Readme.md
generated
vendored
Normal file
428
node_modules/terser/node_modules/commander/Readme.md
generated
vendored
Normal file
@@ -0,0 +1,428 @@
|
||||
# Commander.js
|
||||
|
||||
|
||||
[](http://travis-ci.org/tj/commander.js)
|
||||
[](https://www.npmjs.org/package/commander)
|
||||
[](https://npmcharts.com/compare/commander?minimal=true)
|
||||
[](https://packagephobia.now.sh/result?p=commander)
|
||||
[](https://gitter.im/tj/commander.js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
|
||||
The complete solution for [node.js](http://nodejs.org) command-line interfaces, inspired by Ruby's [commander](https://github.com/commander-rb/commander).
|
||||
[API documentation](http://tj.github.com/commander.js/)
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
$ npm install commander
|
||||
|
||||
## Option parsing
|
||||
|
||||
Options with commander are defined with the `.option()` method, also serving as documentation for the options. The example below parses args and options from `process.argv`, leaving remaining args as the `program.args` array which were not consumed by options.
|
||||
|
||||
```js
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var program = require('commander');
|
||||
|
||||
program
|
||||
.version('0.1.0')
|
||||
.option('-p, --peppers', 'Add peppers')
|
||||
.option('-P, --pineapple', 'Add pineapple')
|
||||
.option('-b, --bbq-sauce', 'Add bbq sauce')
|
||||
.option('-c, --cheese [type]', 'Add the specified type of cheese [marble]', 'marble')
|
||||
.parse(process.argv);
|
||||
|
||||
console.log('you ordered a pizza with:');
|
||||
if (program.peppers) console.log(' - peppers');
|
||||
if (program.pineapple) console.log(' - pineapple');
|
||||
if (program.bbqSauce) console.log(' - bbq');
|
||||
console.log(' - %s cheese', program.cheese);
|
||||
```
|
||||
|
||||
Short flags may be passed as a single arg, for example `-abc` is equivalent to `-a -b -c`. Multi-word options such as "--template-engine" are camel-cased, becoming `program.templateEngine` etc.
|
||||
|
||||
Note that multi-word options starting with `--no` prefix negate the boolean value of the following word. For example, `--no-sauce` sets the value of `program.sauce` to false.
|
||||
|
||||
```js
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var program = require('commander');
|
||||
|
||||
program
|
||||
.option('--no-sauce', 'Remove sauce')
|
||||
.parse(process.argv);
|
||||
|
||||
console.log('you ordered a pizza');
|
||||
if (program.sauce) console.log(' with sauce');
|
||||
else console.log(' without sauce');
|
||||
```
|
||||
|
||||
To get string arguments from options you will need to use angle brackets <> for required inputs or square brackets [] for optional inputs.
|
||||
|
||||
e.g. ```.option('-m --myarg [myVar]', 'my super cool description')```
|
||||
|
||||
Then to access the input if it was passed in.
|
||||
|
||||
e.g. ```var myInput = program.myarg```
|
||||
|
||||
**NOTE**: If you pass a argument without using brackets the example above will return true and not the value passed in.
|
||||
|
||||
|
||||
## Version option
|
||||
|
||||
Calling the `version` implicitly adds the `-V` and `--version` options to the command.
|
||||
When either of these options is present, the command prints the version number and exits.
|
||||
|
||||
$ ./examples/pizza -V
|
||||
0.0.1
|
||||
|
||||
If you want your program to respond to the `-v` option instead of the `-V` option, simply pass custom flags to the `version` method using the same syntax as the `option` method.
|
||||
|
||||
```js
|
||||
program
|
||||
.version('0.0.1', '-v, --version')
|
||||
```
|
||||
|
||||
The version flags can be named anything, but the long option is required.
|
||||
|
||||
## Command-specific options
|
||||
|
||||
You can attach options to a command.
|
||||
|
||||
```js
|
||||
#!/usr/bin/env node
|
||||
|
||||
var program = require('commander');
|
||||
|
||||
program
|
||||
.command('rm <dir>')
|
||||
.option('-r, --recursive', 'Remove recursively')
|
||||
.action(function (dir, cmd) {
|
||||
console.log('remove ' + dir + (cmd.recursive ? ' recursively' : ''))
|
||||
})
|
||||
|
||||
program.parse(process.argv)
|
||||
```
|
||||
|
||||
A command's options are validated when the command is used. Any unknown options will be reported as an error. However, if an action-based command does not define an action, then the options are not validated.
|
||||
|
||||
## Coercion
|
||||
|
||||
```js
|
||||
function range(val) {
|
||||
return val.split('..').map(Number);
|
||||
}
|
||||
|
||||
function list(val) {
|
||||
return val.split(',');
|
||||
}
|
||||
|
||||
function collect(val, memo) {
|
||||
memo.push(val);
|
||||
return memo;
|
||||
}
|
||||
|
||||
function increaseVerbosity(v, total) {
|
||||
return total + 1;
|
||||
}
|
||||
|
||||
program
|
||||
.version('0.1.0')
|
||||
.usage('[options] <file ...>')
|
||||
.option('-i, --integer <n>', 'An integer argument', parseInt)
|
||||
.option('-f, --float <n>', 'A float argument', parseFloat)
|
||||
.option('-r, --range <a>..<b>', 'A range', range)
|
||||
.option('-l, --list <items>', 'A list', list)
|
||||
.option('-o, --optional [value]', 'An optional value')
|
||||
.option('-c, --collect [value]', 'A repeatable value', collect, [])
|
||||
.option('-v, --verbose', 'A value that can be increased', increaseVerbosity, 0)
|
||||
.parse(process.argv);
|
||||
|
||||
console.log(' int: %j', program.integer);
|
||||
console.log(' float: %j', program.float);
|
||||
console.log(' optional: %j', program.optional);
|
||||
program.range = program.range || [];
|
||||
console.log(' range: %j..%j', program.range[0], program.range[1]);
|
||||
console.log(' list: %j', program.list);
|
||||
console.log(' collect: %j', program.collect);
|
||||
console.log(' verbosity: %j', program.verbose);
|
||||
console.log(' args: %j', program.args);
|
||||
```
|
||||
|
||||
## Regular Expression
|
||||
```js
|
||||
program
|
||||
.version('0.1.0')
|
||||
.option('-s --size <size>', 'Pizza size', /^(large|medium|small)$/i, 'medium')
|
||||
.option('-d --drink [drink]', 'Drink', /^(coke|pepsi|izze)$/i)
|
||||
.parse(process.argv);
|
||||
|
||||
console.log(' size: %j', program.size);
|
||||
console.log(' drink: %j', program.drink);
|
||||
```
|
||||
|
||||
## Variadic arguments
|
||||
|
||||
The last argument of a command can be variadic, and only the last argument. To make an argument variadic you have to
|
||||
append `...` to the argument name. Here is an example:
|
||||
|
||||
```js
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var program = require('commander');
|
||||
|
||||
program
|
||||
.version('0.1.0')
|
||||
.command('rmdir <dir> [otherDirs...]')
|
||||
.action(function (dir, otherDirs) {
|
||||
console.log('rmdir %s', dir);
|
||||
if (otherDirs) {
|
||||
otherDirs.forEach(function (oDir) {
|
||||
console.log('rmdir %s', oDir);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
program.parse(process.argv);
|
||||
```
|
||||
|
||||
An `Array` is used for the value of a variadic argument. This applies to `program.args` as well as the argument passed
|
||||
to your action as demonstrated above.
|
||||
|
||||
## Specify the argument syntax
|
||||
|
||||
```js
|
||||
#!/usr/bin/env node
|
||||
|
||||
var program = require('commander');
|
||||
|
||||
program
|
||||
.version('0.1.0')
|
||||
.arguments('<cmd> [env]')
|
||||
.action(function (cmd, env) {
|
||||
cmdValue = cmd;
|
||||
envValue = env;
|
||||
});
|
||||
|
||||
program.parse(process.argv);
|
||||
|
||||
if (typeof cmdValue === 'undefined') {
|
||||
console.error('no command given!');
|
||||
process.exit(1);
|
||||
}
|
||||
console.log('command:', cmdValue);
|
||||
console.log('environment:', envValue || "no environment given");
|
||||
```
|
||||
Angled brackets (e.g. `<cmd>`) indicate required input. Square brackets (e.g. `[env]`) indicate optional input.
|
||||
|
||||
## Git-style sub-commands
|
||||
|
||||
```js
|
||||
// file: ./examples/pm
|
||||
var program = require('commander');
|
||||
|
||||
program
|
||||
.version('0.1.0')
|
||||
.command('install [name]', 'install one or more packages')
|
||||
.command('search [query]', 'search with optional query')
|
||||
.command('list', 'list packages installed', {isDefault: true})
|
||||
.parse(process.argv);
|
||||
```
|
||||
|
||||
When `.command()` is invoked with a description argument, no `.action(callback)` should be called to handle sub-commands, otherwise there will be an error. This tells commander that you're going to use separate executables for sub-commands, much like `git(1)` and other popular tools.
|
||||
The commander will try to search the executables in the directory of the entry script (like `./examples/pm`) with the name `program-command`, like `pm-install`, `pm-search`.
|
||||
|
||||
Options can be passed with the call to `.command()`. Specifying `true` for `opts.noHelp` will remove the subcommand from the generated help output. Specifying `true` for `opts.isDefault` will run the subcommand if no other subcommand is specified.
|
||||
|
||||
If the program is designed to be installed globally, make sure the executables have proper modes, like `755`.
|
||||
|
||||
### `--harmony`
|
||||
|
||||
You can enable `--harmony` option in two ways:
|
||||
* Use `#! /usr/bin/env node --harmony` in the sub-commands scripts. Note some os version don’t support this pattern.
|
||||
* Use the `--harmony` option when call the command, like `node --harmony examples/pm publish`. The `--harmony` option will be preserved when spawning sub-command process.
|
||||
|
||||
## Automated --help
|
||||
|
||||
The help information is auto-generated based on the information commander already knows about your program, so the following `--help` info is for free:
|
||||
|
||||
```
|
||||
$ ./examples/pizza --help
|
||||
Usage: pizza [options]
|
||||
|
||||
An application for pizzas ordering
|
||||
|
||||
Options:
|
||||
-h, --help output usage information
|
||||
-V, --version output the version number
|
||||
-p, --peppers Add peppers
|
||||
-P, --pineapple Add pineapple
|
||||
-b, --bbq Add bbq sauce
|
||||
-c, --cheese <type> Add the specified type of cheese [marble]
|
||||
-C, --no-cheese You do not want any cheese
|
||||
```
|
||||
|
||||
## Custom help
|
||||
|
||||
You can display arbitrary `-h, --help` information
|
||||
by listening for "--help". Commander will automatically
|
||||
exit once you are done so that the remainder of your program
|
||||
does not execute causing undesired behaviors, for example
|
||||
in the following executable "stuff" will not output when
|
||||
`--help` is used.
|
||||
|
||||
```js
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var program = require('commander');
|
||||
|
||||
program
|
||||
.version('0.1.0')
|
||||
.option('-f, --foo', 'enable some foo')
|
||||
.option('-b, --bar', 'enable some bar')
|
||||
.option('-B, --baz', 'enable some baz');
|
||||
|
||||
// must be before .parse() since
|
||||
// node's emit() is immediate
|
||||
|
||||
program.on('--help', function(){
|
||||
console.log('')
|
||||
console.log('Examples:');
|
||||
console.log(' $ custom-help --help');
|
||||
console.log(' $ custom-help -h');
|
||||
});
|
||||
|
||||
program.parse(process.argv);
|
||||
|
||||
console.log('stuff');
|
||||
```
|
||||
|
||||
Yields the following help output when `node script-name.js -h` or `node script-name.js --help` are run:
|
||||
|
||||
```
|
||||
Usage: custom-help [options]
|
||||
|
||||
Options:
|
||||
-h, --help output usage information
|
||||
-V, --version output the version number
|
||||
-f, --foo enable some foo
|
||||
-b, --bar enable some bar
|
||||
-B, --baz enable some baz
|
||||
|
||||
Examples:
|
||||
$ custom-help --help
|
||||
$ custom-help -h
|
||||
```
|
||||
|
||||
## .outputHelp(cb)
|
||||
|
||||
Output help information without exiting.
|
||||
Optional callback cb allows post-processing of help text before it is displayed.
|
||||
|
||||
If you want to display help by default (e.g. if no command was provided), you can use something like:
|
||||
|
||||
```js
|
||||
var program = require('commander');
|
||||
var colors = require('colors');
|
||||
|
||||
program
|
||||
.version('0.1.0')
|
||||
.command('getstream [url]', 'get stream URL')
|
||||
.parse(process.argv);
|
||||
|
||||
if (!process.argv.slice(2).length) {
|
||||
program.outputHelp(make_red);
|
||||
}
|
||||
|
||||
function make_red(txt) {
|
||||
return colors.red(txt); //display the help text in red on the console
|
||||
}
|
||||
```
|
||||
|
||||
## .help(cb)
|
||||
|
||||
Output help information and exit immediately.
|
||||
Optional callback cb allows post-processing of help text before it is displayed.
|
||||
|
||||
|
||||
## Custom event listeners
|
||||
You can execute custom actions by listening to command and option events.
|
||||
|
||||
```js
|
||||
program.on('option:verbose', function () {
|
||||
process.env.VERBOSE = this.verbose;
|
||||
});
|
||||
|
||||
// error on unknown commands
|
||||
program.on('command:*', function () {
|
||||
console.error('Invalid command: %s\nSee --help for a list of available commands.', program.args.join(' '));
|
||||
process.exit(1);
|
||||
});
|
||||
```
|
||||
|
||||
## Examples
|
||||
|
||||
```js
|
||||
var program = require('commander');
|
||||
|
||||
program
|
||||
.version('0.1.0')
|
||||
.option('-C, --chdir <path>', 'change the working directory')
|
||||
.option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
|
||||
.option('-T, --no-tests', 'ignore test hook');
|
||||
|
||||
program
|
||||
.command('setup [env]')
|
||||
.description('run setup commands for all envs')
|
||||
.option("-s, --setup_mode [mode]", "Which setup mode to use")
|
||||
.action(function(env, options){
|
||||
var mode = options.setup_mode || "normal";
|
||||
env = env || 'all';
|
||||
console.log('setup for %s env(s) with %s mode', env, mode);
|
||||
});
|
||||
|
||||
program
|
||||
.command('exec <cmd>')
|
||||
.alias('ex')
|
||||
.description('execute the given remote cmd')
|
||||
.option("-e, --exec_mode <mode>", "Which exec mode to use")
|
||||
.action(function(cmd, options){
|
||||
console.log('exec "%s" using %s mode', cmd, options.exec_mode);
|
||||
}).on('--help', function() {
|
||||
console.log('');
|
||||
console.log('Examples:');
|
||||
console.log('');
|
||||
console.log(' $ deploy exec sequential');
|
||||
console.log(' $ deploy exec async');
|
||||
});
|
||||
|
||||
program
|
||||
.command('*')
|
||||
.action(function(env){
|
||||
console.log('deploying "%s"', env);
|
||||
});
|
||||
|
||||
program.parse(process.argv);
|
||||
```
|
||||
|
||||
More Demos can be found in the [examples](https://github.com/tj/commander.js/tree/master/examples) directory.
|
||||
|
||||
## License
|
||||
|
||||
[MIT](https://github.com/tj/commander.js/blob/master/LICENSE)
|
1224
node_modules/terser/node_modules/commander/index.js
generated
vendored
Normal file
1224
node_modules/terser/node_modules/commander/index.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
70
node_modules/terser/node_modules/commander/package.json
generated
vendored
Normal file
70
node_modules/terser/node_modules/commander/package.json
generated
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"_from": "commander@^2.19.0",
|
||||
"_id": "commander@2.20.0",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
|
||||
"_location": "/terser/commander",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "commander@^2.19.0",
|
||||
"name": "commander",
|
||||
"escapedName": "commander",
|
||||
"rawSpec": "^2.19.0",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "^2.19.0"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/terser"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
|
||||
"_shasum": "d58bb2b5c1ee8f87b0d340027e9e94e222c5a422",
|
||||
"_spec": "commander@^2.19.0",
|
||||
"_where": "F:\\projects\\vanillajs-seed\\node_modules\\terser",
|
||||
"author": {
|
||||
"name": "TJ Holowaychuk",
|
||||
"email": "tj@vision-media.ca"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/tj/commander.js/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"dependencies": {},
|
||||
"deprecated": false,
|
||||
"description": "the complete solution for node.js command-line programs",
|
||||
"devDependencies": {
|
||||
"@types/node": "^10.11.3",
|
||||
"eslint": "^5.6.1",
|
||||
"should": "^13.2.3",
|
||||
"sinon": "^6.3.4",
|
||||
"standard": "^12.0.1",
|
||||
"ts-node": "^7.0.1",
|
||||
"typescript": "^2.9.2"
|
||||
},
|
||||
"files": [
|
||||
"index.js",
|
||||
"typings/index.d.ts"
|
||||
],
|
||||
"homepage": "https://github.com/tj/commander.js#readme",
|
||||
"keywords": [
|
||||
"commander",
|
||||
"command",
|
||||
"option",
|
||||
"parser"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "index",
|
||||
"name": "commander",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/tj/commander.js.git"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "eslint index.js",
|
||||
"test": "node test/run.js && npm run test-typings",
|
||||
"test-typings": "tsc -p tsconfig.json"
|
||||
},
|
||||
"typings": "typings/index.d.ts",
|
||||
"version": "2.20.0"
|
||||
}
|
310
node_modules/terser/node_modules/commander/typings/index.d.ts
generated
vendored
Normal file
310
node_modules/terser/node_modules/commander/typings/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,310 @@
|
||||
// Type definitions for commander 2.11
|
||||
// Project: https://github.com/visionmedia/commander.js
|
||||
// Definitions by: Alan Agius <https://github.com/alan-agius4>, Marcelo Dezem <https://github.com/mdezem>, vvakame <https://github.com/vvakame>, Jules Randolph <https://github.com/sveinburne>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
declare namespace local {
|
||||
|
||||
class Option {
|
||||
flags: string;
|
||||
required: boolean;
|
||||
optional: boolean;
|
||||
bool: boolean;
|
||||
short?: string;
|
||||
long: string;
|
||||
description: string;
|
||||
|
||||
/**
|
||||
* Initialize a new `Option` with the given `flags` and `description`.
|
||||
*
|
||||
* @param {string} flags
|
||||
* @param {string} [description]
|
||||
*/
|
||||
constructor(flags: string, description?: string);
|
||||
}
|
||||
|
||||
class Command extends NodeJS.EventEmitter {
|
||||
[key: string]: any;
|
||||
|
||||
args: string[];
|
||||
|
||||
/**
|
||||
* Initialize a new `Command`.
|
||||
*
|
||||
* @param {string} [name]
|
||||
*/
|
||||
constructor(name?: string);
|
||||
|
||||
/**
|
||||
* Set the program version to `str`.
|
||||
*
|
||||
* This method auto-registers the "-V, --version" flag
|
||||
* which will print the version number when passed.
|
||||
*
|
||||
* @param {string} str
|
||||
* @param {string} [flags]
|
||||
* @returns {Command} for chaining
|
||||
*/
|
||||
version(str: string, flags?: string): Command;
|
||||
|
||||
/**
|
||||
* Add command `name`.
|
||||
*
|
||||
* The `.action()` callback is invoked when the
|
||||
* command `name` is specified via __ARGV__,
|
||||
* and the remaining arguments are applied to the
|
||||
* function for access.
|
||||
*
|
||||
* When the `name` is "*" an un-matched command
|
||||
* will be passed as the first arg, followed by
|
||||
* the rest of __ARGV__ remaining.
|
||||
*
|
||||
* @example
|
||||
* program
|
||||
* .version('0.0.1')
|
||||
* .option('-C, --chdir <path>', 'change the working directory')
|
||||
* .option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
|
||||
* .option('-T, --no-tests', 'ignore test hook')
|
||||
*
|
||||
* program
|
||||
* .command('setup')
|
||||
* .description('run remote setup commands')
|
||||
* .action(function() {
|
||||
* console.log('setup');
|
||||
* });
|
||||
*
|
||||
* program
|
||||
* .command('exec <cmd>')
|
||||
* .description('run the given remote command')
|
||||
* .action(function(cmd) {
|
||||
* console.log('exec "%s"', cmd);
|
||||
* });
|
||||
*
|
||||
* program
|
||||
* .command('teardown <dir> [otherDirs...]')
|
||||
* .description('run teardown commands')
|
||||
* .action(function(dir, otherDirs) {
|
||||
* console.log('dir "%s"', dir);
|
||||
* if (otherDirs) {
|
||||
* otherDirs.forEach(function (oDir) {
|
||||
* console.log('dir "%s"', oDir);
|
||||
* });
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* program
|
||||
* .command('*')
|
||||
* .description('deploy the given env')
|
||||
* .action(function(env) {
|
||||
* console.log('deploying "%s"', env);
|
||||
* });
|
||||
*
|
||||
* program.parse(process.argv);
|
||||
*
|
||||
* @param {string} name
|
||||
* @param {string} [desc] for git-style sub-commands
|
||||
* @param {CommandOptions} [opts] command options
|
||||
* @returns {Command} the new command
|
||||
*/
|
||||
command(name: string, desc?: string, opts?: commander.CommandOptions): Command;
|
||||
|
||||
/**
|
||||
* Define argument syntax for the top-level command.
|
||||
*
|
||||
* @param {string} desc
|
||||
* @returns {Command} for chaining
|
||||
*/
|
||||
arguments(desc: string): Command;
|
||||
|
||||
/**
|
||||
* Parse expected `args`.
|
||||
*
|
||||
* For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`.
|
||||
*
|
||||
* @param {string[]} args
|
||||
* @returns {Command} for chaining
|
||||
*/
|
||||
parseExpectedArgs(args: string[]): Command;
|
||||
|
||||
/**
|
||||
* Register callback `fn` for the command.
|
||||
*
|
||||
* @example
|
||||
* program
|
||||
* .command('help')
|
||||
* .description('display verbose help')
|
||||
* .action(function() {
|
||||
* // output help here
|
||||
* });
|
||||
*
|
||||
* @param {(...args: any[]) => void} fn
|
||||
* @returns {Command} for chaining
|
||||
*/
|
||||
action(fn: (...args: any[]) => void): Command;
|
||||
|
||||
/**
|
||||
* Define option with `flags`, `description` and optional
|
||||
* coercion `fn`.
|
||||
*
|
||||
* The `flags` string should contain both the short and long flags,
|
||||
* separated by comma, a pipe or space. The following are all valid
|
||||
* all will output this way when `--help` is used.
|
||||
*
|
||||
* "-p, --pepper"
|
||||
* "-p|--pepper"
|
||||
* "-p --pepper"
|
||||
*
|
||||
* @example
|
||||
* // simple boolean defaulting to false
|
||||
* program.option('-p, --pepper', 'add pepper');
|
||||
*
|
||||
* --pepper
|
||||
* program.pepper
|
||||
* // => Boolean
|
||||
*
|
||||
* // simple boolean defaulting to true
|
||||
* program.option('-C, --no-cheese', 'remove cheese');
|
||||
*
|
||||
* program.cheese
|
||||
* // => true
|
||||
*
|
||||
* --no-cheese
|
||||
* program.cheese
|
||||
* // => false
|
||||
*
|
||||
* // required argument
|
||||
* program.option('-C, --chdir <path>', 'change the working directory');
|
||||
*
|
||||
* --chdir /tmp
|
||||
* program.chdir
|
||||
* // => "/tmp"
|
||||
*
|
||||
* // optional argument
|
||||
* program.option('-c, --cheese [type]', 'add cheese [marble]');
|
||||
*
|
||||
* @param {string} flags
|
||||
* @param {string} [description]
|
||||
* @param {((arg1: any, arg2: any) => void) | RegExp} [fn] function or default
|
||||
* @param {*} [defaultValue]
|
||||
* @returns {Command} for chaining
|
||||
*/
|
||||
option(flags: string, description?: string, fn?: ((arg1: any, arg2: any) => void) | RegExp, defaultValue?: any): Command;
|
||||
option(flags: string, description?: string, defaultValue?: any): Command;
|
||||
|
||||
/**
|
||||
* Allow unknown options on the command line.
|
||||
*
|
||||
* @param {boolean} [arg] if `true` or omitted, no error will be thrown for unknown options.
|
||||
* @returns {Command} for chaining
|
||||
*/
|
||||
allowUnknownOption(arg?: boolean): Command;
|
||||
|
||||
/**
|
||||
* Parse `argv`, settings options and invoking commands when defined.
|
||||
*
|
||||
* @param {string[]} argv
|
||||
* @returns {Command} for chaining
|
||||
*/
|
||||
parse(argv: string[]): Command;
|
||||
|
||||
/**
|
||||
* Parse options from `argv` returning `argv` void of these options.
|
||||
*
|
||||
* @param {string[]} argv
|
||||
* @returns {ParseOptionsResult}
|
||||
*/
|
||||
parseOptions(argv: string[]): commander.ParseOptionsResult;
|
||||
|
||||
/**
|
||||
* Return an object containing options as key-value pairs
|
||||
*
|
||||
* @returns {{[key: string]: any}}
|
||||
*/
|
||||
opts(): { [key: string]: any };
|
||||
|
||||
/**
|
||||
* Set the description to `str`.
|
||||
*
|
||||
* @param {string} str
|
||||
* @param {{[argName: string]: string}} argsDescription
|
||||
* @return {(Command | string)}
|
||||
*/
|
||||
description(str: string, argsDescription?: {[argName: string]: string}): Command;
|
||||
description(): string;
|
||||
|
||||
/**
|
||||
* Set an alias for the command.
|
||||
*
|
||||
* @param {string} alias
|
||||
* @return {(Command | string)}
|
||||
*/
|
||||
alias(alias: string): Command;
|
||||
alias(): string;
|
||||
|
||||
/**
|
||||
* Set or get the command usage.
|
||||
*
|
||||
* @param {string} str
|
||||
* @return {(Command | string)}
|
||||
*/
|
||||
usage(str: string): Command;
|
||||
usage(): string;
|
||||
|
||||
/**
|
||||
* Set the name of the command.
|
||||
*
|
||||
* @param {string} str
|
||||
* @return {Command}
|
||||
*/
|
||||
name(str: string): Command;
|
||||
|
||||
/**
|
||||
* Get the name of the command.
|
||||
*
|
||||
* @return {string}
|
||||
*/
|
||||
name(): string;
|
||||
|
||||
/**
|
||||
* Output help information for this command.
|
||||
*
|
||||
* @param {(str: string) => string} [cb]
|
||||
*/
|
||||
outputHelp(cb?: (str: string) => string): void;
|
||||
|
||||
/** Output help information and exit.
|
||||
*
|
||||
* @param {(str: string) => string} [cb]
|
||||
*/
|
||||
help(cb?: (str: string) => string): never;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
declare namespace commander {
|
||||
|
||||
type Command = local.Command
|
||||
|
||||
type Option = local.Option
|
||||
|
||||
interface CommandOptions {
|
||||
noHelp?: boolean;
|
||||
isDefault?: boolean;
|
||||
}
|
||||
|
||||
interface ParseOptionsResult {
|
||||
args: string[];
|
||||
unknown: string[];
|
||||
}
|
||||
|
||||
interface CommanderStatic extends Command {
|
||||
Command: typeof local.Command;
|
||||
Option: typeof local.Option;
|
||||
CommandOptions: CommandOptions;
|
||||
ParseOptionsResult: ParseOptionsResult;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
declare const commander: commander.CommanderStatic;
|
||||
export = commander;
|
156
node_modules/terser/package.json
generated
vendored
Normal file
156
node_modules/terser/package.json
generated
vendored
Normal file
@@ -0,0 +1,156 @@
|
||||
{
|
||||
"_from": "terser@^3.16.1",
|
||||
"_id": "terser@3.17.0",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==",
|
||||
"_location": "/terser",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "terser@^3.16.1",
|
||||
"name": "terser",
|
||||
"escapedName": "terser",
|
||||
"rawSpec": "^3.16.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "^3.16.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/minify"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz",
|
||||
"_shasum": "f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2",
|
||||
"_spec": "terser@^3.16.1",
|
||||
"_where": "F:\\projects\\vanillajs-seed\\node_modules\\minify",
|
||||
"author": {
|
||||
"name": "Mihai Bazon",
|
||||
"email": "mihai.bazon@gmail.com",
|
||||
"url": "http://lisperator.net/"
|
||||
},
|
||||
"bin": {
|
||||
"terser": "bin/uglifyjs"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/fabiosantoscode/terser/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"dependencies": {
|
||||
"commander": "^2.19.0",
|
||||
"source-map": "~0.6.1",
|
||||
"source-map-support": "~0.5.10"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "JavaScript parser, mangler/compressor and beautifier toolkit for ES6+",
|
||||
"devDependencies": {
|
||||
"acorn": "^6.0.4",
|
||||
"cross-env": "^5.2.0",
|
||||
"csv": "^5.1.0",
|
||||
"escodegen": "^1.11.0",
|
||||
"eslint": "^4.19.1",
|
||||
"eslump": "^2.0.0",
|
||||
"mocha": "^3.0.0",
|
||||
"mochallel": "^1.8.6",
|
||||
"pre-commit": "^1.2.2",
|
||||
"rimraf": "^2.6.2",
|
||||
"rollup": "^1.0.1",
|
||||
"semver": "~5.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"parserOptions": {
|
||||
"sourceType": "module"
|
||||
},
|
||||
"env": {
|
||||
"es6": true
|
||||
},
|
||||
"globals": {
|
||||
"describe": false,
|
||||
"it": false,
|
||||
"require": false,
|
||||
"global": false
|
||||
},
|
||||
"rules": {
|
||||
"brace-style": [
|
||||
"error",
|
||||
"1tbs",
|
||||
{
|
||||
"allowSingleLine": true
|
||||
}
|
||||
],
|
||||
"quotes": [
|
||||
"error",
|
||||
"double",
|
||||
"avoid-escape"
|
||||
],
|
||||
"no-debugger": "error",
|
||||
"no-undef": "error",
|
||||
"semi": [
|
||||
"error",
|
||||
"always"
|
||||
],
|
||||
"no-extra-semi": "error",
|
||||
"no-irregular-whitespace": "error",
|
||||
"space-before-blocks": [
|
||||
"error",
|
||||
"always"
|
||||
]
|
||||
}
|
||||
},
|
||||
"files": [
|
||||
"bin",
|
||||
"dist",
|
||||
"tools",
|
||||
"LICENSE",
|
||||
"README.md",
|
||||
"CHANGELOG.md",
|
||||
"PATRONS.md"
|
||||
],
|
||||
"homepage": "https://github.com/fabiosantoscode/terser",
|
||||
"keywords": [
|
||||
"uglify",
|
||||
"terser",
|
||||
"uglify-es",
|
||||
"uglify-js",
|
||||
"minify",
|
||||
"minifier",
|
||||
"javascript",
|
||||
"ecmascript",
|
||||
"es5",
|
||||
"es6",
|
||||
"es7",
|
||||
"es8",
|
||||
"es2015",
|
||||
"es2016",
|
||||
"es2017",
|
||||
"async",
|
||||
"await"
|
||||
],
|
||||
"license": "BSD-2-Clause",
|
||||
"main": "dist/bundle.min.js",
|
||||
"maintainers": [
|
||||
{
|
||||
"name": "Fábio Santos",
|
||||
"email": "fabiosantosart@gmail.com"
|
||||
}
|
||||
],
|
||||
"name": "terser",
|
||||
"pre-commit": [
|
||||
"lint-fix",
|
||||
"test"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/fabiosantoscode/terser.git"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "eslint lib",
|
||||
"lint-fix": "eslint --fix lib",
|
||||
"postversion": "echo 'Remember to update the changelog!'",
|
||||
"prepare": "rimraf dist/* && rollup -c && cd dist && cross-env TERSER_NO_BUNDLE=1 ../bin/uglifyjs bundle.js -mc --source-map 'content=bundle.js.map,includeSources=true,url=bundle.min.js.map' -o bundle.min.js",
|
||||
"test": "npm run prepare --silent && istanbul instrument dist/bundle.min.js > dist/bundle.instrumented.js && node test/run-tests.js"
|
||||
},
|
||||
"types": "tools/terser.d.ts",
|
||||
"version": "3.17.0"
|
||||
}
|
11
node_modules/terser/tools/colorless-console.js
generated
vendored
Normal file
11
node_modules/terser/tools/colorless-console.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
"use strict"
|
||||
|
||||
if (Number((/([0-9]+)\./.exec(process.version) || [])[1]) >= 10) {
|
||||
var Console = require("console").Console;
|
||||
global.console = new Console({
|
||||
stdout: process.stdout,
|
||||
stderr: process.stderr,
|
||||
colorMode: false
|
||||
});
|
||||
}
|
||||
|
5605
node_modules/terser/tools/domprops.js
generated
vendored
Normal file
5605
node_modules/terser/tools/domprops.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
15
node_modules/terser/tools/exit.js
generated
vendored
Normal file
15
node_modules/terser/tools/exit.js
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
// workaround for tty output truncation upon process.exit()
|
||||
var exit = process.exit;
|
||||
process.exit = function() {
|
||||
var args = [].slice.call(arguments);
|
||||
process.once("uncaughtException", function() {
|
||||
(function callback() {
|
||||
if (process.stdout.bufferSize || process.stderr.bufferSize) {
|
||||
setImmediate(callback);
|
||||
} else {
|
||||
exit.apply(process, args);
|
||||
}
|
||||
})();
|
||||
});
|
||||
throw exit;
|
||||
};
|
22
node_modules/terser/tools/node.js
generated
vendored
Normal file
22
node_modules/terser/tools/node.js
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
var fs = require("fs");
|
||||
|
||||
var bundle_path = __dirname + "/../dist/bundle.js";
|
||||
var UglifyJS = require(bundle_path);
|
||||
module.exports = UglifyJS;
|
||||
|
||||
function infer_options(options) {
|
||||
var result = UglifyJS.minify("", options);
|
||||
return result.error && result.error.defs;
|
||||
}
|
||||
|
||||
UglifyJS.default_options = function() {
|
||||
var defs = {};
|
||||
Object.keys(infer_options({ 0: 0 })).forEach(function(component) {
|
||||
var options = {};
|
||||
options[component] = { 0: 0 };
|
||||
if (options = infer_options(options)) {
|
||||
defs[component] = options;
|
||||
}
|
||||
});
|
||||
return defs;
|
||||
};
|
61
node_modules/terser/tools/props.html
generated
vendored
Normal file
61
node_modules/terser/tools/props.html
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
<script>(function(){
|
||||
var props = {};
|
||||
|
||||
function addObject(obj) {
|
||||
if (obj == null) return;
|
||||
try {
|
||||
Object.getOwnPropertyNames(obj).forEach(add);
|
||||
} catch(ex) {}
|
||||
if (obj.prototype) {
|
||||
Object.getOwnPropertyNames(obj.prototype).forEach(add);
|
||||
}
|
||||
if (typeof obj == "function") {
|
||||
try {
|
||||
Object.getOwnPropertyNames(new obj).forEach(add);
|
||||
} catch(ex) {}
|
||||
}
|
||||
}
|
||||
|
||||
function add(name) {
|
||||
props[name] = true;
|
||||
}
|
||||
|
||||
Object.getOwnPropertyNames(window).forEach(function(thing){
|
||||
addObject(window[thing]);
|
||||
});
|
||||
|
||||
try {
|
||||
addObject(new Event("click"));
|
||||
addObject(new Event("contextmenu"));
|
||||
addObject(new Event("mouseup"));
|
||||
addObject(new Event("mousedown"));
|
||||
addObject(new Event("keydown"));
|
||||
addObject(new Event("keypress"));
|
||||
addObject(new Event("keyup"));
|
||||
} catch(ex) {}
|
||||
|
||||
var ta = document.createElement("textarea");
|
||||
ta.style.width = "100%";
|
||||
ta.style.height = "20em";
|
||||
ta.style.boxSizing = "border-box";
|
||||
<!-- ta.value = Object.keys(props).sort(cmp).map(function(name){ -->
|
||||
<!-- return JSON.stringify(name); -->
|
||||
<!-- }).join(",\n"); -->
|
||||
ta.value = 'var domprops = ' + JSON.stringify({
|
||||
vars: [],
|
||||
props: Object.keys(props).sort(cmp)
|
||||
}, null, 2);
|
||||
document.body.appendChild(ta);
|
||||
|
||||
function cmp(a, b) {
|
||||
a = a.toLowerCase();
|
||||
b = b.toLowerCase();
|
||||
return a < b ? -1 : a > b ? 1 : 0;
|
||||
}
|
||||
})();</script>
|
||||
</body>
|
||||
</html>
|
790
node_modules/terser/tools/terser.d.ts
generated
vendored
Normal file
790
node_modules/terser/tools/terser.d.ts
generated
vendored
Normal file
@@ -0,0 +1,790 @@
|
||||
import { RawSourceMap } from 'source-map';
|
||||
|
||||
export type ECMA = 5 | 6 | 7 | 8 | 9;
|
||||
|
||||
export interface ParseOptions {
|
||||
bare_returns?: boolean;
|
||||
ecma?: ECMA;
|
||||
html5_comments?: boolean;
|
||||
shebang?: boolean;
|
||||
}
|
||||
|
||||
export interface CompressOptions {
|
||||
arguments?: boolean;
|
||||
arrows?: boolean;
|
||||
booleans?: boolean;
|
||||
collapse_vars?: boolean;
|
||||
comparisons?: boolean;
|
||||
conditionals?: boolean;
|
||||
dead_code?: boolean;
|
||||
defaults?: boolean;
|
||||
directives?: boolean;
|
||||
drop_console?: boolean;
|
||||
drop_debugger?: boolean;
|
||||
evaluate?: boolean;
|
||||
expression?: boolean;
|
||||
global_defs?: object;
|
||||
hoist_funs?: boolean;
|
||||
hoist_props?: boolean;
|
||||
hoist_vars?: 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;
|
||||
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?: boolean;
|
||||
unsafe_arrows?: boolean;
|
||||
unsafe_comps?: boolean;
|
||||
unsafe_Function?: boolean;
|
||||
unsafe_math?: boolean;
|
||||
unsafe_methods?: boolean;
|
||||
unsafe_proto?: boolean;
|
||||
unsafe_regexp?: boolean;
|
||||
unsafe_undefined?: boolean;
|
||||
unused?: boolean;
|
||||
warnings?: 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;
|
||||
properties?: boolean | ManglePropertiesOptions;
|
||||
reserved?: string[];
|
||||
safari10?: boolean;
|
||||
toplevel?: boolean;
|
||||
}
|
||||
|
||||
export interface ManglePropertiesOptions {
|
||||
builtins?: boolean;
|
||||
debug?: boolean;
|
||||
keep_quoted?: boolean;
|
||||
regex?: RegExp;
|
||||
reserved?: string[];
|
||||
}
|
||||
|
||||
export interface OutputOptions {
|
||||
ascii_only?: boolean;
|
||||
beautify?: boolean;
|
||||
braces?: boolean;
|
||||
comments?: boolean | 'all' | 'some' | RegExp;
|
||||
ecma?: ECMA;
|
||||
indent_level?: number;
|
||||
indent_start?: boolean;
|
||||
inline_script?: boolean;
|
||||
ie8?: boolean;
|
||||
keep_quoted_props?: boolean;
|
||||
max_line_len?: boolean;
|
||||
preamble?: string;
|
||||
quote_keys?: boolean;
|
||||
quote_style?: OutputQuoteStyle;
|
||||
safari10?: boolean;
|
||||
semicolons?: boolean;
|
||||
shebang?: boolean;
|
||||
shorthand?: boolean;
|
||||
source_map?: SourceMapOptions;
|
||||
webkit?: boolean;
|
||||
width?: number;
|
||||
wrap_iife?: boolean;
|
||||
}
|
||||
|
||||
export enum OutputQuoteStyle {
|
||||
PreferDouble = 0,
|
||||
AlwaysSingle = 1,
|
||||
AlwaysDouble = 2,
|
||||
AlwaysOriginal = 3
|
||||
}
|
||||
|
||||
export interface MinifyOptions {
|
||||
compress?: boolean | CompressOptions;
|
||||
ecma?: ECMA;
|
||||
ie8?: boolean;
|
||||
keep_classnames?: boolean | RegExp;
|
||||
keep_fnames?: boolean | RegExp;
|
||||
mangle?: boolean | MangleOptions;
|
||||
module?: boolean;
|
||||
nameCache?: object;
|
||||
output?: OutputOptions;
|
||||
parse?: ParseOptions;
|
||||
safari10?: boolean;
|
||||
sourceMap?: boolean | SourceMapOptions;
|
||||
toplevel?: boolean;
|
||||
warnings?: boolean | 'verbose';
|
||||
}
|
||||
|
||||
export interface MinifyOutput {
|
||||
ast?: AST_Node;
|
||||
code?: string;
|
||||
error?: Error;
|
||||
map?: string;
|
||||
warnings?: string[];
|
||||
}
|
||||
|
||||
export interface SourceMapOptions {
|
||||
content?: RawSourceMap;
|
||||
includeSources?: boolean;
|
||||
filename?: string;
|
||||
root?: string;
|
||||
url?: string | 'inline';
|
||||
}
|
||||
|
||||
declare function parse(text: string, options?: ParseOptions): AST_Node;
|
||||
|
||||
export class TreeWalker {
|
||||
constructor(callback: (node: AST_Node, descend?: (node: AST_Node) => void) => boolean | undefined);
|
||||
directives: object;
|
||||
find_parent(type: AST_Node): AST_Node | undefined;
|
||||
has_directive(type: string): boolean;
|
||||
loopcontrol_target(node: AST_Node): AST_Node | undefined;
|
||||
parent(n: number): AST_Node | undefined;
|
||||
pop(): void;
|
||||
push(node: AST_Node): void;
|
||||
self(): AST_Node | undefined;
|
||||
stack: AST_Node[];
|
||||
visit: (node: AST_Node, descend: boolean) => any;
|
||||
}
|
||||
|
||||
export class TreeTransformer extends TreeWalker {
|
||||
constructor(
|
||||
before: (node: AST_Node, descend?: (node: AST_Node, tw: TreeWalker) => void, in_list?: boolean) => AST_Node | undefined,
|
||||
after?: (node: AST_Node, in_list?: boolean) => AST_Node | undefined
|
||||
);
|
||||
before: (node: AST_Node) => AST_Node;
|
||||
after?: (node: AST_Node) => AST_Node;
|
||||
}
|
||||
|
||||
export function push_uniq<T>(array: T[], el: T): void;
|
||||
|
||||
type DictEachCallback = (val: any, key: string) => any;
|
||||
|
||||
export class Dictionary {
|
||||
static fromObject(obj: object): Dictionary;
|
||||
add(key: string, val: any): this;
|
||||
clone(): Dictionary;
|
||||
del(key: string): this;
|
||||
each(fn: DictEachCallback): void;
|
||||
get(key: string): any;
|
||||
has(key: string): boolean;
|
||||
map(fn: DictEachCallback): any[];
|
||||
set(key: string, val: any): this;
|
||||
size(): number;
|
||||
}
|
||||
|
||||
export function minify(files: string | string[] | { [file: string]: string } | AST_Node, options?: MinifyOptions): MinifyOutput;
|
||||
|
||||
export class AST_Node {
|
||||
constructor(props?: object);
|
||||
static BASE?: AST_Node;
|
||||
static PROPS: string[];
|
||||
static SELF_PROPS: string[];
|
||||
static SUBCLASSES: AST_Node[];
|
||||
static documentation: string;
|
||||
static propdoc?: Record<string, string>;
|
||||
static expressions?: AST_Node[];
|
||||
static warn?: (text: string, props: any) => void;
|
||||
static from_mozilla_ast?: (node: AST_Node) => any;
|
||||
walk: (visitor: TreeWalker) => void;
|
||||
print_to_string: (options?: OutputOptions) => string;
|
||||
transform: (tt: TreeTransformer, in_list?: boolean) => AST_Node;
|
||||
TYPE: string;
|
||||
CTOR: typeof AST_Node;
|
||||
}
|
||||
|
||||
declare class SymbolDef {
|
||||
constructor(scope?: AST_Scope, orig?: object, init?: object);
|
||||
name: string;
|
||||
orig: AST_SymbolRef[];
|
||||
init: AST_SymbolRef;
|
||||
eliminated: number;
|
||||
scope: AST_Scope;
|
||||
references: AST_SymbolRef[];
|
||||
replaced: number;
|
||||
global: boolean;
|
||||
export: boolean;
|
||||
mangled_name: null | string;
|
||||
undeclared: boolean;
|
||||
id: number;
|
||||
}
|
||||
|
||||
type ArgType = AST_SymbolFunarg | AST_DefaultAssign | AST_Destructuring | AST_Expansion;
|
||||
|
||||
declare class AST_Statement extends AST_Node {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Debugger extends AST_Statement {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Directive extends AST_Statement {
|
||||
constructor(props?: object);
|
||||
value: string;
|
||||
quote: string;
|
||||
}
|
||||
|
||||
declare class AST_SimpleStatement extends AST_Statement {
|
||||
constructor(props?: object);
|
||||
body: AST_Node[];
|
||||
}
|
||||
|
||||
declare class AST_Block extends AST_Statement {
|
||||
constructor(props?: object);
|
||||
body: AST_Node[];
|
||||
block_scope: AST_Scope | null;
|
||||
}
|
||||
|
||||
declare class AST_BlockStatement extends AST_Block {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Scope extends AST_Block {
|
||||
constructor(props?: object);
|
||||
variables: any;
|
||||
functions: any;
|
||||
uses_with: boolean;
|
||||
uses_eval: boolean;
|
||||
parent_scope: AST_Scope | null;
|
||||
enclosed: any;
|
||||
cname: any;
|
||||
}
|
||||
|
||||
declare class AST_Toplevel extends AST_Scope {
|
||||
constructor(props?: object);
|
||||
globals: any;
|
||||
}
|
||||
|
||||
declare class AST_Lambda extends AST_Scope {
|
||||
constructor(props?: object);
|
||||
name: AST_SymbolDeclaration | null;
|
||||
argnames: ArgType[];
|
||||
uses_arguments: boolean;
|
||||
is_generator: boolean;
|
||||
async: boolean;
|
||||
}
|
||||
|
||||
declare class AST_Accessor extends AST_Lambda {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Function extends AST_Lambda {
|
||||
constructor(props?: object);
|
||||
inlined: boolean;
|
||||
}
|
||||
|
||||
declare class AST_Arrow extends AST_Lambda {
|
||||
constructor(props?: object);
|
||||
inlined: boolean;
|
||||
}
|
||||
|
||||
declare class AST_Defun extends AST_Lambda {
|
||||
constructor(props?: object);
|
||||
inlined: boolean;
|
||||
}
|
||||
|
||||
declare class AST_Class extends AST_Scope {
|
||||
constructor(props?: object);
|
||||
name: AST_SymbolClass | AST_SymbolDefClass | null;
|
||||
extends: AST_Node | null;
|
||||
properties: AST_ObjectProperty[];
|
||||
inlined: boolean;
|
||||
}
|
||||
|
||||
declare class AST_DefClass extends AST_Class {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_ClassExpression extends AST_Class {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Switch extends AST_Block {
|
||||
constructor(props?: object);
|
||||
expression: AST_Node;
|
||||
}
|
||||
|
||||
declare class AST_SwitchBranch extends AST_Block {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Default extends AST_SwitchBranch {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Case extends AST_SwitchBranch {
|
||||
constructor(props?: object);
|
||||
expression: AST_Node;
|
||||
}
|
||||
|
||||
declare class AST_Try extends AST_Block {
|
||||
constructor(props?: object);
|
||||
bcatch: AST_Catch;
|
||||
bfinally: null | AST_Finally;
|
||||
}
|
||||
|
||||
declare class AST_Catch extends AST_Block {
|
||||
constructor(props?: object);
|
||||
argname: ArgType;
|
||||
}
|
||||
|
||||
declare class AST_Finally extends AST_Block {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_EmptyStatement extends AST_Statement {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_StatementWithBody extends AST_Statement {
|
||||
constructor(props?: object);
|
||||
body: AST_Node[];
|
||||
}
|
||||
|
||||
declare class AST_LabeledStatement extends AST_StatementWithBody {
|
||||
constructor(props?: object);
|
||||
label: AST_Label;
|
||||
}
|
||||
|
||||
declare class AST_IterationStatement extends AST_StatementWithBody {
|
||||
constructor(props?: object);
|
||||
block_scope: AST_Scope | null;
|
||||
}
|
||||
|
||||
declare class AST_DWLoop extends AST_IterationStatement {
|
||||
constructor(props?: object);
|
||||
condition: AST_Node;
|
||||
}
|
||||
|
||||
declare class AST_Do extends AST_DWLoop {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_While extends AST_DWLoop {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_For extends AST_IterationStatement {
|
||||
constructor(props?: object);
|
||||
init: AST_Node | null;
|
||||
condition: AST_Node | null;
|
||||
step: AST_Node | null;
|
||||
}
|
||||
|
||||
declare class AST_ForIn extends AST_IterationStatement {
|
||||
constructor(props?: object);
|
||||
init: AST_Node | null;
|
||||
object: AST_Node;
|
||||
}
|
||||
|
||||
declare class AST_ForOf extends AST_ForIn {
|
||||
constructor(props?: object);
|
||||
await: boolean;
|
||||
}
|
||||
|
||||
declare class AST_With extends AST_StatementWithBody {
|
||||
constructor(props?: object);
|
||||
expression: AST_Node;
|
||||
}
|
||||
|
||||
declare class AST_If extends AST_StatementWithBody {
|
||||
constructor(props?: object);
|
||||
condition: AST_Node;
|
||||
alternative: AST_Node | null;
|
||||
}
|
||||
|
||||
declare class AST_Jump extends AST_Statement {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Exit extends AST_Jump {
|
||||
constructor(props?: object);
|
||||
value: AST_Node | null;
|
||||
}
|
||||
|
||||
declare class AST_Return extends AST_Exit {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Throw extends AST_Exit {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_LoopControl extends AST_Jump {
|
||||
constructor(props?: object);
|
||||
label: null | AST_LabelRef;
|
||||
}
|
||||
|
||||
declare class AST_Break extends AST_LoopControl {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Continue extends AST_LoopControl {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Definitions extends AST_Statement {
|
||||
constructor(props?: object);
|
||||
definitions: AST_VarDef[];
|
||||
}
|
||||
|
||||
declare class AST_Var extends AST_Definitions {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Let extends AST_Definitions {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Const extends AST_Definitions {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Export extends AST_Statement {
|
||||
constructor(props?: object);
|
||||
exported_definition: AST_Definitions | AST_Lambda | AST_DefClass | null;
|
||||
exported_value: AST_Node | null;
|
||||
is_default: boolean;
|
||||
exported_names: AST_NameMapping[];
|
||||
module_name: AST_String;
|
||||
}
|
||||
|
||||
declare class AST_Expansion extends AST_Node {
|
||||
constructor(props?: object);
|
||||
expression: AST_Node;
|
||||
}
|
||||
|
||||
declare class AST_Destructuring extends AST_Node {
|
||||
constructor(props?: object);
|
||||
names: AST_Node[];
|
||||
is_array: boolean;
|
||||
}
|
||||
|
||||
declare class AST_PrefixedTemplateString extends AST_Node {
|
||||
constructor(props?: object);
|
||||
template_string: AST_TemplateString;
|
||||
prefix: AST_Node;
|
||||
}
|
||||
|
||||
declare class AST_TemplateString extends AST_Node {
|
||||
constructor(props?: object);
|
||||
segments: AST_Node[];
|
||||
}
|
||||
|
||||
declare class AST_TemplateSegment extends AST_Node {
|
||||
constructor(props?: object);
|
||||
value: string;
|
||||
raw: string;
|
||||
}
|
||||
|
||||
declare class AST_NameMapping extends AST_Node {
|
||||
constructor(props?: object);
|
||||
foreign_name: AST_Symbol;
|
||||
name: AST_SymbolExport | AST_SymbolImport;
|
||||
}
|
||||
|
||||
declare class AST_Import extends AST_Node {
|
||||
constructor(props?: object);
|
||||
imported_name: null | AST_SymbolImport;
|
||||
imported_names: AST_NameMapping[];
|
||||
module_name: AST_String;
|
||||
}
|
||||
|
||||
declare class AST_VarDef extends AST_Node {
|
||||
constructor(props?: object);
|
||||
name: AST_Destructuring | AST_SymbolConst | AST_SymbolLet | AST_SymbolVar;
|
||||
value: AST_Node | null;
|
||||
}
|
||||
|
||||
declare class AST_Call extends AST_Node {
|
||||
constructor(props?: object);
|
||||
expression: AST_Node;
|
||||
args: AST_Node[];
|
||||
}
|
||||
|
||||
declare class AST_New extends AST_Call {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Sequence extends AST_Node {
|
||||
constructor(props?: object);
|
||||
expressions: AST_Node[];
|
||||
}
|
||||
|
||||
declare class AST_PropAccess extends AST_Node {
|
||||
constructor(props?: object);
|
||||
expression: AST_Node;
|
||||
property: AST_Node | string;
|
||||
}
|
||||
|
||||
declare class AST_Dot extends AST_PropAccess {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Sub extends AST_PropAccess {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Unary extends AST_Node {
|
||||
constructor(props?: object);
|
||||
operator: string;
|
||||
expression: AST_Node;
|
||||
}
|
||||
|
||||
declare class AST_UnaryPrefix extends AST_Unary {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_UnaryPostfix extends AST_Unary {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Binary extends AST_Node {
|
||||
constructor(props?: object);
|
||||
operator: string;
|
||||
left: AST_Node;
|
||||
right: AST_Node;
|
||||
}
|
||||
|
||||
declare class AST_Assign extends AST_Binary {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_DefaultAssign extends AST_Binary {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Conditional extends AST_Node {
|
||||
constructor(props?: object);
|
||||
condition: AST_Node;
|
||||
consequent: AST_Node;
|
||||
alternative: AST_Node;
|
||||
}
|
||||
|
||||
declare class AST_Array extends AST_Node {
|
||||
constructor(props?: object);
|
||||
elements: AST_Node[];
|
||||
}
|
||||
|
||||
declare class AST_Object extends AST_Node {
|
||||
constructor(props?: object);
|
||||
properties: AST_ObjectProperty[];
|
||||
}
|
||||
|
||||
declare class AST_ObjectProperty extends AST_Node {
|
||||
constructor(props?: object);
|
||||
key: string | number | AST_Node;
|
||||
value: AST_Node;
|
||||
}
|
||||
|
||||
declare class AST_ObjectKeyVal extends AST_ObjectProperty {
|
||||
constructor(props?: object);
|
||||
quote: string;
|
||||
}
|
||||
|
||||
declare class AST_ObjectSetter extends AST_ObjectProperty {
|
||||
constructor(props?: object);
|
||||
quote: string;
|
||||
static: boolean;
|
||||
}
|
||||
|
||||
declare class AST_ObjectGetter extends AST_ObjectProperty {
|
||||
constructor(props?: object);
|
||||
quote: string;
|
||||
static: boolean;
|
||||
}
|
||||
|
||||
declare class AST_ConciseMethod extends AST_ObjectProperty {
|
||||
constructor(props?: object);
|
||||
quote: string;
|
||||
static: boolean;
|
||||
is_generator: boolean;
|
||||
async: boolean;
|
||||
}
|
||||
|
||||
declare class AST_Symbol extends AST_Node {
|
||||
constructor(props?: object);
|
||||
scope: AST_Scope;
|
||||
name: string;
|
||||
thedef: SymbolDef;
|
||||
}
|
||||
|
||||
declare class AST_SymbolDeclaration extends AST_Symbol {
|
||||
constructor(props?: object);
|
||||
init: AST_Node | null;
|
||||
}
|
||||
|
||||
declare class AST_SymbolVar extends AST_SymbolDeclaration {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_SymbolFunarg extends AST_SymbolVar {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_SymbolBlockDeclaration extends AST_SymbolDeclaration {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_SymbolConst extends AST_SymbolBlockDeclaration {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_SymbolLet extends AST_SymbolBlockDeclaration {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_SymbolDefClass extends AST_SymbolBlockDeclaration {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_SymbolCatch extends AST_SymbolBlockDeclaration {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_SymbolImport extends AST_SymbolBlockDeclaration {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_SymbolDefun extends AST_SymbolDeclaration {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_SymbolLambda extends AST_SymbolDeclaration {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_SymbolClass extends AST_SymbolDeclaration {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_SymbolMethod extends AST_Symbol {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_SymbolImportForeign extends AST_Symbol {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Label extends AST_Symbol {
|
||||
constructor(props?: object);
|
||||
references: AST_LoopControl | null;
|
||||
}
|
||||
|
||||
declare class AST_SymbolRef extends AST_Symbol {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_SymbolExport extends AST_SymbolRef {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_SymbolExportForeign extends AST_Symbol {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_LabelRef extends AST_Symbol {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_This extends AST_Symbol {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Super extends AST_This {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_NewTarget extends AST_Node {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Constant extends AST_Node {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_String extends AST_Constant {
|
||||
constructor(props?: object);
|
||||
value: string;
|
||||
quote: string;
|
||||
}
|
||||
|
||||
declare class AST_Number extends AST_Constant {
|
||||
constructor(props?: object);
|
||||
value: number;
|
||||
literal: string;
|
||||
}
|
||||
|
||||
declare class AST_RegExp extends AST_Constant {
|
||||
constructor(props?: object);
|
||||
value: RegExp;
|
||||
}
|
||||
|
||||
declare class AST_Atom extends AST_Constant {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Null extends AST_Atom {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_NaN extends AST_Atom {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Undefined extends AST_Atom {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Hole extends AST_Atom {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Infinity extends AST_Atom {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Boolean extends AST_Atom {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_False extends AST_Boolean {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_True extends AST_Boolean {
|
||||
constructor(props?: object);
|
||||
}
|
||||
|
||||
declare class AST_Await extends AST_Node {
|
||||
constructor(props?: object);
|
||||
expression: AST_Node;
|
||||
}
|
||||
|
||||
declare class AST_Yield extends AST_Node {
|
||||
constructor(props?: object);
|
||||
expression: AST_Node;
|
||||
is_star: boolean;
|
||||
}
|
Reference in New Issue
Block a user