@rsdoctor/utils 1.4.1-beta.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build.cjs +1 -1
- package/dist/build.js +1 -1
- package/dist/common.cjs +8 -2
- package/dist/common.js +8 -2
- package/dist/error.cjs +11 -6
- package/dist/error.js +10 -6
- package/package.json +3 -3
package/dist/build.cjs
CHANGED
|
@@ -18,7 +18,7 @@ var __webpack_modules__ = {
|
|
|
18
18
|
MODULE_PATH_PACKAGES: ()=>MODULE_PATH_PACKAGES,
|
|
19
19
|
PACKAGE_PATH_NAME: ()=>PACKAGE_PATH_NAME,
|
|
20
20
|
getPackageMetaFromModulePath: ()=>getPackageMetaFromModulePath
|
|
21
|
-
}), __webpack_require__("./src/common/algorithm.ts"), __webpack_require__("path"), __webpack_require__("process"), __webpack_require__("@rsdoctor/types"), __webpack_require__("./src/logger.ts"), RegExp(`(.*)${/[-|.]/.source}${/[a-
|
|
21
|
+
}), __webpack_require__("./src/common/algorithm.ts"), __webpack_require__("path"), __webpack_require__("process"), __webpack_require__("@rsdoctor/types"), __webpack_require__("./src/logger.ts"), RegExp(`(.*)${/[-|.]/.source}(${/(?:[a-f0-9]{4,32}|[a-zA-Z]{3,}[0-9]|[a-zA-Z]*[0-9][a-zA-Z]{2,}|[a-zA-Z]*[0-9][a-zA-Z0-9]{3,31})/.source})(${/(?:\.[a-z|A-Z|0-9]{2,}){1,}/.source})$`);
|
|
22
22
|
var lodash = __webpack_require__("./src/common/lodash.ts");
|
|
23
23
|
let PACKAGE_SLUG = /[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*/, MODULE_PATH_PACKAGES = RegExp(`(?:${/(?:node_modules|~)(?:\/\.pnpm)?/.source}/)(?:(?:@${PACKAGE_SLUG.source}[/|+])?(?:${PACKAGE_SLUG.source}\\+)*(?:${PACKAGE_SLUG.source})(?:${/@[\w|\-|_|.]+/.source})?)(?:_(?:@${PACKAGE_SLUG.source}[/|+])?(?:${PACKAGE_SLUG.source})(?:@${PACKAGE_SLUG.source})?)*/`, 'g'), PACKAGE_PATH_NAME = /(?:(?:node_modules|~)(?:\/\.pnpm)?\/)(?:((?:@[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*[/|+])?(?:(?:[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*\+)*)(?:[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*))(?:@[\w|\-|_|.]+)?)(?:_((?:@[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*[/|+])?(?:[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*))(?:@[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*))*\//gm, getPackageMetaFromModulePath = (modulePath)=>{
|
|
24
24
|
var data;
|
package/dist/build.js
CHANGED
|
@@ -146,7 +146,7 @@ createLogger().override({
|
|
|
146
146
|
debug: (message)=>{
|
|
147
147
|
process.env.DEBUG && console.log(`${picocolors.blue('[RSDOCTOR DEBUG]')} ${message}`);
|
|
148
148
|
}
|
|
149
|
-
}), RegExp(`(.*)${/[-|.]/.source}${/[a-
|
|
149
|
+
}), RegExp(`(.*)${/[-|.]/.source}(${/(?:[a-f0-9]{4,32}|[a-zA-Z]{3,}[0-9]|[a-zA-Z]*[0-9][a-zA-Z]{2,}|[a-zA-Z]*[0-9][a-zA-Z0-9]{3,31})/.source})(${/(?:\.[a-z|A-Z|0-9]{2,}){1,}/.source})$`);
|
|
150
150
|
let PACKAGE_SLUG = /[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*/, MODULE_PATH_PACKAGES = RegExp(`(?:${/(?:node_modules|~)(?:\/\.pnpm)?/.source}/)(?:(?:@${PACKAGE_SLUG.source}[/|+])?(?:${PACKAGE_SLUG.source}\\+)*(?:${PACKAGE_SLUG.source})(?:${/@[\w|\-|_|.]+/.source})?)(?:_(?:@${PACKAGE_SLUG.source}[/|+])?(?:${PACKAGE_SLUG.source})(?:@${PACKAGE_SLUG.source})?)*/`, 'g'), PACKAGE_PATH_NAME = /(?:(?:node_modules|~)(?:\/\.pnpm)?\/)(?:((?:@[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*[/|+])?(?:(?:[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*\+)*)(?:[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*))(?:@[\w|\-|_|.]+)?)(?:_((?:@[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*[/|+])?(?:[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*))(?:@[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*))*\//gm, getPackageMetaFromModulePath = (modulePath)=>{
|
|
151
151
|
var data;
|
|
152
152
|
let res, paths = modulePath.match(MODULE_PATH_PACKAGES);
|
package/dist/common.cjs
CHANGED
|
@@ -817,10 +817,16 @@ for(var __rspack_i in (()=>{
|
|
|
817
817
|
dependencies: (0, graph_dependency.NL)(module, dependencies)
|
|
818
818
|
};
|
|
819
819
|
}
|
|
820
|
-
let filenamePattern = RegExp(`(.*)${/[-|.]/.source}${/[a-
|
|
820
|
+
let filenamePattern = RegExp(`(.*)${/[-|.]/.source}(${/(?:[a-f0-9]{4,32}|[a-zA-Z]{3,}[0-9]|[a-zA-Z]*[0-9][a-zA-Z]{2,}|[a-zA-Z]*[0-9][a-zA-Z0-9]{3,31})/.source})(${/(?:\.[a-z|A-Z|0-9]{2,}){1,}/.source})$`);
|
|
821
821
|
function formatAssetName(assetName, fileConfig) {
|
|
822
822
|
let splitFilesList = fileConfig?.split('.'), outputFileTailName = '', unHashedFileName = assetName;
|
|
823
|
-
|
|
823
|
+
if (splitFilesList?.length && splitFilesList.length >= 3 && splitFilesList[splitFilesList.length - 2]?.indexOf('[') < 0 && 'js|css|html'.indexOf(splitFilesList[splitFilesList.length - 1]) > -1) {
|
|
824
|
+
outputFileTailName = splitFilesList[splitFilesList.length - 2];
|
|
825
|
+
let match = assetName.match(/(.*)(\.([a-f0-9]{4,32}|[a-zA-Z]*[0-9][a-zA-Z0-9]*))(\.[^.]+){2,}$/);
|
|
826
|
+
if (match && match[3].length >= 4 && match[3].length <= 32) return unHashedFileName = match[1], `${unHashedFileName}.${outputFileTailName}.${assetName.substring(assetName.lastIndexOf('.') + 1)}`;
|
|
827
|
+
}
|
|
828
|
+
let match = assetName.match(filenamePattern);
|
|
829
|
+
return match && match[2] && match[2].length >= 4 && match[2].length <= 32 ? assetName.replace(filenamePattern, '$1$3') : assetName;
|
|
824
830
|
}
|
|
825
831
|
function isAssetMatchExtension(asset, ext) {
|
|
826
832
|
return asset.path.slice(-ext.length) === ext || extname(asset.path) === ext;
|
package/dist/common.js
CHANGED
|
@@ -606,10 +606,16 @@ function getModuleDetails(moduleId, modules, dependencies) {
|
|
|
606
606
|
dependencies: getDependenciesByModule(module, dependencies)
|
|
607
607
|
};
|
|
608
608
|
}
|
|
609
|
-
let filenamePattern = RegExp(`(.*)${/[-|.]/.source}${/[a-
|
|
609
|
+
let filenamePattern = RegExp(`(.*)${/[-|.]/.source}(${/(?:[a-f0-9]{4,32}|[a-zA-Z]{3,}[0-9]|[a-zA-Z]*[0-9][a-zA-Z]{2,}|[a-zA-Z]*[0-9][a-zA-Z0-9]{3,31})/.source})(${/(?:\.[a-z|A-Z|0-9]{2,}){1,}/.source})$`);
|
|
610
610
|
function formatAssetName(assetName, fileConfig) {
|
|
611
611
|
let splitFilesList = fileConfig?.split('.'), outputFileTailName = '', unHashedFileName = assetName;
|
|
612
|
-
|
|
612
|
+
if (splitFilesList?.length && splitFilesList.length >= 3 && splitFilesList[splitFilesList.length - 2]?.indexOf('[') < 0 && 'js|css|html'.indexOf(splitFilesList[splitFilesList.length - 1]) > -1) {
|
|
613
|
+
outputFileTailName = splitFilesList[splitFilesList.length - 2];
|
|
614
|
+
let match = assetName.match(/(.*)(\.([a-f0-9]{4,32}|[a-zA-Z]*[0-9][a-zA-Z0-9]*))(\.[^.]+){2,}$/);
|
|
615
|
+
if (match && match[3].length >= 4 && match[3].length <= 32) return unHashedFileName = match[1], `${unHashedFileName}.${outputFileTailName}.${assetName.substring(assetName.lastIndexOf('.') + 1)}`;
|
|
616
|
+
}
|
|
617
|
+
let match = assetName.match(filenamePattern);
|
|
618
|
+
return match && match[2] && match[2].length >= 4 && match[2].length <= 32 ? assetName.replace(filenamePattern, '$1$3') : assetName;
|
|
613
619
|
}
|
|
614
620
|
function isAssetMatchExtension(asset, ext) {
|
|
615
621
|
return asset.path.slice(-ext.length) === ext || extname(asset.path) === ext;
|
package/dist/error.cjs
CHANGED
|
@@ -27,6 +27,11 @@ const code_frame_namespaceObject = require("@babel/code-frame"), types_namespace
|
|
|
27
27
|
var external_deep_eql_default = __webpack_require__.n(external_deep_eql_namespaceObject);
|
|
28
28
|
const external_strip_ansi_namespaceObject = require("strip-ansi");
|
|
29
29
|
var external_strip_ansi_default = __webpack_require__.n(external_strip_ansi_namespaceObject);
|
|
30
|
+
const MAX_ERROR_MESSAGE_LENGTH = 1000;
|
|
31
|
+
function truncateMessage(input, maxLen = 1000) {
|
|
32
|
+
let str = 'string' == typeof input ? input : String(input ?? '');
|
|
33
|
+
return str.length > maxLen ? str.slice(0, maxLen) : str;
|
|
34
|
+
}
|
|
30
35
|
function isEsbuildError(err) {
|
|
31
36
|
return 'pluginName' in err && 'text' in err && 'location' in err;
|
|
32
37
|
}
|
|
@@ -37,7 +42,7 @@ function isDiagnosticError(err) {
|
|
|
37
42
|
return 'severity' in err && 'title' in err;
|
|
38
43
|
}
|
|
39
44
|
function parseBabelErrorMessage(input) {
|
|
40
|
-
let lines = external_strip_ansi_default()(input).split('\n'), filePath = lines[0].replace(/^([^:]+):.*/, '$1');
|
|
45
|
+
let lines = external_strip_ansi_default()(truncateMessage(input)).split('\n'), filePath = lines[0].replace(/^([^:]+):.*/, '$1');
|
|
41
46
|
return {
|
|
42
47
|
message: lines[0].replace(/.*: (.*) \(\d+:\d+\)*/, '$1'),
|
|
43
48
|
filePath,
|
|
@@ -45,7 +50,7 @@ function parseBabelErrorMessage(input) {
|
|
|
45
50
|
};
|
|
46
51
|
}
|
|
47
52
|
function clearMessage(str) {
|
|
48
|
-
return external_strip_ansi_default()(str).replace(/.*: (.*)\n\n[\s\S]*/g, '$1');
|
|
53
|
+
return external_strip_ansi_default()(truncateMessage(str)).replace(/.*: (.*)\n\n[\s\S]*/g, '$1');
|
|
49
54
|
}
|
|
50
55
|
function clearStack(str) {
|
|
51
56
|
return str.slice(str.indexOf(' at')).replace(/\s*at(.*) \((.*)\)/g, '$1\n$2\n');
|
|
@@ -72,7 +77,7 @@ function transformEsbuildError(err, opt) {
|
|
|
72
77
|
}
|
|
73
78
|
function transformBabelError(err, opt) {
|
|
74
79
|
if (isBabelError(err)) {
|
|
75
|
-
let errorCode = opt?.code ?? err.code ?? 'BABEL', title = err.reasonCode, errorParsed = parseBabelErrorMessage(err.message), speedyError = new DevToolError(title, errorParsed.message, {
|
|
80
|
+
let errorCode = opt?.code ?? err.code ?? 'BABEL', title = err.reasonCode, errorParsed = parseBabelErrorMessage(err.message), speedyError = new DevToolError(title, truncateMessage(errorParsed.message), {
|
|
76
81
|
...opt,
|
|
77
82
|
code: errorCode,
|
|
78
83
|
stack: err.stack && clearStack(err.stack)
|
|
@@ -100,8 +105,8 @@ function transformNormalError(err, opt) {
|
|
|
100
105
|
}
|
|
101
106
|
function transformErrorLike(err, opt) {
|
|
102
107
|
if (err && 'object' == typeof err && err.message) {
|
|
103
|
-
let filePath = [][0]?.getFileName?.();
|
|
104
|
-
return new DevToolError(err.name || 'UNKNOWN_ERROR', clearMessage(
|
|
108
|
+
let filePath = [][0]?.getFileName?.(), message = truncateMessage(err.message);
|
|
109
|
+
return new DevToolError(err.name || 'UNKNOWN_ERROR', clearMessage(message), {
|
|
105
110
|
...opt,
|
|
106
111
|
codeFrame: filePath ? {
|
|
107
112
|
filePath
|
|
@@ -111,7 +116,7 @@ function transformErrorLike(err, opt) {
|
|
|
111
116
|
}
|
|
112
117
|
}
|
|
113
118
|
function transformDiagnostic(err, opt) {
|
|
114
|
-
if (isDiagnosticError(err)) return new DevToolError(err.title, err.message, {
|
|
119
|
+
if (isDiagnosticError(err)) return new DevToolError(err.title, truncateMessage(err.message), {
|
|
115
120
|
...err,
|
|
116
121
|
...opt,
|
|
117
122
|
hint: err.suggestions?.description,
|
package/dist/error.js
CHANGED
|
@@ -3,8 +3,12 @@ import { Err, Linter } from "@rsdoctor/types";
|
|
|
3
3
|
import { createColors } from "picocolors";
|
|
4
4
|
import deep_eql from "deep-eql";
|
|
5
5
|
import strip_ansi from "strip-ansi";
|
|
6
|
+
function truncateMessage(input, maxLen = 1000) {
|
|
7
|
+
let str = 'string' == typeof input ? input : String(input ?? '');
|
|
8
|
+
return str.length > maxLen ? str.slice(0, maxLen) : str;
|
|
9
|
+
}
|
|
6
10
|
function clearMessage(str) {
|
|
7
|
-
return strip_ansi(str).replace(/.*: (.*)\n\n[\s\S]*/g, '$1');
|
|
11
|
+
return strip_ansi(truncateMessage(str)).replace(/.*: (.*)\n\n[\s\S]*/g, '$1');
|
|
8
12
|
}
|
|
9
13
|
function clearStack(str) {
|
|
10
14
|
return str.slice(str.indexOf(' at')).replace(/\s*at(.*) \((.*)\)/g, '$1\n$2\n');
|
|
@@ -31,11 +35,11 @@ function transformEsbuildError(err, opt) {
|
|
|
31
35
|
}
|
|
32
36
|
function transformBabelError(err, opt) {
|
|
33
37
|
if ('code' in err && 'reasonCode' in err) {
|
|
34
|
-
let lines, filePath, errorCode = opt?.code ?? err.code ?? 'BABEL', title = err.reasonCode, errorParsed = (filePath = (lines = strip_ansi(err.message).split('\n'))[0].replace(/^([^:]+):.*/, '$1'), {
|
|
38
|
+
let lines, filePath, errorCode = opt?.code ?? err.code ?? 'BABEL', title = err.reasonCode, errorParsed = (filePath = (lines = strip_ansi(truncateMessage(err.message)).split('\n'))[0].replace(/^([^:]+):.*/, '$1'), {
|
|
35
39
|
message: lines[0].replace(/.*: (.*) \(\d+:\d+\)*/, '$1'),
|
|
36
40
|
filePath,
|
|
37
41
|
lineText: lines.find((line)=>line.startsWith('> '))?.replace(/> \d+ \| /, '') ?? ''
|
|
38
|
-
}), speedyError = new DevToolError(title, errorParsed.message, {
|
|
42
|
+
}), speedyError = new DevToolError(title, truncateMessage(errorParsed.message), {
|
|
39
43
|
...opt,
|
|
40
44
|
code: errorCode,
|
|
41
45
|
stack: err.stack && clearStack(err.stack)
|
|
@@ -63,8 +67,8 @@ function transformNormalError(err, opt) {
|
|
|
63
67
|
}
|
|
64
68
|
function transformErrorLike(err, opt) {
|
|
65
69
|
if (err && 'object' == typeof err && err.message) {
|
|
66
|
-
let filePath = [][0]?.getFileName?.();
|
|
67
|
-
return new DevToolError(err.name || 'UNKNOWN_ERROR', clearMessage(
|
|
70
|
+
let filePath = [][0]?.getFileName?.(), message = truncateMessage(err.message);
|
|
71
|
+
return new DevToolError(err.name || 'UNKNOWN_ERROR', clearMessage(message), {
|
|
68
72
|
...opt,
|
|
69
73
|
codeFrame: filePath ? {
|
|
70
74
|
filePath
|
|
@@ -74,7 +78,7 @@ function transformErrorLike(err, opt) {
|
|
|
74
78
|
}
|
|
75
79
|
}
|
|
76
80
|
function transformDiagnostic(err, opt) {
|
|
77
|
-
if ('severity' in err && 'title' in err) return new DevToolError(err.title, err.message, {
|
|
81
|
+
if ('severity' in err && 'title' in err) return new DevToolError(err.title, truncateMessage(err.message), {
|
|
78
82
|
...err,
|
|
79
83
|
...opt,
|
|
80
84
|
hint: err.suggestions?.description,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsdoctor/utils",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/web-infra-dev/rsdoctor",
|
|
@@ -76,10 +76,10 @@
|
|
|
76
76
|
"picocolors": "^1.1.1",
|
|
77
77
|
"rslog": "^1.2.11",
|
|
78
78
|
"strip-ansi": "^6.0.1",
|
|
79
|
-
"@rsdoctor/types": "1.
|
|
79
|
+
"@rsdoctor/types": "1.5.1"
|
|
80
80
|
},
|
|
81
81
|
"devDependencies": {
|
|
82
|
-
"@types/babel__code-frame": "7.0
|
|
82
|
+
"@types/babel__code-frame": "7.27.0",
|
|
83
83
|
"@types/connect": "3.4.38",
|
|
84
84
|
"@types/deep-eql": "4.0.2",
|
|
85
85
|
"@types/envinfo": "7.8.4",
|