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 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 JSON.stringify(chartData);
75
+ return chartData;
76
76
  },
77
77
 
78
- defaultSizes: JSON.stringify(defaultSizes),
78
+ defaultSizes,
79
79
  enableWebSocket: true,
80
80
  // Helpers
81
- escapeScript
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: JSON.stringify(chartData),
152
- defaultSizes: JSON.stringify(defaultSizes),
151
+ chartData,
152
+ defaultSizes,
153
153
  enableWebSocket: false,
154
154
  // Helpers
155
155
  assetContent: getAssetContent,
156
- escapeScript
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 the string to safely use it in `<script>` tag.
194
+ * Escapes `<` characters in JSON to safely use it in `<script>` tag.
195
195
  */
196
196
 
197
197
 
198
- function escapeScript(value) {
199
- return String(value).replace(/</gu, '\\u003c');
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.1",
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 JSON.stringify(chartData) },
56
- defaultSizes: JSON.stringify(defaultSizes),
55
+ get chartData() { return chartData },
56
+ defaultSizes,
57
57
  enableWebSocket: true,
58
58
  // Helpers
59
- escapeScript
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: JSON.stringify(chartData),
137
- defaultSizes: JSON.stringify(defaultSizes),
136
+ chartData,
137
+ defaultSizes,
138
138
  enableWebSocket: false,
139
139
  // Helpers
140
140
  assetContent: getAssetContent,
141
- escapeScript
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 the string to safely use it in `<script>` tag.
183
+ * Escapes `<` characters in JSON to safely use it in `<script>` tag.
184
184
  */
185
- function escapeScript(value) {
186
- return String(value).replace(/</gu, '\\u003c');
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
@@ -1,7 +1,7 @@
1
1
  <% if (mode === 'static') { %>
2
2
  <!-- <%= filename %> -->
3
3
  <script>
4
- <%- escapeScript(assetContent(filename)) %>
4
+ <%- assetContent(filename) %>
5
5
  </script>
6
6
  <% } else { %>
7
7
  <script src="<%= filename %>"></script>
package/views/viewer.ejs CHANGED
@@ -11,9 +11,9 @@
11
11
  <body>
12
12
  <div id="app"></div>
13
13
  <script>
14
- window.chartData = <%- escapeScript(chartData) %>;
15
- window.defaultSizes = <%- escapeScript(defaultSizes) %>;
16
- window.enableWebSocket = <%- escapeScript(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>