@bundle-stats/utils 3.1.4-alpha.0 → 3.2.1-alpha.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 +20 -1
- package/README.md +2 -2
- package/lib/utils/format.js +23 -3
- package/lib/utils/format.js.map +1 -1
- package/lib/webpack/constants.js +38 -2
- package/lib/webpack/constants.js.map +1 -1
- package/lib/webpack/extract/modules-packages.js +22 -2
- package/lib/webpack/extract/modules-packages.js.map +1 -1
- package/lib-esm/utils/format.js +2 -1
- package/lib-esm/utils/format.js.map +1 -1
- package/lib-esm/webpack/constants.js +37 -1
- package/lib-esm/webpack/constants.js.map +1 -1
- package/lib-esm/webpack/extract/modules-packages.js +23 -3
- package/lib-esm/webpack/extract/modules-packages.js.map +1 -1
- package/package.json +10 -9
- package/src/utils/format.js +3 -1
- package/src/webpack/constants.js +57 -2
- package/src/webpack/extract/modules-packages.ts +36 -3
- package/types/webpack/constants.d.ts +1 -0
- package/types/webpack/extract/modules-packages.d.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
## [3.1
|
|
6
|
+
## [3.2.1-alpha.0](https://github.com/relative-ci/bundle-stats/compare/v3.2.0...v3.2.1-alpha.0) (2021-10-27)
|
|
7
7
|
|
|
8
8
|
**Note:** Version bump only for package @bundle-stats/utils
|
|
9
9
|
|
|
@@ -11,6 +11,25 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
+
# [3.2.0](https://github.com/relative-ci/bundle-stats/compare/v3.1.3...v3.2.0) (2021-10-13)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* Consistent dependency versions across packages ([cceebb7](https://github.com/relative-ci/bundle-stats/commit/cceebb7724670a7c40c156c395449fc65d183690))
|
|
20
|
+
* **utils:** Use convert-units@beta ([731e7a4](https://github.com/relative-ci/bundle-stats/commit/731e7a4c1cf3fc2189f961388632fdbab838be3f))
|
|
21
|
+
* **utils:** Webpack module packages -construct patterns ([29c8606](https://github.com/relative-ci/bundle-stats/commit/29c86067d07188e4a553f7a41f70cc0621ea7c0d))
|
|
22
|
+
* **utils:** Webpack packages - make slug pattern more restrictive ([4d1ac7f](https://github.com/relative-ci/bundle-stats/commit/4d1ac7f7fc3c4783a0124efb651de2ff2752301e))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* **utils:** Extract packages - add support for pnpm ([527e154](https://github.com/relative-ci/bundle-stats/commit/527e15422447c14dfa6f0ba0fdfe859c0aae7b9a))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
14
33
|
## [3.1.2](https://github.com/relative-ci/bundle-stats/compare/v3.1.1...v3.1.2) (2021-08-10)
|
|
15
34
|
|
|
16
35
|
|
package/README.md
CHANGED
|
@@ -41,9 +41,9 @@ console.log(report.insights.webpack.assetsSizeTotal.data.text);
|
|
|
41
41
|
|
|
42
42
|
Specialized insights for web bundles:
|
|
43
43
|
|
|
44
|
-
-
|
|
44
|
+
- Analyze and monitor webpack stats(bundle size, assets, modules, packages)
|
|
45
45
|
- GitHub Check, GitHub Pull Request, and Slack integrations
|
|
46
|
-
- Support for all major CI services (CircleCI, GitHub Actions,
|
|
46
|
+
- Support for all major CI services (CircleCI, GitHub Actions, Gitlab CI, Jenkins, Travis CI)
|
|
47
47
|
- Free for OpenSource, developers and small teams
|
|
48
48
|
|
|
49
49
|
[Try for free](https://relative-ci.com?utm_source=github&utm_medium=bundle-stats)
|
package/lib/utils/format.js
CHANGED
|
@@ -1,18 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
23
|
};
|
|
5
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
25
|
exports.formatPercentage = exports.formatCommit = exports.formatNumber = exports.formatDuration = exports.formatFileSize = void 0;
|
|
7
|
-
const convert_units_1 =
|
|
26
|
+
const convert_units_1 = __importStar(require("convert-units"));
|
|
8
27
|
const round_1 = __importDefault(require("lodash/round"));
|
|
28
|
+
const convert = convert_units_1.default({ digital: convert_units_1.digital, time: convert_units_1.time });
|
|
9
29
|
const formatFileSize = (val) => {
|
|
10
|
-
const res =
|
|
30
|
+
const res = convert(val).from('B').toBest();
|
|
11
31
|
return `${round_1.default(res.val, 2)}${res.unit}`;
|
|
12
32
|
};
|
|
13
33
|
exports.formatFileSize = formatFileSize;
|
|
14
34
|
const formatDuration = (val) => {
|
|
15
|
-
const res =
|
|
35
|
+
const res = convert(val).from('ms').toBest();
|
|
16
36
|
return `${round_1.default(res.val, 4)}${res.unit}`;
|
|
17
37
|
};
|
|
18
38
|
exports.formatDuration = formatDuration;
|
package/lib/utils/format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAAqE;AACrE,yDAAiC;AAEjC,MAAM,OAAO,GAAG,uBAAqB,CAAC,EAAE,OAAO,EAAP,uBAAO,EAAE,IAAI,EAAJ,oBAAI,EAAE,CAAC,CAAC;AAElD,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,EAAE;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5C,OAAO,GAAG,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC,CAAC;AAHW,QAAA,cAAc,kBAGzB;AAEK,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,EAAE;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7C,OAAO,GAAG,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC,CAAC;AAHW,QAAA,cAAc,kBAGzB;AAEK,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;AAAjC,QAAA,YAAY,gBAAqB;AAEvC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAA1E,QAAA,YAAY,gBAA8D;AAEhF,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;AAAtC,QAAA,gBAAgB,oBAAsB"}
|
package/lib/webpack/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MODULE_PATH_PACKAGES = exports.SUMMARY_METRIC_PATHS = exports.SECTIONS = exports.SECTION_WEBPACK_PACKAGES = exports.SECTION_WEBPACK_MODULES = exports.SECTION_WEBPACK_ASSETS = exports.SECTION_WEBPACK_SIZES = exports.SECTION_WEBPACK_STATS = void 0;
|
|
3
|
+
exports.PACKAGE_PATH_NAME = exports.MODULE_PATH_PACKAGES = exports.SUMMARY_METRIC_PATHS = exports.SECTIONS = exports.SECTION_WEBPACK_PACKAGES = exports.SECTION_WEBPACK_MODULES = exports.SECTION_WEBPACK_ASSETS = exports.SECTION_WEBPACK_SIZES = exports.SECTION_WEBPACK_STATS = void 0;
|
|
4
4
|
exports.SECTION_WEBPACK_STATS = 'stats';
|
|
5
5
|
exports.SECTION_WEBPACK_SIZES = 'sizes';
|
|
6
6
|
exports.SECTION_WEBPACK_ASSETS = 'assets';
|
|
@@ -24,5 +24,41 @@ exports.SUMMARY_METRIC_PATHS = [
|
|
|
24
24
|
'packageCount',
|
|
25
25
|
'duplicatePackagesCount',
|
|
26
26
|
];
|
|
27
|
-
|
|
27
|
+
const PACKAGE_PREFIX = /(?:node_modules|~)(?:\/\.pnpm)?/;
|
|
28
|
+
const PACKAGE_SLUG = /[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*/;
|
|
29
|
+
const VERSION = /@[\w|\-|_|.]+/;
|
|
30
|
+
exports.MODULE_PATH_PACKAGES = new RegExp([
|
|
31
|
+
`(?:${PACKAGE_PREFIX.source}/)`,
|
|
32
|
+
'(?:',
|
|
33
|
+
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
34
|
+
`(?:${PACKAGE_SLUG.source}\\+)*`,
|
|
35
|
+
`(?:${PACKAGE_SLUG.source})`,
|
|
36
|
+
`(?:${VERSION.source})?`,
|
|
37
|
+
')',
|
|
38
|
+
'(?:_',
|
|
39
|
+
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
40
|
+
`(?:${PACKAGE_SLUG.source})`,
|
|
41
|
+
`(?:@${PACKAGE_SLUG.source})?`,
|
|
42
|
+
')*',
|
|
43
|
+
'/',
|
|
44
|
+
].join(''), 'g');
|
|
45
|
+
exports.PACKAGE_PATH_NAME = new RegExp([
|
|
46
|
+
`(?:${PACKAGE_PREFIX.source}/)`,
|
|
47
|
+
'(?:',
|
|
48
|
+
'(',
|
|
49
|
+
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
50
|
+
`(?:(?:${PACKAGE_SLUG.source}\\+)*)`,
|
|
51
|
+
`(?:${PACKAGE_SLUG.source})`,
|
|
52
|
+
')',
|
|
53
|
+
`(?:${VERSION.source})?`,
|
|
54
|
+
')',
|
|
55
|
+
'(?:_',
|
|
56
|
+
'(',
|
|
57
|
+
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
58
|
+
`(?:${PACKAGE_SLUG.source})`,
|
|
59
|
+
')',
|
|
60
|
+
`(?:@${PACKAGE_SLUG.source})`,
|
|
61
|
+
')*',
|
|
62
|
+
'/',
|
|
63
|
+
].join(''), 'g');
|
|
28
64
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/webpack/constants.js"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,OAAO,CAAC;AAChC,QAAA,qBAAqB,GAAG,OAAO,CAAC;AAChC,QAAA,sBAAsB,GAAG,QAAQ,CAAC;AAClC,QAAA,uBAAuB,GAAG,SAAS,CAAC;AACpC,QAAA,wBAAwB,GAAG,UAAU,CAAC;AAEtC,QAAA,QAAQ,GAAG;IACtB,6BAAqB;IACrB,6BAAqB;IACrB,8BAAsB;IACtB,+BAAuB;IACvB,gCAAwB;CACzB,CAAC;AAEW,QAAA,oBAAoB,GAAG;IAClC,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,mBAAmB;IACnB,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,wBAAwB;CACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/webpack/constants.js"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,OAAO,CAAC;AAChC,QAAA,qBAAqB,GAAG,OAAO,CAAC;AAChC,QAAA,sBAAsB,GAAG,QAAQ,CAAC;AAClC,QAAA,uBAAuB,GAAG,SAAS,CAAC;AACpC,QAAA,wBAAwB,GAAG,UAAU,CAAC;AAEtC,QAAA,QAAQ,GAAG;IACtB,6BAAqB;IACrB,6BAAqB;IACrB,8BAAsB;IACtB,+BAAuB;IACvB,gCAAwB;CACzB,CAAC;AAEW,QAAA,oBAAoB,GAAG;IAClC,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,mBAAmB;IACnB,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,wBAAwB;CACzB,CAAC;AAEF,MAAM,cAAc,GAAG,iCAAiC,CAAC;AACzD,MAAM,YAAY,GAAG,uCAAuC,CAAC;AAC7D,MAAM,OAAO,GAAG,eAAe,CAAC;AAKnB,QAAA,oBAAoB,GAAG,IAAI,MAAM,CAAC;IAE7C,MAAM,cAAc,CAAC,MAAM,IAAI;IAE/B,KAAK;IAEH,OAAO,YAAY,CAAC,MAAM,SAAS;IAEnC,MAAM,YAAY,CAAC,MAAM,OAAO;IAEhC,MAAM,YAAY,CAAC,MAAM,GAAG;IAE5B,MAAM,OAAO,CAAC,MAAM,IAAI;IAC1B,GAAG;IAGH,MAAM;IACJ,OAAO,YAAY,CAAC,MAAM,SAAS;IACnC,MAAM,YAAY,CAAC,MAAM,GAAG;IAC5B,OAAO,YAAY,CAAC,MAAM,IAAI;IAChC,IAAI;IACJ,GAAG;CACJ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAMJ,QAAA,iBAAiB,GAAG,IAAI,MAAM,CAAC;IAC1C,MAAM,cAAc,CAAC,MAAM,IAAI;IAE/B,KAAK;IACH,GAAG;IACD,OAAO,YAAY,CAAC,MAAM,SAAS;IACnC,SAAS,YAAY,CAAC,MAAM,QAAQ;IACpC,MAAM,YAAY,CAAC,MAAM,GAAG;IAC9B,GAAG;IACH,MAAM,OAAO,CAAC,MAAM,IAAI;IAC1B,GAAG;IAEH,MAAM;IACJ,GAAG;IACD,OAAO,YAAY,CAAC,MAAM,SAAS;IACnC,MAAM,YAAY,CAAC,MAAM,GAAG;IAC9B,GAAG;IACH,OAAO,YAAY,CAAC,MAAM,GAAG;IAC/B,IAAI;IACJ,GAAG;CACJ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC"}
|
|
@@ -6,15 +6,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.extractModulesPackages = exports.getPackageMetaFromModulePath = void 0;
|
|
7
7
|
const max_1 = __importDefault(require("lodash/max"));
|
|
8
8
|
const last_1 = __importDefault(require("lodash/last"));
|
|
9
|
+
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
|
9
10
|
const config_1 = require("../../config");
|
|
10
11
|
const constants_1 = require("../constants");
|
|
11
|
-
const
|
|
12
|
+
const uniqLast = (data) => {
|
|
13
|
+
const res = [];
|
|
14
|
+
data.forEach((item, index) => {
|
|
15
|
+
if (!data.slice(index + 1).includes(item)) {
|
|
16
|
+
res.push(item);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
return res;
|
|
20
|
+
};
|
|
12
21
|
const getPackageMetaFromModulePath = (modulePath) => {
|
|
13
22
|
const paths = modulePath.match(constants_1.MODULE_PATH_PACKAGES);
|
|
14
23
|
if (!paths) {
|
|
15
24
|
return null;
|
|
16
25
|
}
|
|
17
|
-
const names = paths
|
|
26
|
+
const names = uniqLast(paths
|
|
27
|
+
.map((packagePath) => {
|
|
28
|
+
const found = packagePath.matchAll(constants_1.PACKAGE_PATH_NAME);
|
|
29
|
+
if (!found) {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
return [...found].flat().slice(1).filter(Boolean).map((name) => name.replace(/\+/g, '/'));
|
|
33
|
+
})
|
|
34
|
+
.flat());
|
|
35
|
+
if (isEmpty_1.default(names)) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
18
38
|
const name = last_1.default(names);
|
|
19
39
|
const pattern = new RegExp(`(.*)(${last_1.default(paths)}).*`);
|
|
20
40
|
const path = modulePath.replace(pattern, '$1$2').replace(/\/$/, '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules-packages.js","sourceRoot":"","sources":["../../../src/webpack/extract/modules-packages.ts"],"names":[],"mappings":";;;;;;AAAA,qDAA6B;AAC7B,uDAA+B;
|
|
1
|
+
{"version":3,"file":"modules-packages.js","sourceRoot":"","sources":["../../../src/webpack/extract/modules-packages.ts"],"names":[],"mappings":";;;;;;AAAA,qDAA6B;AAC7B,uDAA+B;AAC/B,6DAAqC;AAErC,yCAAwE;AAExE,4CAAuE;AAEvE,MAAM,QAAQ,GAAG,CAAC,IAAoB,EAAE,EAAE;IACxC,MAAM,GAAG,GAAmB,EAAE,CAAC;IAE/B,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACzC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChB;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAKK,MAAM,4BAA4B,GAAG,CAAC,UAAkB,EAAE,EAAE;IACjE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,gCAAoB,CAAC,CAAC;IAGrD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IAID,MAAM,KAAK,GAAG,QAAQ,CACpB,KAAK;SACF,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;QAEnB,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,6BAAiB,CAAC,CAAC;QAEtD,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,EAAE,CAAC;SACX;QAED,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5F,CAAC,CAAC;SACD,IAAI,EAAE,CACV,CAAC;IAGF,IAAI,iBAAO,CAAC,KAAK,CAAC,EAAE;QAClB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,IAAI,GAAG,cAAI,CAAC,KAAK,CAAC,CAAC;IAIzB,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,QAAQ,cAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEpE,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,2BAAkB,CAAC;QAClC,IAAI;QACJ,IAAI;KACL,CAAC;AACJ,CAAC,CAAC;AA1CW,QAAA,4BAA4B,gCA0CvC;AAEK,MAAM,sBAAsB,GAAG,CACpC,YAAkB,EAClB,oBAA4C,EACpB,EAAE;;IAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA,MAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,OAAO,0CAAE,OAAO,KAAI,EAAE,CAAC,CAAC;IAE7E,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/D,MAAM,WAAW,GAAG,oCAA4B,CAAC,UAAU,CAAC,CAAC;QAE7D,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,GAAG,CAAC;SACZ;QAED,MAAM,mBAAmB,GAAG,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAGhD,IAAI,CAAC,mBAAmB,EAAE;YACxB,OAAO;gBACL,GAAG,GAAG;gBACN,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;oBAChB,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,KAAK;iBACN;aACF,CAAC;SACH;QAGD,IAAI,mBAAmB,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE;YACjD,OAAO;gBACL,GAAG,GAAG;gBACN,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;oBAChB,GAAG,mBAAmB;oBACtB,KAAK,EAAE,mBAAmB,CAAC,KAAK,GAAG,KAAK;iBACzC;aACF,CAAC;SACH;QAGD,MAAM,4BAA4B,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAC3D,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAC5D,CAAC;QAEF,IAAI,4BAA4B,EAAE;YAChC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,4BAA4B,CAAC;YAElD,OAAO;gBACL,GAAG,GAAG;gBACN,CAAC,IAAI,CAAC,EAAE;oBACN,GAAG,IAAI;oBACP,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;iBAC1B;aACF,CAAC;SACH;QAGD,MAAM,SAAS,GAAG,aAAG,CACnB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;aACb,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC;aACvC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAC5C,IAAI,CAAC,CAAC;QAEP,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,6BAAoB,CAAC,CAAC;QAE/E,OAAO;YACL,GAAG,GAAG;YACN,CAAC,WAAW,CAAC,EAAE;gBACb,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,KAAK;aACN;SACF,CAAC;IACJ,CAAC,EAAE,EAAmC,CAAC,CAAC;IAExC,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;AACnC,CAAC,CAAC;AA5EW,QAAA,sBAAsB,0BA4EjC"}
|
package/lib-esm/utils/format.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import configureMeasurements, { digital, time } from 'convert-units';
|
|
2
2
|
import round from 'lodash/round';
|
|
3
|
+
const convert = configureMeasurements({ digital, time });
|
|
3
4
|
export const formatFileSize = (val) => {
|
|
4
5
|
const res = convert(val).from('B').toBest();
|
|
5
6
|
return `${round(res.val, 2)}${res.unit}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.js"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.js"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,MAAM,cAAc,CAAC;AAEjC,MAAM,OAAO,GAAG,qBAAqB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,EAAE;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5C,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,EAAE;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7C,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;AAE9C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAEvF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC"}
|
|
@@ -21,5 +21,41 @@ export const SUMMARY_METRIC_PATHS = [
|
|
|
21
21
|
'packageCount',
|
|
22
22
|
'duplicatePackagesCount',
|
|
23
23
|
];
|
|
24
|
-
|
|
24
|
+
const PACKAGE_PREFIX = /(?:node_modules|~)(?:\/\.pnpm)?/;
|
|
25
|
+
const PACKAGE_SLUG = /[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*/;
|
|
26
|
+
const VERSION = /@[\w|\-|_|.]+/;
|
|
27
|
+
export const MODULE_PATH_PACKAGES = new RegExp([
|
|
28
|
+
`(?:${PACKAGE_PREFIX.source}/)`,
|
|
29
|
+
'(?:',
|
|
30
|
+
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
31
|
+
`(?:${PACKAGE_SLUG.source}\\+)*`,
|
|
32
|
+
`(?:${PACKAGE_SLUG.source})`,
|
|
33
|
+
`(?:${VERSION.source})?`,
|
|
34
|
+
')',
|
|
35
|
+
'(?:_',
|
|
36
|
+
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
37
|
+
`(?:${PACKAGE_SLUG.source})`,
|
|
38
|
+
`(?:@${PACKAGE_SLUG.source})?`,
|
|
39
|
+
')*',
|
|
40
|
+
'/',
|
|
41
|
+
].join(''), 'g');
|
|
42
|
+
export const PACKAGE_PATH_NAME = new RegExp([
|
|
43
|
+
`(?:${PACKAGE_PREFIX.source}/)`,
|
|
44
|
+
'(?:',
|
|
45
|
+
'(',
|
|
46
|
+
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
47
|
+
`(?:(?:${PACKAGE_SLUG.source}\\+)*)`,
|
|
48
|
+
`(?:${PACKAGE_SLUG.source})`,
|
|
49
|
+
')',
|
|
50
|
+
`(?:${VERSION.source})?`,
|
|
51
|
+
')',
|
|
52
|
+
'(?:_',
|
|
53
|
+
'(',
|
|
54
|
+
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
55
|
+
`(?:${PACKAGE_SLUG.source})`,
|
|
56
|
+
')',
|
|
57
|
+
`(?:@${PACKAGE_SLUG.source})`,
|
|
58
|
+
')*',
|
|
59
|
+
'/',
|
|
60
|
+
].join(''), 'g');
|
|
25
61
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/webpack/constants.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAC7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,QAAQ,CAAC;AAC/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AACjD,MAAM,CAAC,MAAM,wBAAwB,GAAG,UAAU,CAAC;AAEnD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,qBAAqB;IACrB,qBAAqB;IACrB,sBAAsB;IACtB,uBAAuB;IACvB,wBAAwB;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,mBAAmB;IACnB,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,wBAAwB;CACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/webpack/constants.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAC7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,QAAQ,CAAC;AAC/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AACjD,MAAM,CAAC,MAAM,wBAAwB,GAAG,UAAU,CAAC;AAEnD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,qBAAqB;IACrB,qBAAqB;IACrB,sBAAsB;IACtB,uBAAuB;IACvB,wBAAwB;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,mBAAmB;IACnB,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,wBAAwB;CACzB,CAAC;AAEF,MAAM,cAAc,GAAG,iCAAiC,CAAC;AACzD,MAAM,YAAY,GAAG,uCAAuC,CAAC;AAC7D,MAAM,OAAO,GAAG,eAAe,CAAC;AAKhC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC;IAE7C,MAAM,cAAc,CAAC,MAAM,IAAI;IAE/B,KAAK;IAEH,OAAO,YAAY,CAAC,MAAM,SAAS;IAEnC,MAAM,YAAY,CAAC,MAAM,OAAO;IAEhC,MAAM,YAAY,CAAC,MAAM,GAAG;IAE5B,MAAM,OAAO,CAAC,MAAM,IAAI;IAC1B,GAAG;IAGH,MAAM;IACJ,OAAO,YAAY,CAAC,MAAM,SAAS;IACnC,MAAM,YAAY,CAAC,MAAM,GAAG;IAC5B,OAAO,YAAY,CAAC,MAAM,IAAI;IAChC,IAAI;IACJ,GAAG;CACJ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAMjB,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC;IAC1C,MAAM,cAAc,CAAC,MAAM,IAAI;IAE/B,KAAK;IACH,GAAG;IACD,OAAO,YAAY,CAAC,MAAM,SAAS;IACnC,SAAS,YAAY,CAAC,MAAM,QAAQ;IACpC,MAAM,YAAY,CAAC,MAAM,GAAG;IAC9B,GAAG;IACH,MAAM,OAAO,CAAC,MAAM,IAAI;IAC1B,GAAG;IAEH,MAAM;IACJ,GAAG;IACD,OAAO,YAAY,CAAC,MAAM,SAAS;IACnC,MAAM,YAAY,CAAC,MAAM,GAAG;IAC9B,GAAG;IACH,OAAO,YAAY,CAAC,MAAM,GAAG;IAC/B,IAAI;IACJ,GAAG;CACJ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC"}
|
|
@@ -1,14 +1,34 @@
|
|
|
1
1
|
import max from 'lodash/max';
|
|
2
2
|
import last from 'lodash/last';
|
|
3
|
+
import isEmpty from 'lodash/isEmpty';
|
|
3
4
|
import { PACKAGES_SEPARATOR, PACKAGE_ID_SEPARATOR } from '../../config';
|
|
4
|
-
import { MODULE_PATH_PACKAGES } from '../constants';
|
|
5
|
-
const
|
|
5
|
+
import { MODULE_PATH_PACKAGES, PACKAGE_PATH_NAME } from '../constants';
|
|
6
|
+
const uniqLast = (data) => {
|
|
7
|
+
const res = [];
|
|
8
|
+
data.forEach((item, index) => {
|
|
9
|
+
if (!data.slice(index + 1).includes(item)) {
|
|
10
|
+
res.push(item);
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
return res;
|
|
14
|
+
};
|
|
6
15
|
export const getPackageMetaFromModulePath = (modulePath) => {
|
|
7
16
|
const paths = modulePath.match(MODULE_PATH_PACKAGES);
|
|
8
17
|
if (!paths) {
|
|
9
18
|
return null;
|
|
10
19
|
}
|
|
11
|
-
const names = paths
|
|
20
|
+
const names = uniqLast(paths
|
|
21
|
+
.map((packagePath) => {
|
|
22
|
+
const found = packagePath.matchAll(PACKAGE_PATH_NAME);
|
|
23
|
+
if (!found) {
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
return [...found].flat().slice(1).filter(Boolean).map((name) => name.replace(/\+/g, '/'));
|
|
27
|
+
})
|
|
28
|
+
.flat());
|
|
29
|
+
if (isEmpty(names)) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
12
32
|
const name = last(names);
|
|
13
33
|
const pattern = new RegExp(`(.*)(${last(paths)}).*`);
|
|
14
34
|
const path = modulePath.replace(pattern, '$1$2').replace(/\/$/, '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules-packages.js","sourceRoot":"","sources":["../../../src/webpack/extract/modules-packages.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAC;AAC7B,OAAO,IAAI,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"modules-packages.js","sourceRoot":"","sources":["../../../src/webpack/extract/modules-packages.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bundle-stats/utils",
|
|
3
|
-
"version": "3.1
|
|
3
|
+
"version": "3.2.1-alpha.0",
|
|
4
4
|
"description": "BundleStats utils",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-esm/index.js",
|
|
7
7
|
"types": "types/index.d.ts",
|
|
8
|
+
"sideEffects": false,
|
|
8
9
|
"engines": {
|
|
9
10
|
"node": ">= 12.0"
|
|
10
11
|
},
|
|
@@ -34,16 +35,16 @@
|
|
|
34
35
|
},
|
|
35
36
|
"homepage": "https://github.com/relative-ci/bundle-stats/blob/master/packages/utils#readme",
|
|
36
37
|
"dependencies": {
|
|
37
|
-
"@bundle-stats/plugin-webpack-filter": "^3.1
|
|
38
|
-
"@bundle-stats/plugin-webpack-validate": "^3.1
|
|
39
|
-
"convert-units": "^
|
|
38
|
+
"@bundle-stats/plugin-webpack-filter": "^3.2.1-alpha.0",
|
|
39
|
+
"@bundle-stats/plugin-webpack-validate": "^3.2.1-alpha.0",
|
|
40
|
+
"convert-units": "^3.0.0-beta.2",
|
|
40
41
|
"query-string": "^7.0.0",
|
|
41
42
|
"serialize-query-params": "^1.3.3"
|
|
42
43
|
},
|
|
43
44
|
"devDependencies": {
|
|
44
45
|
"@types/jest": "26.0.24",
|
|
45
|
-
"@types/lodash": "4.14.
|
|
46
|
-
"core-js": "3.
|
|
46
|
+
"@types/lodash": "4.14.176",
|
|
47
|
+
"core-js": "3.19.0",
|
|
47
48
|
"jest": "26.6.3",
|
|
48
49
|
"jest-cli": "26.6.3",
|
|
49
50
|
"jest-date-mock": "1.0.8",
|
|
@@ -53,8 +54,8 @@
|
|
|
53
54
|
"ts-jest": "26.5.6"
|
|
54
55
|
},
|
|
55
56
|
"peerDependencies": {
|
|
56
|
-
"core-js": "^3.
|
|
57
|
-
"lodash": "^4.17.
|
|
57
|
+
"core-js": "^3.16.2",
|
|
58
|
+
"lodash": "^4.17.21"
|
|
58
59
|
},
|
|
59
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "fdb4b6931ebbc35ad469608725603cde5ecab9b7"
|
|
60
61
|
}
|
package/src/utils/format.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import configureMeasurements, { digital, time } from 'convert-units';
|
|
2
2
|
import round from 'lodash/round';
|
|
3
3
|
|
|
4
|
+
const convert = configureMeasurements({ digital, time });
|
|
5
|
+
|
|
4
6
|
export const formatFileSize = (val) => {
|
|
5
7
|
const res = convert(val).from('B').toBest();
|
|
6
8
|
return `${round(res.val, 2)}${res.unit}`;
|
package/src/webpack/constants.js
CHANGED
|
@@ -24,5 +24,60 @@ export const SUMMARY_METRIC_PATHS = [
|
|
|
24
24
|
'duplicatePackagesCount',
|
|
25
25
|
];
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
const PACKAGE_PREFIX = /(?:node_modules|~)(?:\/\.pnpm)?/;
|
|
28
|
+
const PACKAGE_SLUG = /[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*/;
|
|
29
|
+
const VERSION = /@[\w|\-|_|.]+/;
|
|
30
|
+
|
|
31
|
+
// Extract package paths from module path
|
|
32
|
+
// https://regex101.com/r/22Leep/6
|
|
33
|
+
/* eslint-disable prettier/prettier */
|
|
34
|
+
export const MODULE_PATH_PACKAGES = new RegExp([
|
|
35
|
+
// match dependency directory (eg: `node_modules/`, `node_modules/.pnpm/`)
|
|
36
|
+
`(?:${PACKAGE_PREFIX.source}/)`,
|
|
37
|
+
// match package name
|
|
38
|
+
'(?:',
|
|
39
|
+
// match `@organization/` or `@organization+`(pnpm)
|
|
40
|
+
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
41
|
+
// match github.com+organization+
|
|
42
|
+
`(?:${PACKAGE_SLUG.source}\\+)*`,
|
|
43
|
+
// match package name
|
|
44
|
+
`(?:${PACKAGE_SLUG.source})`,
|
|
45
|
+
// match version
|
|
46
|
+
`(?:${VERSION.source})?`,
|
|
47
|
+
')',
|
|
48
|
+
|
|
49
|
+
// Match pnpm peer dependencies (eg: package-a@version_package-b@version)
|
|
50
|
+
'(?:_',
|
|
51
|
+
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
52
|
+
`(?:${PACKAGE_SLUG.source})`,
|
|
53
|
+
`(?:@${PACKAGE_SLUG.source})?`,
|
|
54
|
+
')*',
|
|
55
|
+
'/',
|
|
56
|
+
].join(''), 'g');
|
|
57
|
+
/* eslint-enable prettier/prettier */
|
|
58
|
+
|
|
59
|
+
// Extract package name from package path
|
|
60
|
+
// https://regex101.com/r/tTlU0W/6
|
|
61
|
+
/* eslint-disable prettier/prettier */
|
|
62
|
+
export const PACKAGE_PATH_NAME = new RegExp([
|
|
63
|
+
`(?:${PACKAGE_PREFIX.source}/)`,
|
|
64
|
+
// match dependency
|
|
65
|
+
'(?:',
|
|
66
|
+
'(',
|
|
67
|
+
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
68
|
+
`(?:(?:${PACKAGE_SLUG.source}\\+)*)`,
|
|
69
|
+
`(?:${PACKAGE_SLUG.source})`,
|
|
70
|
+
')',
|
|
71
|
+
`(?:${VERSION.source})?`,
|
|
72
|
+
')',
|
|
73
|
+
// match peer dependency
|
|
74
|
+
'(?:_',
|
|
75
|
+
'(',
|
|
76
|
+
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
77
|
+
`(?:${PACKAGE_SLUG.source})`,
|
|
78
|
+
')',
|
|
79
|
+
`(?:@${PACKAGE_SLUG.source})`,
|
|
80
|
+
')*',
|
|
81
|
+
'/',
|
|
82
|
+
].join(''), 'g');
|
|
83
|
+
/* eslint-enable prettier/prettier */
|
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
import max from 'lodash/max';
|
|
2
2
|
import last from 'lodash/last';
|
|
3
|
+
import isEmpty from 'lodash/isEmpty';
|
|
3
4
|
|
|
4
5
|
import { PACKAGES_SEPARATOR, PACKAGE_ID_SEPARATOR } from '../../config';
|
|
5
6
|
import { PackageMetric, WebpackMetricsModules, WebpackMetricsPackages } from '../../constants';
|
|
6
|
-
import { MODULE_PATH_PACKAGES } from '../constants';
|
|
7
|
+
import { MODULE_PATH_PACKAGES, PACKAGE_PATH_NAME } from '../constants';
|
|
7
8
|
|
|
8
|
-
const
|
|
9
|
+
const uniqLast = (data: Array<unknown>) => {
|
|
10
|
+
const res: Array<unknown> = [];
|
|
11
|
+
|
|
12
|
+
data.forEach((item, index) => {
|
|
13
|
+
if (!data.slice(index + 1).includes(item)) {
|
|
14
|
+
res.push(item);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
return res;
|
|
19
|
+
};
|
|
9
20
|
|
|
10
21
|
/**
|
|
11
22
|
* Heuristics to extract package id, name, and path from a module path
|
|
@@ -13,11 +24,33 @@ const PACKAGE_PATH_REPLACE = /.*(node_modules|~)\/(.*)\/$/;
|
|
|
13
24
|
export const getPackageMetaFromModulePath = (modulePath: string) => {
|
|
14
25
|
const paths = modulePath.match(MODULE_PATH_PACKAGES);
|
|
15
26
|
|
|
27
|
+
// No package paths found, skip
|
|
16
28
|
if (!paths) {
|
|
17
29
|
return null;
|
|
18
30
|
}
|
|
19
31
|
|
|
20
|
-
|
|
32
|
+
// Extract package names from module path
|
|
33
|
+
// @NOTE check for uniq for pnpm cases
|
|
34
|
+
const names = uniqLast(
|
|
35
|
+
paths
|
|
36
|
+
.map((packagePath) => {
|
|
37
|
+
// @ts-ignore
|
|
38
|
+
const found = packagePath.matchAll(PACKAGE_PATH_NAME);
|
|
39
|
+
|
|
40
|
+
if (!found) {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return [...found].flat().slice(1).filter(Boolean).map((name) => name.replace(/\+/g, '/'));
|
|
45
|
+
})
|
|
46
|
+
.flat(),
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
// If no names, skip
|
|
50
|
+
if (isEmpty(names)) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
|
|
21
54
|
const name = last(names);
|
|
22
55
|
|
|
23
56
|
// Get package full path
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WebpackMetricsModules, WebpackMetricsPackages } from '../../constants';
|
|
2
2
|
export declare const getPackageMetaFromModulePath: (modulePath: string) => {
|
|
3
3
|
id: string;
|
|
4
|
-
name:
|
|
4
|
+
name: unknown;
|
|
5
5
|
path: string;
|
|
6
6
|
} | null;
|
|
7
7
|
export declare const extractModulesPackages: (webpackStats?: any, currentExtractedData?: WebpackMetricsModules | undefined) => WebpackMetricsPackages;
|