use directories for structure

This commit is contained in:
s2
2020-05-26 10:37:57 +02:00
parent 66580d4847
commit ae4aaf2668
1287 changed files with 92093 additions and 13113 deletions

99
node_modules/terser/CHANGELOG.md generated vendored
View File

@@ -1,5 +1,104 @@
# Changelog
## v4.7.0
- A bug was fixed where an arrow function would have the wrong size
- `arguments` object is now considered safe to retrieve properties from (useful for `length`, or `0`) even when `pure_getters` is not set.
- Fixed erroneous `const` declarations without value (which is invalid) in some corner cases when using `collapse_vars`.
## v4.6.13
- Fixed issue where ES5 object properties were being turned into ES6 object properties due to more lax unicode rules.
- Fixed parsing of BigInt with lowercase `e` in them.
## v4.6.12
- Fixed subtree comparison code, making it see that `[1,[2, 3]]` is different from `[1, 2, [3]]`
- Printing of unicode identifiers has been improved
## v4.6.11
- Read unused classes' properties and method keys, to figure out if they use other variables.
- Prevent inlining into block scopes when there are name collisions
- Functions are no longer inlined into parameter defaults, because they live in their own special scope.
- When inlining identity functions, take into account the fact they may be used to drop `this` in function calls.
- Nullish coalescing operator (`x ?? y`), plus basic optimization for it.
- Template literals in binary expressions such as `+` have been further optimized
## v4.6.10
- Do not use reduce_vars when classes are present
## v4.6.9
- Check if block scopes actually exist in blocks
## v4.6.8
- Take into account "executed bits" of classes like static properties or computed keys, when checking if a class evaluation might throw or have side effects.
## v4.6.7
- Some new performance gains through a `AST_Node.size()` method which measures a node's source code length without printing it to a string first.
- An issue with setting `--comments` to `false` in the CLI has been fixed.
- Fixed some issues with inlining
- `unsafe_symbols` compress option was added, which turns `Symbol("name")` into just `Symbol()`
- Brought back compress performance improvement through the `AST_Node.equivalent_to(other)` method (which was reverted in v4.6.6).
## v4.6.6
(hotfix release)
- Reverted code to 4.6.4 to allow for more time to investigate an issue.
## v4.6.5 (REVERTED)
- Improved compress performance through using a new method to see if two nodes are equivalent, instead of printing them to a string.
## v4.6.4
- The `"some"` value in the `comments` output option now preserves `@lic` and other important comments when using `//`
- `</script>` is now better escaped in regex, and in comments, when using the `inline_script` output option
- Fixed an issue when transforming `new RegExp` into `/.../` when slashes are included in the source
- `AST_Node.prototype.constructor` now exists, allowing for easier debugging of crashes
- Multiple if statements with the same consequents are now collapsed
- Typescript typings improvements
- Optimizations while looking for surrogate pairs in strings
## v4.6.3
- Annotations such as `/*#__NOINLINE__*/` and `/*#__PURE__*/` may now be preserved using the `preserve_annotations` output option
- A TypeScript definition update for the `keep_quoted` output option.
## v4.6.2
- A bug where functions were inlined into other functions with scope conflicts has been fixed.
- `/*#__NOINLINE__*/` annotation fixed for more use cases where inlining happens.
## v4.6.1
- Fixed an issue where a class is duplicated by reduce_vars when there's a recursive reference to the class.
## v4.6.0
- Fixed issues with recursive class references.
- BigInt evaluation has been prevented, stopping Terser from evaluating BigInts like it would do regular numbers.
- Class property support has been added
## v4.5.1
(hotfix release)
- Fixed issue where `() => ({})[something]` was not parenthesised correctly.
## v4.5.0
- Inlining has been improved
- An issue where keep_fnames combined with functions declared through variables was causing name shadowing has been fixed
- You can now set the ES version through their year
- The output option `keep_numbers` has been added, which prevents Terser from turning `1000` into `1e3` and such
- Internal small optimisations and refactors
## v4.4.3
- Number and BigInt parsing has been fixed

58
node_modules/terser/README.md generated vendored
View File

@@ -2,7 +2,8 @@
[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![Linux Build][travis-image]][travis-url]
[![Travis Build][travis-image]][travis-url]
[![Opencollective financial contributors][opencollective-contributors]][opencollective-url]
A JavaScript parser and mangler/compressor toolkit for ES6+.
@@ -22,6 +23,8 @@ Find the changelog in [CHANGELOG.md](https://github.com/terser/terser/blob/maste
[downloads-url]: https://npmjs.org/package/terser
[travis-image]: https://img.shields.io/travis/terser/terser/master.svg
[travis-url]: https://travis-ci.org/terser/terser
[opencollective-contributors]: https://opencollective.com/terser/tiers/badge.svg
[opencollective-url]: https://opencollective.com/terser
Why choose terser?
------------------
@@ -87,10 +90,9 @@ a double dash to prevent input files being used as option arguments:
`reserved` List of names that should not be mangled.
--mangle-props [options] Mangle properties/specify mangler options:
`builtins` Mangle property names that overlaps
with standard JavaScript globals.
with standard JavaScript globals and DOM
API props.
`debug` Add debug prefix and suffix.
`domprops` Mangle property names that overlaps
with DOM properties.
`keep_quoted` Only mangle unquoted properties, quoted
properties are automatically reserved.
`strict` disables quoted properties
@@ -130,7 +132,7 @@ a double dash to prevent input files being used as option arguments:
sequences.
--config-file <file> Read `minify()` options from JSON file.
-d, --define <expr>[=value] Global definitions.
--ecma <version> Specify ECMAScript release: 5, 6, 7 or 8.
--ecma <version> Specify ECMAScript release: 5, 2015, 2016, etc.
-e, --enclose [arg[:value]] Embed output in a big function with configurable
arguments and values.
--ie8 Support non-standard Internet Explorer 8.
@@ -318,12 +320,8 @@ $ terser example.js -c passes=2 -m --mangle-props regex=/_$/,reserved=[bar_]
var x={o:3,t:1,calc:function(){return this.t+this.o},bar_:2};console.log(x.calc());
```
In order for this to be of any use, we avoid mangling standard JS names by
default (`--mangle-props builtins` to override).
A default exclusion file is provided in `tools/domprops.js` which should
cover most standard JS and DOM properties defined in various browsers. Pass
`--mangle-props domprops` to disable this feature.
In order for this to be of any use, we avoid mangling standard JS names and DOM
API properties by default (`--mangle-props builtins` to override).
A regular expression can be used to define which property names should be
mangled. For example, `--mangle-props regex=/^_/` will only mangle property
@@ -531,7 +529,7 @@ if (result.error) throw result.error;
## Minify options
- `ecma` (default `undefined`) - pass `5`, `6`, `7` or `8` to override `parse`,
- `ecma` (default `undefined`) - pass `5`, `2015`, `2016`, etc to override `parse`,
`compress` and `output`'s `ecma` options.
- `warnings` (default `false`) — pass `true` to return compressor warnings
@@ -608,7 +606,7 @@ if (result.error) throw result.error;
sourceMap: {
// source map options
},
ecma: 5, // specify one of: 5, 6, 7 or 8
ecma: 5, // specify one of: 5, 2015, 2016, etc.
keep_classnames: false,
keep_fnames: false,
ie8: false,
@@ -673,9 +671,9 @@ If you happen to need the source map as a raw object, set `sourceMap.asObject` t
- `bare_returns` (default `false`) -- support top level `return` statements
- `ecma` (default: `8`) -- specify one of `5`, `6`, `7` or `8`. Note: this setting
- `ecma` (default: `2017`) -- specify one of `5`, `2015`, `2016` or `2017`. Note: this setting
is not presently enforced except for ES8 optional trailing commas in function
parameter lists and calls with `ecma` `8`.
parameter lists and calls with `ecma` `2017`.
- `html5_comments` (default `true`)
@@ -683,9 +681,14 @@ If you happen to need the source map as a raw object, set `sourceMap.asObject` t
## Compress options
- `arrows` (default: `true`) -- Converts `()=>{return x}` to `()=>x`. Class
and object literal methods will also be converted to arrow expressions if
the resultant code is shorter: `m(){return x}` becomes `m:()=>x`.
- `defaults` (default: `true`) -- Pass `false` to disable most default
enabled `compress` transforms. Useful when you only want to enable a few
`compress` options while disabling the rest.
- `arrows` (default: `true`) -- Class and object literal methods are converted
will also be converted to arrow expressions if the resultant code is shorter:
`m(){return x}` becomes `m:()=>x`. To do this to regular ES5 functions which
don't use `this` or `arguments`, see `unsafe_arrows`.
- `arguments` (default: `false`) -- replace `arguments[index]` with function
parameter name whenever possible.
@@ -711,10 +714,6 @@ If you happen to need the source map as a raw object, set `sourceMap.asObject` t
- `dead_code` (default: `true`) -- remove unreachable code
- `defaults` (default: `true`) -- Pass `false` to disable most default
enabled `compress` transforms. Useful when you only want to enable a few
`compress` options while disabling the rest.
- `directives` (default: `true`) -- remove redundant or non-standard directives
- `drop_console` (default: `false`) -- Pass `true` to discard calls to
@@ -724,7 +723,7 @@ If you happen to need the source map as a raw object, set `sourceMap.asObject` t
- `drop_debugger` (default: `true`) -- remove `debugger;` statements
- `ecma` (default: `5`) -- Pass `6` or greater to enable `compress` options that
- `ecma` (default: `5`) -- Pass `2015` or greater to enable `compress` options that
will transform ES5 code into smaller ES6+ equivalent forms.
- `evaluate` (default: `true`) -- attempt to evaluate constant expressions
@@ -846,7 +845,7 @@ If you happen to need the source map as a raw object, set `sourceMap.asObject` t
expressions to arrow functions if the function body does not reference `this`.
Note: it is not always safe to perform this conversion if code relies on the
the function having a `prototype`, which arrow functions lack.
This transform requires that the `ecma` compress option is set to `6` or greater.
This transform requires that the `ecma` compress option is set to `2015` or greater.
- `unsafe_comps` (default: `false`) -- Reverse `<` and `<=` to `>` and `>=` to
allow improved compression. This might be unsafe when an at least one of two
@@ -861,6 +860,9 @@ If you happen to need the source map as a raw object, set `sourceMap.asObject` t
- `unsafe_math` (default: `false`) -- optimize numerical expressions like
`2 * x * 3` into `6 * x`, which may give imprecise floating point results.
- `unsafe_symbols` (default: `false`) -- removes keys from native Symbol
declarations, e.g `Symbol("kDog")` becomes `Symbol()`.
- `unsafe_methods` (default: false) -- Converts `{ m: function(){} }` to
`{ m(){} }`. `ecma` must be set to `6` or greater to enable this transform.
If `unsafe_methods` is a RegExp then key/value pairs with keys matching the
@@ -981,7 +983,7 @@ can pass additional arguments that control the code output:
comments, `false` to omit comments in the output, a regular expression string
(e.g. `/^!/`) or a function.
- `ecma` (default `5`) -- set output printing mode. Set `ecma` to `6` or
- `ecma` (default `5`) -- set output printing mode. Set `ecma` to `2015` or
greater to emit shorthand object properties - i.e.: `{a}` instead of `{a: a}`.
The `ecma` option will only change the output in direct control of the
beautifier. Non-compatible features in the abstract syntax tree will still
@@ -995,6 +997,9 @@ can pass additional arguments that control the code output:
- `inline_script` (default `true`) -- escape HTML comments and the slash in
occurrences of `</script>` in strings
- `keep_numbers` (default `false`) -- keep number literals as it was in original code
(disables optimizations like converting `1000000` into `1e6`)
- `keep_quoted_props` (default `false`) -- when turned on, prevents stripping
quotes from property names in object literals.
@@ -1016,6 +1021,8 @@ can pass additional arguments that control the code output:
- `2` -- always use double quotes
- `3` -- always use the original quotes
- `preserve_annotations` -- (default `false`) -- Preserve [Terser annotations](#annotations) in the output.
- `safari10` (default `false`) -- set this option to `true` to work around
the [Safari 10/11 await bug](https://bugs.webkit.org/show_bug.cgi?id=176685).
See also: the `safari10` [mangle option](#mangle-options).
@@ -1309,6 +1316,7 @@ To allow for better optimizations, the compiler makes various assumptions:
- Object properties can be added, removed and modified (not prevented with
`Object.defineProperty()`, `Object.defineProperties()`, `Object.freeze()`,
`Object.preventExtensions()` or `Object.seal()`).
- `document.all` is not `== null`
### Build Tools and Adaptors using Terser

11
node_modules/terser/bin/terser generated vendored
View File

@@ -45,7 +45,7 @@ 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("--ecma <version>", "Specify ECMAScript release: 5, 2015, 2016 or 2017...");
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.");
@@ -85,7 +85,11 @@ if (!program.output && program.sourceMap && program.sourceMap.url != "inline") {
});
if ("ecma" in program) {
if (program.ecma != (program.ecma | 0)) fatal("ERROR: ecma must be an integer");
options.ecma = program.ecma | 0;
const ecma = program.ecma | 0;
if (ecma > 5 && ecma < 2015)
options.ecma = ecma + 2009;
else
options.ecma = ecma;
}
if (program.beautify) {
options.output = typeof program.beautify == "object" ? program.beautify : {};
@@ -95,7 +99,7 @@ if (program.beautify) {
}
if (program.comments) {
if (typeof options.output != "object") options.output = {};
options.output.comments = typeof program.comments == "string" ? program.comments : "some";
options.output.comments = typeof program.comments == "string" ? (program.comments == "false" ? false : program.comments) : "some";
}
if (program.define) {
if (typeof options.compress != "object") options.compress = {};
@@ -277,6 +281,7 @@ function run() {
result.enclosed = value.block_scope.enclosed;
}
value.CTOR.PROPS.forEach(function(prop) {
if (prop === "block_scope") return;
result[prop] = value[prop];
});
return result;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

28
node_modules/terser/package.json generated vendored
View File

@@ -1,8 +1,8 @@
{
"_from": "terser@^4.0.0",
"_id": "terser@4.4.3",
"_id": "terser@4.7.0",
"_inBundle": false,
"_integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==",
"_integrity": "sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==",
"_location": "/terser",
"_phantomChildren": {},
"_requested": {
@@ -18,10 +18,10 @@
"_requiredBy": [
"/minify"
],
"_resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz",
"_shasum": "401abc52b88869cf904412503b1eb7da093ae2f0",
"_resolved": "https://registry.npmjs.org/terser/-/terser-4.7.0.tgz",
"_shasum": "15852cf1a08e3256a80428e865a2fa893ffba006",
"_spec": "terser@^4.0.0",
"_where": "/home/s2/Code/vanillajs-seed/node_modules/minify",
"_where": "D:\\Projects\\siag\\vanillajs-seed\\node_modules\\minify",
"author": {
"name": "Mihai Bazon",
"email": "mihai.bazon@gmail.com",
@@ -42,17 +42,17 @@
"deprecated": false,
"description": "JavaScript parser, mangler/compressor and beautifier toolkit for ES6+",
"devDependencies": {
"acorn": "^7.0.0",
"acorn": "^7.1.1",
"astring": "^1.4.1",
"eslint": "^6.3.0",
"eslump": "^2.0.0",
"mocha": "^5.2.0",
"mocha": "^7.1.2",
"mochallel": "^2.0.0",
"pre-commit": "^1.2.2",
"rimraf": "^3.0.0",
"rollup": "^1.20.3",
"rollup-plugin-terser": "^5.1.1",
"semver": "^6.3.0"
"rollup": "2.0.6",
"rollup-plugin-terser": "5.3.0",
"semver": "^7.1.3"
},
"engines": {
"node": ">=6.0.0"
@@ -86,6 +86,12 @@
],
"no-debugger": "error",
"no-undef": "error",
"no-unused-vars": [
"error",
{
"varsIgnorePattern": "^_$"
}
],
"no-tabs": "error",
"semi": [
"error",
@@ -156,5 +162,5 @@
"test:mocha": "npm run build -- --configTest && node test/mocha.js"
},
"types": "tools/terser.d.ts",
"version": "4.4.3"
"version": "4.7.0"
}

View File

@@ -2413,9 +2413,9 @@ export var domprops = [
"charCode",
"charCodeAt",
"charIndex",
"characterSet",
"characterData",
"characterDataOldValue",
"characterSet",
"charging",
"chargingTime",
"charset",
@@ -2741,9 +2741,9 @@ export var domprops = [
"declare",
"decode",
"decodeAudioData",
"decodingInfo",
"decodeURI",
"decodeURIComponent",
"decodingInfo",
"decrypt",
"default",
"defaultCharset",
@@ -4994,8 +4994,8 @@ export var domprops = [
"slice",
"slope",
"small",
"smooth",
"smil",
"smooth",
"smoothingTimeConstant",
"snapToLines",
"snapshotItem",

View File

@@ -2,7 +2,10 @@
import { RawSourceMap } from 'source-map';
export type ECMA = 5 | 6 | 7 | 8 | 9;
/** @deprecated since this versions basically do not exist */
type ECMA_UNOFFICIAL = 6 | 7 | 8 | 9 | 10 | 11;
export type ECMA = 5 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | ECMA_UNOFFICIAL;
export interface ParseOptions {
bare_returns?: boolean;
@@ -60,6 +63,7 @@ export interface CompressOptions {
unsafe_comps?: boolean;
unsafe_Function?: boolean;
unsafe_math?: boolean;
unsafe_symbols?: boolean;
unsafe_methods?: boolean;
unsafe_proto?: boolean;
unsafe_regexp?: boolean;
@@ -89,7 +93,7 @@ export interface MangleOptions {
export interface ManglePropertiesOptions {
builtins?: boolean;
debug?: boolean;
keep_quoted?: boolean;
keep_quoted?: boolean | 'strict';
regex?: RegExp | string;
reserved?: string[];
}
@@ -98,7 +102,13 @@ export interface OutputOptions {
ascii_only?: boolean;
beautify?: boolean;
braces?: boolean;
comments?: boolean | 'all' | 'some' | RegExp | Function;
comments?: boolean | 'all' | 'some' | RegExp | ( (node: AST_Node, comment: {
value: string,
type: 'comment1' | 'comment2' | 'comment3' | 'comment4',
pos: number,
line: number,
col: number,
}) => boolean );
ecma?: ECMA;
ie8?: boolean;
indent_level?: number;
@@ -107,6 +117,7 @@ export interface OutputOptions {
keep_quoted_props?: boolean;
max_line_len?: number | false;
preamble?: string;
preserve_annotations?: boolean;
quote_keys?: boolean;
quote_style?: OutputQuoteStyle;
safari10?: boolean;
@@ -117,6 +128,7 @@ export interface OutputOptions {
webkit?: boolean;
width?: number;
wrap_iife?: boolean;
wrap_func_args?: boolean;
}
export enum OutputQuoteStyle {
@@ -152,7 +164,8 @@ export interface MinifyOutput {
}
export interface SourceMapOptions {
content?: RawSourceMap;
/** Source map object, 'inline' or source map file content */
content?: RawSourceMap | string;
includeSources?: boolean;
filename?: string;
root?: string;