@bundle-stats/cli-utils 4.2.0-beta.1 → 4.2.0-beta.3

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.
@@ -7,7 +7,8 @@ exports.createArtifacts = exports.createJSONArtifact = exports.createHTMLArtifac
7
7
  const html_templates_1 = __importDefault(require("@bundle-stats/html-templates"));
8
8
  const constants_1 = require("./constants");
9
9
  const createHTMLArtifact = (jobs) => {
10
- let output = html_templates_1.default.replace(constants_1.INITIAL_DATA_PATTERN, `window.__INITIAL_DATA__ = ${JSON.stringify(jobs)}`);
10
+ const initialDataJobs = jobs.map((job) => Object.assign({}, job, { rawData: undefined }));
11
+ let output = html_templates_1.default.replace(constants_1.INITIAL_DATA_PATTERN, `window.__INITIAL_DATA__ = ${JSON.stringify(initialDataJobs)}`);
11
12
  const totalSize = jobs?.[0]?.insights?.webpack?.assetsSizeTotal?.data?.text;
12
13
  if (totalSize) {
13
14
  output = output.replace(/<title>(.*)<\/title>/, `<title>${totalSize} - $1</title>`);
@@ -1 +1 @@
1
- {"version":3,"file":"create-artifacts.js","sourceRoot":"","sources":["../src/create-artifacts.ts"],"names":[],"mappings":";;;;;;AAAA,kFAAyD;AAEzD,2CAAgF;AAIzE,MAAM,kBAAkB,GAAqB,CAAC,IAAI,EAAE,EAAE;IAE3D,IAAI,MAAM,GAAG,wBAAa,CAAC,OAAO,CAChC,gCAAoB,EACpB,6BAA6B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CACpD,CAAC;IAGF,MAAM,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC;IAE5E,IAAI,SAAS,EAAE;QACb,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,UAAU,SAAS,eAAe,CAAC,CAAC;KACrF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAfW,QAAA,kBAAkB,sBAe7B;AAEK,MAAM,kBAAkB,GAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;IAChE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAcF,SAAgB,eAAe,CAC7B,IAAgB,EAChB,MAAW,EACX,OAAyB;IAEzB,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,OAAO,CAAC,sBAAU,CAAC,IAAI,CAAC,GAAG;YACzB,MAAM,EAAE,IAAA,0BAAkB,EAAC,IAAI,EAAE,MAAM,CAAC;YACxC,QAAQ,EAAE,GAAG,2BAAe,IAAI,sBAAU,CAAC,IAAI,EAAE;SAClD,CAAC;KACH;IAED,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,OAAO,CAAC,sBAAU,CAAC,IAAI,CAAC,GAAG;YACzB,MAAM,EAAE,IAAA,0BAAkB,EAAC,IAAI,EAAE,MAAM,CAAC;YACxC,QAAQ,EAAE,GAAG,2BAAe,IAAI,sBAAU,CAAC,IAAI,EAAE;SAClD,CAAC;KACH;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAtBD,0CAsBC"}
1
+ {"version":3,"file":"create-artifacts.js","sourceRoot":"","sources":["../src/create-artifacts.ts"],"names":[],"mappings":";;;;;;AACA,kFAAyD;AAEzD,2CAAgF;AAIzE,MAAM,kBAAkB,GAAqB,CAAC,IAAI,EAAE,EAAE;IAE3D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAG1F,IAAI,MAAM,GAAG,wBAAa,CAAC,OAAO,CAChC,gCAAoB,EACpB,6BAA6B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAC/D,CAAC;IAGF,MAAM,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC;IAE5E,IAAI,SAAS,EAAE;QACb,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,UAAU,SAAS,eAAe,CAAC,CAAC;KACrF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAlBW,QAAA,kBAAkB,sBAkB7B;AAEK,MAAM,kBAAkB,GAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;IAChE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAcF,SAAgB,eAAe,CAC7B,IAAgB,EAChB,MAAW,EACX,OAAyB;IAEzB,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,OAAO,CAAC,sBAAU,CAAC,IAAI,CAAC,GAAG;YACzB,MAAM,EAAE,IAAA,0BAAkB,EAAC,IAAI,EAAE,MAAM,CAAC;YACxC,QAAQ,EAAE,GAAG,2BAAe,IAAI,sBAAU,CAAC,IAAI,EAAE;SAClD,CAAC;KACH;IAED,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,OAAO,CAAC,sBAAU,CAAC,IAAI,CAAC,GAAG;YACzB,MAAM,EAAE,IAAA,0BAAkB,EAAC,IAAI,EAAE,MAAM,CAAC;YACxC,QAAQ,EAAE,GAAG,2BAAe,IAAI,sBAAU,CAAC,IAAI,EAAE;SAClD,CAAC;KACH;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAtBD,0CAsBC"}
package/lib/index.js CHANGED
@@ -26,14 +26,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
26
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.getReportInfo = exports.TEXT = void 0;
29
+ exports.TEXT = void 0;
30
30
  const T = __importStar(require("./text"));
31
31
  __exportStar(require("./baseline"), exports);
32
32
  __exportStar(require("./create-artifacts"), exports);
33
33
  __exportStar(require("./constants"), exports);
34
+ __exportStar(require("./reports"), exports);
34
35
  exports.TEXT = T;
35
- function getReportInfo(report) {
36
- return report?.insights?.webpack?.assetsSizeTotal?.data;
37
- }
38
- exports.getReportInfo = getReportInfo;
39
36
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA4B;AAE5B,6CAA2B;AAC3B,qDAAmC;AACnC,8CAA4B;AAEf,QAAA,IAAI,GAAG,CAAC,CAAC;AAEtB,SAAgB,aAAa,CAAC,MAAW;IACvC,OAAO,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC;AAC1D,CAAC;AAFD,sCAEC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA4B;AAE5B,6CAA2B;AAC3B,qDAAmC;AACnC,8CAA4B;AAC5B,4CAA0B;AAEb,QAAA,IAAI,GAAG,CAAC,CAAC"}
package/lib/reports.js ADDED
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.generateReports = exports.getReportInfo = void 0;
30
+ const path_1 = __importDefault(require("path"));
31
+ const merge_1 = __importDefault(require("lodash/merge"));
32
+ const utils_1 = require("@bundle-stats/utils");
33
+ const plugin_webpack_filter_1 = __importDefault(require("@bundle-stats/plugin-webpack-filter"));
34
+ const plugin_webpack_validate_1 = __importDefault(require("@bundle-stats/plugin-webpack-validate"));
35
+ const TEXT = __importStar(require("./text"));
36
+ const create_artifacts_1 = require("./create-artifacts");
37
+ const baseline_1 = require("./baseline");
38
+ function getReportInfo(report) {
39
+ return report?.insights?.webpack?.assetsSizeTotal?.data;
40
+ }
41
+ exports.getReportInfo = getReportInfo;
42
+ const DEFAULT_OPTIONS = {
43
+ compare: true,
44
+ baseline: Boolean(process.env.BUNDLE_STATS_BASELINE),
45
+ html: true,
46
+ json: false,
47
+ outDir: '',
48
+ silent: false,
49
+ };
50
+ const generateReports = async (source, options, pluginOptions = {}) => {
51
+ const { compare, baseline, html, json, outDir } = (0, merge_1.default)({}, DEFAULT_OPTIONS, options);
52
+ const { invalidOptionsUrl: invalidParamsUrl, outputPath, logger = console } = pluginOptions;
53
+ const newAssets = {};
54
+ const invalid = (0, plugin_webpack_validate_1.default)(source);
55
+ if (invalid) {
56
+ logger.warn([invalid, invalidParamsUrl].join('\n'));
57
+ }
58
+ const data = (0, plugin_webpack_filter_1.default)(source);
59
+ if (!data.builtAt) {
60
+ data.builtAt = Date.now();
61
+ }
62
+ const baselineFilepath = (0, baseline_1.getBaselineStatsFilepath)(outputPath);
63
+ let baselineStats = null;
64
+ try {
65
+ if (compare) {
66
+ const baselineStatsData = await (0, baseline_1.readBaseline)();
67
+ baselineStats = (0, plugin_webpack_filter_1.default)(baselineStatsData);
68
+ if (!options.silent)
69
+ logger.info(`Read baseline from ${baselineFilepath}`);
70
+ }
71
+ }
72
+ catch (err) {
73
+ logger.warn(TEXT.PLUGIN_BASELINE_MISSING_WARN);
74
+ }
75
+ const jobs = (0, utils_1.createJobs)([
76
+ { webpack: data },
77
+ ...(compare && baselineStats ? [{ webpack: baselineStats }] : []),
78
+ ]);
79
+ const report = (0, utils_1.createReport)(jobs);
80
+ const artifacts = (0, create_artifacts_1.createArtifacts)(jobs, report, { html, json });
81
+ Object.values(artifacts).forEach(({ filename, output }) => {
82
+ const filepath = path_1.default.join(outDir, filename);
83
+ newAssets[filepath] = output;
84
+ });
85
+ if (baseline) {
86
+ newAssets[baselineFilepath] = JSON.stringify(data);
87
+ if (!options.silent)
88
+ logger.info(`Write baseline data to ${baselineFilepath}`);
89
+ }
90
+ const info = getReportInfo(report);
91
+ if (info && !options.silent) {
92
+ logger.info(info.text);
93
+ }
94
+ return newAssets;
95
+ };
96
+ exports.generateReports = generateReports;
97
+ //# sourceMappingURL=reports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reports.js","sourceRoot":"","sources":["../src/reports.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,yDAAiC;AACjC,+CAA+D;AAC/D,gGAAyD;AACzD,oGAA6D;AAE7D,6CAA+B;AAC/B,yDAAqD;AACrD,yCAAoE;AAEpE,SAAgB,aAAa,CAAC,MAAW;IACvC,OAAO,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC;AAC1D,CAAC;AAFD,sCAEC;AAgDD,MAAM,eAAe,GAAG;IACtB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACpD,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,KAAK;CACd,CAAC;AAEK,MAAM,eAAe,GAAG,KAAK,EAClC,MAAc,EACd,OAAsB,EACtB,gBAAqC,EAAE,EAChB,EAAE;IACzB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAA,eAAK,EAAC,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IACtF,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,aAAa,CAAC;IAC5F,MAAM,SAAS,GAAiB,EAAE,CAAC;IAEnC,MAAM,OAAO,GAAG,IAAA,iCAAQ,EAAC,MAAM,CAAC,CAAC;IAEjC,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACrD;IAED,MAAM,IAAI,GAAG,IAAA,+BAAM,EAAC,MAAM,CAAC,CAAC;IAG5B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;KAC3B;IAED,MAAM,gBAAgB,GAAG,IAAA,mCAAwB,EAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,aAAa,GAAG,IAAI,CAAC;IAEzB,IAAI;QACF,IAAI,OAAO,EAAE;YACX,MAAM,iBAAiB,GAAG,MAAM,IAAA,uBAAY,GAAE,CAAC;YAC/C,aAAa,GAAG,IAAA,+BAAM,EAAC,iBAAiB,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,gBAAgB,EAAE,CAAC,CAAC;SAC5E;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;KAChD;IAED,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC;QACtB,EAAE,OAAO,EAAE,IAAI,EAAE;QACjB,GAAG,CAAC,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,IAAA,kCAAe,EAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QACxD,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAG7C,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,EAAE;QAEZ,SAAS,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEnD,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,gBAAgB,EAAE,CAAC,CAAC;KAChF;IAED,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAEnC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AA/DW,QAAA,eAAe,mBA+D1B"}
@@ -2,7 +2,8 @@ import htmlTemplates from '@bundle-stats/html-templates';
2
2
  import { INITIAL_DATA_PATTERN, OUTPUT_FILENAME, OutputType } from './constants';
3
3
  export const createHTMLArtifact = (jobs) => {
4
4
  var _a, _b, _c, _d, _e;
5
- let output = htmlTemplates.replace(INITIAL_DATA_PATTERN, `window.__INITIAL_DATA__ = ${JSON.stringify(jobs)}`);
5
+ const initialDataJobs = jobs.map((job) => Object.assign({}, job, { rawData: undefined }));
6
+ let output = htmlTemplates.replace(INITIAL_DATA_PATTERN, `window.__INITIAL_DATA__ = ${JSON.stringify(initialDataJobs)}`);
6
7
  const totalSize = (_e = (_d = (_c = (_b = (_a = jobs === null || jobs === void 0 ? void 0 : jobs[0]) === null || _a === void 0 ? void 0 : _a.insights) === null || _b === void 0 ? void 0 : _b.webpack) === null || _c === void 0 ? void 0 : _c.assetsSizeTotal) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.text;
7
8
  if (totalSize) {
8
9
  output = output.replace(/<title>(.*)<\/title>/, `<title>${totalSize} - $1</title>`);
@@ -1 +1 @@
1
- {"version":3,"file":"create-artifacts.js","sourceRoot":"","sources":["../src/create-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIhF,MAAM,CAAC,MAAM,kBAAkB,GAAqB,CAAC,IAAI,EAAE,EAAE;;IAE3D,IAAI,MAAM,GAAG,aAAa,CAAC,OAAO,CAChC,oBAAoB,EACpB,6BAA6B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CACpD,CAAC;IAGF,MAAM,SAAS,GAAG,MAAA,MAAA,MAAA,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAC,0CAAE,QAAQ,0CAAE,OAAO,0CAAE,eAAe,0CAAE,IAAI,0CAAE,IAAI,CAAC;IAE5E,IAAI,SAAS,EAAE;QACb,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,UAAU,SAAS,eAAe,CAAC,CAAC;KACrF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;IAChE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC;AAcF,MAAM,UAAU,eAAe,CAC7B,IAAgB,EAChB,MAAW,EACX,OAAyB;IAEzB,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG;YACzB,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC;YACxC,QAAQ,EAAE,GAAG,eAAe,IAAI,UAAU,CAAC,IAAI,EAAE;SAClD,CAAC;KACH;IAED,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG;YACzB,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC;YACxC,QAAQ,EAAE,GAAG,eAAe,IAAI,UAAU,CAAC,IAAI,EAAE;SAClD,CAAC;KACH;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"create-artifacts.js","sourceRoot":"","sources":["../src/create-artifacts.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIhF,MAAM,CAAC,MAAM,kBAAkB,GAAqB,CAAC,IAAI,EAAE,EAAE;;IAE3D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAG1F,IAAI,MAAM,GAAG,aAAa,CAAC,OAAO,CAChC,oBAAoB,EACpB,6BAA6B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAC/D,CAAC;IAGF,MAAM,SAAS,GAAG,MAAA,MAAA,MAAA,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAC,0CAAE,QAAQ,0CAAE,OAAO,0CAAE,eAAe,0CAAE,IAAI,0CAAE,IAAI,CAAC;IAE5E,IAAI,SAAS,EAAE;QACb,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,UAAU,SAAS,eAAe,CAAC,CAAC;KACrF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;IAChE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC;AAcF,MAAM,UAAU,eAAe,CAC7B,IAAgB,EAChB,MAAW,EACX,OAAyB;IAEzB,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG;YACzB,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC;YACxC,QAAQ,EAAE,GAAG,eAAe,IAAI,UAAU,CAAC,IAAI,EAAE;SAClD,CAAC;KACH;IAED,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG;YACzB,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC;YACxC,QAAQ,EAAE,GAAG,eAAe,IAAI,UAAU,CAAC,IAAI,EAAE;SAClD,CAAC;KACH;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/lib-esm/index.js CHANGED
@@ -2,9 +2,6 @@ import * as T from './text';
2
2
  export * from './baseline';
3
3
  export * from './create-artifacts';
4
4
  export * from './constants';
5
+ export * from './reports';
5
6
  export const TEXT = T;
6
- export function getReportInfo(report) {
7
- var _a, _b, _c;
8
- return (_c = (_b = (_a = report === null || report === void 0 ? void 0 : report.insights) === null || _a === void 0 ? void 0 : _a.webpack) === null || _b === void 0 ? void 0 : _b.assetsSizeTotal) === null || _c === void 0 ? void 0 : _c.data;
9
- }
10
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAE5B,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;AAEtB,MAAM,UAAU,aAAa,CAAC,MAAW;;IACvC,OAAO,MAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,0CAAE,OAAO,0CAAE,eAAe,0CAAE,IAAI,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAE1B,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC"}
@@ -0,0 +1,67 @@
1
+ import path from 'path';
2
+ import merge from 'lodash/merge';
3
+ import { createJobs, createReport } from '@bundle-stats/utils';
4
+ import filter from '@bundle-stats/plugin-webpack-filter';
5
+ import validate from '@bundle-stats/plugin-webpack-validate';
6
+ import * as TEXT from './text';
7
+ import { createArtifacts } from './create-artifacts';
8
+ import { getBaselineStatsFilepath, readBaseline } from './baseline';
9
+ export function getReportInfo(report) {
10
+ var _a, _b, _c;
11
+ return (_c = (_b = (_a = report === null || report === void 0 ? void 0 : report.insights) === null || _a === void 0 ? void 0 : _a.webpack) === null || _b === void 0 ? void 0 : _b.assetsSizeTotal) === null || _c === void 0 ? void 0 : _c.data;
12
+ }
13
+ const DEFAULT_OPTIONS = {
14
+ compare: true,
15
+ baseline: Boolean(process.env.BUNDLE_STATS_BASELINE),
16
+ html: true,
17
+ json: false,
18
+ outDir: '',
19
+ silent: false,
20
+ };
21
+ export const generateReports = async (source, options, pluginOptions = {}) => {
22
+ const { compare, baseline, html, json, outDir } = merge({}, DEFAULT_OPTIONS, options);
23
+ const { invalidOptionsUrl: invalidParamsUrl, outputPath, logger = console } = pluginOptions;
24
+ const newAssets = {};
25
+ const invalid = validate(source);
26
+ if (invalid) {
27
+ logger.warn([invalid, invalidParamsUrl].join('\n'));
28
+ }
29
+ const data = filter(source);
30
+ if (!data.builtAt) {
31
+ data.builtAt = Date.now();
32
+ }
33
+ const baselineFilepath = getBaselineStatsFilepath(outputPath);
34
+ let baselineStats = null;
35
+ try {
36
+ if (compare) {
37
+ const baselineStatsData = await readBaseline();
38
+ baselineStats = filter(baselineStatsData);
39
+ if (!options.silent)
40
+ logger.info(`Read baseline from ${baselineFilepath}`);
41
+ }
42
+ }
43
+ catch (err) {
44
+ logger.warn(TEXT.PLUGIN_BASELINE_MISSING_WARN);
45
+ }
46
+ const jobs = createJobs([
47
+ { webpack: data },
48
+ ...(compare && baselineStats ? [{ webpack: baselineStats }] : []),
49
+ ]);
50
+ const report = createReport(jobs);
51
+ const artifacts = createArtifacts(jobs, report, { html, json });
52
+ Object.values(artifacts).forEach(({ filename, output }) => {
53
+ const filepath = path.join(outDir, filename);
54
+ newAssets[filepath] = output;
55
+ });
56
+ if (baseline) {
57
+ newAssets[baselineFilepath] = JSON.stringify(data);
58
+ if (!options.silent)
59
+ logger.info(`Write baseline data to ${baselineFilepath}`);
60
+ }
61
+ const info = getReportInfo(report);
62
+ if (info && !options.silent) {
63
+ logger.info(info.text);
64
+ }
65
+ return newAssets;
66
+ };
67
+ //# sourceMappingURL=reports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reports.js","sourceRoot":"","sources":["../src/reports.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,cAAc,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,MAAM,MAAM,qCAAqC,CAAC;AACzD,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAE7D,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,UAAU,aAAa,CAAC,MAAW;;IACvC,OAAO,MAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,0CAAE,OAAO,0CAAE,eAAe,0CAAE,IAAI,CAAC;AAC1D,CAAC;AAgDD,MAAM,eAAe,GAAG;IACtB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACpD,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,KAAK;CACd,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,MAAc,EACd,OAAsB,EACtB,gBAAqC,EAAE,EAChB,EAAE;IACzB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IACtF,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,aAAa,CAAC;IAC5F,MAAM,SAAS,GAAiB,EAAE,CAAC;IAEnC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEjC,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACrD;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAG5B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;KAC3B;IAED,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,aAAa,GAAG,IAAI,CAAC;IAEzB,IAAI;QACF,IAAI,OAAO,EAAE;YACX,MAAM,iBAAiB,GAAG,MAAM,YAAY,EAAE,CAAC;YAC/C,aAAa,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,gBAAgB,EAAE,CAAC,CAAC;SAC5E;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;KAChD;IAED,MAAM,IAAI,GAAG,UAAU,CAAC;QACtB,EAAE,OAAO,EAAE,IAAI,EAAE;QACjB,GAAG,CAAC,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAG7C,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,EAAE;QAEZ,SAAS,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEnD,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,gBAAgB,EAAE,CAAC,CAAC;KAChF;IAED,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAEnC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bundle-stats/cli-utils",
3
- "version": "4.2.0-beta.1",
3
+ "version": "4.2.0-beta.3",
4
4
  "description": "BundleStats CLI utilities",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -34,16 +34,18 @@
34
34
  },
35
35
  "homepage": "https://github.com/relative-ci/bundle-stats/blob/master/packages/cli-utils#readme",
36
36
  "dependencies": {
37
- "@bundle-stats/html-templates": "^4.2.0-beta.1",
38
- "@bundle-stats/utils": "^4.2.0-beta.1",
37
+ "@bundle-stats/html-templates": "^4.2.0-beta.3",
38
+ "@bundle-stats/plugin-webpack-filter": "^4.2.0-beta.3",
39
+ "@bundle-stats/plugin-webpack-validate": "^4.2.0-beta.3",
40
+ "@bundle-stats/utils": "^4.2.0-beta.3",
39
41
  "core-js": "^3.21.0",
40
42
  "find-cache-dir": "^3.1.0",
41
43
  "fs-extra": "^11.0.0"
42
44
  },
43
45
  "devDependencies": {
44
46
  "@types/find-cache-dir": "^3.2.1",
45
- "jest": "29.3.1",
47
+ "jest": "29.4.0",
46
48
  "typescript": "4.9.4"
47
49
  },
48
- "gitHead": "c69fdcf2c8b40118710b49cfa973e820e4880242"
50
+ "gitHead": "f3ba19946987a5a954991f02ed0ddfe2ac8ad972"
49
51
  }
@@ -1,3 +1,3 @@
1
1
  export declare function getBaselineStatsFilepath(from?: string): string;
2
- export declare function readBaseline(from?: string): Promise<string>;
2
+ export declare function readBaseline(from?: string): Promise<object>;
3
3
  export declare function writeBaseline(data: JSON): Promise<void>;
@@ -1,4 +1,5 @@
1
- type CreateArtifactFn = (jobs: Array<any>, report: any) => string;
1
+ import type { Job } from '@bundle-stats/utils';
2
+ type CreateArtifactFn = (jobs: Array<Job>, report: any) => string;
2
3
  export declare const createHTMLArtifact: CreateArtifactFn;
3
4
  export declare const createJSONArtifact: CreateArtifactFn;
4
5
  interface ArtifactsOptions {
package/types/index.d.ts CHANGED
@@ -2,5 +2,5 @@ import * as T from './text';
2
2
  export * from './baseline';
3
3
  export * from './create-artifacts';
4
4
  export * from './constants';
5
+ export * from './reports';
5
6
  export declare const TEXT: typeof T;
6
- export declare function getReportInfo(report: any): any;
@@ -0,0 +1,17 @@
1
+ export declare function getReportInfo(report: any): any;
2
+ export interface ReportOptions {
3
+ compare?: boolean;
4
+ baseline?: boolean;
5
+ html?: boolean;
6
+ json?: boolean;
7
+ outDir?: String;
8
+ silent?: boolean;
9
+ }
10
+ interface ReportPluginOptions {
11
+ outputPath?: string;
12
+ logger?: Console;
13
+ invalidOptionsUrl?: string;
14
+ }
15
+ type ReportAssets = Record<string, string>;
16
+ export declare const generateReports: (source: object, options: ReportOptions, pluginOptions?: ReportPluginOptions) => Promise<ReportAssets>;
17
+ export {};