@nasl/cli 0.1.14 → 0.1.15

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.
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.transform = transform;
37
+ const path = __importStar(require("path"));
38
+ const fs = __importStar(require("fs-extra"));
39
+ const utils_1 = require("../utils");
40
+ const compose_1 = require("../services/compose");
41
+ const resolve_1 = require("../services/resolve");
42
+ const transformApi_1 = require("../apis/transformApi");
43
+ const transformFns = {
44
+ /**
45
+ * 将 src 中的文件组合成 fullNaturalTS
46
+ */
47
+ async files2full(entry, options) {
48
+ const logger = options?.logger || utils_1.defaultLogger;
49
+ // 收集需要处理的文件
50
+ const { collectedFiles, projectRoot } = await (0, resolve_1.resolveNASLFiles)(entry, logger, false, options?.verbose);
51
+ if (collectedFiles.length === 0) {
52
+ logger.error('未找到需要转换的文件');
53
+ logger.exit(1);
54
+ }
55
+ logger.info(`找到 ${collectedFiles.length} 个文件`);
56
+ // 组合成 fullNaturalTS
57
+ logger.newLine();
58
+ logger.info('正在组合文件...');
59
+ const fullNaturalTS = (0, compose_1.composeToString)(collectedFiles);
60
+ // 确定输出路径
61
+ const outputPath = options?.output
62
+ ? path.resolve(projectRoot, options.output)
63
+ : path.join(projectRoot, './full-natural.ts');
64
+ // 写入文件
65
+ (0, utils_1.writeFileWithLog)(outputPath, fullNaturalTS, logger);
66
+ logger.success(`文件已输出到: ${outputPath}`);
67
+ },
68
+ /**
69
+ * 将 JSON 文件转换成 src 的 files
70
+ * TODO: 待实现
71
+ */
72
+ async json2files(entry, options) {
73
+ const logger = options?.logger || utils_1.defaultLogger;
74
+ // 加载配置
75
+ const config = (0, utils_1.loadConfig)();
76
+ const projectRoot = (0, utils_1.getProjectRoot)();
77
+ logger.info(`项目根目录: ${projectRoot}`);
78
+ logger.info(`源代码目录: ${config.srcDir}`);
79
+ let jsonContent = '';
80
+ if (!entry) {
81
+ logger.warn('没有指定 JSON 文件路径,按照默认 IDE 版本的基础模板转换');
82
+ }
83
+ else {
84
+ jsonContent = fs.readFileSync(entry, 'utf-8');
85
+ }
86
+ const files = await (0, transformApi_1.transformJson2FilesApi)(jsonContent, {
87
+ serverBaseURL: config.serverBaseURL,
88
+ ideVersion: config.ideVersion,
89
+ });
90
+ await Promise.all(files.map(async (file) => {
91
+ const outputPath = path.join(projectRoot, config.srcDir, file.path);
92
+ await fs.writeFile(outputPath, file.content);
93
+ }));
94
+ logger.success(`JSON 文件已转换为 ${files.length} 个文件,输出到 ${config.srcDir}`);
95
+ },
96
+ /**
97
+ * 将 src 中的文件转换成一个 JSON
98
+ */
99
+ async files2json(entry, options) {
100
+ const logger = options?.logger || utils_1.defaultLogger;
101
+ // 收集需要处理的文件
102
+ const { collectedFiles, projectRoot } = await (0, resolve_1.resolveNASLFiles)(entry, logger, false, options?.verbose);
103
+ if (collectedFiles.length === 0) {
104
+ logger.error('未找到需要转换的文件');
105
+ logger.exit(1);
106
+ }
107
+ logger.info(`找到 ${collectedFiles.length} 个文件`);
108
+ // 转换为 JSON
109
+ logger.newLine();
110
+ logger.info('正在转换为 JSON...');
111
+ const jsonContent = JSON.stringify(collectedFiles, null, 2);
112
+ // 确定输出路径
113
+ const outputPath = options?.output
114
+ ? path.resolve(projectRoot, options.output)
115
+ : path.join(projectRoot, './files.json');
116
+ // 写入文件
117
+ (0, utils_1.writeFileWithLog)(outputPath, jsonContent, logger);
118
+ logger.success(`JSON 文件已输出到: ${outputPath}`);
119
+ },
120
+ };
121
+ /**
122
+ * 转换命令 - 支持多种文件转换格式
123
+ */
124
+ async function transform(transformType, entry, options) {
125
+ const logger = options?.logger || utils_1.defaultLogger;
126
+ logger.info(`开始执行转换: ${transformType}`);
127
+ const transformFn = transformFns[transformType];
128
+ if (!transformFn) {
129
+ logger.error(`不支持的转换类型: ${transformType}`);
130
+ logger.exit(1);
131
+ }
132
+ await transformFn(entry, options);
133
+ }
134
+ //# sourceMappingURL=transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/commands/transform.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nasl/cli",
3
- "version": "0.1.14",
3
+ "version": "0.1.15",
4
4
  "description": "NASL (Next Application Specific Language) CLI tool for checking, compiling and developing NASL code",
5
5
  "main": "out/index.js",
6
6
  "module": "dist/index.mjs",