webpack 4.16.0 → 4.16.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +5 -2
  2. package/SECURITY.md +9 -9
  3. package/buildin/global.js +20 -20
  4. package/buildin/module.js +22 -22
  5. package/hot/log-apply-result.js +44 -44
  6. package/hot/log.js +2 -0
  7. package/lib/BasicEvaluatedExpression.js +211 -211
  8. package/lib/Chunk.js +32 -10
  9. package/lib/ChunkGroup.js +3 -3
  10. package/lib/Compilation.js +47 -11
  11. package/lib/ContextExclusionPlugin.js +11 -0
  12. package/lib/ContextModule.js +116 -30
  13. package/lib/ContextModuleFactory.js +6 -0
  14. package/lib/DefinePlugin.js +49 -0
  15. package/lib/DelegatedModule.js +5 -0
  16. package/lib/DependenciesBlock.js +1 -1
  17. package/lib/DllModule.js +6 -0
  18. package/lib/DllReferencePlugin.js +51 -3
  19. package/lib/ExternalModule.js +6 -0
  20. package/lib/Generator.js +11 -3
  21. package/lib/HotModuleReplacementPlugin.js +1 -5
  22. package/lib/MemoryOutputFileSystem.js +5 -5
  23. package/lib/Module.js +52 -12
  24. package/lib/MultiModule.js +6 -0
  25. package/lib/NodeStuffPlugin.js +18 -0
  26. package/lib/NormalModule.js +6 -0
  27. package/lib/NullFactory.js +12 -12
  28. package/lib/OptionsApply.js +10 -10
  29. package/lib/Parser.js +12 -3
  30. package/lib/RuntimeTemplate.js +12 -0
  31. package/lib/Stats.js +19 -2
  32. package/lib/Template.js +44 -43
  33. package/lib/WatchIgnorePlugin.js +18 -18
  34. package/lib/debug/ProfilingPlugin.js +1 -1
  35. package/lib/dependencies/AMDRequireItemDependency.js +22 -22
  36. package/lib/dependencies/CommonJsRequireDependency.js +22 -22
  37. package/lib/dependencies/CommonJsRequireDependencyParserPlugin.js +6 -0
  38. package/lib/dependencies/CriticalDependencyWarning.js +20 -20
  39. package/lib/dependencies/DelegatedSourceDependency.js +18 -18
  40. package/lib/dependencies/DllEntryDependency.js +20 -20
  41. package/lib/dependencies/LocalModule.js +23 -23
  42. package/lib/dependencies/ModuleHotAcceptDependency.js +23 -23
  43. package/lib/dependencies/ModuleHotDeclineDependency.js +23 -23
  44. package/lib/dependencies/PrefetchDependency.js +18 -18
  45. package/lib/dependencies/RequireEnsureItemDependency.js +21 -21
  46. package/lib/dependencies/RequireResolveDependency.js +22 -22
  47. package/lib/node/NodeOutputFileSystem.js +22 -22
  48. package/lib/node/NodeTargetPlugin.js +1 -0
  49. package/lib/optimize/ConcatenatedModule.js +5 -0
  50. package/lib/optimize/OccurrenceChunkOrderPlugin.js +1 -1
  51. package/lib/optimize/OccurrenceModuleOrderPlugin.js +1 -1
  52. package/lib/optimize/OccurrenceOrderPlugin.js +2 -2
  53. package/lib/util/SortableSet.js +1 -0
  54. package/lib/util/StackedSetMap.js +12 -3
  55. package/lib/wasm/WebAssemblyGenerator.js +22 -5
  56. package/lib/wasm/WebAssemblyJavascriptGenerator.js +16 -2
  57. package/lib/webpack.js +1 -0
  58. package/package.json +12 -20
  59. package/schemas/WebpackOptions.json +2 -6
  60. package/schemas/ajv.absolutePath.js +55 -55
  61. package/schemas/plugins/BannerPlugin.json +96 -96
  62. package/schemas/plugins/DllPlugin.json +32 -32
  63. package/schemas/plugins/DllReferencePlugin.json +99 -99
  64. package/schemas/plugins/HashedModuleIdsPlugin.json +24 -24
  65. package/schemas/plugins/LoaderOptionsPlugin.json +26 -26
  66. package/schemas/plugins/SourceMapDevToolPlugin.json +187 -187
  67. package/schemas/plugins/WatchIgnorePlugin.json +16 -16
  68. package/schemas/plugins/debug/ProfilingPlugin.json +12 -12
  69. package/schemas/plugins/optimize/AggressiveSplittingPlugin.json +22 -22
  70. package/schemas/plugins/optimize/LimitChunkCountPlugin.json +15 -15
  71. package/schemas/plugins/optimize/MinChunkSizePlugin.json +13 -13
package/README.md CHANGED
@@ -92,16 +92,19 @@ within webpack itself use this plugin interface. This makes webpack very
92
92
 
93
93
  |Name|Status|Install Size|Description|
94
94
  |:--:|:----:|:----------:|:----------|
95
- |[extract-text-webpack-plugin][extract]|![extract-npm]|![extract-size]|Extracts Text (CSS) from your bundles into a separate file (app.bundle.css)|
95
+ |[mini-css-extract-plugin][mini-css]|![mini-css-npm]|![mini-css-size]|Extracts CSS into separate files. It creates a CSS file per JS file which contains CSS.|
96
96
  |[compression-webpack-plugin][compression]|![compression-npm]|![compression-size]|Prepares compressed versions of assets to serve them with Content-Encoding|
97
97
  |[i18n-webpack-plugin][i18n]|![i18n-npm]|![i18n-size]|Adds i18n support to your bundles|
98
98
  |[html-webpack-plugin][html-plugin]|![html-plugin-npm]|![html-plugin-size]| Simplifies creation of HTML files (`index.html`) to serve your bundles|
99
-
99
+ |[extract-text-webpack-plugin][extract]|![extract-npm]|![extract-size]|Extract text from a bundle, or bundles, into a separate file|
100
100
 
101
101
  [common-npm]: https://img.shields.io/npm/v/webpack.svg
102
102
  [extract]: https://github.com/webpack/extract-text-webpack-plugin
103
103
  [extract-npm]: https://img.shields.io/npm/v/extract-text-webpack-plugin.svg
104
104
  [extract-size]: https://packagephobia.now.sh/badge?p=extract-text-webpack-plugin
105
+ [mini-css]: https://github.com/webpack-contrib/mini-css-extract-plugin
106
+ [mini-css-npm]: https://img.shields.io/npm/v/mini-css-extract-plugin.svg
107
+ [mini-css-size]: https://packagephobia.now.sh/badge?p=mini-css-extract-plugin
105
108
  [component]: https://github.com/webpack/component-webpack-plugin
106
109
  [component-npm]: https://img.shields.io/npm/v/component-webpack-plugin.svg
107
110
  [component-size]: https://packagephobia.now.sh/badge?p=component-webpack-plugin
package/SECURITY.md CHANGED
@@ -1,9 +1,9 @@
1
- # Reporting Security Issues
2
-
3
- If you discover a security issue in webpack, please report it by sending an
4
- email to [webpack@opencollective.com](mailto:webpack@opencollective.com).
5
-
6
- This will allow us to assess the risk, and make a fix available before we add a
7
- bug report to the GitHub repository.
8
-
9
- Thanks for helping make webpack safe for everyone.
1
+ # Reporting Security Issues
2
+
3
+ If you discover a security issue in webpack, please report it by sending an
4
+ email to [webpack@opencollective.com](mailto:webpack@opencollective.com).
5
+
6
+ This will allow us to assess the risk, and make a fix available before we add a
7
+ bug report to the GitHub repository.
8
+
9
+ Thanks for helping make webpack safe for everyone.
package/buildin/global.js CHANGED
@@ -1,20 +1,20 @@
1
- var g;
2
-
3
- // This works in non-strict mode
4
- g = (function() {
5
- return this;
6
- })();
7
-
8
- try {
9
- // This works if eval is allowed (see CSP)
10
- g = g || Function("return this")() || (1, eval)("this");
11
- } catch (e) {
12
- // This works if the window reference is available
13
- if (typeof window === "object") g = window;
14
- }
15
-
16
- // g can still be undefined, but nothing to do about it...
17
- // We return undefined, instead of nothing here, so it's
18
- // easier to handle this case. if(!global) { ...}
19
-
20
- module.exports = g;
1
+ var g;
2
+
3
+ // This works in non-strict mode
4
+ g = (function() {
5
+ return this;
6
+ })();
7
+
8
+ try {
9
+ // This works if eval is allowed (see CSP)
10
+ g = g || Function("return this")() || (1, eval)("this");
11
+ } catch (e) {
12
+ // This works if the window reference is available
13
+ if (typeof window === "object") g = window;
14
+ }
15
+
16
+ // g can still be undefined, but nothing to do about it...
17
+ // We return undefined, instead of nothing here, so it's
18
+ // easier to handle this case. if(!global) { ...}
19
+
20
+ module.exports = g;
package/buildin/module.js CHANGED
@@ -1,22 +1,22 @@
1
- module.exports = function(module) {
2
- if (!module.webpackPolyfill) {
3
- module.deprecate = function() {};
4
- module.paths = [];
5
- // module.parent = undefined by default
6
- if (!module.children) module.children = [];
7
- Object.defineProperty(module, "loaded", {
8
- enumerable: true,
9
- get: function() {
10
- return module.l;
11
- }
12
- });
13
- Object.defineProperty(module, "id", {
14
- enumerable: true,
15
- get: function() {
16
- return module.i;
17
- }
18
- });
19
- module.webpackPolyfill = 1;
20
- }
21
- return module;
22
- };
1
+ module.exports = function(module) {
2
+ if (!module.webpackPolyfill) {
3
+ module.deprecate = function() {};
4
+ module.paths = [];
5
+ // module.parent = undefined by default
6
+ if (!module.children) module.children = [];
7
+ Object.defineProperty(module, "loaded", {
8
+ enumerable: true,
9
+ get: function() {
10
+ return module.l;
11
+ }
12
+ });
13
+ Object.defineProperty(module, "id", {
14
+ enumerable: true,
15
+ get: function() {
16
+ return module.i;
17
+ }
18
+ });
19
+ module.webpackPolyfill = 1;
20
+ }
21
+ return module;
22
+ };
@@ -1,44 +1,44 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
- module.exports = function(updatedModules, renewedModules) {
6
- var unacceptedModules = updatedModules.filter(function(moduleId) {
7
- return renewedModules && renewedModules.indexOf(moduleId) < 0;
8
- });
9
- var log = require("./log");
10
-
11
- if (unacceptedModules.length > 0) {
12
- log(
13
- "warning",
14
- "[HMR] The following modules couldn't be hot updated: (They would need a full reload!)"
15
- );
16
- unacceptedModules.forEach(function(moduleId) {
17
- log("warning", "[HMR] - " + moduleId);
18
- });
19
- }
20
-
21
- if (!renewedModules || renewedModules.length === 0) {
22
- log("info", "[HMR] Nothing hot updated.");
23
- } else {
24
- log("info", "[HMR] Updated modules:");
25
- renewedModules.forEach(function(moduleId) {
26
- if (typeof moduleId === "string" && moduleId.indexOf("!") !== -1) {
27
- var parts = moduleId.split("!");
28
- log.groupCollapsed("info", "[HMR] - " + parts.pop());
29
- log("info", "[HMR] - " + moduleId);
30
- log.groupEnd("info");
31
- } else {
32
- log("info", "[HMR] - " + moduleId);
33
- }
34
- });
35
- var numberIds = renewedModules.every(function(moduleId) {
36
- return typeof moduleId === "number";
37
- });
38
- if (numberIds)
39
- log(
40
- "info",
41
- "[HMR] Consider using the NamedModulesPlugin for module names."
42
- );
43
- }
44
- };
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ module.exports = function(updatedModules, renewedModules) {
6
+ var unacceptedModules = updatedModules.filter(function(moduleId) {
7
+ return renewedModules && renewedModules.indexOf(moduleId) < 0;
8
+ });
9
+ var log = require("./log");
10
+
11
+ if (unacceptedModules.length > 0) {
12
+ log(
13
+ "warning",
14
+ "[HMR] The following modules couldn't be hot updated: (They would need a full reload!)"
15
+ );
16
+ unacceptedModules.forEach(function(moduleId) {
17
+ log("warning", "[HMR] - " + moduleId);
18
+ });
19
+ }
20
+
21
+ if (!renewedModules || renewedModules.length === 0) {
22
+ log("info", "[HMR] Nothing hot updated.");
23
+ } else {
24
+ log("info", "[HMR] Updated modules:");
25
+ renewedModules.forEach(function(moduleId) {
26
+ if (typeof moduleId === "string" && moduleId.indexOf("!") !== -1) {
27
+ var parts = moduleId.split("!");
28
+ log.groupCollapsed("info", "[HMR] - " + parts.pop());
29
+ log("info", "[HMR] - " + moduleId);
30
+ log.groupEnd("info");
31
+ } else {
32
+ log("info", "[HMR] - " + moduleId);
33
+ }
34
+ });
35
+ var numberIds = renewedModules.every(function(moduleId) {
36
+ return typeof moduleId === "number";
37
+ });
38
+ if (numberIds)
39
+ log(
40
+ "info",
41
+ "[HMR] Consider using the NamedModulesPlugin for module names."
42
+ );
43
+ }
44
+ };
package/hot/log.js CHANGED
@@ -30,9 +30,11 @@ module.exports = function(level, msg) {
30
30
  }
31
31
  };
32
32
 
33
+ /* eslint-disable node/no-unsupported-features/node-builtins */
33
34
  var group = console.group || dummy;
34
35
  var groupCollapsed = console.groupCollapsed || dummy;
35
36
  var groupEnd = console.groupEnd || dummy;
37
+ /* eslint-enable node/no-unsupported-features/node-builtins */
36
38
 
37
39
  module.exports.group = logGroup(group);
38
40
 
@@ -1,211 +1,211 @@
1
- /*
2
- MIT License http://www.opensource.org/licenses/mit-license.php
3
- Author Tobias Koppers @sokra
4
- */
5
-
6
- "use strict";
7
-
8
- const TypeUnknown = 0;
9
- const TypeNull = 1;
10
- const TypeString = 2;
11
- const TypeNumber = 3;
12
- const TypeBoolean = 4;
13
- const TypeRegExp = 5;
14
- const TypeConditional = 6;
15
- const TypeArray = 7;
16
- const TypeConstArray = 8;
17
- const TypeIdentifier = 9;
18
- const TypeWrapped = 10;
19
- const TypeTemplateString = 11;
20
-
21
- class BasicEvaluatedExpression {
22
- constructor() {
23
- this.type = TypeUnknown;
24
- this.range = null;
25
- this.falsy = false;
26
- this.truthy = false;
27
- this.bool = null;
28
- this.number = null;
29
- this.regExp = null;
30
- this.string = null;
31
- this.quasis = null;
32
- this.array = null;
33
- this.items = null;
34
- this.options = null;
35
- this.prefix = null;
36
- this.postfix = null;
37
- }
38
-
39
- isNull() {
40
- return this.type === TypeNull;
41
- }
42
-
43
- isString() {
44
- return this.type === TypeString;
45
- }
46
-
47
- isNumber() {
48
- return this.type === TypeNumber;
49
- }
50
-
51
- isBoolean() {
52
- return this.type === TypeBoolean;
53
- }
54
-
55
- isRegExp() {
56
- return this.type === TypeRegExp;
57
- }
58
-
59
- isConditional() {
60
- return this.type === TypeConditional;
61
- }
62
-
63
- isArray() {
64
- return this.type === TypeArray;
65
- }
66
-
67
- isConstArray() {
68
- return this.type === TypeConstArray;
69
- }
70
-
71
- isIdentifier() {
72
- return this.type === TypeIdentifier;
73
- }
74
-
75
- isWrapped() {
76
- return this.type === TypeWrapped;
77
- }
78
-
79
- isTemplateString() {
80
- return this.type === TypeTemplateString;
81
- }
82
-
83
- isTruthy() {
84
- return this.truthy;
85
- }
86
-
87
- isFalsy() {
88
- return this.falsy;
89
- }
90
-
91
- asBool() {
92
- if (this.truthy) return true;
93
- if (this.falsy) return false;
94
- if (this.isBoolean()) return this.bool;
95
- if (this.isNull()) return false;
96
- if (this.isString()) return this.string !== "";
97
- if (this.isNumber()) return this.number !== 0;
98
- if (this.isRegExp()) return true;
99
- if (this.isArray()) return true;
100
- if (this.isConstArray()) return true;
101
- if (this.isWrapped()) {
102
- return (this.prefix && this.prefix.asBool()) ||
103
- (this.postfix && this.postfix.asBool())
104
- ? true
105
- : undefined;
106
- }
107
- if (this.isTemplateString()) {
108
- for (const quasi of this.quasis) {
109
- if (quasi.asBool()) return true;
110
- }
111
- // can't tell if string will be empty without executing
112
- }
113
- return undefined;
114
- }
115
-
116
- setString(string) {
117
- this.type = TypeString;
118
- this.string = string;
119
- return this;
120
- }
121
-
122
- setNull() {
123
- this.type = TypeNull;
124
- return this;
125
- }
126
-
127
- setNumber(number) {
128
- this.type = TypeNumber;
129
- this.number = number;
130
- return this;
131
- }
132
-
133
- setBoolean(bool) {
134
- this.type = TypeBoolean;
135
- this.bool = bool;
136
- return this;
137
- }
138
-
139
- setRegExp(regExp) {
140
- this.type = TypeRegExp;
141
- this.regExp = regExp;
142
- return this;
143
- }
144
-
145
- setIdentifier(identifier) {
146
- this.type = TypeIdentifier;
147
- this.identifier = identifier;
148
- return this;
149
- }
150
-
151
- setWrapped(prefix, postfix) {
152
- this.type = TypeWrapped;
153
- this.prefix = prefix;
154
- this.postfix = postfix;
155
- return this;
156
- }
157
-
158
- setOptions(options) {
159
- this.type = TypeConditional;
160
- this.options = options;
161
- return this;
162
- }
163
-
164
- addOptions(options) {
165
- if (!this.options) {
166
- this.type = TypeConditional;
167
- this.options = [];
168
- }
169
- for (const item of options) {
170
- this.options.push(item);
171
- }
172
- return this;
173
- }
174
-
175
- setItems(items) {
176
- this.type = TypeArray;
177
- this.items = items;
178
- return this;
179
- }
180
-
181
- setArray(array) {
182
- this.type = TypeConstArray;
183
- this.array = array;
184
- return this;
185
- }
186
-
187
- setTemplateString(quasis) {
188
- this.type = TypeTemplateString;
189
- this.quasis = quasis;
190
- return this;
191
- }
192
-
193
- setTruthy() {
194
- this.falsy = false;
195
- this.truthy = true;
196
- return this;
197
- }
198
-
199
- setFalsy() {
200
- this.falsy = true;
201
- this.truthy = false;
202
- return this;
203
- }
204
-
205
- setRange(range) {
206
- this.range = range;
207
- return this;
208
- }
209
- }
210
-
211
- module.exports = BasicEvaluatedExpression;
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const TypeUnknown = 0;
9
+ const TypeNull = 1;
10
+ const TypeString = 2;
11
+ const TypeNumber = 3;
12
+ const TypeBoolean = 4;
13
+ const TypeRegExp = 5;
14
+ const TypeConditional = 6;
15
+ const TypeArray = 7;
16
+ const TypeConstArray = 8;
17
+ const TypeIdentifier = 9;
18
+ const TypeWrapped = 10;
19
+ const TypeTemplateString = 11;
20
+
21
+ class BasicEvaluatedExpression {
22
+ constructor() {
23
+ this.type = TypeUnknown;
24
+ this.range = null;
25
+ this.falsy = false;
26
+ this.truthy = false;
27
+ this.bool = null;
28
+ this.number = null;
29
+ this.regExp = null;
30
+ this.string = null;
31
+ this.quasis = null;
32
+ this.array = null;
33
+ this.items = null;
34
+ this.options = null;
35
+ this.prefix = null;
36
+ this.postfix = null;
37
+ }
38
+
39
+ isNull() {
40
+ return this.type === TypeNull;
41
+ }
42
+
43
+ isString() {
44
+ return this.type === TypeString;
45
+ }
46
+
47
+ isNumber() {
48
+ return this.type === TypeNumber;
49
+ }
50
+
51
+ isBoolean() {
52
+ return this.type === TypeBoolean;
53
+ }
54
+
55
+ isRegExp() {
56
+ return this.type === TypeRegExp;
57
+ }
58
+
59
+ isConditional() {
60
+ return this.type === TypeConditional;
61
+ }
62
+
63
+ isArray() {
64
+ return this.type === TypeArray;
65
+ }
66
+
67
+ isConstArray() {
68
+ return this.type === TypeConstArray;
69
+ }
70
+
71
+ isIdentifier() {
72
+ return this.type === TypeIdentifier;
73
+ }
74
+
75
+ isWrapped() {
76
+ return this.type === TypeWrapped;
77
+ }
78
+
79
+ isTemplateString() {
80
+ return this.type === TypeTemplateString;
81
+ }
82
+
83
+ isTruthy() {
84
+ return this.truthy;
85
+ }
86
+
87
+ isFalsy() {
88
+ return this.falsy;
89
+ }
90
+
91
+ asBool() {
92
+ if (this.truthy) return true;
93
+ if (this.falsy) return false;
94
+ if (this.isBoolean()) return this.bool;
95
+ if (this.isNull()) return false;
96
+ if (this.isString()) return this.string !== "";
97
+ if (this.isNumber()) return this.number !== 0;
98
+ if (this.isRegExp()) return true;
99
+ if (this.isArray()) return true;
100
+ if (this.isConstArray()) return true;
101
+ if (this.isWrapped()) {
102
+ return (this.prefix && this.prefix.asBool()) ||
103
+ (this.postfix && this.postfix.asBool())
104
+ ? true
105
+ : undefined;
106
+ }
107
+ if (this.isTemplateString()) {
108
+ for (const quasi of this.quasis) {
109
+ if (quasi.asBool()) return true;
110
+ }
111
+ // can't tell if string will be empty without executing
112
+ }
113
+ return undefined;
114
+ }
115
+
116
+ setString(string) {
117
+ this.type = TypeString;
118
+ this.string = string;
119
+ return this;
120
+ }
121
+
122
+ setNull() {
123
+ this.type = TypeNull;
124
+ return this;
125
+ }
126
+
127
+ setNumber(number) {
128
+ this.type = TypeNumber;
129
+ this.number = number;
130
+ return this;
131
+ }
132
+
133
+ setBoolean(bool) {
134
+ this.type = TypeBoolean;
135
+ this.bool = bool;
136
+ return this;
137
+ }
138
+
139
+ setRegExp(regExp) {
140
+ this.type = TypeRegExp;
141
+ this.regExp = regExp;
142
+ return this;
143
+ }
144
+
145
+ setIdentifier(identifier) {
146
+ this.type = TypeIdentifier;
147
+ this.identifier = identifier;
148
+ return this;
149
+ }
150
+
151
+ setWrapped(prefix, postfix) {
152
+ this.type = TypeWrapped;
153
+ this.prefix = prefix;
154
+ this.postfix = postfix;
155
+ return this;
156
+ }
157
+
158
+ setOptions(options) {
159
+ this.type = TypeConditional;
160
+ this.options = options;
161
+ return this;
162
+ }
163
+
164
+ addOptions(options) {
165
+ if (!this.options) {
166
+ this.type = TypeConditional;
167
+ this.options = [];
168
+ }
169
+ for (const item of options) {
170
+ this.options.push(item);
171
+ }
172
+ return this;
173
+ }
174
+
175
+ setItems(items) {
176
+ this.type = TypeArray;
177
+ this.items = items;
178
+ return this;
179
+ }
180
+
181
+ setArray(array) {
182
+ this.type = TypeConstArray;
183
+ this.array = array;
184
+ return this;
185
+ }
186
+
187
+ setTemplateString(quasis) {
188
+ this.type = TypeTemplateString;
189
+ this.quasis = quasis;
190
+ return this;
191
+ }
192
+
193
+ setTruthy() {
194
+ this.falsy = false;
195
+ this.truthy = true;
196
+ return this;
197
+ }
198
+
199
+ setFalsy() {
200
+ this.falsy = true;
201
+ this.truthy = false;
202
+ return this;
203
+ }
204
+
205
+ setRange(range) {
206
+ this.range = range;
207
+ return this;
208
+ }
209
+ }
210
+
211
+ module.exports = BasicEvaluatedExpression;