package-build-stats 7.3.6 → 8.0.0-beta.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.
Files changed (50) hide show
  1. package/.parcelrc +37 -0
  2. package/package.json +96 -68
  3. package/src/common.types.ts +3 -10
  4. package/src/config/{config.ts → index.ts} +1 -0
  5. package/src/errors/CustomError.d.ts +42 -0
  6. package/src/errors/CustomError.js +81 -0
  7. package/src/errors/CustomError.js.map +1 -0
  8. package/src/fixed/parseReference.js +762 -727
  9. package/src/getPackageExportSizes.ts +33 -14
  10. package/src/getPackageStats.ts +55 -16
  11. package/src/typings/is-valid-npm-name.d.ts +3 -0
  12. package/src/utils/build.utils.ts +258 -230
  13. package/src/utils/common.utils.ts +138 -0
  14. package/src/utils/exports.utils.ts +34 -21
  15. package/src/utils/installation.utils.ts +28 -5
  16. package/src/utils/telemetry.utils.ts +0 -21
  17. package/LICENSE +0 -21
  18. package/README.md +0 -67
  19. package/build/common.types.d.ts +0 -56
  20. package/build/common.types.js +0 -2
  21. package/build/config/config.d.ts +0 -4
  22. package/build/config/config.js +0 -12
  23. package/build/config/makeWebpackConfig.d.ts +0 -17
  24. package/build/config/makeWebpackConfig.js +0 -242
  25. package/build/errors/CustomError.d.ts +0 -45
  26. package/build/errors/CustomError.js +0 -80
  27. package/build/getDependencySizeTree.d.ts +0 -12
  28. package/build/getDependencySizeTree.js +0 -283
  29. package/build/getPackageExportSizes.d.ts +0 -63
  30. package/build/getPackageExportSizes.js +0 -122
  31. package/build/getPackageStats.d.ts +0 -95
  32. package/build/getPackageStats.js +0 -138
  33. package/build/getParseTime.d.ts +0 -13
  34. package/build/getParseTime.js +0 -61
  35. package/build/index.d.ts +0 -5
  36. package/build/index.js +0 -54
  37. package/build/utils/build.utils.d.ts +0 -127
  38. package/build/utils/build.utils.js +0 -349
  39. package/build/utils/common.utils.d.ts +0 -28
  40. package/build/utils/common.utils.js +0 -136
  41. package/build/utils/exports.utils.d.ts +0 -23
  42. package/build/utils/exports.utils.js +0 -272
  43. package/build/utils/installation.utils.d.ts +0 -12
  44. package/build/utils/installation.utils.js +0 -153
  45. package/build/utils/telemetry.utils.d.ts +0 -71
  46. package/build/utils/telemetry.utils.js +0 -174
  47. package/src/config/.DS_Store +0 -0
  48. package/src/config/.temp_cache/.DS_Store +0 -0
  49. package/src/config/makeWebpackConfig.ts +0 -251
  50. package/src/getDependencySizeTree.ts +0 -266
package/.parcelrc ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "extends": "@parcel/config-default",
3
+ "resolvers": [
4
+ "parcel-resolver-package-build-stats"
5
+ ],
6
+ "transformers": {
7
+ "*.{js,mjs,jsx,cjs,ts,tsx}": [
8
+ "@parcel/transformer-js"
9
+ ],
10
+ "*.svg": [
11
+ "@parcel/transformer-raw"
12
+ ]
13
+ },
14
+ "runtimes": [
15
+ "@parcel/runtime-js"
16
+ ],
17
+ "reporters": [
18
+ "parcel-reporter-package-build-stats",
19
+ "@parcel/reporter-bundle-analyzer",
20
+ "@parcel/reporter-sourcemap-visualiser"
21
+ ],
22
+ "optimizers": {
23
+ "data-url:*": [
24
+ "...",
25
+ "@parcel/optimizer-data-url"
26
+ ],
27
+ "*.css": [
28
+ "@parcel/optimizer-cssnano"
29
+ ],
30
+ "*.{html,xhtml}": [
31
+ "@parcel/optimizer-htmlnano"
32
+ ],
33
+ "*.{js,mjs,cjs}": [
34
+ "@parcel/optimizer-swc"
35
+ ]
36
+ }
37
+ }
package/package.json CHANGED
@@ -1,30 +1,25 @@
1
1
  {
2
2
  "name": "package-build-stats",
3
- "version": "7.3.6",
3
+ "version": "8.0.0-beta.1",
4
4
  "author": "Shubham Kanodia <shubham.kanodia10@gmail.com>",
5
5
  "repository": "https://github.com/pastelsky/package-build-stats",
6
6
  "publishConfig": {
7
7
  "registry": "https://registry.npmjs.org"
8
8
  },
9
9
  "license": "MIT",
10
- "engines": {
11
- "node": ">=8.9.x",
12
- "npm": ">=4.x.x"
13
- },
14
10
  "files": [
15
11
  "build",
12
+ ".parcelrc",
16
13
  "src"
17
14
  ],
18
15
  "main": "build/index.js",
19
16
  "scripts": {
20
17
  "start": "ts-node --files index.js",
21
- "dev": "DEBUG=bp* ts-node-dev --files index.js",
18
+ "dev": "ts-node-dev --trace-warnings --ignore-watch ./tmp --transpile-only --files src/index.ts",
22
19
  "dev:perf": "DEBUG=bp-telemetry* ts-node-dev --files index.js",
23
- "build": "tsc && cp -r src/fixed build/fixed",
24
- "test": "jest",
25
- "test:ci": "yarn test --colors",
26
- "prettier": "prettier --write '**/*.{html,js,ts,json,css,scss,jsx,flow,md,yml,yaml}'",
27
- "prepublish": "rm -rf build && tsc && yarn prettier"
20
+ "build": "tsc --build && cp -r src/fixed build/fixed",
21
+ "build:watch": "tsc --build --watch",
22
+ "prepublish": "rm -rf build && tsc"
28
23
  },
29
24
  "prettier": {
30
25
  "semi": false,
@@ -32,80 +27,113 @@
32
27
  "arrowParens": "avoid"
33
28
  },
34
29
  "devDependencies": {
35
- "@babel/preset-env": "^7.13.9",
36
- "@babel/preset-typescript": "^7.13.0",
37
- "@types/autoprefixer": "9",
38
- "@types/babel__traverse": "^7.11.0",
39
- "@types/enhanced-resolve": "^3.0.6",
40
- "@types/lodash": "^4.14.168",
41
- "@types/memory-fs": "^0.3.2",
42
- "@types/mini-css-extract-plugin": "^1.2.2",
43
- "@types/node": "^14.14.31",
44
- "@types/rimraf": "^3.0.0",
30
+ "@babel/preset-env": "^7.16.11",
31
+ "@babel/preset-typescript": "^7.16.7",
32
+ "@parcel/reporter-bundle-analyzer": "^2.4.1",
33
+ "@types/autoprefixer": "9.7.2",
34
+ "@types/babel__code-frame": "^7",
35
+ "@types/babel__traverse": "^7.14.2",
36
+ "@types/enhanced-resolve": "^3.0.7",
37
+ "@types/find-cache-dir": "^3",
38
+ "@types/lodash": "^4.14.179",
39
+ "@types/memoizee": "^0.4.7",
40
+ "@types/memory-fs": "^0.3.3",
41
+ "@types/mini-css-extract-plugin": "^2.5.1",
42
+ "@types/node": "^14.18.12",
43
+ "@types/node-gzip": "^1",
44
+ "@types/rimraf": "^3.0.2",
45
+ "@types/semver": "^7",
45
46
  "@types/shortid": "^0.0.29",
46
47
  "@types/stats-lite": "^2.2.0",
47
- "@types/terser-webpack-plugin": "^5.0.2",
48
- "@types/webpack": "^4.41.26",
49
- "@types/write-file-webpack-plugin": "^4.5.0",
50
- "dotenv": "^8.2.0",
51
- "husky": "^4.3.0",
48
+ "@types/terser-webpack-plugin": "^5.0.4",
49
+ "@types/webpack": "^5.28.0",
50
+ "@types/write-file-webpack-plugin": "^4.5.2",
51
+ "dotenv": "^8.6.0",
52
+ "husky": "^4.3.8",
52
53
  "jest": "^24.9.0",
53
54
  "p-series": "^2.1.0",
54
- "prettier": "^2.1.2",
55
- "pretty-quick": "^3.1.0",
56
- "ts-node": "^9.0.0",
57
- "ts-node-dev": "^1.1.6",
58
- "typescript": "^4.2.3"
55
+ "prettier": "^2.5.1",
56
+ "pretty-quick": "^3.1.3",
57
+ "ts-node": "^10.4.0",
58
+ "ts-node-dev": "^1.1.8",
59
+ "typescript": "^4.5.5"
59
60
  },
60
61
  "dependencies": {
61
- "@babel/core": "^7.13.8",
62
- "@babel/parser": "^7.13.9",
63
- "@babel/plugin-proposal-export-default-from": "^7.12.13",
64
- "@babel/traverse": "^7.13.0",
65
- "autoprefixer": "^9.7.6",
62
+ "@babel/code-frame": "^7.16.7",
63
+ "@babel/core": "^7.17.5",
64
+ "@babel/parser": "^7.17.3",
65
+ "@babel/plugin-proposal-export-default-from": "^7.16.7",
66
+ "@babel/traverse": "^7.17.3",
67
+ "@parcel/config-default": "^2.4.1",
68
+ "@parcel/core": "^2.4.1",
69
+ "@parcel/fs": "^2.4.1",
70
+ "@parcel/node-resolver-core": "^2.4.1",
71
+ "@parcel/optimizer-swc": "^2.4.1",
72
+ "@parcel/plugin": "^2.4.1",
73
+ "@parcel/reporter-json": "^2.4.1",
74
+ "@parcel/reporter-sourcemap-visualiser": "^2.4.1",
75
+ "@parcel/source-map": "^2.0.2",
76
+ "@parcel/transformer-less": "^2.4.1",
77
+ "@parcel/transformer-raw": "^2.4.1",
78
+ "@parcel/transformer-sass": "^2.4.1",
79
+ "@parcel/transformer-vue": "^2.4.1",
80
+ "@parcel/types": "^2.4.1",
81
+ "@parcel/utils": "^2.4.1",
82
+ "autoprefixer": "^9.8.8",
83
+ "axios": "^0.24.0",
66
84
  "babel-eslint": "^10.1.0",
67
- "builtin-modules": "^3.1.0",
85
+ "builtin-modules": "^3.2.0",
68
86
  "css-loader": "^4.3.0",
69
- "cssnano": "^4.1.10",
70
- "csso-webpack-plugin": "^2.0.0-beta.1",
71
- "debug": "^4.2.0",
72
- "enhanced-resolve": "^5.7.0",
73
- "esbuild": "^0.11.4",
74
- "esbuild-loader": "^2.11.0",
75
- "esbuild-webpack-plugin": "^1.1.0",
87
+ "cssnano": "^4.1.11",
88
+ "csso-webpack-plugin": "^2.0.0-beta.3",
89
+ "debug": "^4.3.3",
90
+ "enhanced-resolve": "^5.9.1",
91
+ "esbuild": "^0.11.23",
92
+ "esbuild-loader": "^2.18.0",
76
93
  "escape-string-regexp": "^2.0.0",
77
- "fast-safe-stringify": "^2.0.7",
78
- "file-loader": "^6.1.1",
94
+ "fast-safe-stringify": "^2.1.1",
95
+ "file-loader": "^6.2.0",
96
+ "find-cache-dir": "^3.3.2",
79
97
  "is-valid-npm-name": "^0.0.5",
80
- "less": "^4.1.1",
81
- "less-loader": "^7.3.0",
98
+ "less": "^4.1.2",
99
+ "less-loader": "^8.1.1",
82
100
  "lodash": "^4.17.21",
101
+ "memfs": "^3.4.1",
102
+ "memoizee": "^0.4.15",
83
103
  "memory-fs": "^0.5.0",
84
- "mini-css-extract-plugin": "^1.3.9",
104
+ "mini-css-extract-plugin": "^1.6.2",
85
105
  "mitt": "^2.1.0",
86
- "node-fetch": "^2.6.1",
87
- "node-sass": "^4.14.1",
88
- "np": "^7.4.0",
89
- "optimize-css-assets-webpack-plugin": "^5.0.4",
106
+ "node-fetch": "^2.6.7",
107
+ "node-gzip": "^1.1.2",
108
+ "node-sass": "^6.0.1",
109
+ "np": "^7.6.0",
110
+ "optimize-css-assets-webpack-plugin": "^5.0.8",
111
+ "p-all": "3",
112
+ "parcel-reporter-package-build-stats": "^1.0.0",
113
+ "parcel-resolver-package-build-stats": "^1.0.0",
90
114
  "performance-now": "^2.1.0",
91
115
  "pify": "^5.0.0",
92
116
  "postcss-loader": "^3.0.0",
93
117
  "rimraf": "^3.0.2",
94
118
  "sanitize-filename": "^1.6.3",
95
119
  "sass-loader": "^8.0.2",
96
- "server": "^1.0.32",
97
- "shebang-loader": "^0.0.1",
98
- "shortid": "^2.2.15",
99
- "stats-lite": "^2.1.0",
100
- "string-replace-loader": "^3.0.1",
101
- "svelte": "^3.35.0",
102
- "svelte-loader": "^2.13.6",
103
- "terser": "^5.6.0",
104
- "terser-webpack-plugin": "^4.2.3",
105
- "vm2": "^3.9.1",
106
- "vue-loader": "^15.9.3",
107
- "vue-template-compiler": "^2.6.12",
108
- "webpack": "^4.44.2",
120
+ "semver": "^7.3.5",
121
+ "server": "^1.0.37",
122
+ "shortid": "^2.2.16",
123
+ "source-map-explorer": "^2.5.2",
124
+ "stats-lite": "^2.2.0",
125
+ "string-replace-loader": "^3.1.0",
126
+ "svelte": "^3.46.3",
127
+ "svelte-loader": "^3.1.2",
128
+ "terser": "^5.10.0",
129
+ "terser-webpack-plugin": "^5.3.0",
130
+ "vm2": "^3.9.5",
131
+ "vue-loader": "^15.9.8",
132
+ "vue-template-compiler": "^2.6.14",
133
+ "webpack": "^5.67.0",
134
+ "webpack-bundle-analyzer": "^4.5.0",
109
135
  "write-file-webpack-plugin": "^4.5.1"
110
- }
111
- }
136
+ },
137
+ "packageManager": "yarn@3.1.0",
138
+ "stableVersion": "7.3.6"
139
+ }
@@ -1,6 +1,6 @@
1
- type Minifier = 'esbuild' | 'terser'
1
+ export type Minifier = 'esbuild' | 'terser'
2
2
 
3
- type AllOptions = {
3
+ export type AllOptions = {
4
4
  customImports?: Array<string>
5
5
  splitCustomImports?: boolean
6
6
  debug?: boolean
@@ -27,6 +27,7 @@ export type CreateEntryPointOptions = Pick<
27
27
  AllOptions,
28
28
  'esm' | 'customImports' | 'entryFilename'
29
29
  >
30
+
30
31
  export type InstallPackageOptions = Pick<
31
32
  AllOptions,
32
33
  | 'client'
@@ -53,11 +54,3 @@ export type Externals = {
53
54
  externalPackages: Array<string>
54
55
  externalBuiltIns: Array<string>
55
56
  }
56
-
57
- // This isn't exposed by webpack
58
- // but is used in their public interfaces
59
- export type WebpackError = {
60
- name: 'ModuleNotFoundError'
61
- details?: string
62
- error: Error
63
- }
@@ -4,4 +4,5 @@ import path from 'path'
4
4
 
5
5
  export default {
6
6
  tmp: path.join('/tmp', 'tmp-build'),
7
+ compileConcurrency: 2,
7
8
  }
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Wraps the original error with a identifiable
3
+ * name.
4
+ */
5
+ declare class CustomError extends Error {
6
+ originalError: any;
7
+ extra: any;
8
+ constructor(name: string, originalError: Error, extra?: any);
9
+ toJSON(): {
10
+ name: string;
11
+ originalError: any;
12
+ extra: any;
13
+ };
14
+ }
15
+ export declare class BuildError extends CustomError {
16
+ constructor(originalError: any, extra?: any);
17
+ }
18
+ export declare class EntryPointError extends CustomError {
19
+ constructor(originalError: any, extra?: any);
20
+ }
21
+ export declare class InstallError extends CustomError {
22
+ constructor(originalError: any, extra?: any);
23
+ }
24
+ export declare class PackageNotFoundError extends CustomError {
25
+ constructor(originalError: any, extra?: any);
26
+ }
27
+ export declare class CLIBuildError extends CustomError {
28
+ constructor(originalError: any, extra?: any);
29
+ }
30
+ export declare class MinifyError extends CustomError {
31
+ constructor(originalError: any, extra?: any);
32
+ }
33
+ export declare class MissingDependencyError extends CustomError {
34
+ missingModules: Array<string>;
35
+ constructor(originalError: any, extra: {
36
+ missingModules: Array<string>;
37
+ });
38
+ }
39
+ export declare class UnexpectedBuildError extends CustomError {
40
+ constructor(originalError: any, extra?: any);
41
+ }
42
+ export {};
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnexpectedBuildError = exports.MissingDependencyError = exports.MinifyError = exports.CLIBuildError = exports.PackageNotFoundError = exports.InstallError = exports.EntryPointError = exports.BuildError = void 0;
4
+ /**
5
+ * Wraps the original error with a identifiable
6
+ * name.
7
+ */
8
+ class CustomError extends Error {
9
+ constructor(name, originalError, extra) {
10
+ super(name);
11
+ this.name = name;
12
+ this.originalError = originalError;
13
+ this.extra = extra;
14
+ Object.setPrototypeOf(this, CustomError.prototype);
15
+ }
16
+ toJSON() {
17
+ return {
18
+ name: this.name,
19
+ originalError: this.originalError,
20
+ extra: this.extra,
21
+ };
22
+ }
23
+ }
24
+ class BuildError extends CustomError {
25
+ constructor(originalError, extra) {
26
+ super('BuildError', originalError, extra);
27
+ Object.setPrototypeOf(this, BuildError.prototype);
28
+ }
29
+ }
30
+ exports.BuildError = BuildError;
31
+ class EntryPointError extends CustomError {
32
+ constructor(originalError, extra) {
33
+ super('EntryPointError', originalError, extra);
34
+ Object.setPrototypeOf(this, EntryPointError.prototype);
35
+ }
36
+ }
37
+ exports.EntryPointError = EntryPointError;
38
+ class InstallError extends CustomError {
39
+ constructor(originalError, extra) {
40
+ super('InstallError', originalError, extra);
41
+ Object.setPrototypeOf(this, InstallError.prototype);
42
+ }
43
+ }
44
+ exports.InstallError = InstallError;
45
+ class PackageNotFoundError extends CustomError {
46
+ constructor(originalError, extra) {
47
+ super('PackageNotFoundError', originalError, extra);
48
+ Object.setPrototypeOf(this, PackageNotFoundError.prototype);
49
+ }
50
+ }
51
+ exports.PackageNotFoundError = PackageNotFoundError;
52
+ class CLIBuildError extends CustomError {
53
+ constructor(originalError, extra) {
54
+ super('CLIBuildError', originalError, extra);
55
+ Object.setPrototypeOf(this, CLIBuildError.prototype);
56
+ }
57
+ }
58
+ exports.CLIBuildError = CLIBuildError;
59
+ class MinifyError extends CustomError {
60
+ constructor(originalError, extra) {
61
+ super('MinifyError', originalError, extra);
62
+ Object.setPrototypeOf(this, MinifyError.prototype);
63
+ }
64
+ }
65
+ exports.MinifyError = MinifyError;
66
+ class MissingDependencyError extends CustomError {
67
+ constructor(originalError, extra) {
68
+ super('MissingDependencyError', originalError, extra);
69
+ this.missingModules = extra.missingModules;
70
+ Object.setPrototypeOf(this, MissingDependencyError.prototype);
71
+ }
72
+ }
73
+ exports.MissingDependencyError = MissingDependencyError;
74
+ class UnexpectedBuildError extends CustomError {
75
+ constructor(originalError, extra) {
76
+ super('UnexpectedBuildError', originalError, extra);
77
+ Object.setPrototypeOf(this, UnexpectedBuildError.prototype);
78
+ }
79
+ }
80
+ exports.UnexpectedBuildError = UnexpectedBuildError;
81
+ //# sourceMappingURL=CustomError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomError.js","sourceRoot":"","sources":["CustomError.ts"],"names":[],"mappings":"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"}