bundle-stats 4.3.0-beta.0 → 4.3.0-beta.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.
@@ -39025,8 +39025,8 @@
39025
39025
  "changed": false
39026
39026
  }
39027
39027
  ],
39028
- "createdAt": "2023-01-21T17:39:59.900Z",
39029
- "version": "4.3.0-beta.0",
39028
+ "createdAt": "2023-02-01T21:25:59.919Z",
39029
+ "version": "4.3.0-beta.2",
39030
39030
  "runs": [
39031
39031
  {
39032
39032
  "webpack": {
@@ -39252,6 +39252,51 @@
39252
39252
  "has"
39253
39253
  ]
39254
39254
  }
39255
+ },
39256
+ "duplicatePackagesV3": {
39257
+ "type": "ERROR",
39258
+ "data": {
39259
+ "text": "Bundle introduced 2 duplicate packages",
39260
+ "packages": {
39261
+ "tslib": [
39262
+ "@firebase/app:tslib",
39263
+ "@firebase/util:tslib",
39264
+ "@firebase/component:tslib",
39265
+ "tslib"
39266
+ ],
39267
+ "lodash.throttle": [
39268
+ "lodash.throttle~1",
39269
+ "@bundle-stats/ui:lodash.throttle",
39270
+ "lodash.throttle"
39271
+ ],
39272
+ "object-keys": [
39273
+ "document.contains:object-keys",
39274
+ "object.values:object-keys"
39275
+ ],
39276
+ "react-is": [
39277
+ "recharts:react-is",
39278
+ "orbit-ui-react:react-is",
39279
+ "react-is"
39280
+ ],
39281
+ "@babel/runtime": [
39282
+ "orbit-ui-react:@babel/runtime",
39283
+ "@babel/runtime",
39284
+ "mini-create-react-context:@babel/runtime"
39285
+ ],
39286
+ "hoist-non-react-statics": [
39287
+ "react-router:hoist-non-react-statics",
39288
+ "hoist-non-react-statics"
39289
+ ],
39290
+ "define-properties": [
39291
+ "object.values:define-properties",
39292
+ "document.contains:define-properties"
39293
+ ],
39294
+ "has": [
39295
+ "object.values:has",
39296
+ "has"
39297
+ ]
39298
+ }
39299
+ }
39255
39300
  }
39256
39301
  }
39257
39302
  }
package/lib/cli.js CHANGED
@@ -9,14 +9,16 @@ const update_notifier_1 = __importDefault(require("update-notifier"));
9
9
  const run_1 = __importDefault(require("./run"));
10
10
  const DEFAULT_OUTPUT_DIR = './dist';
11
11
  const WEEK_IN_MS = 1000 * 60 * 60 * 24 * 7;
12
- async function cli(packageInfo) {
13
- const notifier = (0, update_notifier_1.default)({ pkg: packageInfo, updateCheckInterval: WEEK_IN_MS });
12
+ async function cli(pkg) {
13
+ const notifier = (0, update_notifier_1.default)({ pkg, updateCheckInterval: WEEK_IN_MS });
14
14
  if (notifier.update) {
15
15
  notifier.notify();
16
16
  }
17
- const { demo } = yargs_1.default.parse();
17
+ const { demo } = yargs_1.default.options({ demo: { type: 'boolean', default: false } }).parseSync();
18
18
  if (demo) {
19
19
  await (0, run_1.default)({
20
+ baseline: false,
21
+ compare: false,
20
22
  html: true,
21
23
  json: true,
22
24
  outDir: DEFAULT_OUTPUT_DIR,
@@ -32,44 +34,46 @@ async function cli(packageInfo) {
32
34
  .demandCommand(1, 'Webpack stats file path is required.')
33
35
  .option('out-dir', {
34
36
  description: 'Output directory',
37
+ type: 'string',
35
38
  default: DEFAULT_OUTPUT_DIR,
36
39
  })
37
40
  .option('compare', {
38
41
  description: 'Use local saved stats for comparison',
39
- boolean: true,
42
+ type: 'boolean',
40
43
  default: true,
41
44
  })
42
45
  .option('baseline', {
43
46
  description: 'Save current stats as baseline',
44
- boolean: true,
47
+ type: 'boolean',
45
48
  default: false,
46
49
  })
47
50
  .option('html', {
48
51
  description: 'Save HTML report',
49
- boolean: true,
52
+ type: 'boolean',
50
53
  default: true,
51
54
  })
52
55
  .option('json', {
53
56
  description: 'Save JSON data',
54
- boolean: true,
57
+ type: 'boolean',
55
58
  default: false,
56
59
  })
57
60
  .option('demo', {
58
61
  description: 'Generate demo reports',
62
+ type: 'boolean',
59
63
  default: false,
60
64
  })
61
65
  .alias('d', 'out-dir')
62
66
  .alias('h', 'help')
63
67
  .alias('v', 'version')
64
- .help().argv;
65
- const { compare, baseline, html, json, outDir, _: artifactFilepaths, } = args;
68
+ .help()
69
+ .parseSync();
66
70
  await (0, run_1.default)({
67
- baseline,
68
- compare,
69
- html,
70
- json,
71
- outDir,
72
- artifactFilepaths,
71
+ baseline: args.baseline,
72
+ compare: args.compare,
73
+ html: args.html,
74
+ json: args.json,
75
+ outDir: args.outDir,
76
+ artifactFilepaths: args._,
73
77
  });
74
78
  }
75
79
  exports.default = cli;
package/lib/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.js"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,kDAA0B;AAC1B,sEAA6C;AAE7C,gDAAwB;AAExB,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE5B,KAAK,UAAU,GAAG,CAAC,WAAW;IAE3C,MAAM,QAAQ,GAAG,IAAA,yBAAc,EAAC,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,CAAC;IAEvF,IAAI,QAAQ,CAAC,MAAM,EAAE;QACnB,QAAQ,CAAC,MAAM,EAAE,CAAC;KACnB;IAGD,MAAM,EAAE,IAAI,EAAE,GAAG,eAAK,CAAC,KAAK,EAAE,CAAC;IAE/B,IAAI,IAAI,EAAE;QACR,MAAM,IAAA,aAAG,EAAC;YACR,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,kBAAkB;YAC1B,iBAAiB,EAAE;gBACjB,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,4CAA4C,CAAC;gBACrE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,6CAA6C,CAAC;aACvE;SACF,CAAC,CAAC;QAEH,OAAO;KACR;IAED,MAAM,IAAI,GAAG,eAAK;SACf,KAAK,CAAC,mCAAmC,CAAC;SAC1C,aAAa,CAAC,CAAC,EAAE,sCAAsC,CAAC;SACxD,MAAM,CAAC,SAAS,EAAE;QACjB,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,kBAAkB;KAC5B,CAAC;SAED,MAAM,CAAC,SAAS,EAAE;QACjB,WAAW,EAAE,sCAAsC;QACnD,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;KACd,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,WAAW,EAAE,gCAAgC;QAC7C,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,KAAK;KACf,CAAC;SAED,MAAM,CAAC,MAAM,EAAE;QACd,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;KACd,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,WAAW,EAAE,uBAAuB;QACpC,OAAO,EAAE,KAAK;KACf,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;SACrB,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;SAClB,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;SACrB,IAAI,EAAE,CAAC,IAAI,CAAC;IAEf,MAAM,EACJ,OAAO,EACP,QAAQ,EAER,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,CAAC,EAAE,iBAAiB,GACrB,GAAG,IAAI,CAAC;IAET,MAAM,IAAA,aAAG,EAAC;QACR,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,iBAAiB;KAClB,CAAC,CAAC;AACL,CAAC;AAjFD,sBAiFC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,kDAA0B;AAE1B,sEAA6C;AAE7C,gDAAwB;AAExB,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE5B,KAAK,UAAU,GAAG,CAAC,GAAW;IAE3C,MAAM,QAAQ,GAAG,IAAA,yBAAc,EAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,CAAC;IAE1E,IAAI,QAAQ,CAAC,MAAM,EAAE;QACnB,QAAQ,CAAC,MAAM,EAAE,CAAC;KACnB;IAGD,MAAM,EAAE,IAAI,EAAE,GAAG,eAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IAE1F,IAAI,IAAI,EAAE;QACR,MAAM,IAAA,aAAG,EAAC;YACR,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,kBAAkB;YAC1B,iBAAiB,EAAE;gBACjB,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,4CAA4C,CAAC;gBACrE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,6CAA6C,CAAC;aACvE;SACF,CAAC,CAAC;QAEH,OAAO;KACR;IAED,MAAM,IAAI,GAAG,eAAK;SACf,KAAK,CAAC,mCAAmC,CAAC;SAC1C,aAAa,CAAC,CAAC,EAAE,sCAAsC,CAAC;SACxD,MAAM,CAAC,SAAS,EAAE;QACjB,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,kBAAkB;KAC5B,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;KACd,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,WAAW,EAAE,gCAAgC;QAC7C,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;KACd,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,WAAW,EAAE,gBAAgB;QAC7B,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,WAAW,EAAE,uBAAuB;QACpC,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACf,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;SACrB,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;SAClB,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;SACrB,IAAI,EAAE;SACN,SAAS,EAAE,CAAC;IAEf,MAAM,IAAA,aAAG,EAAC;QACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,iBAAiB,EAAE,IAAI,CAAC,CAAkB;KAC3C,CAAC,CAAC;AACL,CAAC;AA1ED,sBA0EC"}
package/package.json CHANGED
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "name": "bundle-stats",
3
- "version": "4.3.0-beta.0",
3
+ "version": "4.3.0-beta.2",
4
4
  "description": "In-depth bundle analyzer for webpack(bundle size, assets, modules, packages)",
5
5
  "bin": {
6
6
  "bundle-stats": "bin/index.js"
7
7
  },
8
8
  "main": "lib/index.js",
9
- "module": "lib-esm/index.js",
10
9
  "types": "types/index.d.ts",
11
10
  "directories": {
12
11
  "lib": "lib"
@@ -15,11 +14,11 @@
15
14
  "node": ">= 14.0"
16
15
  },
17
16
  "scripts": {
18
- "build": "npm run build-lib && npm run build-esm",
19
- "build-lib": "rm -fr ./lib && ../../node_modules/.bin/tsc --rootDir ./src --project tsconfig.lib.json --outDir ./lib",
20
- "build-esm": "rm -fr ./lib-esm && rm -fr ./types && ../../node_modules/.bin/tsc --rootDir ./src --project tsconfig.esm.json --outDir ./lib-esm",
17
+ "build": "rm -fr ./lib && ../../node_modules/.bin/tsc --rootDir ./src --project tsconfig.lib.json --outDir ./lib",
21
18
  "lint": "../../node_modules/.bin/eslint . --ext .js",
22
- "test": "jest --passWithNoTests"
19
+ "serve-demo": "./bin/index.js --demo && http-server dist",
20
+ "test": "jest --passWithNoTests test/unit",
21
+ "test:e2e": "playwright test"
23
22
  },
24
23
  "keywords": [
25
24
  "webpack",
@@ -48,10 +47,10 @@
48
47
  },
49
48
  "homepage": "https://github.com/relative-ci/bundle-stats/blob/master/packages/cli#readme",
50
49
  "dependencies": {
51
- "@bundle-stats/cli-utils": "^4.3.0-beta.0",
52
- "@bundle-stats/plugin-webpack-filter": "^4.3.0-beta.0",
53
- "@bundle-stats/plugin-webpack-validate": "^4.3.0-beta.0",
54
- "@bundle-stats/utils": "^4.3.0-beta.0",
50
+ "@bundle-stats/cli-utils": "^4.3.0-beta.2",
51
+ "@bundle-stats/plugin-webpack-filter": "^4.3.0-beta.2",
52
+ "@bundle-stats/plugin-webpack-validate": "^4.3.0-beta.2",
53
+ "@bundle-stats/utils": "^4.3.0-beta.2",
55
54
  "boxen": "^5.0.0",
56
55
  "core-js": "^3.21.0",
57
56
  "fs-extra": "^11.0.0",
@@ -61,10 +60,16 @@
61
60
  "yargs": "^17.4.0"
62
61
  },
63
62
  "devDependencies": {
63
+ "@argos-ci/cli": "^0.4.3",
64
+ "@argos-ci/playwright": "^0.0.1",
65
+ "@playwright/test": "^1.29.2",
64
66
  "@types/fs-extra": "^11.0.0",
65
67
  "@types/listr": "^0.14.4",
66
- "jest": "29.3.1",
68
+ "@types/yargs": "^17.0.20",
69
+ "http-server": "^14.1.1",
70
+ "jest": "29.4.0",
71
+ "playwright": "^1.29.2",
67
72
  "typescript": "4.9.4"
68
73
  },
69
- "gitHead": "0dee5190df0098690d34ee9da7f471058fe8deed"
74
+ "gitHead": "a4732cf9ed55fb8d8c31bee857ba3ac16c04de1d"
70
75
  }
@@ -0,0 +1,42 @@
1
+ import type { PlaywrightTestConfig } from '@playwright/test';
2
+ import { devices } from '@playwright/test';
3
+
4
+ const config: PlaywrightTestConfig = {
5
+ testDir: './test/e2e',
6
+ timeout: 60 * 1000,
7
+ expect: {
8
+ timeout: 5000,
9
+ },
10
+ fullyParallel: true,
11
+ forbidOnly: !!process.env.CI,
12
+ retries: process.env.CI ? 2 : 0,
13
+ workers: process.env.CI ? 1 : undefined,
14
+ reporter: 'list',
15
+ use: {
16
+ actionTimeout: 0,
17
+ baseURL: 'http://localhost:8080',
18
+ trace: 'on-first-retry',
19
+ viewport: { width: 1280, height: 768 },
20
+ },
21
+ projects: [
22
+ {
23
+ name: 'chromium',
24
+ use: {
25
+ ...devices['Desktop Chrome'],
26
+ },
27
+ },
28
+ {
29
+ name: 'firefox',
30
+ use: {
31
+ ...devices['Desktop Firefox'],
32
+ },
33
+ },
34
+ ],
35
+ outputDir: './test-results/',
36
+ webServer: {
37
+ command: 'npm run serve-demo',
38
+ port: 8080,
39
+ },
40
+ };
41
+
42
+ export default config;
package/lib-esm/cli.js DELETED
@@ -1,70 +0,0 @@
1
- import path from 'path';
2
- import yargs from 'yargs';
3
- import updateNotifier from 'update-notifier';
4
- import run from './run';
5
- const DEFAULT_OUTPUT_DIR = './dist';
6
- const WEEK_IN_MS = 1000 * 60 * 60 * 24 * 7;
7
- export default async function cli(packageInfo) {
8
- const notifier = updateNotifier({ pkg: packageInfo, updateCheckInterval: WEEK_IN_MS });
9
- if (notifier.update) {
10
- notifier.notify();
11
- }
12
- const { demo } = yargs.parse();
13
- if (demo) {
14
- await run({
15
- html: true,
16
- json: true,
17
- outDir: DEFAULT_OUTPUT_DIR,
18
- artifactFilepaths: [
19
- path.resolve(__dirname, '../__fixtures__/webpack-stats-current.json'),
20
- path.resolve(__dirname, '../__fixtures__/webpack-stats-baseline.json'),
21
- ],
22
- });
23
- return;
24
- }
25
- const args = yargs
26
- .usage('Usage: $0 OPTIONS [STATS_FILE]...')
27
- .demandCommand(1, 'Webpack stats file path is required.')
28
- .option('out-dir', {
29
- description: 'Output directory',
30
- default: DEFAULT_OUTPUT_DIR,
31
- })
32
- .option('compare', {
33
- description: 'Use local saved stats for comparison',
34
- boolean: true,
35
- default: true,
36
- })
37
- .option('baseline', {
38
- description: 'Save current stats as baseline',
39
- boolean: true,
40
- default: false,
41
- })
42
- .option('html', {
43
- description: 'Save HTML report',
44
- boolean: true,
45
- default: true,
46
- })
47
- .option('json', {
48
- description: 'Save JSON data',
49
- boolean: true,
50
- default: false,
51
- })
52
- .option('demo', {
53
- description: 'Generate demo reports',
54
- default: false,
55
- })
56
- .alias('d', 'out-dir')
57
- .alias('h', 'help')
58
- .alias('v', 'version')
59
- .help().argv;
60
- const { compare, baseline, html, json, outDir, _: artifactFilepaths, } = args;
61
- await run({
62
- baseline,
63
- compare,
64
- html,
65
- json,
66
- outDir,
67
- artifactFilepaths,
68
- });
69
- }
70
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.js"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAE7C,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE3C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,GAAG,CAAC,WAAW;IAE3C,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,CAAC;IAEvF,IAAI,QAAQ,CAAC,MAAM,EAAE;QACnB,QAAQ,CAAC,MAAM,EAAE,CAAC;KACnB;IAGD,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAE/B,IAAI,IAAI,EAAE;QACR,MAAM,GAAG,CAAC;YACR,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,kBAAkB;YAC1B,iBAAiB,EAAE;gBACjB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,4CAA4C,CAAC;gBACrE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,6CAA6C,CAAC;aACvE;SACF,CAAC,CAAC;QAEH,OAAO;KACR;IAED,MAAM,IAAI,GAAG,KAAK;SACf,KAAK,CAAC,mCAAmC,CAAC;SAC1C,aAAa,CAAC,CAAC,EAAE,sCAAsC,CAAC;SACxD,MAAM,CAAC,SAAS,EAAE;QACjB,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,kBAAkB;KAC5B,CAAC;SAED,MAAM,CAAC,SAAS,EAAE;QACjB,WAAW,EAAE,sCAAsC;QACnD,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;KACd,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,WAAW,EAAE,gCAAgC;QAC7C,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,KAAK;KACf,CAAC;SAED,MAAM,CAAC,MAAM,EAAE;QACd,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;KACd,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,WAAW,EAAE,uBAAuB;QACpC,OAAO,EAAE,KAAK;KACf,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;SACrB,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;SAClB,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;SACrB,IAAI,EAAE,CAAC,IAAI,CAAC;IAEf,MAAM,EACJ,OAAO,EACP,QAAQ,EAER,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,CAAC,EAAE,iBAAiB,GACrB,GAAG,IAAI,CAAC;IAET,MAAM,GAAG,CAAC;QACR,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,iBAAiB;KAClB,CAAC,CAAC;AACL,CAAC"}
package/lib-esm/index.js DELETED
@@ -1,3 +0,0 @@
1
- export { default as cli } from './cli';
2
- export { default as run } from './run';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC"}
@@ -1,3 +0,0 @@
1
- {
2
- "WEBPACK_CONFIGURATION_URL": "https://github.com/relative-ci/bundle-stats/tree/master/packages/cli#webpack-configuration"
3
- }
package/lib-esm/run.js DELETED
@@ -1,122 +0,0 @@
1
- import path from 'path';
2
- import { readJSON, outputFile } from 'fs-extra';
3
- import { Listr } from 'listr2';
4
- import { get } from 'lodash';
5
- import boxen from 'boxen';
6
- import '@bundle-stats/utils/lib/polyfills';
7
- import { DELTA_TYPE_HIGH_NEGATIVE, DELTA_TYPE_NEGATIVE, DELTA_TYPE_LOW_NEGATIVE, DELTA_TYPE_NO_CHANGE, DELTA_TYPE_LOW_POSITIVE, DELTA_TYPE_POSITIVE, DELTA_TYPE_HIGH_POSITIVE, createJobs, createReport, } from '@bundle-stats/utils';
8
- import webpackFilter from '@bundle-stats/plugin-webpack-filter';
9
- import webpackValidate from '@bundle-stats/plugin-webpack-validate';
10
- import { TEXT, createArtifacts, getBaselineStatsFilepath, getReportInfo, readBaseline, writeBaseline, } from '@bundle-stats/cli-utils';
11
- import LOCALES from './locales.json';
12
- const REPORT_INFO_COLORS = {
13
- [DELTA_TYPE_HIGH_NEGATIVE]: 'red',
14
- [DELTA_TYPE_NEGATIVE]: 'red',
15
- [DELTA_TYPE_LOW_NEGATIVE]: 'yellow',
16
- [DELTA_TYPE_NO_CHANGE]: 'gray',
17
- [DELTA_TYPE_LOW_POSITIVE]: 'green',
18
- [DELTA_TYPE_POSITIVE]: 'green',
19
- [DELTA_TYPE_HIGH_POSITIVE]: 'green',
20
- };
21
- const getReportInfoBorderColor = (reportInfo) => {
22
- const { deltaType } = reportInfo.info;
23
- return REPORT_INFO_COLORS[deltaType];
24
- };
25
- export default async function run(options) {
26
- const { baseline, compare, html, json, outDir, artifactFilepaths } = options;
27
- const tasks = new Listr([
28
- {
29
- title: 'Read Webpack stats files',
30
- task: async (ctx) => {
31
- const sources = await Promise.all(artifactFilepaths.map((filepath) => readJSON(filepath)));
32
- sources.forEach((source, index) => {
33
- const invalid = webpackValidate(source);
34
- if (invalid) {
35
- throw new Error(`${invalid}\n${LOCALES.WEBPACK_CONFIGURATION_URL}\nFilepath: ${artifactFilepaths[index]}`);
36
- }
37
- });
38
- ctx.sources = sources.map((source) => ({ webpack: webpackFilter(source) }));
39
- },
40
- },
41
- {
42
- title: 'Read baseline data',
43
- task: async (ctx, task) => {
44
- const baselineFilepath = path.relative(process.cwd(), getBaselineStatsFilepath());
45
- task.title = `${task.title} (${baselineFilepath})`;
46
- ctx.sources = ctx.sources.concat([{ webpack: webpackFilter(ctx.baselineStats) }]);
47
- },
48
- skip: async (ctx) => {
49
- if (!compare) {
50
- return TEXT.CLI_NO_COMPARE_MODE;
51
- }
52
- if (artifactFilepaths.length !== 1) {
53
- return TEXT.CLI_MULTIPLE_STATS;
54
- }
55
- let baselineStats = {};
56
- try {
57
- baselineStats = await readBaseline();
58
- ctx.baselineStats = baselineStats;
59
- }
60
- catch (err) {
61
- return TEXT.CLI_BASELINE_MISSING_WARN;
62
- }
63
- return false;
64
- },
65
- },
66
- {
67
- title: 'Write baseline data',
68
- task: (ctx, task) => {
69
- const stats = get(ctx, 'sources[0]webpack');
70
- const filteredWebpackStats = webpackFilter(stats);
71
- const baselineFilepath = path.relative(process.cwd(), getBaselineStatsFilepath());
72
- return writeBaseline(filteredWebpackStats).then(() => {
73
- task.title = `${task.title} (${baselineFilepath})`;
74
- });
75
- },
76
- skip: () => !baseline && TEXT.CLI_NO_BASELINE,
77
- },
78
- {
79
- title: 'Process data',
80
- task: (ctx) => {
81
- ctx.jobs = createJobs(ctx.sources);
82
- ctx.report = createReport(ctx.jobs);
83
- },
84
- },
85
- {
86
- title: 'Generate reports',
87
- task: async (ctx) => {
88
- ctx.artifacts = await createArtifacts(ctx.jobs, ctx.report, { html, json });
89
- },
90
- },
91
- {
92
- title: 'Save reports',
93
- task: (ctx) => new Listr(Object.values(ctx.artifacts).map(({ filename, output }) => ({
94
- title: filename,
95
- task: async () => {
96
- const filepath = path.join(outDir, filename);
97
- await outputFile(filepath, output);
98
- ctx.output = [...(ctx.output ? ctx.output : []), filepath];
99
- },
100
- })), { concurrent: true }),
101
- },
102
- ]);
103
- let result = {};
104
- try {
105
- result = await tasks.run();
106
- }
107
- catch (err) {
108
- console.error(err.message);
109
- }
110
- const { output, report } = result;
111
- const reportInfo = getReportInfo(report);
112
- if (reportInfo) {
113
- const infoBox = boxen(reportInfo.text, {
114
- padding: 1,
115
- borderColor: getReportInfoBorderColor(reportInfo),
116
- });
117
- console.log(`\n${infoBox}`);
118
- }
119
- console.log('\nArtifacts:');
120
- output === null || output === void 0 ? void 0 : output.map((reportPath) => console.log(`- ${reportPath}`));
121
- }
122
- //# sourceMappingURL=run.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,mCAAmC,CAAC;AAC3C,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,UAAU,EACV,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,aAAa,MAAM,qCAAqC,CAAC;AAChE,OAAO,eAAe,MAAM,uCAAuC,CAAC;AACpE,OAAO,EACL,IAAI,EACJ,eAAe,EACf,wBAAwB,EACxB,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAErC,MAAM,kBAAkB,GAAG;IACzB,CAAC,wBAAwB,CAAC,EAAE,KAAK;IACjC,CAAC,mBAAmB,CAAC,EAAE,KAAK;IAC5B,CAAC,uBAAuB,CAAC,EAAE,QAAQ;IACnC,CAAC,oBAAoB,CAAC,EAAE,MAAM;IAC9B,CAAC,uBAAuB,CAAC,EAAE,OAAO;IAClC,CAAC,mBAAmB,CAAC,EAAE,OAAO;IAC9B,CAAC,wBAAwB,CAAC,EAAE,OAAO;CACpC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,UAAe,EAAE,EAAE;IACnD,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;IACtC,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC,CAAC;AAWF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,GAAG,CAAC,OAAmB;IACnD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;IAE7E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB;YACE,KAAK,EAAE,0BAA0B;YACjC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAClB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAE3F,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBAChC,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;oBAExC,IAAI,OAAO,EAAE;wBACX,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,KAAK,OAAO,CAAC,yBAAyB,eAAe,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;qBACH;gBACH,CAAC,CAAC,CAAC;gBAEH,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9E,CAAC;SACF;QACD;YACE,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBACxB,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,wBAAwB,EAAE,CAAC,CAAC;gBAElF,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,KAAK,gBAAgB,GAAG,CAAC;gBAEnD,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;YACpF,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAClB,IAAI,CAAC,OAAO,EAAE;oBACZ,OAAO,IAAI,CAAC,mBAAmB,CAAC;iBACjC;gBAED,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,OAAO,IAAI,CAAC,kBAAkB,CAAC;iBAChC;gBAED,IAAI,aAAa,GAAG,EAAE,CAAC;gBAEvB,IAAI;oBACF,aAAa,GAAG,MAAM,YAAY,EAAE,CAAC;oBACrC,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;iBACnC;gBAAC,OAAO,GAAG,EAAE;oBACZ,OAAO,IAAI,CAAC,yBAAyB,CAAC;iBACvC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC;SACF;QACD;YACE,KAAK,EAAE,qBAAqB;YAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBAClB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;gBAC5C,MAAM,oBAAoB,GAAG,aAAa,CAAC,KAAK,CAAS,CAAC;gBAC1D,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,wBAAwB,EAAE,CAAC,CAAC;gBAElF,OAAO,aAAa,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBAEnD,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,KAAK,gBAAgB,GAAG,CAAC;gBACrD,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe;SAC9C;QACD;YACE,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACZ,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACnC,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;SACF;QACD;YACE,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAClB,GAAG,CAAC,SAAS,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9E,CAAC;SACF;QACD;YACE,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CACZ,IAAI,KAAK,CACP,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAO,EAAE,EAAE,CAAC,CAAC;gBAC/D,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,KAAK,IAAI,EAAE;oBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;oBAC7C,MAAM,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAEnC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAC7D,CAAC;aACF,CAAC,CAAC,EACH,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB;SACJ;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,GAAG,EAAkC,CAAC;IAEhD,IAAI;QACF,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;KAC5B;IAAC,OAAO,GAAQ,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KAC5B;IAED,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAElC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAEzC,IAAI,UAAU,EAAE;QACd,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;YACrC,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,wBAAwB,CAAC,UAAU,CAAC;SAClD,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;KAC7B;IAED,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,CAAC,UAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC"}
package/types/cli.d.ts DELETED
@@ -1 +0,0 @@
1
- export default function cli(packageInfo: any): Promise<void>;
package/types/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export { default as cli } from './cli';
2
- export { default as run } from './run';
package/types/run.d.ts DELETED
@@ -1,11 +0,0 @@
1
- import '@bundle-stats/utils/lib/polyfills';
2
- interface RunOptions {
3
- baseline: boolean;
4
- compare: boolean;
5
- html: boolean;
6
- json: boolean;
7
- outDir: string;
8
- artifactFilepaths: Array<string>;
9
- }
10
- export default function run(options: RunOptions): Promise<void>;
11
- export {};