@nasl/cli 0.2.2 → 0.3.0
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 +591 -127
- package/dist/bin/nasl.mjs.map +1 -1
- package/dist/bin/naslc.mjs +322 -59
- package/dist/bin/naslc.mjs.map +1 -1
- package/dist/index.mjs +11683 -11254
- package/dist/index.mjs.map +1 -1
- package/out/apis/compileApi.d.ts.map +1 -1
- package/out/apis/compileApi.js +3 -2
- package/out/apis/compileApi.js.map +1 -1
- package/out/apis/dependencyApi.d.ts +29 -0
- package/out/apis/dependencyApi.d.ts.map +1 -0
- package/out/apis/dependencyApi.js +17 -0
- package/out/apis/dependencyApi.js.map +1 -0
- package/out/apis/index.d.ts +1 -0
- package/out/apis/index.d.ts.map +1 -1
- package/out/apis/index.js +1 -0
- package/out/apis/index.js.map +1 -1
- package/out/apis/openapi.d.ts +12 -0
- package/out/apis/openapi.d.ts.map +1 -1
- package/out/apis/openapi.js +15 -0
- package/out/apis/openapi.js.map +1 -1
- package/out/apis/transformApi.d.ts.map +1 -1
- package/out/apis/transformApi.js +2 -0
- package/out/apis/transformApi.js.map +1 -1
- package/out/bin/nasl.js +38 -2
- package/out/bin/nasl.js.map +1 -1
- package/out/commands/check.d.ts.map +1 -1
- package/out/commands/check.js +10 -1
- package/out/commands/check.js.map +1 -1
- package/out/commands/compile.d.ts.map +1 -1
- package/out/commands/compile.js +3 -2
- package/out/commands/compile.js.map +1 -1
- package/out/commands/dep.d.ts +4 -2
- package/out/commands/dep.d.ts.map +1 -1
- package/out/commands/dep.js +44 -2
- package/out/commands/dep.js.map +1 -1
- package/out/commands/index.d.ts +1 -0
- package/out/commands/index.d.ts.map +1 -1
- package/out/commands/index.js +1 -0
- package/out/commands/index.js.map +1 -1
- package/out/commands/install.d.ts +9 -0
- package/out/commands/install.d.ts.map +1 -0
- package/out/commands/install.js +123 -0
- package/out/commands/install.js.map +1 -0
- package/out/commands/transform.d.ts.map +1 -1
- package/out/commands/transform.js +3 -2
- package/out/commands/transform.js.map +1 -1
- package/out/constants/nasl-file-types.d.ts.map +1 -1
- package/out/constants/nasl-file-types.js +21 -0
- package/out/constants/nasl-file-types.js.map +1 -1
- package/out/services/compose.d.ts +8 -0
- package/out/services/compose.d.ts.map +1 -1
- package/out/services/compose.js +31 -1
- package/out/services/compose.js.map +1 -1
- package/out/services/resolve.d.ts +18 -0
- package/out/services/resolve.d.ts.map +1 -1
- package/out/services/resolve.js +208 -9
- package/out/services/resolve.js.map +1 -1
- package/out/types/api.d.ts +4 -0
- package/out/types/api.d.ts.map +1 -1
- package/out/types/config.d.ts +2 -0
- package/out/types/config.d.ts.map +1 -1
- package/out/types/config.js +1 -0
- package/out/types/config.js.map +1 -1
- package/out/utils/config.d.ts.map +1 -1
- package/out/utils/config.js +2 -0
- package/out/utils/config.js.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
|
@@ -0,0 +1,123 @@
|
|
|
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.installAuto = installAuto;
|
|
37
|
+
exports.installByKind = installByKind;
|
|
38
|
+
exports.installByJSON = installByJSON;
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const fs = __importStar(require("fs-extra"));
|
|
41
|
+
const utils_1 = require("../utils");
|
|
42
|
+
const config_1 = require("../utils/config");
|
|
43
|
+
const apis_1 = require("../apis");
|
|
44
|
+
async function installAuto(options) {
|
|
45
|
+
const logger = options?.logger || utils_1.defaultLogger;
|
|
46
|
+
const config = (0, config_1.loadConfig)();
|
|
47
|
+
const projectRoot = (0, config_1.getProjectRoot)();
|
|
48
|
+
const srcDir = path.join(projectRoot, config.srcDir);
|
|
49
|
+
const appDependenciesJsonPath = path.join(srcDir, 'app.dependencies.json');
|
|
50
|
+
const appDependenciesJson = fs.readJsonSync(appDependenciesJsonPath);
|
|
51
|
+
logger.info(`开始按照 ${appDependenciesJsonPath} 安装依赖`);
|
|
52
|
+
return installByJSON(appDependenciesJson, options);
|
|
53
|
+
}
|
|
54
|
+
async function installByKind(kind, deps, options) {
|
|
55
|
+
const logger = options?.logger || utils_1.defaultLogger;
|
|
56
|
+
if (!deps || deps.length === 0) {
|
|
57
|
+
logger.error(`请至少指定一个要安装的 ${kind},例如:nasl install ${kind} aaa@0.1.0`);
|
|
58
|
+
return logger.exit(1);
|
|
59
|
+
}
|
|
60
|
+
const dependencyMap = {};
|
|
61
|
+
for (const dep of deps) {
|
|
62
|
+
if (kind === 'api') {
|
|
63
|
+
const [service, interfaces] = dep.split(':');
|
|
64
|
+
if (!service || !interfaces) {
|
|
65
|
+
logger.error(`无效的依赖格式:${dep},请使用 service:api1,api2 格式,例如:some_service:api1,api2`);
|
|
66
|
+
return logger.exit(1);
|
|
67
|
+
}
|
|
68
|
+
dependencyMap[service] = interfaces.split(',');
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
const [name, version] = dep.split('@');
|
|
72
|
+
if (!name || !version) {
|
|
73
|
+
logger.error(`无效的依赖格式:${dep},请使用 name@version 格式,例如:aaa@0.1.0`);
|
|
74
|
+
return logger.exit(1);
|
|
75
|
+
}
|
|
76
|
+
dependencyMap[name] = version;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return installByJSON({ [kind + 's']: dependencyMap }, options);
|
|
80
|
+
}
|
|
81
|
+
async function installByJSON(json, options) {
|
|
82
|
+
const logger = options?.logger || utils_1.defaultLogger;
|
|
83
|
+
if (!Object.keys(json).length) {
|
|
84
|
+
logger.error('没有需要安装的依赖');
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const config = (0, config_1.loadConfig)();
|
|
88
|
+
const projectRoot = (0, config_1.getProjectRoot)();
|
|
89
|
+
const srcDir = path.join(projectRoot, config.srcDir);
|
|
90
|
+
const result = await (0, apis_1.installDependenciesApi)(json, config);
|
|
91
|
+
if (!result.files || result.files.length <= 1)
|
|
92
|
+
throw new Error(`安装依赖失败,没有生成任何文件:\n${JSON.stringify(result)}`);
|
|
93
|
+
if (result.errors.length > 0) {
|
|
94
|
+
logger.error(`某些依赖安装失败:`);
|
|
95
|
+
for (const error of result.errors)
|
|
96
|
+
logger.error(error);
|
|
97
|
+
}
|
|
98
|
+
// const appDepsFile = result.files.find((f) => f.path === 'app.dependencies.json');
|
|
99
|
+
const otherFiles = result.files.filter((f) => f.path !== 'app.dependencies.json');
|
|
100
|
+
const jsonToSave = JSON.parse(JSON.stringify(json));
|
|
101
|
+
for (const err of result.errors) {
|
|
102
|
+
const { name, category } = err;
|
|
103
|
+
const record = jsonToSave[category];
|
|
104
|
+
if (record && typeof record === 'object') {
|
|
105
|
+
delete record[name];
|
|
106
|
+
if (Object.keys(record).length === 0)
|
|
107
|
+
delete jsonToSave[category];
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (options?.savePotential) {
|
|
111
|
+
const potentialPath = path.join(srcDir, 'potential.dependencies.json');
|
|
112
|
+
await fs.writeJson(potentialPath, jsonToSave, { spaces: 2 });
|
|
113
|
+
logger.success(`依赖信息已写入: ${path.relative(projectRoot, potentialPath)}`);
|
|
114
|
+
}
|
|
115
|
+
await Promise.all(otherFiles.map(async (file) => {
|
|
116
|
+
const filePath = path.join(srcDir, file.path);
|
|
117
|
+
await fs.outputFile(filePath, file.content, 'utf-8');
|
|
118
|
+
logger.success(`依赖文件已写入: ${path.relative(projectRoot, filePath)}`);
|
|
119
|
+
}));
|
|
120
|
+
const writtenCount = otherFiles.length;
|
|
121
|
+
logger.success(`成功写入 ${writtenCount} 个依赖文件到 ${config.srcDir} 目录`);
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/commands/transform.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;AAEvE,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/commands/transform.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;AAEvE,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AA+ED;;GAEG;AACH,wBAAsB,SAAS,CAC3B,aAAa,EAAE,aAAa,EAC5B,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
@@ -47,7 +47,7 @@ const transformFns = {
|
|
|
47
47
|
async files2full(entry, options) {
|
|
48
48
|
const logger = options?.logger || utils_1.defaultLogger;
|
|
49
49
|
// 收集需要处理的文件
|
|
50
|
-
const { collectedFiles, projectRoot } = await (0, resolve_1.resolveNASLFiles)(entry, logger, false, options?.verbose);
|
|
50
|
+
const { collectedFiles, projectRoot, mergedDependencies } = await (0, resolve_1.resolveNASLFiles)(entry, logger, false, options?.verbose);
|
|
51
51
|
if (collectedFiles.length === 0) {
|
|
52
52
|
logger.error('未找到需要转换的文件');
|
|
53
53
|
logger.exit(1);
|
|
@@ -56,7 +56,8 @@ const transformFns = {
|
|
|
56
56
|
// 组合成 fullNaturalTS
|
|
57
57
|
logger.newLine();
|
|
58
58
|
logger.info('正在组合文件...');
|
|
59
|
-
|
|
59
|
+
let fullNaturalTS = (0, compose_1.composeToString)(collectedFiles);
|
|
60
|
+
fullNaturalTS = (0, compose_1.prependDependencies)(fullNaturalTS, mergedDependencies);
|
|
60
61
|
// 确定输出路径
|
|
61
62
|
const outputPath = options?.output
|
|
62
63
|
? path.resolve(projectRoot, options.output)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/commands/transform.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/commands/transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nasl-file-types.d.ts","sourceRoot":"","sources":["../../src/constants/nasl-file-types.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IAC/B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY;IACZ,SAAS,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;CACnC;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"nasl-file-types.d.ts","sourceRoot":"","sources":["../../src/constants/nasl-file-types.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IAC/B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY;IACZ,SAAS,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;CACnC;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,kBAAkB,EAqF/C,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED,eAAO,MAAM,gBAAgB,UAAwB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED,eAAO,MAAM,eAAe,UAAuB,CAAC;AAEpD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIzD"}
|
|
@@ -105,6 +105,27 @@ exports.NASL_FILE_TYPES = [
|
|
|
105
105
|
codeRefPattern: 'extensions\\.\\w+(?:\\.\\w+)*',
|
|
106
106
|
extension: 'ts',
|
|
107
107
|
},
|
|
108
|
+
{
|
|
109
|
+
name: 'apis',
|
|
110
|
+
description: 'API',
|
|
111
|
+
fileNamePattern: 'apis\\.\\w+\\.ts',
|
|
112
|
+
codeRefPattern: 'apis\\.\\w+(?:\\.\\w+)*',
|
|
113
|
+
extension: 'ts',
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
name: 'connectors',
|
|
117
|
+
description: '连接器',
|
|
118
|
+
fileNamePattern: 'connectors\\.\\w+\\.ts',
|
|
119
|
+
codeRefPattern: 'connectors\\.\\w+(?:\\.\\w+)*',
|
|
120
|
+
extension: 'ts',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
name: 'uilibs',
|
|
124
|
+
description: 'UI 库',
|
|
125
|
+
fileNamePattern: 'uilibs\\.\\w+\\.ts',
|
|
126
|
+
codeRefPattern: 'uilibs\\.\\w+(?:\\.\\w+)*',
|
|
127
|
+
extension: 'ts',
|
|
128
|
+
},
|
|
108
129
|
];
|
|
109
130
|
/**
|
|
110
131
|
* 获取用于验证文件名的正则表达式数组
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nasl-file-types.js","sourceRoot":"","sources":["../../src/constants/nasl-file-types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"nasl-file-types.js","sourceRoot":"","sources":["../../src/constants/nasl-file-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import type { FileInfo } from '../types';
|
|
2
|
+
import type { DependenciesJSON } from '../apis/dependencyApi';
|
|
2
3
|
export declare function createSorter(): (a: string, b: string) => number;
|
|
3
4
|
export declare const sorter: (a: string, b: string) => number;
|
|
4
5
|
export declare function composeToString(files: FileInfo[]): string;
|
|
6
|
+
/**
|
|
7
|
+
* 将依赖信息拼接到 fullNaturalTS 顶部
|
|
8
|
+
* @param fullNaturalTS 组合后的 NASL 代码
|
|
9
|
+
* @param dependencies mergedDependencies 对象或 JSON 字符串
|
|
10
|
+
* @returns 拼接后的完整内容
|
|
11
|
+
*/
|
|
12
|
+
export declare function prependDependencies(fullNaturalTS: string, dependencies?: DependenciesJSON): string;
|
|
5
13
|
//# sourceMappingURL=compose.d.ts.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,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;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAYlG"}
|
package/out/services/compose.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.sorter = void 0;
|
|
4
4
|
exports.createSorter = createSorter;
|
|
5
5
|
exports.composeToString = composeToString;
|
|
6
|
+
exports.prependDependencies = prependDependencies;
|
|
6
7
|
function createSorter() {
|
|
7
8
|
const priorityOrder = ['app.dataSources', 'app.enums', 'app.structures', 'app.logics', 'app.frontendTypes'];
|
|
8
9
|
// 获取优先级索引
|
|
@@ -81,7 +82,10 @@ function validateNormalFile(file, nameFromPath, namespace, errors) {
|
|
|
81
82
|
function composeToString(files) {
|
|
82
83
|
files.sort((a, b) => (0, exports.sorter)(a.path, b.path));
|
|
83
84
|
const errors = [];
|
|
85
|
+
let currentLine = 1;
|
|
84
86
|
const result = files.map((file) => {
|
|
87
|
+
// 记录这个文件的开始行号
|
|
88
|
+
file.startLine = currentLine;
|
|
85
89
|
const arr = file.path.split('.');
|
|
86
90
|
const ext = arr.pop();
|
|
87
91
|
const nameFromPath = arr.pop();
|
|
@@ -107,7 +111,14 @@ function composeToString(files) {
|
|
|
107
111
|
else if (isThemeCss) {
|
|
108
112
|
content = ` $theme\`${content}\`;`;
|
|
109
113
|
}
|
|
110
|
-
|
|
114
|
+
const fileContent = `namespace ${namespace} {\n${content}\n}\n`;
|
|
115
|
+
// 计算这个文件占用的行数(末尾 \n 导致 split 多一个空元素,减 1 得到实际行数)
|
|
116
|
+
const lineCount = fileContent.split('\n').length - 1;
|
|
117
|
+
// 记录这个文件的结束行号
|
|
118
|
+
file.endLine = currentLine + lineCount - 1;
|
|
119
|
+
// +1 是 join('\n') 在文件之间插入的换行符
|
|
120
|
+
currentLine = file.endLine + 2;
|
|
121
|
+
return fileContent;
|
|
111
122
|
})
|
|
112
123
|
.join('\n');
|
|
113
124
|
if (errors.length > 0) {
|
|
@@ -115,4 +126,23 @@ function composeToString(files) {
|
|
|
115
126
|
}
|
|
116
127
|
return result;
|
|
117
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* 将依赖信息拼接到 fullNaturalTS 顶部
|
|
131
|
+
* @param fullNaturalTS 组合后的 NASL 代码
|
|
132
|
+
* @param dependencies mergedDependencies 对象或 JSON 字符串
|
|
133
|
+
* @returns 拼接后的完整内容
|
|
134
|
+
*/
|
|
135
|
+
function prependDependencies(fullNaturalTS, dependencies) {
|
|
136
|
+
if (!dependencies)
|
|
137
|
+
return fullNaturalTS;
|
|
138
|
+
const jsonStr = JSON.stringify(dependencies, null, 2);
|
|
139
|
+
const header = `/*
|
|
140
|
+
-----------app.dependencies.json7xdhjutehm.start
|
|
141
|
+
${jsonStr}
|
|
142
|
+
-----------app.dependencies.json7xdhjutehm.end
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
`;
|
|
146
|
+
return header + fullNaturalTS;
|
|
147
|
+
}
|
|
118
148
|
//# sourceMappingURL=compose.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,33 @@
|
|
|
1
1
|
import type { BaseLogger } from '../utils';
|
|
2
2
|
import type { FileInfo, NASLRepresentation, NASLConfig } from '../types';
|
|
3
|
+
import type { DependenciesJSON } from '../apis/dependencyApi';
|
|
3
4
|
/**
|
|
4
5
|
* 扫描目录下的所有 NASL 文件
|
|
5
6
|
*/
|
|
6
7
|
export declare function scanNASLFiles(srcDir: string, representation: NASLRepresentation, logger: BaseLogger): Promise<string[]>;
|
|
7
8
|
export declare function scanEntryFiles(projectRoot: string, patterns: string[], logger: BaseLogger): Promise<string[]>;
|
|
9
|
+
/**
|
|
10
|
+
* 加载 app.dependencies.json(不存在则返回空对象)
|
|
11
|
+
*/
|
|
12
|
+
export declare function loadAppDependencies(srcDir: string): DependenciesJSON;
|
|
13
|
+
/**
|
|
14
|
+
* 加载并合并 app.dependencies.json 与 potential.dependencies.json
|
|
15
|
+
* 用于版本号查找:先查 app,再查 potential
|
|
16
|
+
*/
|
|
17
|
+
export declare function loadMergedDependencies(srcDir: string): DependenciesJSON;
|
|
18
|
+
/**
|
|
19
|
+
* 将 externalDependencies 补充到 app.dependencies.json(只增不减)
|
|
20
|
+
*/
|
|
21
|
+
export declare function mergeDependenciesIntoApp(existing: DependenciesJSON, incoming: DependenciesJSON): DependenciesJSON;
|
|
8
22
|
export interface ResolveFilesResult {
|
|
9
23
|
collectedFiles: FileInfo[];
|
|
10
24
|
config: NASLConfig;
|
|
11
25
|
projectRoot: string;
|
|
12
26
|
srcDir: string;
|
|
27
|
+
/** 从分析中构建的外部依赖(extensions/connectors/apis/uilibs) */
|
|
28
|
+
externalDependencies?: DependenciesJSON;
|
|
29
|
+
/** externalDependencies 与 app.dependencies.json 合并后的结果(只增不减) */
|
|
30
|
+
mergedDependencies?: DependenciesJSON;
|
|
13
31
|
}
|
|
14
32
|
/**
|
|
15
33
|
* 解析需要处理的文件(包含配置加载和目录设置)
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAoB9D;;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,CAYnH;AAgHD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAQpE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAiBvE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,CAiBjH;AAsOD,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;IACf,qDAAqD;IACrD,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;IACxC,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;CACzC;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,CAmGlK"}
|