@wuyanbin/ai-code-review 1.0.1 → 1.0.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.
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/utils.d.ts +5 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +44 -8
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/dist/config.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.validateConfig = exports.loadConfig = void 0;
|
|
8
8
|
const cosmiconfig_1 = require("cosmiconfig");
|
|
9
|
-
const explorer = (0, cosmiconfig_1.cosmiconfigSync)("
|
|
9
|
+
const explorer = (0, cosmiconfig_1.cosmiconfigSync)("aicr");
|
|
10
10
|
/**
|
|
11
11
|
* 加载配置
|
|
12
12
|
*/
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,6CAA8C;AAG9C,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,6CAA8C;AAG9C,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,MAAM,CAAC,CAAC;AAEzC;;GAEG;AACI,MAAM,UAAU,GAAG,KAAK,IAA+B,EAAE;IAC9D,YAAY;IACZ,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;IACjC,MAAM,UAAU,GAA8B,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;IAEnE,6BAA6B;IAC7B,MAAM,MAAM,GAAqB;QAC/B,EAAE,EAAE;YACF,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,eAAe;YAC9C,QAAQ,EACN,UAAU,CAAC,EAAE,EAAE,QAAQ,IAAI,2CAA2C;YACxE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,UAAU,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE;SACjE;QACD,KAAK,EAAE;YACL,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE;SACvC;QACD,MAAM,EAAE;YACN,QAAQ,EAAG,UAAU,CAAC,MAAM,EAAE,QAAgB,IAAI,SAAS;YAC3D,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE;YACvC,WAAW,EAAE,UAAU,CAAC,MAAM,EAAE,WAAW,IAAI,GAAG;SACnD;KACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAxBW,QAAA,UAAU,cAwBrB;AAEF;;GAEG;AACI,MAAM,cAAc,GAAG,CAAC,MAAwB,EAAW,EAAE;IAClE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CACX,yCAAyC,CAC1C,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAdW,QAAA,cAAc,kBAczB"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 简单的 glob -> RegExp 转换,只覆盖当前项目常用模式:
|
|
3
|
+
*
|
|
4
|
+
* 支持的模式示例(覆盖当前默认 ignore 规则的需求):
|
|
5
|
+
* - 任意目录下的某类文件,例如 `src/foo.test.ts`
|
|
6
|
+
* - 某个目录及其子目录下的任意文件,例如 `dist/a/b.js`
|
|
7
|
+
* - 当前目录下的某类文件名,例如 `.aicodereviews.config.js`
|
|
3
8
|
*/
|
|
4
9
|
export declare const globToRegExp: (pattern: string) => RegExp;
|
|
5
10
|
export declare const matchGlob: (filePath: string, pattern: string) => boolean;
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAwB9C,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,UAAU,MAAM,EAAE,SAAS,MAAM,KAAG,OAG7D,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,UAAU,MAAM,EAChB,gBAAgB,MAAM,EAAE,GAAG,SAAS,KACnC,OAGF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,gBAAgB,MAAM,EAAE,GAAG,SAAS,KACnC,MAiEF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,QAAO,OAAO,CAAC,MAAM,CAavC,CAAC"}
|
package/dist/utils.js
CHANGED
|
@@ -3,16 +3,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.readStdin = exports.filterDiffByIgnore = exports.shouldIgnoreFile = exports.matchGlob = exports.globToRegExp = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* 简单的 glob -> RegExp 转换,只覆盖当前项目常用模式:
|
|
6
|
+
*
|
|
7
|
+
* 支持的模式示例(覆盖当前默认 ignore 规则的需求):
|
|
8
|
+
* - 任意目录下的某类文件,例如 `src/foo.test.ts`
|
|
9
|
+
* - 某个目录及其子目录下的任意文件,例如 `dist/a/b.js`
|
|
10
|
+
* - 当前目录下的某类文件名,例如 `.aicodereviews.config.js`
|
|
6
11
|
*/
|
|
7
12
|
const globToRegExp = (pattern) => {
|
|
8
|
-
//
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
// 1) 目录前缀匹配:例如 dist/**、node_modules/**
|
|
14
|
+
if (pattern.endsWith("/**")) {
|
|
15
|
+
const prefix = pattern.slice(0, -3); // 去掉末尾的 "/**"
|
|
16
|
+
const escapedPrefix = prefix.replace(/[.+?^${}()|[\]\\]/g, "\\$&");
|
|
17
|
+
// 以该目录开头的任意子路径
|
|
18
|
+
return new RegExp(`^${escapedPrefix}/.*$`);
|
|
19
|
+
}
|
|
20
|
+
// 2) 任意目录下的某类文件:例如 **/*.test.ts
|
|
21
|
+
if (pattern.startsWith("**/")) {
|
|
22
|
+
const rest = pattern.slice(3); // 去掉前缀 "**/"
|
|
23
|
+
const escapedRest = rest
|
|
24
|
+
.replace(/[.+?^${}()|[\]\\]/g, "\\$&")
|
|
25
|
+
.replace(/\*/g, "[^/]*");
|
|
26
|
+
// 前面可以有任意目录(或没有目录),后面是文件名规则
|
|
27
|
+
return new RegExp(`^(?:.*/)?${escapedRest}$`);
|
|
28
|
+
}
|
|
29
|
+
// 3) 普通的 *.ext 之类的模式(不跨目录)
|
|
30
|
+
const escaped = pattern
|
|
31
|
+
.replace(/[.+?^${}()|[\]\\]/g, "\\$&")
|
|
32
|
+
.replace(/\*/g, "[^/]*");
|
|
33
|
+
return new RegExp(`^${escaped}$`);
|
|
16
34
|
};
|
|
17
35
|
exports.globToRegExp = globToRegExp;
|
|
18
36
|
const matchGlob = (filePath, pattern) => {
|
|
@@ -37,6 +55,9 @@ const filterDiffByIgnore = (diff, ignorePatterns) => {
|
|
|
37
55
|
}
|
|
38
56
|
const lines = diff.split("\n");
|
|
39
57
|
const kept = [];
|
|
58
|
+
// 记录哪些文件会被 CR,哪些文件会被忽略
|
|
59
|
+
const reviewedFiles = new Set();
|
|
60
|
+
const ignoredFiles = new Set();
|
|
40
61
|
let currentFile = null;
|
|
41
62
|
let ignoreCurrent = false;
|
|
42
63
|
for (const line of lines) {
|
|
@@ -49,6 +70,14 @@ const filterDiffByIgnore = (diff, ignorePatterns) => {
|
|
|
49
70
|
// 通常 a/ 和 b/ 路径相同,使用 b/ 路径
|
|
50
71
|
currentFile = match[2];
|
|
51
72
|
ignoreCurrent = (0, exports.shouldIgnoreFile)(currentFile, ignorePatterns);
|
|
73
|
+
if (currentFile) {
|
|
74
|
+
if (ignoreCurrent) {
|
|
75
|
+
ignoredFiles.add(currentFile);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
reviewedFiles.add(currentFile);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
52
81
|
}
|
|
53
82
|
if (!ignoreCurrent) {
|
|
54
83
|
kept.push(line);
|
|
@@ -61,6 +90,13 @@ const filterDiffByIgnore = (diff, ignorePatterns) => {
|
|
|
61
90
|
}
|
|
62
91
|
kept.push(line);
|
|
63
92
|
}
|
|
93
|
+
// 输出日志到 stderr,不影响 stdout 的 JSON 结果
|
|
94
|
+
if (reviewedFiles.size > 0) {
|
|
95
|
+
console.error("[ai-code-review] 本次参与 CR 的文件:", Array.from(reviewedFiles).join(", "));
|
|
96
|
+
}
|
|
97
|
+
if (ignoredFiles.size > 0) {
|
|
98
|
+
console.error("[ai-code-review] 本次被 ignore 的文件:", Array.from(ignoredFiles).join(", "));
|
|
99
|
+
}
|
|
64
100
|
return kept.join("\n");
|
|
65
101
|
};
|
|
66
102
|
exports.filterDiffByIgnore = filterDiffByIgnore;
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|