webpack 5.72.0 → 5.72.1

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.

Potentially problematic release.


This version of webpack might be problematic. Click here for more details.

package/lib/Compiler.js CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const parseJson = require("json-parse-better-errors");
8
+ const parseJson = require("json-parse-even-better-errors");
9
9
  const asyncLib = require("neo-async");
10
10
  const {
11
11
  SyncHook,
@@ -5,7 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const parseJson = require("json-parse-better-errors");
8
+ const parseJson = require("json-parse-even-better-errors");
9
9
  const DelegatedModuleFactoryPlugin = require("./DelegatedModuleFactoryPlugin");
10
10
  const ExternalModuleFactoryPlugin = require("./ExternalModuleFactoryPlugin");
11
11
  const WebpackError = require("./WebpackError");
@@ -5,7 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const parseJson = require("json-parse-better-errors");
8
+ const parseJson = require("json-parse-even-better-errors");
9
9
  const { getContext, runLoaders } = require("loader-runner");
10
10
  const querystring = require("querystring");
11
11
  const { HookMap, SyncHook, AsyncSeriesBailHook } = require("tapable");
@@ -26,6 +26,7 @@ const GlobalRuntimeModule = require("./runtime/GlobalRuntimeModule");
26
26
  const HasOwnPropertyRuntimeModule = require("./runtime/HasOwnPropertyRuntimeModule");
27
27
  const LoadScriptRuntimeModule = require("./runtime/LoadScriptRuntimeModule");
28
28
  const MakeNamespaceObjectRuntimeModule = require("./runtime/MakeNamespaceObjectRuntimeModule");
29
+ const NonceRuntimeModule = require("./runtime/NonceRuntimeModule");
29
30
  const OnChunksLoadedRuntimeModule = require("./runtime/OnChunksLoadedRuntimeModule");
30
31
  const PublicPathRuntimeModule = require("./runtime/PublicPathRuntimeModule");
31
32
  const RelativeUrlRuntimeModule = require("./runtime/RelativeUrlRuntimeModule");
@@ -431,6 +432,12 @@ class RuntimePlugin {
431
432
  return true;
432
433
  }
433
434
  });
435
+ compilation.hooks.runtimeRequirementInTree
436
+ .for(RuntimeGlobals.scriptNonce)
437
+ .tap("RuntimePlugin", chunk => {
438
+ compilation.addRuntimeModule(chunk, new NonceRuntimeModule());
439
+ return true;
440
+ });
434
441
  // TODO webpack 6: remove CompatRuntimeModule
435
442
  compilation.hooks.additionalTreeRuntimeRequirements.tap(
436
443
  "RuntimePlugin",
@@ -61,14 +61,46 @@ HarmonyEvaluatedImportSpecifierDependency.Template = class HarmonyEvaluatedImpor
61
61
  const dep = /** @type {HarmonyEvaluatedImportSpecifierDependency} */ (
62
62
  dependency
63
63
  );
64
- const { moduleGraph, runtime } = templateContext;
64
+ const { module, moduleGraph, runtime } = templateContext;
65
65
  const connection = moduleGraph.getConnection(dep);
66
66
  // Skip rendering depending when dependency is conditional
67
67
  if (connection && !connection.isTargetActive(runtime)) return;
68
68
 
69
69
  const exportsInfo = moduleGraph.getExportsInfo(connection.module);
70
70
  const ids = dep.getIds(moduleGraph);
71
- const value = exportsInfo.isExportProvided(ids);
71
+
72
+ let value;
73
+
74
+ const exportsType = connection.module.getExportsType(
75
+ moduleGraph,
76
+ module.buildMeta.strictHarmonyModule
77
+ );
78
+ switch (exportsType) {
79
+ case "default-with-named": {
80
+ if (ids[0] === "default") {
81
+ value =
82
+ ids.length === 1 || exportsInfo.isExportProvided(ids.slice(1));
83
+ } else {
84
+ value = exportsInfo.isExportProvided(ids);
85
+ }
86
+ break;
87
+ }
88
+ case "namespace": {
89
+ if (ids[0] === "__esModule") {
90
+ value = ids.length === 1 || undefined;
91
+ } else {
92
+ value = exportsInfo.isExportProvided(ids);
93
+ }
94
+ break;
95
+ }
96
+ case "dynamic": {
97
+ if (ids[0] !== "default") {
98
+ value = exportsInfo.isExportProvided(ids);
99
+ }
100
+ break;
101
+ }
102
+ // default-only could lead to runtime error, when default value is primitive
103
+ }
72
104
 
73
105
  if (typeof value === "boolean") {
74
106
  source.replace(dep.range[0], dep.range[1] - 1, `${value}`);
@@ -7,6 +7,11 @@
7
7
 
8
8
  const ModuleDependency = require("./ModuleDependency");
9
9
 
10
+ /** @typedef {import("../ModuleGraph")} ModuleGraph */
11
+ /** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
12
+ /** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
13
+ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
14
+
10
15
  class LoaderDependency extends ModuleDependency {
11
16
  /**
12
17
  * @param {string} request request string
@@ -22,6 +27,14 @@ class LoaderDependency extends ModuleDependency {
22
27
  get category() {
23
28
  return "loader";
24
29
  }
30
+
31
+ /**
32
+ * @param {ModuleGraph} moduleGraph module graph
33
+ * @returns {null | false | function(ModuleGraphConnection, RuntimeSpec): ConnectionState} function to determine if the connection is active
34
+ */
35
+ getCondition(moduleGraph) {
36
+ return false;
37
+ }
25
38
  }
26
39
 
27
40
  module.exports = LoaderDependency;
@@ -7,6 +7,11 @@
7
7
 
8
8
  const ModuleDependency = require("./ModuleDependency");
9
9
 
10
+ /** @typedef {import("../ModuleGraph")} ModuleGraph */
11
+ /** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
12
+ /** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
13
+ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
14
+
10
15
  class LoaderImportDependency extends ModuleDependency {
11
16
  /**
12
17
  * @param {string} request request string
@@ -23,6 +28,14 @@ class LoaderImportDependency extends ModuleDependency {
23
28
  get category() {
24
29
  return "loaderImport";
25
30
  }
31
+
32
+ /**
33
+ * @param {ModuleGraph} moduleGraph module graph
34
+ * @returns {null | false | function(ModuleGraphConnection, RuntimeSpec): ConnectionState} function to determine if the connection is active
35
+ */
36
+ getCondition(moduleGraph) {
37
+ return false;
38
+ }
26
39
  }
27
40
 
28
41
  module.exports = LoaderImportDependency;
@@ -5,7 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const parseJson = require("json-parse-better-errors");
8
+ const parseJson = require("json-parse-even-better-errors");
9
9
  const Parser = require("../Parser");
10
10
  const JsonExportsDependency = require("../dependencies/JsonExportsDependency");
11
11
  const JsonData = require("./JsonData");
@@ -606,7 +606,7 @@ class ModuleConcatenationPlugin {
606
606
  incomingConnectionsFromNonModules.filter(connection => {
607
607
  // We are not interested in inactive connections
608
608
  // or connections without dependency
609
- return connection.isActive(runtime) || connection.dependency;
609
+ return connection.isActive(runtime);
610
610
  });
611
611
  if (activeNonModulesConnections.length > 0) {
612
612
  const problem = requestShortener => {
@@ -0,0 +1,24 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Ivan Kopeykin @vankop
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const RuntimeGlobals = require("../RuntimeGlobals");
9
+ const RuntimeModule = require("../RuntimeModule");
10
+
11
+ class NonceRuntimeModule extends RuntimeModule {
12
+ constructor() {
13
+ super("nonce", RuntimeModule.STAGE_ATTACH);
14
+ }
15
+
16
+ /**
17
+ * @returns {string} runtime code
18
+ */
19
+ generate() {
20
+ return `${RuntimeGlobals.scriptNonce} = undefined;`;
21
+ }
22
+ }
23
+
24
+ module.exports = NonceRuntimeModule;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webpack",
3
- "version": "5.72.0",
3
+ "version": "5.72.1",
4
4
  "author": "Tobias Koppers @sokra",
5
5
  "description": "Packs CommonJs/AMD modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.",
6
6
  "license": "MIT",
@@ -14,13 +14,13 @@
14
14
  "acorn-import-assertions": "^1.7.6",
15
15
  "browserslist": "^4.14.5",
16
16
  "chrome-trace-event": "^1.0.2",
17
- "enhanced-resolve": "^5.9.2",
17
+ "enhanced-resolve": "^5.9.3",
18
18
  "es-module-lexer": "^0.9.0",
19
19
  "eslint-scope": "5.1.1",
20
20
  "events": "^3.2.0",
21
21
  "glob-to-regexp": "^0.4.1",
22
22
  "graceful-fs": "^4.2.9",
23
- "json-parse-better-errors": "^1.0.2",
23
+ "json-parse-even-better-errors": "^2.3.1",
24
24
  "loader-runner": "^4.2.0",
25
25
  "mime-types": "^2.1.27",
26
26
  "neo-async": "^2.6.2",