powerbi-visuals-tools 4.2.0 → 4.3.0

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
@@ -1,6 +1,14 @@
1
1
  # Change Log - PowerBI Visual Tools (pbiviz)
2
2
 
3
3
  This page contains information about changes to the PowerBI Visual Tools (pbiviz).
4
+
5
+ ## 4.3.0
6
+ * Implemented new flag `--no-stats` to disable statistics files
7
+ * Fixed vulnerabilities
8
+
9
+ ## 4.2.1
10
+ * Replaced `base64-inline-loader` with webpack `asset/inline`
11
+
4
12
  ## 4.2.0
5
13
  * Fixed vulnerabilities
6
14
  * Updated `powerbi-visuals-webpack-plugin` to 3.2.0
@@ -32,11 +32,9 @@ let ConsoleWriter = require('../lib/ConsoleWriter');
32
32
  let CommandHelpManager = require('../lib/CommandHelpManager');
33
33
  let options = process.argv;
34
34
 
35
- for (let i = 0; i < options.length; i++) {
36
- if (options[i] == '--help' || options[i] == '-h') {
37
- program.help(CommandHelpManager.createSubCommandHelpCallback(options));
38
- process.exit(0);
39
- }
35
+ if (options.some(option => option === '--help' || option === '-h')) {
36
+ program.help(CommandHelpManager.createSubCommandHelpCallback(options));
37
+ process.exit(0);
40
38
  }
41
39
 
42
40
  program.parse(options);
package/bin/pbiviz-new.js CHANGED
@@ -38,11 +38,9 @@ program
38
38
  .option('-f, --force', 'force creation (overwrites folder if exists)')
39
39
  .option('-t, --template [template]', 'use a specific template (default, table, slicer, rvisual, rhtml)');
40
40
 
41
- for (let i = 0; i < options.length; i++) {
42
- if (options[i] == '--help' || options[i] == '-h') {
43
- program.help(CommandHelpManager.createSubCommandHelpCallback(options));
44
- process.exit(0);
45
- }
41
+ if (options.some(option => option === '--help' || option === '-h')) {
42
+ program.help(CommandHelpManager.createSubCommandHelpCallback(options));
43
+ process.exit(0);
46
44
  }
47
45
 
48
46
  program.parse(options);
@@ -28,28 +28,28 @@
28
28
 
29
29
  const program = require('commander');
30
30
  const compareVersions = require("compare-versions");
31
+ const webpack = require("webpack");
32
+
31
33
  const config = require('../config.json');
32
34
  const VisualPackage = require('../lib/VisualPackage');
33
35
  const ConsoleWriter = require('../lib/ConsoleWriter');
34
36
  const WebPackWrap = require('../lib/WebPackWrap');
35
- const webpack = require("webpack");
36
37
  const CommandHelpManager = require('../lib/CommandHelpManager');
37
38
 
38
39
  let options = process.argv;
39
40
  const minAPIversion = config.constants.minAPIversion;
40
41
 
41
42
  program
42
- .option('--resources', "Produces a folder containing the pbiviz resource files (js, css, json)", false)
43
- .option('--no-pbiviz', "Doesn't produce a pbiviz file (must be used in conjunction with resources flag)", false)
44
- .option('--no-minify', "Doesn't minify the js in the package (useful for debugging)", true)
45
- .option('--no-plugin', "Doesn't include a plugin declaration to the package (must be used in conjunction with --no-pbiviz and --resources flags)", false)
43
+ .option('--resources', "Produces a folder containing the pbiviz resource files (js, css, json)")
44
+ .option('--no-pbiviz', "Doesn't produce a pbiviz file (must be used in conjunction with resources flag)")
45
+ .option('--no-minify', "Doesn't minify the js in the package (useful for debugging)")
46
+ .option('--no-plugin', "Doesn't include a plugin declaration to the package (must be used in conjunction with --no-pbiviz and --resources flags)")
47
+ .option('--no-stats', "Doesn't generate statistics files")
46
48
  .option('-c, --compression <compressionLevel>', "Enables compression of visual package", /^(0|1|2|3|4|5|6|7|8|9)$/i, "6");
47
49
 
48
- for (let i = 0; i < options.length; i++) {
49
- if (options[i] == '--help' || options[i] == '-h') {
50
- program.help(CommandHelpManager.createSubCommandHelpCallback(options));
51
- process.exit(0);
52
- }
50
+ if (options.some(option => option === '--help' || option === '-h')) {
51
+ program.help(CommandHelpManager.createSubCommandHelpCallback(options));
52
+ process.exit(0);
53
53
  }
54
54
 
55
55
  program.parse(options);
@@ -75,7 +75,8 @@ VisualPackage.loadVisualPackage(cwd).then((visualPackage) => {
75
75
  generatePbiviz: program.pbiviz,
76
76
  minifyJS: program.minify,
77
77
  minify: program.minify,
78
- compression: program.compression
78
+ compression: program.compression,
79
+ disableStats: !program.stats
79
80
  }).then(({ webpackConfig }) => {
80
81
  let compiler = webpack(webpackConfig);
81
82
  compiler.run(function (err, stats) {
@@ -118,3 +119,4 @@ function displayCertificationRules() {
118
119
  ConsoleWriter.info("Full description of certification requirements you can find in documentation:");
119
120
  ConsoleWriter.info("https://docs.microsoft.com/en-us/power-bi/power-bi-custom-visuals-certified#certification-requirements");
120
121
  }
122
+
@@ -28,15 +28,16 @@
28
28
 
29
29
  const program = require('commander');
30
30
  const compareVersions = require("compare-versions");
31
+ const fs = require('fs-extra');
32
+ const path = require('path');
33
+ const webpack = require("webpack");
34
+
31
35
  const config = require('../config.json');
32
36
  const VisualPackage = require('../lib/VisualPackage');
33
37
  const WebpackDevServer = require("webpack-dev-server");
34
38
  const ConsoleWriter = require('../lib/ConsoleWriter');
35
39
  const WebPackWrap = require('../lib/WebPackWrap');
36
- const webpack = require("webpack");
37
40
  const CommandHelpManager = require('../lib/CommandHelpManager');
38
- const fs = require('fs-extra');
39
- const path = require('path');
40
41
 
41
42
  const options = process.argv;
42
43
  const minAPIversion = config.constants.minAPIversion;
@@ -44,13 +45,12 @@ const minAPIversion = config.constants.minAPIversion;
44
45
  program
45
46
  .option('-p, --port [port]', 'set the port listening on')
46
47
  .option('-m, --mute', 'mute error outputs')
47
- .option('-d, --drop', 'drop outputs into output folder');
48
+ .option('-d, --drop', 'drop outputs into output folder')
49
+ .option('--no-stats', "Doesn't generate statistics files");
48
50
 
49
- for (let i = 0; i < options.length; i++) {
50
- if (options[i] == '--help' || options[i] == '-h') {
51
- program.help(CommandHelpManager.createSubCommandHelpCallback(options));
52
- process.exit(0);
53
- }
51
+ if (options.some(option => option === '--help' || option === '-h')) {
52
+ program.help(CommandHelpManager.createSubCommandHelpCallback(options));
53
+ process.exit(0);
54
54
  }
55
55
 
56
56
  program.parse(options);
@@ -70,7 +70,8 @@ VisualPackage.loadVisualPackage(cwd).then((visualPackage) => {
70
70
  generatePbiviz: false,
71
71
  minifyJS: false,
72
72
  minify: false,
73
- devServerPort: program.port
73
+ devServerPort: program.port,
74
+ disableStats: !program.stats
74
75
  })
75
76
  .then(({ webpackConfig }) => {
76
77
  let compiler = webpack(webpackConfig);
@@ -1,28 +1,28 @@
1
1
  -----BEGIN PRIVATE KEY-----
2
- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOtRV/9CSVGRnc
3
- EmqvLkzH+GweDRrYKkKIip+NjriYjESx1nuqqFvFbgehg697WTJfsn9OdkKuiTNF
4
- Y14cx//MFcVsKgUDwnAA1i4ElutWSU2a0EBLkxkPI7NRTxSo+vyLiF80RGFJuwKU
5
- RODTlDuZTb7r6cAGh2tUFUF5qEykuA3N9eJudjxo2SkTm93hPv/yaxZSimYWH0n6
6
- KHTpXtYAq/y4T38rGpF4D6SlVFc9Yzym7+oUb4+A01J8APjsr9cDLoqDfAh4wKTA
7
- VtzcO4F6UYxbocWEzo1tJNKB1kdHXiWyaZWLsUfewnKLbfxltr6C+4+dyB95fk+R
8
- GJwNSDR/AgMBAAECggEAGgsEn29iIIreEDUdzd52fAdXj9200SFZ6pwUiCBAL7AU
9
- g5dzU0gM7+3x9i6CMHdHenkhwv/xXM4acJaZZ+Tm3I6tpfgRU6zusZxKhfeBxQhN
10
- R8EPKLZqxNaJpCfjgXrF0MqovAwVedWe+JFJBj851xHNiSmVMP1kz14yNqK2rVXt
11
- IXJDDqmfa870eBkdRT5inPXXEMYfuytPivbuNZs+H2sXDXQPSw85cqlqt2EZZMM2
12
- FarpaVMyplwZTIvG/MP9M2hUdQiQutqPTkIrrz0dyWOfLcTIsqbngIoma9s1WBGa
13
- 8r2lQF2zcf152NXhgLAybchdbw47lJ3AysfCXM+tcQKBgQDtC+aeanVlbSan6Xgd
14
- cXhUKsyHIoFzFvmBAjSLjqBq2zqWVhfA7kAxfqhACZ5OivHXRGEuiKObrVqa8Sza
15
- o8q0GKwbToVpESgO6i93ctuVpx8oyj+wL1I1cgNb3Z+4TvlVoTpjVFYd7zNkSQyp
16
- GC/yEi9hkU9GMjgaPGsB2iOBaQKBgQDfPCwVczGLYdAS4bor8ofUkf/ZXHUzEqXX
17
- KOymtdHN731KdpV53sVWpUNiuSurkLkNDvCcGcauu1u1Mm8PSwEKgOyohaKUA2HT
18
- ycS+QaI86m/qDRcZ6LR8tPq9nAIvv5iWwtGgV5Ib1qpAUjNd81hhyZlzXFFUdkQW
19
- X0ugEqZhpwKBgQCTH+PPRvv+K7TmWr22aIrqknXHGd+GcygArkG2rJtcNx0x2dV8
20
- ZWNqVNZQiKe8z/gyR7qZiy0gnoOxzyarvSU+imGnwSCEiaV3PFqhpKQtSkDIrF7D
21
- F1vK2CzFg9RyLHIMd7kplVqt0ZzwDXbSLLT1ZdwKjonJY7n2brFrwNxwoQKBgAJa
22
- jRBw1X3lux7n2GGsPfhkzbDKA8ZVFQCOwugDFMI6GzUUyQCu85+1QF+jGi3F6d2U
23
- Yb8Tmn+vJAlmDbu4i7tDnrssJYmv+3ETOIrVAFPqGOH731l7laOW+OnU4kUEnSRB
24
- y5oIMlcuzT6+XyJHdZAaYw7PU2AzmwYtXQvEBpMTAoGASThdvDFVGMPdM4KBdcLv
25
- yB3p3OdxRFg59MOzO5MDmEigqE+CVpMMOkNBaOa4j4yTEIcE2V6uUnrLjXrHpsnp
26
- wgL+lIp/87FHu8v2yYORqIyIER7AcZU20tHuk6EgisIUUe2wWp8wZwoL/ytpr4Xu
27
- gL3SSHfhhAXAP7f0pTUXDng=
2
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC6JtXKGOjxdUgJ
3
+ duRhfJ5+shTf4Wk5ILz+7FWShz16GXfCaPmpoFj6G9xJtownPqcFJau3RDlZ89hX
4
+ sYUSZt9gHl5X7cj/IiSWoYZK2G4uSQbHjtP2WGDXxp9SbqL5gQrDRPhzuit0fcR7
5
+ 5uYJqbY4FkP0L8psl2aZwVWagOKti5b0s0IC4vXUIZ5W9itayYd9tvjDdamOOITc
6
+ giloO8qaGdcPSbeeBp96RH2CdN5PDAUV7RNBP/hWN4uDSsr0a/NYauCu9sapRd0O
7
+ cUqPh8Br4iSlEhxfmNBtFYbSld6w6xiHIcqQNOa1wUurPPEg4t613RVY9og+EoBl
8
+ woeNwYNlAgMBAAECggEAKBbo/+cxc57QbsleEeimsZ5khHqlEJqOWVBIdZAOm1cU
9
+ xZeZ/P/9aY/Kd02LDYCes6sTOhrFRywOsYQXpojlHmwr4T/ig5+0xYPvyfqmb+1m
10
+ Ol/2Ih2SbaXm9ffBvX4e9ULLRxEW/rV/NTfa3sXf6mBRLiuEqrJIdGCAsQ+Ewd7p
11
+ S4IhIxTkfrPDSXYOUED8spt1gHJyccR7yt+iOUEbiv303VHqxiNbWHrsRi0oAopV
12
+ Ndikqr/aGMVL/HxVbyKzqglOFTqeWMnAhTp6ZhA/EbOAu6yb5rRigUBgOABB3lnw
13
+ QqDzaTDCgN+8Tkgm2a77d4dccpVxWfqG6HYxZLIZAQKBgQD4QFTvSGmbssAc6fIh
14
+ tr7FL5Vuyg1Bc5y9pkaE8sI18e0vVenm/tuGM6bEPv0YZznzYnvLb1Da7KYKQg7X
15
+ Qhh2Co8LudnU3CDnkcJKbvEjhET6HuKe5pQ9VDriWYV/pOqWmazbUnlUeEalTBso
16
+ bWwrX7FmG6TKh9uj8DiW3KUzIQKBgQC/9kreFDhs9wrFDvbDxHxJJo0PJTGmYtE4
17
+ g3meRp5QWOudZgi25qqCcWq9/uqen8UozjeFEKVZsR2gITJXGkEn0wv3zx6MYmHX
18
+ uRCpkBbUAk1+/V097fd0/pxLJ4sF3o02EGeoIzY54NyuwEVZqb6mvVMd9HqgFbHt
19
+ /7G81lbLxQKBgQCpJMP6CR+TqzYEPU3xtJ7EoYgyZU6k0s3v1dPkj7bNpJmTj/j/
20
+ n5QZGyY8PiKaNvMgJnDsilrP3z++a4XLGsip3MXcGnQV+SoePYzgxDhel6ebt+F2
21
+ nOpR4wr/4Dj6YHZJyEkjYk0yxYR06abzY6K45slrJdig+fIn/+u+tnWEoQKBgQCx
22
+ rhIMTyEPUvcIAVrNR7BWsTU9wIqdXLgVnDRVGT5uVm/4J7qHOSi4Rqyroimem3oN
23
+ 1Bq1svup8nPehPuofeezKfjY7kBzZpjz6RuQJ4vJvzvmADRvHzW+d/FI6xgWXbHN
24
+ Sg/4JGeL2SPLKLLIVILgqTsm7eUXCh3Akrz8clSylQKBgG+ZjOjdqDESfMQKN1uW
25
+ LyZsonbZPaJGniQGaCidn/Fm1WS+52DM3TEk83cNZpkLXkX0ztDYVshnuzWRKtrS
26
+ Y2tiZbO2X7Mby1Inw4hqRDix6inpS6ze5h9X9Zflx5/mWBKnXStOX6Fl+I5G4fKD
27
+ km2+3SLHP0y2NKs6sNcESdcY
28
28
  -----END PRIVATE KEY-----
@@ -1,19 +1,19 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIIDCTCCAfGgAwIBAgIUczotsuFzWkJjk+Et96Vppp+v3gwwDQYJKoZIhvcNAQEL
3
- BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTIzMDMxNjEzMjEyMVoXDTI0MDMx
4
- NTEzMjEyMVowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF
5
- AAOCAQ8AMIIBCgKCAQEAzrUVf/QklRkZ3BJqry5Mx/hsHg0a2CpCiIqfjY64mIxE
6
- sdZ7qqhbxW4HoYOve1kyX7J/TnZCrokzRWNeHMf/zBXFbCoFA8JwANYuBJbrVklN
7
- mtBAS5MZDyOzUU8UqPr8i4hfNERhSbsClETg05Q7mU2+6+nABodrVBVBeahMpLgN
8
- zfXibnY8aNkpE5vd4T7/8msWUopmFh9J+ih06V7WAKv8uE9/KxqReA+kpVRXPWM8
9
- pu/qFG+PgNNSfAD47K/XAy6Kg3wIeMCkwFbc3DuBelGMW6HFhM6NbSTSgdZHR14l
10
- smmVi7FH3sJyi238Zba+gvuPncgfeX5PkRicDUg0fwIDAQABo1MwUTAdBgNVHQ4E
11
- FgQUY5gKV8aZphAJF8qStRH77Jqczj4wHwYDVR0jBBgwFoAUY5gKV8aZphAJF8qS
12
- tRH77Jqczj4wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAp/IC
13
- O6XddwDtb3eYoR9KK2yelFnXns6ss4P32Krj9cqnxsB1E9a4GU03jcZwB2bx8fKq
14
- mIU2ag3ih0EC787PNFkN42r/0kBXoO1WcKfCItCwtEvJSk/89f6Y00aNS79WwtHx
15
- ipJge5aVpzG/WdG6OxxPd+vgL/nrAbQUw/M8f/5mPCZ9Q5SwqkRQMVsTNdvAAerS
16
- H2hE8ReTlymCP36lM2q6yLYPMdFds0wZMymQCMH9jjYo8IFqJ4x6rA4xL4is2NzJ
17
- FqMRiVy/NaGjjpV3GOIqSHSmowavZI0LRCZgbghG8Ee0x2g1/BeKyfTO7ltDEeQm
18
- oMyxAcy0wOrAQz6HnQ==
2
+ MIIDCTCCAfGgAwIBAgIUV2ScIgC3JXeZTVaQostFFNXzJw8wDQYJKoZIhvcNAQEL
3
+ BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTIzMDQxMDE0MTMyNVoXDTI0MDQw
4
+ OTE0MTMyNVowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF
5
+ AAOCAQ8AMIIBCgKCAQEAuibVyhjo8XVICXbkYXyefrIU3+FpOSC8/uxVkoc9ehl3
6
+ wmj5qaBY+hvcSbaMJz6nBSWrt0Q5WfPYV7GFEmbfYB5eV+3I/yIklqGGSthuLkkG
7
+ x47T9lhg18afUm6i+YEKw0T4c7ordH3Ee+bmCam2OBZD9C/KbJdmmcFVmoDirYuW
8
+ 9LNCAuL11CGeVvYrWsmHfbb4w3WpjjiE3IIpaDvKmhnXD0m3ngafekR9gnTeTwwF
9
+ Fe0TQT/4VjeLg0rK9GvzWGrgrvbGqUXdDnFKj4fAa+IkpRIcX5jQbRWG0pXesOsY
10
+ hyHKkDTmtcFLqzzxIOLetd0VWPaIPhKAZcKHjcGDZQIDAQABo1MwUTAdBgNVHQ4E
11
+ FgQUfDYIVKNIPAgUebNyI6Flib2yWpAwHwYDVR0jBBgwFoAUfDYIVKNIPAgUebNy
12
+ I6Flib2yWpAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAiMIS
13
+ 461bq3O1Zyy27v7+0OSxzYw9Ozc/54Qz4+ZwmEByrwlO1p+9kZcTq1roIecQU5ES
14
+ +m/A+GeJdVH7i8zoGpOhEXeghhZZmgFt+gQPfJseD/LKP4pWBMM0ARzYV2rKNGkc
15
+ 56E2/yC7+vsedgL030MwqzCPV2MVzZC+CXCc+oM9tCbxxwZMrzLBhIvh9SVLnysV
16
+ Quhvw49E873vYx0JepGwM20qnmWrujFuDgXC7wBeJ6ANgsk4HP1/vUzUbJB2rAuW
17
+ 4ndyyHEki+42lRvO9bVODd5gLvVvigklXEqEgrQzZafB1V5BJ4n1PYx5uXz4I9ki
18
+ unHx+y8nyaAdhOFQMg==
19
19
  -----END CERTIFICATE-----
@@ -174,12 +174,16 @@ class WebPackGenerator {
174
174
  statsFilename = statsFilename.split(".").slice(0, -1).join(".");
175
175
  statsFilename = `${statsFilename}.${options.devMode ? "dev" : "prod"}.html`;
176
176
 
177
+ if (!options.disableStats) {
178
+ this.webpackConfig.plugins.push(
179
+ new Visualizer({
180
+ reportFilename: path.join(statsLocation, statsFilename),
181
+ openAnalyzer: false,
182
+ analyzerMode: `static`
183
+ })
184
+ );
185
+ }
177
186
  this.webpackConfig.plugins.push(
178
- new Visualizer({
179
- reportFilename: path.join(statsLocation, statsFilename),
180
- openAnalyzer: false,
181
- analyzerMode: `static`
182
- }),
183
187
  new PowerBICustomVisualsWebpackPlugin(pluginConfiguration),
184
188
  new ExtraWatchWebpackPlugin({
185
189
  files: [visualPackage.buildPath(this.pbiviz.capabilities)]
@@ -262,7 +266,8 @@ class WebPackGenerator {
262
266
  minify: true,
263
267
  devServerPort: 8080,
264
268
  fast: false,
265
- compression: 0
269
+ compression: 0,
270
+ disableStats: false
266
271
  }) {
267
272
  const tsconfigPath = visualPackage.buildPath('tsconfig.json');
268
273
  const tsconfig = require(tsconfigPath);
@@ -59,11 +59,7 @@ module.exports = {
59
59
  },
60
60
  {
61
61
  test: /\.(woff|ttf|ico|woff2|jpg|jpeg|png|webp|gif|svg|eot)$/i,
62
- use: [
63
- {
64
- loader: require.resolve('base64-inline-loader')
65
- }
66
- ]
62
+ type: 'asset/inline'
67
63
  },
68
64
  {
69
65
  test: /powerbiGlobalizeLocales\.js$/,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powerbi-visuals-tools",
3
- "version": "4.2.0",
3
+ "version": "4.3.0",
4
4
  "description": "Command line tool for creating and publishing visuals for Power BI",
5
5
  "main": "./lib/VisualPackage.js",
6
6
  "scripts": {
@@ -28,7 +28,6 @@
28
28
  "dependencies": {
29
29
  "assert": "^2.0.0",
30
30
  "async": "^3.2.4",
31
- "base64-inline-loader": "^2.0.1",
32
31
  "browserify-zlib": "^0.2.0",
33
32
  "buffer": "^6.0.3",
34
33
  "chalk": "3.0.0",
@@ -41,7 +40,7 @@
41
40
  "domain-browser": "^4.22.0",
42
41
  "events": "^3.3.0",
43
42
  "extra-watch-webpack-plugin": "^1.0.3",
44
- "fs-extra": "^11.1.0",
43
+ "fs-extra": "^11.1.1",
45
44
  "https-browserify": "^1.0.0",
46
45
  "json-loader": "0.5.7",
47
46
  "jszip": "^3.10.1",
@@ -50,7 +49,7 @@
50
49
  "lodash.clonedeep": "4.5.0",
51
50
  "lodash.defaults": "4.2.0",
52
51
  "lodash.isequal": "4.5.0",
53
- "mini-css-extract-plugin": "^2.7.4",
52
+ "mini-css-extract-plugin": "^2.7.5",
54
53
  "os-browserify": "^0.3.0",
55
54
  "path-browserify": "^1.0.1",
56
55
  "powerbi-visuals-webpack-plugin": "^3.2.0",
@@ -69,9 +68,9 @@
69
68
  "util": "^0.12.5",
70
69
  "uuid": "9.0.0",
71
70
  "vm-browserify": "^1.1.2",
72
- "webpack": "^5.76.2",
71
+ "webpack": "^5.78.0",
73
72
  "webpack-bundle-analyzer": "4.8.0",
74
- "webpack-dev-server": "^4.12.0"
73
+ "webpack-dev-server": "^4.13.2"
75
74
  },
76
75
  "devDependencies": {
77
76
  "eslint": "^8.36.0",
@@ -443,6 +443,26 @@ describe("E2E - pbiviz package", () => {
443
443
  });
444
444
  });
445
445
 
446
+ it("Should generate statistic files without flags", () => {
447
+ FileSystem.runPbiviz('package');
448
+ const statisticFilePath = path.join(visualPath, 'webpack.statistics.prod.html');
449
+ try {
450
+ expect(fs.statSync(statisticFilePath).isFile()).toBe(true);
451
+ } catch (error) {
452
+ expect(error).toBeNull();
453
+ }
454
+ });
455
+
456
+ it("Shouldn't generate statistic files with --no-stats flag", () => {
457
+ FileSystem.runPbiviz('package', '--no-stats');
458
+ const statisticFilePath = path.join(visualPath, 'webpack.statistics.prod.html');
459
+ try {
460
+ fs.statSync(statisticFilePath).isFile();
461
+ } catch (error) {
462
+ expect(error).not.toBeNull();
463
+ }
464
+ });
465
+
446
466
  });
447
467
 
448
468
  function mkDirPromise(path) {
@@ -94,6 +94,34 @@ describe("E2E - pbiviz start", () => {
94
94
  expect(error.message).toContain("Error: pbiviz.json not found. You must be in the root of a visual project to run this command");
95
95
  });
96
96
 
97
+ it("Should generate statistic files without flags", (done) => {
98
+ process.chdir(visualPath);
99
+ const pbivizProc = FileSystem.runPbivizAsync('start');
100
+ startChecker(pbivizProc).then(() => {
101
+ const statisticFilePath = path.join(visualPath, 'webpack.statistics.dev.html');
102
+ try {
103
+ expect(fs.statSync(statisticFilePath).isFile()).toBe(true);
104
+ } catch (error) {
105
+ expect(error).toBeNull();
106
+ }
107
+ procKiller(pbivizProc, done);
108
+ });
109
+ });
110
+
111
+ it("Shouldn't generate statistic files with --no-stats flag", (done) => {
112
+ process.chdir(visualPath);
113
+ const pbivizProc = FileSystem.runPbivizAsync('start', '--no-stats');
114
+ startChecker(pbivizProc).then(() => {
115
+ const statisticFilePath = path.join(visualPath, 'webpack.statistics.dev.html');
116
+ try {
117
+ fs.statSync(statisticFilePath).isFile();
118
+ } catch (error) {
119
+ expect(error).not.toBeNull();
120
+ }
121
+ procKiller(pbivizProc, done);
122
+ });
123
+ });
124
+
97
125
  describe("Build and Server", () => {
98
126
  let pbivizProc;
99
127
 
@@ -130,7 +158,6 @@ describe("E2E - pbiviz start", () => {
130
158
  });
131
159
  });
132
160
 
133
-
134
161
  it("Should serve files from drop folder on port 8080", (done) => {
135
162
  startChecker(pbivizProc).then(() => {
136
163
  async.each(