@nasl/cli 0.1.3 → 0.1.5
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/out/apis/createAxios.d.ts.map +1 -0
- package/out/apis/createAxios.js.map +1 -0
- package/out/apis/index.d.ts +2 -2
- package/out/apis/index.d.ts.map +1 -1
- package/out/apis/index.js +6 -6
- package/out/apis/index.js.map +1 -1
- package/out/bin/nasl.js +12 -10
- package/out/bin/nasl.js.map +1 -1
- package/out/bin/naslc.js +1 -1
- package/out/bin/naslc.js.map +1 -1
- package/out/commands/build.d.ts +3 -1
- package/out/commands/build.d.ts.map +1 -1
- package/out/commands/build.js +6 -5
- package/out/commands/build.js.map +1 -1
- package/out/commands/check.d.ts +5 -1
- package/out/commands/check.d.ts.map +1 -1
- package/out/commands/check.js +18 -13
- package/out/commands/check.js.map +1 -1
- package/out/commands/compile.d.ts +2 -2
- package/out/commands/compile.d.ts.map +1 -1
- package/out/commands/compile.js +22 -20
- package/out/commands/compile.js.map +1 -1
- package/out/commands/dep.d.ts +2 -1
- package/out/commands/dep.d.ts.map +1 -1
- package/out/commands/dep.js +5 -4
- package/out/commands/dep.js.map +1 -1
- package/out/commands/dev.d.ts +3 -1
- package/out/commands/dev.d.ts.map +1 -1
- package/out/commands/dev.js +6 -5
- package/out/commands/dev.js.map +1 -1
- package/out/commands/index.d.ts +2 -1
- package/out/commands/index.d.ts.map +1 -1
- package/out/commands/index.js +2 -1
- package/out/commands/index.js.map +1 -1
- package/out/commands/init.d.ts +1 -1
- package/out/commands/init.d.ts.map +1 -1
- package/out/commands/init.js +16 -16
- package/out/commands/init.js.map +1 -1
- package/out/index.d.ts +3 -11
- package/out/index.d.ts.map +1 -1
- package/out/index.js +3 -11
- package/out/index.js.map +1 -1
- package/out/services/resolve.d.ts +5 -4
- package/out/services/resolve.d.ts.map +1 -1
- package/out/services/resolve.js +46 -35
- package/out/services/resolve.js.map +1 -1
- package/out/types/command.d.ts +2 -0
- package/out/types/command.d.ts.map +1 -1
- package/out/utils/config.js +11 -11
- package/out/utils/config.js.map +1 -1
- package/out/utils/file.d.ts +3 -2
- package/out/utils/file.d.ts.map +1 -1
- package/out/utils/file.js +4 -5
- package/out/utils/file.js.map +1 -1
- package/out/utils/logger.d.ts +38 -8
- package/out/utils/logger.d.ts.map +1 -1
- package/out/utils/logger.js +94 -23
- package/out/utils/logger.js.map +1 -1
- package/package.json +19 -2
- package/out/commands/check copy.d.ts +0 -5
- package/out/commands/check copy.d.ts.map +0 -1
- package/out/commands/check copy.js +0 -30
- package/out/commands/check copy.js.map +0 -1
- package/out/types/createAxios.d.ts.map +0 -1
- package/out/types/createAxios.js.map +0 -1
- /package/out/{types → apis}/createAxios.d.ts +0 -0
- /package/out/{types → apis}/createAxios.js +0 -0
package/out/commands/init.js
CHANGED
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
36
|
+
exports.init = init;
|
|
37
37
|
const fs = __importStar(require("fs-extra"));
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
39
|
const config_1 = require("../types/config");
|
|
@@ -41,35 +41,35 @@ const utils_1 = require("../utils");
|
|
|
41
41
|
/**
|
|
42
42
|
* 初始化命令 - 创建配置文件
|
|
43
43
|
*/
|
|
44
|
-
function
|
|
44
|
+
function init() {
|
|
45
45
|
const cwd = process.cwd();
|
|
46
46
|
const configPath = path.join(cwd, config_1.CONFIG_FILE_NAME);
|
|
47
47
|
// 检查配置文件是否已存在
|
|
48
48
|
if (fs.existsSync(configPath)) {
|
|
49
|
-
utils_1.
|
|
50
|
-
utils_1.
|
|
49
|
+
utils_1.defaultLogger.warn(`配置文件已存在: ${configPath}`);
|
|
50
|
+
utils_1.defaultLogger.info('如需重新创建,请先删除现有配置文件');
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
53
|
// 创建默认配置文件
|
|
54
54
|
try {
|
|
55
55
|
fs.writeFileSync(configPath, JSON.stringify(config_1.DEFAULT_CONFIG, null, 2), 'utf-8');
|
|
56
|
-
utils_1.
|
|
57
|
-
utils_1.
|
|
58
|
-
|
|
56
|
+
utils_1.defaultLogger.success(`配置文件已创建: ${configPath}`);
|
|
57
|
+
utils_1.defaultLogger.info('\n配置内容:');
|
|
58
|
+
utils_1.defaultLogger.info(JSON.stringify(config_1.DEFAULT_CONFIG, null, 2));
|
|
59
59
|
// 创建源代码目录
|
|
60
60
|
const srcDirPath = path.join(cwd, config_1.DEFAULT_CONFIG.srcDir);
|
|
61
61
|
fs.ensureDirSync(srcDirPath);
|
|
62
|
-
utils_1.
|
|
63
|
-
utils_1.
|
|
64
|
-
utils_1.
|
|
65
|
-
utils_1.
|
|
66
|
-
utils_1.
|
|
67
|
-
utils_1.
|
|
68
|
-
utils_1.
|
|
62
|
+
utils_1.defaultLogger.success(`源代码目录已创建: ${srcDirPath}`);
|
|
63
|
+
utils_1.defaultLogger.info('\n提示:');
|
|
64
|
+
utils_1.defaultLogger.info('- 可以编辑此文件来修改配置');
|
|
65
|
+
utils_1.defaultLogger.info(`- srcDir: 源代码目录(默认: ${config_1.DEFAULT_CONFIG.srcDir})`);
|
|
66
|
+
utils_1.defaultLogger.info(`- outDir: 输出目录(默认: ${config_1.DEFAULT_CONFIG.outDir})`);
|
|
67
|
+
utils_1.defaultLogger.info(`- serverBaseURL: NASL 编译服务地址`);
|
|
68
|
+
utils_1.defaultLogger.info(`- ideVersion: IDE 版本号`);
|
|
69
69
|
}
|
|
70
70
|
catch (error) {
|
|
71
|
-
utils_1.
|
|
72
|
-
|
|
71
|
+
utils_1.defaultLogger.error(`创建配置文件失败: ${error.message}`);
|
|
72
|
+
utils_1.defaultLogger.exit(1);
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
//# sourceMappingURL=init.js.map
|
package/out/commands/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,oBAkCC;AA1CD,6CAA+B;AAC/B,2CAA6B;AAC7B,4CAAmE;AACnE,oCAAyC;AAEzC;;GAEG;AACH,SAAgB,IAAI;IAChB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,yBAAgB,CAAC,CAAC;IAEpD,cAAc;IACd,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,qBAAa,CAAC,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;QAC7C,qBAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACxC,OAAO;IACX,CAAC;IAED,WAAW;IACX,IAAI,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,uBAAc,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAE/E,qBAAa,CAAC,OAAO,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;QAChD,qBAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,qBAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE5D,UAAU;QACV,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAc,CAAC,MAAM,CAAC,CAAC;QACzD,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC7B,qBAAa,CAAC,OAAO,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC;QAEjD,qBAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,qBAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrC,qBAAa,CAAC,IAAI,CAAC,uBAAuB,uBAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QACpE,qBAAa,CAAC,IAAI,CAAC,sBAAsB,uBAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QACnE,qBAAa,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACnD,qBAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,qBAAa,CAAC,KAAK,CAAC,aAAc,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,qBAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;AACL,CAAC"}
|
package/out/index.d.ts
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @nasl/cli - NASL CLI 工具
|
|
3
|
-
*
|
|
4
|
-
* 提供以下功能:
|
|
5
|
-
* - nasl-init: 初始化配置文件
|
|
6
|
-
* - nasl-compile / naslc: 编译 NASL 代码
|
|
7
|
-
* - nasl-check: 检查 NASL 代码
|
|
8
|
-
* - nasl-transpile: 转换 NASL 代码为 AST JSON
|
|
9
|
-
*/
|
|
10
1
|
export * from './types';
|
|
11
|
-
export * from './
|
|
2
|
+
export * from './services/compose';
|
|
3
|
+
export * from './services/resolve';
|
|
4
|
+
export * from './utils/logger';
|
|
12
5
|
export * from './commands';
|
|
13
|
-
export * from './apis';
|
|
14
6
|
//# sourceMappingURL=index.d.ts.map
|
package/out/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|
package/out/index.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @nasl/cli - NASL CLI 工具
|
|
4
|
-
*
|
|
5
|
-
* 提供以下功能:
|
|
6
|
-
* - nasl-init: 初始化配置文件
|
|
7
|
-
* - nasl-compile / naslc: 编译 NASL 代码
|
|
8
|
-
* - nasl-check: 检查 NASL 代码
|
|
9
|
-
* - nasl-transpile: 转换 NASL 代码为 AST JSON
|
|
10
|
-
*/
|
|
11
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
3
|
if (k2 === undefined) k2 = k;
|
|
13
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -24,7 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
24
15
|
};
|
|
25
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
17
|
__exportStar(require("./types"), exports);
|
|
27
|
-
__exportStar(require("./
|
|
18
|
+
__exportStar(require("./services/compose"), exports);
|
|
19
|
+
__exportStar(require("./services/resolve"), exports);
|
|
20
|
+
__exportStar(require("./utils/logger"), exports);
|
|
28
21
|
__exportStar(require("./commands"), exports);
|
|
29
|
-
__exportStar(require("./apis"), exports);
|
|
30
22
|
//# sourceMappingURL=index.js.map
|
package/out/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,qDAAmC;AACnC,qDAAmC;AACnC,iDAA+B;AAC/B,6CAA2B"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import type { BaseLogger } from '../utils';
|
|
1
2
|
import type { FileInfo, NASLRepresentation, NASLConfig } from '../types';
|
|
2
3
|
/**
|
|
3
4
|
* 扫描目录下的所有 NASL 文件
|
|
4
5
|
*/
|
|
5
|
-
export declare function scanNASLFiles(srcDir: string, representation: NASLRepresentation): Promise<string[]>;
|
|
6
|
-
export declare function scanEntryFiles(projectRoot: string, patterns: string[]): Promise<string[]>;
|
|
6
|
+
export declare function scanNASLFiles(srcDir: string, representation: NASLRepresentation, logger: BaseLogger): Promise<string[]>;
|
|
7
|
+
export declare function scanEntryFiles(projectRoot: string, patterns: string[], logger: BaseLogger): Promise<string[]>;
|
|
7
8
|
export interface ResolveFilesResult {
|
|
8
|
-
|
|
9
|
+
collectedFiles: FileInfo[];
|
|
9
10
|
config: NASLConfig;
|
|
10
11
|
projectRoot: string;
|
|
11
12
|
srcDir: string;
|
|
@@ -15,5 +16,5 @@ export interface ResolveFilesResult {
|
|
|
15
16
|
* @param entry 入口文件路径或 glob 模式(可选,相对于 src 目录)
|
|
16
17
|
* @returns 文件信息、配置和目录信息
|
|
17
18
|
*/
|
|
18
|
-
export declare function resolveNASLFiles(entry
|
|
19
|
+
export declare function resolveNASLFiles(entry: string | string[] | undefined, logger: BaseLogger, depMode?: boolean, verbose?: boolean): Promise<ResolveFilesResult>;
|
|
19
20
|
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/services/resolve.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/services/resolve.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAIzE;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAa7H;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAanH;AAyKD,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA4DlK"}
|
package/out/services/resolve.js
CHANGED
|
@@ -32,22 +32,25 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
35
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
39
|
exports.scanNASLFiles = scanNASLFiles;
|
|
37
40
|
exports.scanEntryFiles = scanEntryFiles;
|
|
38
41
|
exports.resolveNASLFiles = resolveNASLFiles;
|
|
39
42
|
const path = __importStar(require("path"));
|
|
40
|
-
const
|
|
43
|
+
const globby_1 = __importDefault(require("globby"));
|
|
41
44
|
const utils_1 = require("../utils");
|
|
42
|
-
const
|
|
45
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
43
46
|
const compose_1 = require("./compose");
|
|
44
47
|
/**
|
|
45
48
|
* 扫描目录下的所有 NASL 文件
|
|
46
49
|
*/
|
|
47
|
-
async function scanNASLFiles(srcDir, representation) {
|
|
50
|
+
async function scanNASLFiles(srcDir, representation, logger) {
|
|
48
51
|
try {
|
|
49
52
|
const pattern = representation === 'NaturalTS' ? '**/*.{ts,tsx}' : '**/*.nasl';
|
|
50
|
-
const files = await
|
|
53
|
+
const files = await (0, globby_1.default)([pattern, '!**/*.css'], {
|
|
51
54
|
cwd: srcDir,
|
|
52
55
|
onlyFiles: true,
|
|
53
56
|
absolute: false,
|
|
@@ -55,14 +58,14 @@ async function scanNASLFiles(srcDir, representation) {
|
|
|
55
58
|
return files;
|
|
56
59
|
}
|
|
57
60
|
catch (error) {
|
|
58
|
-
|
|
61
|
+
logger.error(`扫描文件失败: ${error.message}`);
|
|
59
62
|
throw error;
|
|
60
63
|
}
|
|
61
64
|
}
|
|
62
|
-
async function scanEntryFiles(projectRoot, patterns) {
|
|
65
|
+
async function scanEntryFiles(projectRoot, patterns, logger) {
|
|
63
66
|
try {
|
|
64
67
|
patterns.push('!**/*.css');
|
|
65
|
-
const files = await
|
|
68
|
+
const files = await (0, globby_1.default)(patterns, {
|
|
66
69
|
cwd: projectRoot,
|
|
67
70
|
onlyFiles: true,
|
|
68
71
|
absolute: false,
|
|
@@ -70,7 +73,7 @@ async function scanEntryFiles(projectRoot, patterns) {
|
|
|
70
73
|
return files;
|
|
71
74
|
}
|
|
72
75
|
catch (error) {
|
|
73
|
-
|
|
76
|
+
logger.error(`扫描入口文件失败: ${error.message}`);
|
|
74
77
|
throw error;
|
|
75
78
|
}
|
|
76
79
|
}
|
|
@@ -111,11 +114,11 @@ function replaceViewAsSignature(content) {
|
|
|
111
114
|
* @param processedFileMap 已处理的文件集合
|
|
112
115
|
* @returns 文件信息和新发现的依赖文件列表
|
|
113
116
|
*/
|
|
114
|
-
function processFileDeps(pathRelativeToSrc, srcDir, matchedFileSet, processedFileMap, verbose) {
|
|
117
|
+
function processFileDeps(pathRelativeToSrc, srcDir, matchedFileSet, processedFileMap, logger, verbose) {
|
|
115
118
|
const absoluteFilePath = path.join(srcDir, pathRelativeToSrc);
|
|
116
119
|
const fileInfo = { path: pathRelativeToSrc, content: '' };
|
|
117
120
|
try {
|
|
118
|
-
fileInfo.content = (0, utils_1.readFileWithLog)(absoluteFilePath);
|
|
121
|
+
fileInfo.content = (0, utils_1.readFileWithLog)(absoluteFilePath, logger);
|
|
119
122
|
}
|
|
120
123
|
catch (error) {
|
|
121
124
|
// Logger.warn(`找不到依赖文件 ${pathRelativeToSrc},跳过分析`);
|
|
@@ -148,7 +151,7 @@ function processFileDeps(pathRelativeToSrc, srcDir, matchedFileSet, processedFil
|
|
|
148
151
|
} while (true);
|
|
149
152
|
}
|
|
150
153
|
if (verbose || process.env.DEBUG) {
|
|
151
|
-
console.log(`${isEntryFile ?
|
|
154
|
+
console.log(`${isEntryFile ? chalk_1.default.magenta('[Entry]') : chalk_1.default.green('[ Dep ]')} ${pathRelativeToSrc}${deps.map((dep) => `\n├── ${dep}`).join('')}`);
|
|
152
155
|
}
|
|
153
156
|
return {
|
|
154
157
|
fileInfo,
|
|
@@ -162,19 +165,19 @@ function processFileDeps(pathRelativeToSrc, srcDir, matchedFileSet, processedFil
|
|
|
162
165
|
* @param representation NASL 表示形式
|
|
163
166
|
* @returns 文件信息列表
|
|
164
167
|
*/
|
|
165
|
-
async function collectDeps(patterns, projectRoot, srcDir, verbose) {
|
|
168
|
+
async function collectDeps(patterns, projectRoot, srcDir, logger, verbose) {
|
|
166
169
|
const processedFileMap = new Map(); // 已处理的文件(相对路径)
|
|
167
170
|
const filesToProcess = []; // 待处理的文件队列
|
|
168
171
|
const result = [];
|
|
169
172
|
// 1. 使用 glob 匹配入口文件
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
const matchedFiles = await scanEntryFiles(projectRoot, patterns); // src/..
|
|
173
|
+
logger.newLine();
|
|
174
|
+
logger.info(`匹配入口文件: ${patterns.join(', ')}`);
|
|
175
|
+
const matchedFiles = await scanEntryFiles(projectRoot, patterns, logger); // src/..
|
|
173
176
|
if (matchedFiles.length === 0) {
|
|
174
|
-
|
|
177
|
+
logger.error(`未找到匹配的入口文件: ${patterns.join(', ')}`);
|
|
175
178
|
throw new Error('未找到匹配的入口文件');
|
|
176
179
|
}
|
|
177
|
-
|
|
180
|
+
logger.info(`找到 ${matchedFiles.length} 个入口文件`);
|
|
178
181
|
const absoluteSrcDir = path.resolve(srcDir);
|
|
179
182
|
const matchedFileSet = new Set();
|
|
180
183
|
matchedFiles.forEach((pathRelativeToRoot) => {
|
|
@@ -195,7 +198,7 @@ async function collectDeps(patterns, projectRoot, srcDir, verbose) {
|
|
|
195
198
|
if (processedFileMap.has(pathRelativeToSrc))
|
|
196
199
|
continue; // 跳过已处理的文件
|
|
197
200
|
try {
|
|
198
|
-
const { fileInfo, newDeps } = processFileDeps(pathRelativeToSrc, srcDir, matchedFileSet, processedFileMap, verbose);
|
|
201
|
+
const { fileInfo, newDeps } = processFileDeps(pathRelativeToSrc, srcDir, matchedFileSet, processedFileMap, logger, verbose);
|
|
199
202
|
result.push(fileInfo);
|
|
200
203
|
filesToProcess.push(...newDeps);
|
|
201
204
|
}
|
|
@@ -205,7 +208,7 @@ async function collectDeps(patterns, projectRoot, srcDir, verbose) {
|
|
|
205
208
|
continue;
|
|
206
209
|
}
|
|
207
210
|
}
|
|
208
|
-
|
|
211
|
+
logger.info(`依赖分析完成,共收集到 ${result.length} 个文件`);
|
|
209
212
|
if (errors.length > 0)
|
|
210
213
|
throw new Error(errors.join('\n============\n'));
|
|
211
214
|
return result;
|
|
@@ -215,15 +218,23 @@ async function collectDeps(patterns, projectRoot, srcDir, verbose) {
|
|
|
215
218
|
* @param entry 入口文件路径或 glob 模式(可选,相对于 src 目录)
|
|
216
219
|
* @returns 文件信息、配置和目录信息
|
|
217
220
|
*/
|
|
218
|
-
async function resolveNASLFiles(entry, depMode, verbose) {
|
|
221
|
+
async function resolveNASLFiles(entry, logger, depMode, verbose) {
|
|
219
222
|
// 加载配置
|
|
220
223
|
const config = (0, utils_1.loadConfig)();
|
|
221
224
|
const projectRoot = (0, utils_1.getProjectRoot)();
|
|
222
|
-
|
|
223
|
-
|
|
225
|
+
logger.info(`项目根目录: ${projectRoot}`);
|
|
226
|
+
logger.info(`源代码目录: ${config.srcDir}`);
|
|
224
227
|
const srcDir = path.join(projectRoot, config.srcDir);
|
|
225
228
|
// 收集需要处理的文件
|
|
226
|
-
let
|
|
229
|
+
let collectedFiles = [];
|
|
230
|
+
if (Array.isArray(entry) && !entry.length) {
|
|
231
|
+
return {
|
|
232
|
+
collectedFiles,
|
|
233
|
+
config,
|
|
234
|
+
projectRoot,
|
|
235
|
+
srcDir,
|
|
236
|
+
};
|
|
237
|
+
}
|
|
227
238
|
if (!entry && depMode)
|
|
228
239
|
entry = 'src/**/*.{ts,tsx}';
|
|
229
240
|
if (entry) {
|
|
@@ -233,30 +244,30 @@ async function resolveNASLFiles(entry, depMode, verbose) {
|
|
|
233
244
|
// 具体路径也转换为 glob 模式统一处理
|
|
234
245
|
// 使用依赖分析收集文件
|
|
235
246
|
try {
|
|
236
|
-
|
|
247
|
+
collectedFiles = await collectDeps(Array.isArray(entry) ? entry : [entry], projectRoot, srcDir, logger, depMode || verbose);
|
|
237
248
|
}
|
|
238
249
|
catch (error) {
|
|
239
|
-
|
|
240
|
-
|
|
250
|
+
logger.error(`依赖分析失败:\n${error.message}`);
|
|
251
|
+
logger.exit(1);
|
|
241
252
|
}
|
|
242
253
|
}
|
|
243
254
|
else {
|
|
244
255
|
// 扫描整个 src 目录
|
|
245
|
-
|
|
246
|
-
const filePaths = await scanNASLFiles(srcDir, config.representation);
|
|
256
|
+
logger.info('扫描整个源代码目录...');
|
|
257
|
+
const filePaths = await scanNASLFiles(srcDir, config.representation, logger);
|
|
247
258
|
filePaths.sort(compose_1.sorter);
|
|
248
|
-
|
|
259
|
+
collectedFiles = filePaths.map((filePath) => ({
|
|
249
260
|
path: filePath,
|
|
250
|
-
content: (0, utils_1.readFileWithLog)(path.join(srcDir, filePath)),
|
|
261
|
+
content: (0, utils_1.readFileWithLog)(path.join(srcDir, filePath), logger),
|
|
251
262
|
}));
|
|
252
|
-
if (
|
|
253
|
-
|
|
254
|
-
|
|
263
|
+
if (collectedFiles.length === 0) {
|
|
264
|
+
logger.warn('未找到 NASL 文件');
|
|
265
|
+
logger.exit(1);
|
|
255
266
|
}
|
|
256
|
-
|
|
267
|
+
logger.info(`找到 ${collectedFiles.length} 个 NASL 文件`);
|
|
257
268
|
}
|
|
258
269
|
return {
|
|
259
|
-
|
|
270
|
+
collectedFiles,
|
|
260
271
|
config,
|
|
261
272
|
projectRoot,
|
|
262
273
|
srcDir,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/services/resolve.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/services/resolve.ts"],"names":[],"mappings":"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"}
|
package/out/types/command.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/types/command.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/types/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,UAAU,CAAC;CACvB"}
|
package/out/utils/config.js
CHANGED
|
@@ -67,8 +67,8 @@ function findConfigDir(startDir = process.cwd()) {
|
|
|
67
67
|
function loadConfig(configDir) {
|
|
68
68
|
const dir = configDir || findConfigDir();
|
|
69
69
|
if (!dir) {
|
|
70
|
-
logger_1.
|
|
71
|
-
|
|
70
|
+
logger_1.defaultLogger.error(`未找到配置文件 ${config_1.CONFIG_FILE_NAME},请先运行 nasl-init 初始化配置`);
|
|
71
|
+
return logger_1.defaultLogger.exit(1);
|
|
72
72
|
}
|
|
73
73
|
const configPath = path.join(dir, config_1.CONFIG_FILE_NAME);
|
|
74
74
|
try {
|
|
@@ -76,14 +76,14 @@ function loadConfig(configDir) {
|
|
|
76
76
|
const config = JSON.parse(content);
|
|
77
77
|
// 验证必需字段
|
|
78
78
|
if (!config.serverBaseURL || !config.ideVersion || !config.srcDir || !config.outDir) {
|
|
79
|
-
logger_1.
|
|
80
|
-
|
|
79
|
+
logger_1.defaultLogger.error('配置文件格式不正确,缺少必需字段');
|
|
80
|
+
return logger_1.defaultLogger.exit(1);
|
|
81
81
|
}
|
|
82
82
|
return config;
|
|
83
83
|
}
|
|
84
84
|
catch (error) {
|
|
85
|
-
logger_1.
|
|
86
|
-
|
|
85
|
+
logger_1.defaultLogger.error(`读取配置文件失败: ${error.message}`);
|
|
86
|
+
return logger_1.defaultLogger.exit(1);
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
/**
|
|
@@ -93,11 +93,11 @@ function saveConfig(config, targetDir = process.cwd()) {
|
|
|
93
93
|
const configPath = path.join(targetDir, config_1.CONFIG_FILE_NAME);
|
|
94
94
|
try {
|
|
95
95
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
96
|
-
logger_1.
|
|
96
|
+
logger_1.defaultLogger.success(`配置文件已创建: ${configPath}`);
|
|
97
97
|
}
|
|
98
98
|
catch (error) {
|
|
99
|
-
logger_1.
|
|
100
|
-
|
|
99
|
+
logger_1.defaultLogger.error(`保存配置文件失败: ${error.message}`);
|
|
100
|
+
logger_1.defaultLogger.exit(1);
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
@@ -106,8 +106,8 @@ function saveConfig(config, targetDir = process.cwd()) {
|
|
|
106
106
|
function getProjectRoot() {
|
|
107
107
|
const configDir = findConfigDir();
|
|
108
108
|
if (!configDir) {
|
|
109
|
-
logger_1.
|
|
110
|
-
|
|
109
|
+
logger_1.defaultLogger.error(`未找到配置文件 ${config_1.CONFIG_FILE_NAME},请先运行 nasl-init 初始化配置`);
|
|
110
|
+
return logger_1.defaultLogger.exit(1);
|
|
111
111
|
}
|
|
112
112
|
return configDir;
|
|
113
113
|
}
|
package/out/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,sCAoBC;AAKD,gCAyBC;AAKD,gCAUC;AAKD,wCASC;AAzFD,6CAA+B;AAC/B,2CAA6B;AAE7B,4CAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
package/out/utils/file.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import type { BaseLogger } from './logger';
|
|
1
2
|
/**
|
|
2
3
|
* 读取文件内容
|
|
3
4
|
*/
|
|
4
|
-
export declare function readFileWithLog(filePath: string): string;
|
|
5
|
+
export declare function readFileWithLog(filePath: string, logger: BaseLogger): string;
|
|
5
6
|
/**
|
|
6
7
|
* 写入文件
|
|
7
8
|
*/
|
|
8
|
-
export declare function writeFileWithLog(filePath: string, content: string): void;
|
|
9
|
+
export declare function writeFileWithLog(filePath: string, content: string, logger: BaseLogger): void;
|
|
9
10
|
//# sourceMappingURL=file.d.ts.map
|
package/out/utils/file.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAO5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAS5F"}
|
package/out/utils/file.js
CHANGED
|
@@ -37,30 +37,29 @@ exports.readFileWithLog = readFileWithLog;
|
|
|
37
37
|
exports.writeFileWithLog = writeFileWithLog;
|
|
38
38
|
const fs = __importStar(require("fs-extra"));
|
|
39
39
|
const path = __importStar(require("path"));
|
|
40
|
-
const logger_1 = require("./logger");
|
|
41
40
|
/**
|
|
42
41
|
* 读取文件内容
|
|
43
42
|
*/
|
|
44
|
-
function readFileWithLog(filePath) {
|
|
43
|
+
function readFileWithLog(filePath, logger) {
|
|
45
44
|
try {
|
|
46
45
|
return fs.readFileSync(filePath, 'utf-8');
|
|
47
46
|
}
|
|
48
47
|
catch (error) {
|
|
49
|
-
|
|
48
|
+
logger.error(`读取文件失败 ${filePath}: ${error.message}`);
|
|
50
49
|
throw error;
|
|
51
50
|
}
|
|
52
51
|
}
|
|
53
52
|
/**
|
|
54
53
|
* 写入文件
|
|
55
54
|
*/
|
|
56
|
-
function writeFileWithLog(filePath, content) {
|
|
55
|
+
function writeFileWithLog(filePath, content, logger) {
|
|
57
56
|
try {
|
|
58
57
|
const dir = path.dirname(filePath);
|
|
59
58
|
fs.ensureDirSync(dir);
|
|
60
59
|
fs.writeFileSync(filePath, content, 'utf-8');
|
|
61
60
|
}
|
|
62
61
|
catch (error) {
|
|
63
|
-
|
|
62
|
+
logger.error(`写入文件失败 ${filePath}: ${error.message}`);
|
|
64
63
|
throw error;
|
|
65
64
|
}
|
|
66
65
|
}
|
package/out/utils/file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,0CAOC;AAKD,4CASC;AA5BD,6CAA+B;AAC/B,2CAA6B;
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,0CAOC;AAKD,4CASC;AA5BD,6CAA+B;AAC/B,2CAA6B;AAG7B;;GAEG;AACH,SAAgB,eAAe,CAAC,QAAgB,EAAE,MAAkB;IAChE,IAAI,CAAC;QACD,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,UAAU,QAAQ,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,QAAgB,EAAE,OAAe,EAAE,MAAkB;IAClF,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACtB,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,UAAU,QAAQ,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC"}
|
package/out/utils/logger.d.ts
CHANGED
|
@@ -1,28 +1,58 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 日志工具类
|
|
3
3
|
*/
|
|
4
|
-
export declare class
|
|
5
|
-
|
|
4
|
+
export declare class BaseLogger {
|
|
5
|
+
newLine(): void;
|
|
6
|
+
info(...args: any[]): void;
|
|
7
|
+
success(...args: any[]): void;
|
|
8
|
+
warn(...args: any[]): void;
|
|
9
|
+
error(...args: any[]): void;
|
|
10
|
+
debug(...args: any[]): void;
|
|
11
|
+
exit(code: number): void;
|
|
12
|
+
debugToFile(topic: string, ...args: any[]): void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 控制台打印日志工具类
|
|
16
|
+
*/
|
|
17
|
+
export declare class ConsoleLogger extends BaseLogger {
|
|
18
|
+
newLine(): void;
|
|
6
19
|
/**
|
|
7
20
|
* 输出信息日志
|
|
8
21
|
*/
|
|
9
|
-
|
|
22
|
+
info(...args: any[]): void;
|
|
10
23
|
/**
|
|
11
24
|
* 输出成功日志
|
|
12
25
|
*/
|
|
13
|
-
|
|
26
|
+
success(...args: any[]): void;
|
|
14
27
|
/**
|
|
15
28
|
* 输出警告日志
|
|
16
29
|
*/
|
|
17
|
-
|
|
30
|
+
warn(...args: any[]): void;
|
|
18
31
|
/**
|
|
19
32
|
* 输出错误日志
|
|
20
33
|
*/
|
|
21
|
-
|
|
34
|
+
error(...args: any[]): void;
|
|
22
35
|
/**
|
|
23
36
|
* 输出调试日志
|
|
24
37
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
38
|
+
debug(...args: any[]): void;
|
|
39
|
+
exit(code: number): never;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* 内存日志工具类
|
|
43
|
+
* 用于在内存中存储日志
|
|
44
|
+
*/
|
|
45
|
+
export declare class MemoryLogger extends BaseLogger {
|
|
46
|
+
logs: string[];
|
|
47
|
+
newLine(): void;
|
|
48
|
+
info(...args: any[]): void;
|
|
49
|
+
success(...args: any[]): void;
|
|
50
|
+
warn(...args: any[]): void;
|
|
51
|
+
error(...args: any[]): void;
|
|
52
|
+
debug(...args: any[]): void;
|
|
53
|
+
exit(code: number): never;
|
|
54
|
+
clear(): void;
|
|
55
|
+
getLogsString(): string;
|
|
27
56
|
}
|
|
57
|
+
export declare const defaultLogger: ConsoleLogger;
|
|
28
58
|
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,qBAAa,
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,qBAAa,UAAU;IACnB,OAAO,IAAI,IAAI;IAIf,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI1B,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI7B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI1B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;CAgBnD;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,UAAU;IACzC,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI1B;;OAEG;IACH,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI7B;;OAEG;IACH,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI1B;;OAEG;IACH,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3B;;OAEG;IACH,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAM3B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;CAG5B;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,UAAU;IACjC,IAAI,EAAE,MAAM,EAAE,CAAM;IAE3B,OAAO,IAAI,IAAI;IAIf,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI1B,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI7B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI1B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAKzB,KAAK,IAAI,IAAI;IAIb,aAAa,IAAI,MAAM;CAG1B;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|