webpack-bundle-analyzer 3.3.1 → 3.3.2
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.
- package/CHANGELOG.md +5 -0
- package/lib/viewer.js +9 -9
- package/package.json +1 -1
- package/src/viewer.js +9 -9
- package/views/script.ejs +1 -1
- package/views/viewer.ejs +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,11 @@ _Note: Gaps between patch versions are faulty, broken or test releases._
|
|
|
14
14
|
|
|
15
15
|
<!-- Add changelog entries for new changes under this section -->
|
|
16
16
|
|
|
17
|
+
## 3.3.2
|
|
18
|
+
|
|
19
|
+
* **Bug Fix**
|
|
20
|
+
* Fix regression with escaping internal assets ([#264](https://github.com/webpack-contrib/webpack-bundle-analyzer/pull/264), fixes [#263](https://github.com/webpack-contrib/webpack-bundle-analyzer/issues/263))
|
|
21
|
+
|
|
17
22
|
## 3.3.1
|
|
18
23
|
|
|
19
24
|
* **Improvements**
|
package/lib/viewer.js
CHANGED
|
@@ -72,13 +72,13 @@ function _startServer() {
|
|
|
72
72
|
mode: 'server',
|
|
73
73
|
|
|
74
74
|
get chartData() {
|
|
75
|
-
return
|
|
75
|
+
return chartData;
|
|
76
76
|
},
|
|
77
77
|
|
|
78
|
-
defaultSizes
|
|
78
|
+
defaultSizes,
|
|
79
79
|
enableWebSocket: true,
|
|
80
80
|
// Helpers
|
|
81
|
-
|
|
81
|
+
escapeJson
|
|
82
82
|
});
|
|
83
83
|
});
|
|
84
84
|
const server = http.createServer(app);
|
|
@@ -148,12 +148,12 @@ function _generateReport() {
|
|
|
148
148
|
yield new Promise((resolve, reject) => {
|
|
149
149
|
ejs.renderFile(`${projectRoot}/views/viewer.ejs`, {
|
|
150
150
|
mode: 'static',
|
|
151
|
-
chartData
|
|
152
|
-
defaultSizes
|
|
151
|
+
chartData,
|
|
152
|
+
defaultSizes,
|
|
153
153
|
enableWebSocket: false,
|
|
154
154
|
// Helpers
|
|
155
155
|
assetContent: getAssetContent,
|
|
156
|
-
|
|
156
|
+
escapeJson
|
|
157
157
|
}, (err, reportHtml) => {
|
|
158
158
|
try {
|
|
159
159
|
if (err) {
|
|
@@ -191,12 +191,12 @@ function getAssetContent(filename) {
|
|
|
191
191
|
return fs.readFileSync(assetPath, 'utf8');
|
|
192
192
|
}
|
|
193
193
|
/**
|
|
194
|
-
* Escapes `<` characters in
|
|
194
|
+
* Escapes `<` characters in JSON to safely use it in `<script>` tag.
|
|
195
195
|
*/
|
|
196
196
|
|
|
197
197
|
|
|
198
|
-
function
|
|
199
|
-
return
|
|
198
|
+
function escapeJson(json) {
|
|
199
|
+
return JSON.stringify(json).replace(/</gu, '\\u003c');
|
|
200
200
|
}
|
|
201
201
|
|
|
202
202
|
function getChartData(analyzerOpts, ...args) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webpack-bundle-analyzer",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.2",
|
|
4
4
|
"description": "Webpack plugin and CLI utility that represents bundle content as convenient interactive zoomable treemap",
|
|
5
5
|
"author": "Yury Grunin <grunin.ya@ya.ru>",
|
|
6
6
|
"license": "MIT",
|
package/src/viewer.js
CHANGED
|
@@ -52,11 +52,11 @@ async function startServer(bundleStats, opts) {
|
|
|
52
52
|
app.use('/', (req, res) => {
|
|
53
53
|
res.render('viewer', {
|
|
54
54
|
mode: 'server',
|
|
55
|
-
get chartData() { return
|
|
56
|
-
defaultSizes
|
|
55
|
+
get chartData() { return chartData },
|
|
56
|
+
defaultSizes,
|
|
57
57
|
enableWebSocket: true,
|
|
58
58
|
// Helpers
|
|
59
|
-
|
|
59
|
+
escapeJson
|
|
60
60
|
});
|
|
61
61
|
});
|
|
62
62
|
|
|
@@ -133,12 +133,12 @@ async function generateReport(bundleStats, opts) {
|
|
|
133
133
|
`${projectRoot}/views/viewer.ejs`,
|
|
134
134
|
{
|
|
135
135
|
mode: 'static',
|
|
136
|
-
chartData
|
|
137
|
-
defaultSizes
|
|
136
|
+
chartData,
|
|
137
|
+
defaultSizes,
|
|
138
138
|
enableWebSocket: false,
|
|
139
139
|
// Helpers
|
|
140
140
|
assetContent: getAssetContent,
|
|
141
|
-
|
|
141
|
+
escapeJson
|
|
142
142
|
},
|
|
143
143
|
(err, reportHtml) => {
|
|
144
144
|
try {
|
|
@@ -180,10 +180,10 @@ function getAssetContent(filename) {
|
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
/**
|
|
183
|
-
* Escapes `<` characters in
|
|
183
|
+
* Escapes `<` characters in JSON to safely use it in `<script>` tag.
|
|
184
184
|
*/
|
|
185
|
-
function
|
|
186
|
-
return
|
|
185
|
+
function escapeJson(json) {
|
|
186
|
+
return JSON.stringify(json).replace(/</gu, '\\u003c');
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
function getChartData(analyzerOpts, ...args) {
|
package/views/script.ejs
CHANGED
package/views/viewer.ejs
CHANGED
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
<body>
|
|
12
12
|
<div id="app"></div>
|
|
13
13
|
<script>
|
|
14
|
-
window.chartData = <%-
|
|
15
|
-
window.defaultSizes = <%-
|
|
16
|
-
window.enableWebSocket = <%-
|
|
14
|
+
window.chartData = <%- escapeJson(chartData) %>;
|
|
15
|
+
window.defaultSizes = <%- escapeJson(defaultSizes) %>;
|
|
16
|
+
window.enableWebSocket = <%- escapeJson(enableWebSocket) %>;
|
|
17
17
|
</script>
|
|
18
18
|
</body>
|
|
19
19
|
</html>
|