@nasl/cli 0.2.2 → 0.2.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.
- package/dist/bin/nasl.mjs +76 -2
- package/dist/bin/nasl.mjs.map +1 -1
- package/dist/bin/naslc.mjs +12 -2
- package/dist/bin/naslc.mjs.map +1 -1
- package/dist/index.mjs +75 -1
- package/dist/index.mjs.map +1 -1
- package/out/commands/check.d.ts.map +1 -1
- package/out/commands/check.js +8 -0
- package/out/commands/check.js.map +1 -1
- package/out/services/compose.d.ts.map +1 -1
- package/out/services/compose.js +11 -1
- package/out/services/compose.js.map +1 -1
- package/out/types/api.d.ts +4 -0
- package/out/types/api.d.ts.map +1 -1
- package/out/utils/errorMapper.d.ts +14 -0
- package/out/utils/errorMapper.d.ts.map +1 -0
- package/out/utils/errorMapper.js +60 -0
- package/out/utils/errorMapper.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C;;GAEG;AACH,wBAAsB,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc;;;;GA4C9E"}
|
package/out/commands/check.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.check = check;
|
|
|
4
4
|
const utils_1 = require("../utils");
|
|
5
5
|
const apis_1 = require("../apis");
|
|
6
6
|
const compose_1 = require("../services/compose");
|
|
7
|
+
const errorMapper_1 = require("../utils/errorMapper");
|
|
7
8
|
const resolve_1 = require("../services/resolve");
|
|
8
9
|
const logger_1 = require("../utils/logger");
|
|
9
10
|
/**
|
|
@@ -27,6 +28,13 @@ async function check(entry, options) {
|
|
|
27
28
|
}
|
|
28
29
|
if (!result && fullNaturalTS) {
|
|
29
30
|
result = (await (0, apis_1.checkApi)(fullNaturalTS, config)).trim();
|
|
31
|
+
// 如果有错误,尝试映射回原始文件
|
|
32
|
+
if (result) {
|
|
33
|
+
result = (0, errorMapper_1.mapErrorToSourceFile)({
|
|
34
|
+
errorMessage: result,
|
|
35
|
+
collectedFiles,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
30
38
|
}
|
|
31
39
|
const checkResult = {
|
|
32
40
|
success: !result,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":";;AAWA,sBA4CC;AAvDD,oCAAyC;AACzC,kCAAmC;AACnC,iDAAsD;AACtD,sDAA4D;AAC5D,iDAAuD;AAEvD,4CAAgD;AAEhD;;GAEG;AACI,KAAK,UAAU,KAAK,CAAC,KAAyB,EAAE,OAAwB;IAC3E,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,qBAAa,CAAC;IAChD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE/B,YAAY;IACZ,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,0BAAgB,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAElG,WAAW;IACX,MAAM,CAAC,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAEtC,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC;QACD,aAAa,GAAG,IAAA,yBAAe,EAAC,cAAc,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,MAAM,GAAI,KAAe,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;QAC3B,MAAM,GAAG,CAAC,MAAM,IAAA,eAAQ,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,kBAAkB;QAClB,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,GAAG,IAAA,kCAAoB,EAAC;gBAC1B,YAAY,EAAE,MAAM;gBACpB,cAAc;aACjB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG;QAChB,OAAO,EAAE,CAAC,MAAM;QAChB,MAAM;QACN,aAAa;KAChB,CAAC;IAEF,IAAA,sBAAa,EAAC,KAAK,IAAI,GAAG,EAAE,SAAS,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,MAAM,EAAE,MAAM,GAAG,0GAA0G,GAAG,aAAa,CAAC,CAAC;IAE3N,IAAI,CAAC,WAAW,CAAC,OAAO;QACpB,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;;QAExC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAErC,OAAO,WAAW,CAAC;AACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,wBAAgB,YAAY,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CA0B/D;AACD,eAAO,MAAM,MAAM,MA3BiB,MAAM,KAAK,MAAM,KAAK,MA2BtB,CAAC;AA+CrC,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,wBAAgB,YAAY,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CA0B/D;AACD,eAAO,MAAM,MAAM,MA3BiB,MAAM,KAAK,MAAM,KAAK,MA2BtB,CAAC;AA+CrC,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAuDzD"}
|
package/out/services/compose.js
CHANGED
|
@@ -81,7 +81,10 @@ function validateNormalFile(file, nameFromPath, namespace, errors) {
|
|
|
81
81
|
function composeToString(files) {
|
|
82
82
|
files.sort((a, b) => (0, exports.sorter)(a.path, b.path));
|
|
83
83
|
const errors = [];
|
|
84
|
+
let currentLine = 1;
|
|
84
85
|
const result = files.map((file) => {
|
|
86
|
+
// 记录这个文件的开始行号
|
|
87
|
+
file.startLine = currentLine;
|
|
85
88
|
const arr = file.path.split('.');
|
|
86
89
|
const ext = arr.pop();
|
|
87
90
|
const nameFromPath = arr.pop();
|
|
@@ -107,7 +110,14 @@ function composeToString(files) {
|
|
|
107
110
|
else if (isThemeCss) {
|
|
108
111
|
content = ` $theme\`${content}\`;`;
|
|
109
112
|
}
|
|
110
|
-
|
|
113
|
+
const fileContent = `namespace ${namespace} {\n${content}\n}\n`;
|
|
114
|
+
// 计算这个文件占用的行数(末尾 \n 导致 split 多一个空元素,减 1 得到实际行数)
|
|
115
|
+
const lineCount = fileContent.split('\n').length - 1;
|
|
116
|
+
// 记录这个文件的结束行号
|
|
117
|
+
file.endLine = currentLine + lineCount - 1;
|
|
118
|
+
// +1 是 join('\n') 在文件之间插入的换行符
|
|
119
|
+
currentLine = file.endLine + 2;
|
|
120
|
+
return fileContent;
|
|
111
121
|
})
|
|
112
122
|
.join('\n');
|
|
113
123
|
if (errors.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":";;;AAEA,oCA0BC;AAgDD,
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":"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"}
|
package/out/types/api.d.ts
CHANGED
package/out/types/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,cAAc;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,cAAc;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS;IACT,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS;IACT,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,cAAc;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,cAAc;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,cAAc;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS;IACT,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS;IACT,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,cAAc;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,WAAW;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;QACV,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,WAAW;IACX,MAAM,CAAC,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;KAC/B,CAAC,CAAC;CACN;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,WAAW;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW;IACX,MAAM,CAAC,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;KAC/B,CAAC,CAAC;CACN;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,WAAW;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;QACV,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,WAAW;IACX,MAAM,CAAC,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;KAC/B,CAAC,CAAC;CACN"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FileInfo } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* 错误映射参数
|
|
4
|
+
*/
|
|
5
|
+
export interface ErrorMapperOptions {
|
|
6
|
+
errorMessage: string;
|
|
7
|
+
collectedFiles: FileInfo[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 将错误信息中的行号映射回原始文件
|
|
11
|
+
* 直接替换错误头中的文件路径和行号,并调整代码片段中的行号
|
|
12
|
+
*/
|
|
13
|
+
export declare function mapErrorToSourceFile(options: ErrorMapperOptions): string;
|
|
14
|
+
//# sourceMappingURL=errorMapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorMapper.d.ts","sourceRoot":"","sources":["../../src/utils/errorMapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,QAAQ,EAAE,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CA6DxE"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapErrorToSourceFile = mapErrorToSourceFile;
|
|
4
|
+
/**
|
|
5
|
+
* 将错误信息中的行号映射回原始文件
|
|
6
|
+
* 直接替换错误头中的文件路径和行号,并调整代码片段中的行号
|
|
7
|
+
*/
|
|
8
|
+
function mapErrorToSourceFile(options) {
|
|
9
|
+
const { errorMessage, collectedFiles } = options;
|
|
10
|
+
// 构建行号到文件的映射
|
|
11
|
+
const lineToFileMap = new Map();
|
|
12
|
+
collectedFiles.forEach((file) => {
|
|
13
|
+
if (file.startLine !== undefined && file.endLine !== undefined) {
|
|
14
|
+
for (let i = file.startLine; i <= file.endLine; i++) {
|
|
15
|
+
const lineInFile = i - file.startLine;
|
|
16
|
+
lineToFileMap.set(i, { file, lineInFile });
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
// 处理单个错误块:替换路径、行号,调整代码片段行号
|
|
21
|
+
function processBlock(block) {
|
|
22
|
+
// 匹配错误头: 可选的 "N. " 前缀 + "filepath: message (line:col)"
|
|
23
|
+
const headerMatch = block.match(/^((?:\d+\.\s+)?)(.*?):\s+(.*?)\((\d+):(\d+)\)/);
|
|
24
|
+
if (!headerMatch)
|
|
25
|
+
return block;
|
|
26
|
+
const [fullHeader, prefix, , message, lineStr, colStr] = headerMatch;
|
|
27
|
+
const originalLine = parseInt(lineStr, 10);
|
|
28
|
+
const fileInfo = lineToFileMap.get(originalLine);
|
|
29
|
+
if (!fileInfo)
|
|
30
|
+
return block;
|
|
31
|
+
const { file, lineInFile } = fileInfo;
|
|
32
|
+
const lineOffset = originalLine - lineInFile;
|
|
33
|
+
// 替换错误头中的路径和行号
|
|
34
|
+
let mapped = block.replace(fullHeader, `${prefix}${file.path}: ${message}(${lineInFile}:${colStr})`);
|
|
35
|
+
// 收集代码片段中所有行号并计算映射后的值
|
|
36
|
+
const snippetNumbers = [];
|
|
37
|
+
const collectRegex = /^([> ]*?)(\d+)(\s*\|)/gm;
|
|
38
|
+
let m;
|
|
39
|
+
while ((m = collectRegex.exec(mapped)) !== null) {
|
|
40
|
+
snippetNumbers.push(parseInt(m[2], 10) - lineOffset);
|
|
41
|
+
}
|
|
42
|
+
// 替换代码片段中的行号,保持对齐
|
|
43
|
+
if (snippetNumbers.length > 0) {
|
|
44
|
+
const maxWidth = Math.max(...snippetNumbers.map((n) => String(n).length));
|
|
45
|
+
let idx = 0;
|
|
46
|
+
mapped = mapped.replace(/^([> ]*?)(\d+)(\s*\|)/gm, (fullMatch, lead) => {
|
|
47
|
+
const newNum = snippetNumbers[idx++];
|
|
48
|
+
if (newNum <= 0)
|
|
49
|
+
return fullMatch;
|
|
50
|
+
const paddedNum = String(newNum).padStart(maxWidth);
|
|
51
|
+
return lead.includes('>') ? `> ${paddedNum} |` : ` ${paddedNum} |`;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return mapped;
|
|
55
|
+
}
|
|
56
|
+
// 按编号前缀分割为独立错误块,分别处理
|
|
57
|
+
const parts = errorMessage.split(/(?=^\d+\.\s)/m);
|
|
58
|
+
return parts.map(processBlock).join('');
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=errorMapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorMapper.js","sourceRoot":"","sources":["../../src/utils/errorMapper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED