powerbi-visuals-tools 4.2.1 → 4.3.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.
package/Changelog.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  This page contains information about changes to the PowerBI Visual Tools (pbiviz).
4
4
 
5
+ ## 4.3.1
6
+ * Fixed path to localization loader
7
+
8
+ ## 4.3.0
9
+ * Implemented new flag `--no-stats` to disable statistics files
10
+ * Fixed vulnerabilities
11
+
5
12
  ## 4.2.1
6
13
  * Replaced `base64-inline-loader` with webpack `asset/inline`
7
14
 
@@ -10,7 +17,7 @@ This page contains information about changes to the PowerBI Visual Tools (pbiviz
10
17
  * Updated `powerbi-visuals-webpack-plugin` to 3.2.0
11
18
 
12
19
  ## 4.1.0
13
- * Added loader to reduce localizations size. REQUIRES `powerbi-visuals-utils-formattingutils` verison 5.1 and higher
20
+ * Added loader to reduce localizations size. REQUIRES `powerbi-visuals-utils-formattingutils` version 5.1 and higher
14
21
  * Fixed vulnerabilities
15
22
 
16
23
  ## 4.0.9
@@ -21,7 +28,7 @@ This page contains information about changes to the PowerBI Visual Tools (pbiviz
21
28
  * Removed vulnerabilities
22
29
 
23
30
  ## 4.0.7
24
- ### **⚠ NOT RECOMENDED** - critical bugs discovered for some cases
31
+ ### **⚠ NOT RECOMMENDED** - critical bugs discovered for some cases
25
32
  * StringResources (Localizations) are supported in Developer Mode.
26
33
  * Update `powerbi-visuals-webpack-plugin` to 3.1.0
27
34
  * Fixed vulnerabilities
@@ -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
- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC6p5wIJwnOhyK4
3
- tQK0irUN/UvbWcwZf6dR5v7WZ7lAF6McmViDoapa9ryrUuGRoxtSBQKDaAR3d5cP
4
- zmeYD7MhUjbHWKFmsNdAyZK1A+mB8pfu4Y7bH8voaVnOLpqJAyxvN77tpSkl13D/
5
- CogKawZyf9ccOtPrfx1AvraA2LJM2vZejazOL0CvNklp5KAongzKU6VzT9xsSc6l
6
- OCLOAEIw7bIJ3+1OCG4lkHWHTpafM/8vEYrg6vhLMXDvIywEscoQu6vzzb0qhxLv
7
- qWoXu2PXFHIQwtkOcFDxPsh/lbWP+sRb5L10t+GNTWwh2XAYRUXjjR4h8fygq8Ym
8
- bHt+/1mXAgMBAAECggEAFjGUv3Fo3Jo72iuHsVDm2015ZhEE0ClaC0aEmZjGsaS9
9
- 28ot+KTR3TQGVfaqZIc42eVHmblWAqCBITuBHNcNDRK5+bUDp/Kx/X2aSJS5AJ8I
10
- SrqeIlbjB3TzXS00acMrVuQRey9Ot7WotWKar2ZvY1DpEm26Qf+gylCC4coiVTnl
11
- 4aJ5FJ18Mxy88UDz8GSQKSK0HZA3ayB0EIXrtRocoCK5+nDsBRLyziH6q/rmnVRN
12
- +iVkk1IQdpjPYp8F1FaXZC0k7YOiZtEhTzhWLo8M2ln7yOuPqnUBUXQYqE1Xpt58
13
- JS4lRv7LIxgBy88Y8NTdGKIWI78svlOUCgS3PxjldQKBgQDX6adnsHO7QeLibBMY
14
- mvdwD1m3k8ebMjioLg/fW1wiiz5W4kvvYX6ab/KsBZPuqimYqcpQs+QuHsh5qb5p
15
- IkGj7WpGyDl5eH5M94vO0/064CbLy41i0rIGE59+bX/WpuJYEC6Lu+4tFBdHhPLq
16
- xHTBsyu5jHL8Ea4ez+adprNmywKBgQDdT1JMC4fAm168B4ebHy+BU0APaAnKjcMN
17
- 9WRXpq9NYriI1Hcuj8gRu0Yk5xNSH56efFz30vU4kVKcUoEuEa6X4StIiM+2jElC
18
- Adn70gSEBHPL7Alv7NfodWbYhUw53v0nwsZLC9G7o5HN0t0RUAKV2Ns/slBBA6vB
19
- /olfgHpy5QKBgEWs/D3k3mQWjf4dfEgbcjAyc/Re9zIpEcmMG8krdV8cakClhHW6
20
- k52I9Nn4btW9CfFfEY/bjY4olu9UDMNmr6IT8pDm+k0tyixSUkareHOwdDSd+oFi
21
- ltqJKJYnBfMiJbbfefXT7reTXTPSPoXuYfNEO58EKPMZTYRZ+QT1D73jAoGBAKNf
22
- dyVkLabmC51LAbRl5S/XQSceanv5AtE/IgACsM6z3f5EumbJBazxTurXGtA5P2NH
23
- 82mPdi94OD/mOC7GJtlABC/br1rXXQ05SK45b9P1ZXZYnO7fLNQSNwYIASmHj+LW
24
- SoQECaQ3L999lmy9X+s210PCYrRb/WOMf+Tcd4hxAoGACBpMZ26IyQfYHMgv1R6C
25
- XKGVS6qe+f0OvjVd4opGaY5ouSnmgP24wBJxOXruUqx/XNtq0vBZ8KAGFC7qm8br
26
- kbm8QCMYJGKFXOzdM8qCGB3CG6HL8BU9UaVJqaOHnycNvEykywAHHkKptqLsCVqH
27
- wwThK11ZDqor0a95ZIyKf4k=
2
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDxzGMSE3XTbrH4
3
+ 07yNDO3chTLr6tmw3RsbE0t2LeKZ+WYuxF5LxdqcAT1HVufjt+1nJY5Y3ZF2FPUO
4
+ qNhiqH77RmI+ofGvFcm8DJvX9HgmB1gm6SaM0abcjziCpkIizXI8U1afZCy0RV/z
5
+ CC1gIlaLnl6RSlU0biUrkzO6GG1txMuMjOs7C/lRCEemiea6IL0HNes/oYOuULkv
6
+ V/W0BjwZwZCLCGkgDb7PF4U11tZ2Ju7V1JwTffan2lnEwKIJ5LnYt7iMEgw50YjV
7
+ VkOYvwRQLTQjqVbZ1y91j8Z3RY7oRAo5O93ABFzjzrvmou1C4Deu+8n56v1r9DWF
8
+ XfQtkwJRAgMBAAECggEAGFfhaYJ4DE9Kr6hxhSnWEKuAUuwT+pBoGDO7FyzLcYEA
9
+ Xpj6fVpwBeDCEJqZQf3Uctv/FsdHy8GUYmNxVY1tK1MMtQ2MzXm+E6aZUgaUyg9X
10
+ OqOic+7vg6kPoWenpOVWKOijAe0N6yBI5qjeGJ2cZPYOw0XeiibEqzxoqsWmzrQd
11
+ R/iwDAvsbXBYJ8ynu2VF+VOJ3ZhRuDckx9w6G1i4RAXli3foPQPYLYApihp51SkU
12
+ pG1igMqicSteZkfJoUnqhmbGzd1JyePnwfcmRnte/HczTPQnWCAmXXsoVWobKF0A
13
+ qG9p2aFsgB9T4r+QrcFtPmuL7HL3are4Z08SrxWm2QKBgQD1QVtGzeU4ST6x4zXC
14
+ m2NZ1pZ2M+YvV8rwnz9C6Qw70Kv/WpFQj4aOouG3OnpZ1qY5gR1qc9AYF5O0FCtg
15
+ 8gs7cls970o3jbO7lnO7JqE7/iGybHhY6JzLbSlotpbgFvRefGvfal/sUPyHhnry
16
+ RYO/hvz0E+NCV6Yz5RJIErK4XwKBgQD8ZEJ7CZe4XTG9LYfXI76nTH/7ttS7IuK1
17
+ bzuejlbnCXJQpr9uCw3arweD3UCNtYFqFCbmlBKfe6RThpg03kndXnkk1yG0RIiD
18
+ r8Gy/AYipwJIDah7uEozs+mr33jiZyYxdoE4GwFmCaHcJG0Q5iepv4QjQ+QKUgeU
19
+ jyqdgp0DTwKBgQCWx1Z5Yi3Q+97KeFhdyzA6VB3uj5utcXj3k7/Nv/7gazrC44hB
20
+ Eev0lxjTj+UWhEtvQPy3rHm7xgrthBTjJgtXwcdsfUeQfdKIukduQKKRgnxu+BbI
21
+ +kEjI3p4wQBixln4GOAs23Ybj/Kg00GU3r3Pqwqqd+uYptAsSWGC49PyWwKBgQCi
22
+ BGJAxTml2f1R6WZoDsQWdR87IHSS5KQPwCXPdKQIj6HYcBI2u9Xa6byzQ1ZrIXa/
23
+ 98u4/Jiv1Bj6nU4bsg5MkpbFtWwnYk8X6b03/lyZ5geq5Umgkf7gDcAU2tGo1HpK
24
+ Cj6NG5jcPZav0JpK3NPdPdm/IZfDoEDJdtXuYqgUNQKBgHl+W3iRWshrAXn6sMA+
25
+ cqacuknUgTz2bX3BP9Cq9ZA1LYVh2fROic9FGsrXbqUF8fTCwvnCvF+JXLwXE0yu
26
+ g7FvtPWPkHfR7NdIggHL/LaSqhAQoPBHGKO9Zp8Iyofu9Y2rfaNicftQljml+bLj
27
+ uM+wPenvBRcehwGNKBbJRolQ
28
28
  -----END PRIVATE KEY-----
@@ -1,19 +1,19 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIIDCTCCAfGgAwIBAgIUTGOVLujr87ZCu9awR14/B9+ixhAwDQYJKoZIhvcNAQEL
3
- BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTIzMDMyNzE0NDA1OFoXDTI0MDMy
4
- NjE0NDA1OFowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF
5
- AAOCAQ8AMIIBCgKCAQEAuqecCCcJzociuLUCtIq1Df1L21nMGX+nUeb+1me5QBej
6
- HJlYg6GqWva8q1LhkaMbUgUCg2gEd3eXD85nmA+zIVI2x1ihZrDXQMmStQPpgfKX
7
- 7uGO2x/L6GlZzi6aiQMsbze+7aUpJddw/wqICmsGcn/XHDrT638dQL62gNiyTNr2
8
- Xo2szi9ArzZJaeSgKJ4MylOlc0/cbEnOpTgizgBCMO2yCd/tTghuJZB1h06WnzP/
9
- LxGK4Or4SzFw7yMsBLHKELur8829KocS76lqF7tj1xRyEMLZDnBQ8T7If5W1j/rE
10
- W+S9dLfhjU1sIdlwGEVF440eIfH8oKvGJmx7fv9ZlwIDAQABo1MwUTAdBgNVHQ4E
11
- FgQUqEjSj4TWysGuRcOH+sQ8sB/My+UwHwYDVR0jBBgwFoAUqEjSj4TWysGuRcOH
12
- +sQ8sB/My+UwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAf4rf
13
- mVg0ND3Bnc2dIzxteLwt24HOdUC3AvDDpjXIGRXDWBwVYkhNDRAuO7vYCSLaS7zG
14
- W+hUbdNBg02xKt1nLVgh3YH2Oz455oaTNqmXoVvZwDmiOOCbtWJMsxAMRk4XqCIK
15
- F/56+8ME9wrN0ktST+b6AIROvZn0+COCVLIV3p/HQ0rhhtzHL/8r3CrQ0P9gTuf0
16
- ZJmRafuSxPgR5GhqfaWOmLkVqfoKKZWc8OZio1RF9UTOZ8b6pNASh3Aye3uc9XHR
17
- S+4HmxBmuWz5LPYBA1ZkXqjzVpLk4EIxHDQcG/fPBbDqJgF6mSkg+ALHv3SlYwXD
18
- IWvSJ0J91kwDRJ7UoA==
2
+ MIIDCTCCAfGgAwIBAgIUBRWRcp5wLqfeh3d+5fCYarTJYR4wDQYJKoZIhvcNAQEL
3
+ BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTIzMDQyNzEzMzgyNloXDTI0MDQy
4
+ NjEzMzgyNlowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF
5
+ AAOCAQ8AMIIBCgKCAQEA8cxjEhN1026x+NO8jQzt3IUy6+rZsN0bGxNLdi3imflm
6
+ LsReS8XanAE9R1bn47ftZyWOWN2RdhT1DqjYYqh++0ZiPqHxrxXJvAyb1/R4JgdY
7
+ JukmjNGm3I84gqZCIs1yPFNWn2QstEVf8wgtYCJWi55ekUpVNG4lK5MzuhhtbcTL
8
+ jIzrOwv5UQhHponmuiC9BzXrP6GDrlC5L1f1tAY8GcGQiwhpIA2+zxeFNdbWdibu
9
+ 1dScE332p9pZxMCiCeS52Le4jBIMOdGI1VZDmL8EUC00I6lW2dcvdY/Gd0WO6EQK
10
+ OTvdwARc48675qLtQuA3rvvJ+er9a/Q1hV30LZMCUQIDAQABo1MwUTAdBgNVHQ4E
11
+ FgQUr1V3iAkXgzeiN9hIqdYmRnNgIDMwHwYDVR0jBBgwFoAUr1V3iAkXgzeiN9hI
12
+ qdYmRnNgIDMwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEA3NJ/
13
+ Fgki8RZqAlT3KDqXMr8+UbiXTOr/JX9ANs/nKpgsH2fgQ2uHl/e0+p1C6xhzf7xI
14
+ k2vvdoZp4zo0p0i5psdhTIWf9Zucvm5QRT7dlHagSEWdvZNrSW+3ADnZVLMXMWfT
15
+ YUqo6DMD+rXoAMHZXnRXhbnoXPTP6tPQBTGVjhSE313paK9dmfMuJ6DJjAg6VRgw
16
+ S27f/OOYuvUz5WDwOG4O5jRveIVWlSu5D6Gs9VTSEZeDazZSKaquCb7kDH1aqE2b
17
+ 6uz429IDlNDhPeUYFm3EOXTNo23nraEseSOqBiTtN92f/iTwzFg5MSN7y0esi6U0
18
+ mW/TYVdLpoWCxjVRIQ==
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);
@@ -65,7 +65,7 @@ module.exports = {
65
65
  test: /powerbiGlobalizeLocales\.js$/,
66
66
  use: [
67
67
  {
68
- loader: "./node_modules/powerbi-visuals-tools/lib/LocalizationLoader.js"
68
+ loader: path.resolve(__dirname, "./LocalizationLoader.js")
69
69
  }
70
70
  ]
71
71
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powerbi-visuals-tools",
3
- "version": "4.2.1",
3
+ "version": "4.3.1",
4
4
  "description": "Command line tool for creating and publishing visuals for Power BI",
5
5
  "main": "./lib/VisualPackage.js",
6
6
  "scripts": {
@@ -40,7 +40,7 @@
40
40
  "domain-browser": "^4.22.0",
41
41
  "events": "^3.3.0",
42
42
  "extra-watch-webpack-plugin": "^1.0.3",
43
- "fs-extra": "^11.1.0",
43
+ "fs-extra": "^11.1.1",
44
44
  "https-browserify": "^1.0.0",
45
45
  "json-loader": "0.5.7",
46
46
  "jszip": "^3.10.1",
@@ -49,7 +49,7 @@
49
49
  "lodash.clonedeep": "4.5.0",
50
50
  "lodash.defaults": "4.2.0",
51
51
  "lodash.isequal": "4.5.0",
52
- "mini-css-extract-plugin": "^2.7.4",
52
+ "mini-css-extract-plugin": "^2.7.5",
53
53
  "os-browserify": "^0.3.0",
54
54
  "path-browserify": "^1.0.1",
55
55
  "powerbi-visuals-webpack-plugin": "^3.2.0",
@@ -68,9 +68,9 @@
68
68
  "util": "^0.12.5",
69
69
  "uuid": "9.0.0",
70
70
  "vm-browserify": "^1.1.2",
71
- "webpack": "^5.76.2",
71
+ "webpack": "^5.78.0",
72
72
  "webpack-bundle-analyzer": "4.8.0",
73
- "webpack-dev-server": "^4.12.0"
73
+ "webpack-dev-server": "^4.13.2"
74
74
  },
75
75
  "devDependencies": {
76
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(