@nasl/cli 0.1.2 → 0.1.4

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.
Files changed (70) hide show
  1. package/README.md +5 -5
  2. package/build/index.html +6 -6
  3. package/build/index.js +21 -17
  4. package/build/nasl.bundle.js +59104 -8
  5. package/build/webpack.config.js +74 -45
  6. package/out/apis/createAxios.d.ts +2 -0
  7. package/out/apis/createAxios.d.ts.map +1 -0
  8. package/out/apis/createAxios.js +17 -0
  9. package/out/apis/createAxios.js.map +1 -0
  10. package/out/apis/index.d.ts +2 -2
  11. package/out/apis/index.d.ts.map +1 -1
  12. package/out/apis/index.js +6 -6
  13. package/out/apis/index.js.map +1 -1
  14. package/out/bin/nasl.js +26 -7
  15. package/out/bin/nasl.js.map +1 -1
  16. package/out/bin/naslc.js +1 -1
  17. package/out/bin/naslc.js.map +1 -1
  18. package/out/commands/build.d.ts +8 -0
  19. package/out/commands/build.d.ts.map +1 -0
  20. package/out/commands/build.js +54 -0
  21. package/out/commands/build.js.map +1 -0
  22. package/out/commands/check.d.ts +2 -1
  23. package/out/commands/check.d.ts.map +1 -1
  24. package/out/commands/check.js +20 -12
  25. package/out/commands/check.js.map +1 -1
  26. package/out/commands/compile.d.ts +4 -3
  27. package/out/commands/compile.d.ts.map +1 -1
  28. package/out/commands/compile.js +8 -10
  29. package/out/commands/compile.js.map +1 -1
  30. package/out/commands/dep.d.ts +1 -1
  31. package/out/commands/dep.d.ts.map +1 -1
  32. package/out/commands/dep.js +3 -3
  33. package/out/commands/dep.js.map +1 -1
  34. package/out/commands/dev.d.ts +7 -1
  35. package/out/commands/dev.d.ts.map +1 -1
  36. package/out/commands/dev.js +14 -4
  37. package/out/commands/dev.js.map +1 -1
  38. package/out/commands/index.d.ts +3 -1
  39. package/out/commands/index.d.ts.map +1 -1
  40. package/out/commands/index.js +3 -1
  41. package/out/commands/index.js.map +1 -1
  42. package/out/commands/init.d.ts +1 -1
  43. package/out/commands/init.d.ts.map +1 -1
  44. package/out/commands/init.js +2 -2
  45. package/out/commands/init.js.map +1 -1
  46. package/out/index.d.ts +2 -11
  47. package/out/index.d.ts.map +1 -1
  48. package/out/index.js +2 -11
  49. package/out/index.js.map +1 -1
  50. package/out/services/compose.d.ts.map +1 -1
  51. package/out/services/compose.js +29 -2
  52. package/out/services/compose.js.map +1 -1
  53. package/out/services/resolve.d.ts +2 -2
  54. package/out/services/resolve.d.ts.map +1 -1
  55. package/out/services/resolve.js +35 -30
  56. package/out/services/resolve.js.map +1 -1
  57. package/out/types/command.d.ts +4 -0
  58. package/out/types/command.d.ts.map +1 -0
  59. package/out/types/command.js +3 -0
  60. package/out/types/command.js.map +1 -0
  61. package/out/types/config.js +1 -1
  62. package/out/types/index.d.ts +1 -0
  63. package/out/types/index.d.ts.map +1 -1
  64. package/out/types/index.js +1 -0
  65. package/out/types/index.js.map +1 -1
  66. package/out/utils/logger.d.ts +1 -0
  67. package/out/utils/logger.d.ts.map +1 -1
  68. package/out/utils/logger.js +51 -0
  69. package/out/utils/logger.js.map +1 -1
  70. package/package.json +29 -11
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.devCommand = devCommand;
36
+ exports.dev = dev;
37
37
  const exec_1 = require("../utils/exec");
38
38
  const logger_1 = require("../utils/logger");
39
39
  const compile_1 = require("./compile");
@@ -41,11 +41,21 @@ const path = __importStar(require("path"));
41
41
  /**
42
42
  * 编译命令 - 将 NASL 编译为 Vue 和 JS
43
43
  */
44
- async function devCommand(entry) {
45
- const { outDir } = await (0, compile_1.compileCommand)(entry);
44
+ async function dev(entry, options) {
45
+ const { outDir } = await (0, compile_1.compile)(entry);
46
46
  logger_1.Logger.newLine();
47
47
  logger_1.Logger.info('正在启动开发服务...');
48
48
  const configRelativePath = path.relative(outDir, path.resolve(__dirname, '../../build/webpack.config.js'));
49
- await (0, exec_1.justExecCommandSync)(`npx webpack serve --config ${configRelativePath}`, outDir);
49
+ // 构建 webpack-cli 参数
50
+ let webpackArgs = `${require.resolve('.bin/webpack-cli')} serve --config ${configRelativePath}`;
51
+ if (options?.port)
52
+ webpackArgs += ` --port ${options.port}`;
53
+ if (options?.host)
54
+ webpackArgs += ` --host ${options.host}`;
55
+ if (options?.open)
56
+ webpackArgs += ' --open';
57
+ if (options?.hot)
58
+ webpackArgs += ' --hot';
59
+ await (0, exec_1.justExecCommandSync)(webpackArgs, outDir);
50
60
  }
51
61
  //# sourceMappingURL=dev.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,gCAOC;AAfD,wCAAoD;AACpD,4CAAyC;AACzC,uCAA2C;AAC3C,2CAA6B;AAE7B;;GAEG;AACI,KAAK,UAAU,UAAU,CAAC,KAAc;IAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,wBAAc,EAAC,KAAK,CAAC,CAAC;IAC/C,eAAM,CAAC,OAAO,EAAE,CAAC;IACjB,eAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3B,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,+BAA+B,CAAC,CAAC,CAAC;IAC3G,MAAM,IAAA,0BAAmB,EAAC,8BAA8B,kBAAkB,EAAE,EAAE,MAAM,CAAC,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,kBAgBC;AA/BD,wCAAoD;AACpD,4CAAyC;AACzC,uCAAoC;AACpC,2CAA6B;AAS7B;;GAEG;AACI,KAAK,UAAU,GAAG,CAAC,KAAc,EAAE,OAAoB;IAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,iBAAO,EAAC,KAAK,CAAC,CAAC;IACxC,eAAM,CAAC,OAAO,EAAE,CAAC;IACjB,eAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3B,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,+BAA+B,CAAC,CAAC,CAAC;IAE3G,oBAAoB;IACpB,IAAI,WAAW,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,kBAAkB,EAAE,CAAC;IAEhG,IAAI,OAAO,EAAE,IAAI;QAAE,WAAW,IAAI,WAAW,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5D,IAAI,OAAO,EAAE,IAAI;QAAE,WAAW,IAAI,WAAW,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5D,IAAI,OAAO,EAAE,IAAI;QAAE,WAAW,IAAI,SAAS,CAAC;IAC5C,IAAI,OAAO,EAAE,GAAG;QAAE,WAAW,IAAI,QAAQ,CAAC;IAE1C,MAAM,IAAA,0BAAmB,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export * from './init';
2
2
  export * from './compile';
3
- export * from './dev';
4
3
  export * from './check';
4
+ export * from './dep';
5
+ export * from './dev';
6
+ export * from './build';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
@@ -16,6 +16,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./init"), exports);
18
18
  __exportStar(require("./compile"), exports);
19
- __exportStar(require("./dev"), exports);
20
19
  __exportStar(require("./check"), exports);
20
+ __exportStar(require("./dep"), exports);
21
+ __exportStar(require("./dev"), exports);
22
+ __exportStar(require("./build"), exports);
21
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,4CAA0B;AAC1B,wCAAsB;AACtB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,4CAA0B;AAC1B,0CAAwB;AACxB,wCAAsB;AACtB,wCAAsB;AACtB,0CAAwB"}
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * 初始化命令 - 创建配置文件
3
3
  */
4
- export declare function initCommand(): void;
4
+ export declare function init(): void;
5
5
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAkClC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,IAAI,IAAI,IAAI,CAkC3B"}
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.initCommand = initCommand;
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,7 +41,7 @@ const utils_1 = require("../utils");
41
41
  /**
42
42
  * 初始化命令 - 创建配置文件
43
43
  */
44
- function initCommand() {
44
+ function init() {
45
45
  const cwd = process.cwd();
46
46
  const configPath = path.join(cwd, config_1.CONFIG_FILE_NAME);
47
47
  // 检查配置文件是否已存在
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,kCAkCC;AA1CD,6CAA+B;AAC/B,2CAA6B;AAC7B,4CAAmE;AACnE,oCAAkC;AAElC;;GAEG;AACH,SAAgB,WAAW;IACvB,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,cAAM,CAAC,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;QACtC,cAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjC,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,cAAM,CAAC,OAAO,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;QACzC,cAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAErD,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,cAAM,CAAC,OAAO,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC;QAE1C,cAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,cAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9B,cAAM,CAAC,IAAI,CAAC,uBAAuB,uBAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7D,cAAM,CAAC,IAAI,CAAC,sBAAsB,uBAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5D,cAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC5C,cAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,cAAM,CAAC,KAAK,CAAC,aAAc,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC"}
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,oCAAkC;AAElC;;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,cAAM,CAAC,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;QACtC,cAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjC,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,cAAM,CAAC,OAAO,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;QACzC,cAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAErD,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,cAAM,CAAC,OAAO,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC;QAE1C,cAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,cAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9B,cAAM,CAAC,IAAI,CAAC,uBAAuB,uBAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7D,cAAM,CAAC,IAAI,CAAC,sBAAsB,uBAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5D,cAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC5C,cAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,cAAM,CAAC,KAAK,CAAC,aAAc,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC"}
package/out/index.d.ts CHANGED
@@ -1,14 +1,5 @@
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 './utils';
2
+ export * from './services/compose';
3
+ export * from './services/resolve';
12
4
  export * from './commands';
13
- export * from './apis';
14
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC"}
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,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,7 @@ 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("./utils"), exports);
18
+ __exportStar(require("./services/compose"), exports);
19
+ __exportStar(require("./services/resolve"), exports);
28
20
  __exportStar(require("./commands"), exports);
29
- __exportStar(require("./apis"), exports);
30
21
  //# 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":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,0CAAwB;AACxB,6CAA2B;AAC3B,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,qDAAmC;AACnC,qDAAmC;AACnC,6CAA2B"}
@@ -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;AAErC,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAOzD"}
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;AAErC,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAgCzD"}
@@ -30,9 +30,36 @@ function createSorter() {
30
30
  exports.sorter = createSorter();
31
31
  function composeToString(files) {
32
32
  files.sort((a, b) => (0, exports.sorter)(a.path, b.path));
33
- return files.map((file) => {
34
- const namespace = file.path.split('.').slice(0, -2).join('.');
33
+ const errors = [];
34
+ const result = files.map((file) => {
35
+ const arr = file.path.split('.');
36
+ const ext = arr.pop();
37
+ const nameFromPath = arr.pop();
38
+ const namespace = arr.join('.');
39
+ if (['ts', 'tsx'].includes(ext)) {
40
+ const matchArr = Array.from(file.content.matchAll(/^(export\s+)?(declare\s+)?(function|class|interface)\s+(\w+)/gm));
41
+ if (matchArr.length === 0)
42
+ errors.push(`${file.path} 必须有一个函数或类,错误代码:${file.content}`);
43
+ else if (matchArr.length > 1)
44
+ errors.push(`${file.path} 只能有一个函数或类,错误代码:${matchArr.map((match) => match[0]).join('\n')}
45
+ 你可以将该文件中所有函数合并,或者将其他函数拆到多个文件中。`);
46
+ for (const match of matchArr) {
47
+ const [, isExport, isDeclare, type, name] = match;
48
+ if (!isExport)
49
+ errors.push(`${file.path} 必须使用 export,错误代码:${match[0]}`);
50
+ if (name !== nameFromPath)
51
+ errors.push(`${file.path} 的函数或类名必须与文件名一致,错误代码:${match[0]}`);
52
+ if (/\.(entities|enums|structures)/.test(namespace) && type !== 'class')
53
+ errors.push(`${file.path} 实体、数据结构和枚举只能使用 class 定义,错误代码:${match[0]}`);
54
+ if (/\.(logics|views)/.test(namespace) && type !== 'function')
55
+ errors.push(`${file.path} 逻辑和页面只能使用 function 定义,错误代码:${match[0]}`);
56
+ }
57
+ }
35
58
  return `namespace ${namespace} {\n${file.content}\n}\n`;
36
59
  }).join('\n');
60
+ if (errors.length > 0) {
61
+ throw new Error(errors.join('\n============\n'));
62
+ }
63
+ return result;
37
64
  }
38
65
  //# sourceMappingURL=compose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":";;;AAEA,oCA0BC;AAGD,0CAOC;AApCD,SAAgB,YAAY;IACxB,MAAM,aAAa,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAE5G,UAAU;IACV,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;QACxC,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;IAC7D,CAAC,CAAC;IAEF,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;QAC5B,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAEjC,WAAW;QACX,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,SAAS,GAAG,SAAS,CAAC;QACjC,CAAC;QAED,2BAA2B;QAC3B,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,YAAY;YACZ,OAAO,CAAC,CAAC;QACb,CAAC;IACL,CAAC,CAAC;AACN,CAAC;AACY,QAAA,MAAM,GAAG,YAAY,EAAE,CAAC;AAErC,SAAgB,eAAe,CAAC,KAAiB;IAC7C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9D,OAAO,aAAa,SAAS,OAAO,IAAI,CAAC,OAAO,OAAO,CAAC;IAC5D,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":";;;AAEA,oCA0BC;AAGD,0CAgCC;AA7DD,SAAgB,YAAY;IACxB,MAAM,aAAa,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAE5G,UAAU;IACV,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;QACxC,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;IAC7D,CAAC,CAAC;IAEF,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;QAC5B,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAEjC,WAAW;QACX,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,SAAS,GAAG,SAAS,CAAC;QACjC,CAAC;QAED,2BAA2B;QAC3B,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,YAAY;YACZ,OAAO,CAAC,CAAC;QACb,CAAC;IACL,CAAC,CAAC;AACN,CAAC;AACY,QAAA,MAAM,GAAG,YAAY,EAAE,CAAC;AAErC,SAAgB,eAAe,CAAC,KAAiB;IAC7C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAY,CAAC;QAChC,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gEAAgE,CAAC,CAAC,CAAC;YACrH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,mBAAmB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;iBACjF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,mBAAmB,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;+BAClG,CAAC,CAAC;YACrB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;gBAClD,IAAI,CAAC,QAAQ;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,qBAAqB,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxE,IAAI,IAAI,KAAK,YAAY;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,wBAAwB,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvF,IAAI,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,KAAK,OAAO;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,iCAAiC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9I,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,KAAK,UAAU;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,+BAA+B,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACtI,CAAC;QACL,CAAC;QAED,OAAO,aAAa,SAAS,OAAO,IAAI,CAAC,OAAO,OAAO,CAAC;IAC5D,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -5,7 +5,7 @@ import type { FileInfo, NASLRepresentation, NASLConfig } from '../types';
5
5
  export declare function scanNASLFiles(srcDir: string, representation: NASLRepresentation): Promise<string[]>;
6
6
  export declare function scanEntryFiles(projectRoot: string, patterns: string[]): Promise<string[]>;
7
7
  export interface ResolveFilesResult {
8
- inputFiles: FileInfo[];
8
+ collectedFiles: FileInfo[];
9
9
  config: NASLConfig;
10
10
  projectRoot: string;
11
11
  srcDir: string;
@@ -15,5 +15,5 @@ export interface ResolveFilesResult {
15
15
  * @param entry 入口文件路径或 glob 模式(可选,相对于 src 目录)
16
16
  * @returns 文件信息、配置和目录信息
17
17
  */
18
- export declare function resolveNASLFiles(entry?: string, depMode?: boolean): Promise<ResolveFilesResult>;
18
+ export declare function resolveNASLFiles(entry?: string | string[], depMode?: boolean, verbose?: boolean): Promise<ResolveFilesResult>;
19
19
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/services/resolve.ts"],"names":[],"mappings":"AAIA,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,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAazG;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAa/F;AAoKD,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAqDrG"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/services/resolve.ts"],"names":[],"mappings":"AAIA,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,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAazG;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAa/F;AAsKD,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,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoDnI"}
@@ -32,14 +32,17 @@ 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 globby = require("globby");
43
+ const globby_1 = __importDefault(require("globby"));
41
44
  const utils_1 = require("../utils");
42
- const chalk = require("chalk");
45
+ const chalk_1 = __importDefault(require("chalk"));
43
46
  const compose_1 = require("./compose");
44
47
  /**
45
48
  * 扫描目录下的所有 NASL 文件
@@ -47,7 +50,7 @@ const compose_1 = require("./compose");
47
50
  async function scanNASLFiles(srcDir, representation) {
48
51
  try {
49
52
  const pattern = representation === 'NaturalTS' ? '**/*.{ts,tsx}' : '**/*.nasl';
50
- const files = await globby([pattern, '!**/*.css'], {
53
+ const files = await (0, globby_1.default)([pattern, '!**/*.css'], {
51
54
  cwd: srcDir,
52
55
  onlyFiles: true,
53
56
  absolute: false,
@@ -62,7 +65,7 @@ async function scanNASLFiles(srcDir, representation) {
62
65
  async function scanEntryFiles(projectRoot, patterns) {
63
66
  try {
64
67
  patterns.push('!**/*.css');
65
- const files = await globby(patterns, {
68
+ const files = await (0, globby_1.default)(patterns, {
66
69
  cwd: projectRoot,
67
70
  onlyFiles: true,
68
71
  absolute: false,
@@ -118,42 +121,41 @@ function processFileDeps(pathRelativeToSrc, srcDir, matchedFileSet, processedFil
118
121
  fileInfo.content = (0, utils_1.readFileWithLog)(absoluteFilePath);
119
122
  }
120
123
  catch (error) {
121
- utils_1.Logger.warn(`无法读取文件 ${pathRelativeToSrc},跳过`);
122
- throw error;
124
+ // Logger.warn(`找不到依赖文件 ${pathRelativeToSrc},跳过分析`);
125
+ throw new Error(`找不到依赖文件 ${pathRelativeToSrc},尝试先实现依赖文件或创建占位文件。建议用 MultiEdit 工具快速创建多个文件`);
123
126
  }
124
127
  const isView = pathRelativeToSrc.endsWith('.tsx');
125
128
  const isEntryFile = matchedFileSet.has(pathRelativeToSrc);
126
129
  // 如果是页面文件且不是入口文件,只保留签名,但要继续分析依赖
127
130
  if (isView && !isEntryFile) {
128
- // Logger.debug(`提取页面签名: ${pathRelativeToSrc}`);
129
- fileInfo.content = replaceViewAsSignature(fileInfo.content);
131
+ const pathWithoutExt = pathRelativeToSrc.slice(0, -4);
132
+ const isEntryParent = Array.from(matchedFileSet).some((filePath) => filePath.startsWith(pathWithoutExt));
133
+ if (!isEntryParent) {
134
+ fileInfo.content = replaceViewAsSignature(fileInfo.content);
135
+ }
130
136
  }
131
137
  processedFileMap.set(pathRelativeToSrc, fileInfo);
132
138
  // 提取依赖
133
139
  const deps = extractDeps(fileInfo.content);
134
- if (verbose || process.env.DEBUG) {
135
- console.log(`${isEntryFile ? chalk.magenta('[Entry]') : chalk.green('[ Dep ]')} ${pathRelativeToSrc}${deps.map((dep) => `\n├── ${dep}`).join('')}`);
136
- }
137
140
  // 查找依赖文件
138
- if (isView && !isEntryFile) {
141
+ if (isView) {
139
142
  const pathArr = pathRelativeToSrc.split('.');
140
143
  pathArr.pop(); // 移除 .tsx
141
144
  do {
142
145
  pathArr.pop();
143
146
  pathArr.pop();
147
+ if (!(pathArr.length > 0 && pathArr[pathArr.length - 1] !== 'pc' && pathArr.includes('views')))
148
+ break;
144
149
  const namespace = pathArr.join('.') + '.tsx';
145
150
  deps.push(namespace);
146
- } while (pathArr.length > 0 && pathArr[pathArr.length - 1] !== 'pc' && pathArr.includes('views'));
151
+ } while (true);
147
152
  }
148
- const newDeps = [];
149
- for (const dep of deps) {
150
- if (processedFileMap.has(dep))
151
- continue;
152
- newDeps.push(dep);
153
+ if (verbose || process.env.DEBUG) {
154
+ console.log(`${isEntryFile ? chalk_1.default.magenta('[Entry]') : chalk_1.default.green('[ Dep ]')} ${pathRelativeToSrc}${deps.map((dep) => `\n├── ${dep}`).join('')}`);
153
155
  }
154
156
  return {
155
157
  fileInfo,
156
- newDeps,
158
+ newDeps: deps.filter((dep) => !processedFileMap.has(dep)),
157
159
  };
158
160
  }
159
161
  /**
@@ -163,7 +165,7 @@ function processFileDeps(pathRelativeToSrc, srcDir, matchedFileSet, processedFil
163
165
  * @param representation NASL 表示形式
164
166
  * @returns 文件信息列表
165
167
  */
166
- async function collectDeps(patterns, projectRoot, srcDir, representation, verbose) {
168
+ async function collectDeps(patterns, projectRoot, srcDir, verbose) {
167
169
  const processedFileMap = new Map(); // 已处理的文件(相对路径)
168
170
  const filesToProcess = []; // 待处理的文件队列
169
171
  const result = [];
@@ -189,6 +191,7 @@ async function collectDeps(patterns, projectRoot, srcDir, representation, verbos
189
191
  matchedFileSet.add(pathRelativeToSrc);
190
192
  });
191
193
  filesToProcess.sort(compose_1.sorter);
194
+ let errors = [];
192
195
  // 2. 广度优先遍历依赖
193
196
  while (filesToProcess.length > 0) {
194
197
  const pathRelativeToSrc = filesToProcess.shift();
@@ -201,10 +204,13 @@ async function collectDeps(patterns, projectRoot, srcDir, representation, verbos
201
204
  }
202
205
  catch (error) {
203
206
  // 文件读取失败,已经在 processFileDeps 中记录日志
207
+ errors.push(error.message);
204
208
  continue;
205
209
  }
206
210
  }
207
211
  utils_1.Logger.info(`依赖分析完成,共收集到 ${result.length} 个文件`);
212
+ if (errors.length > 0)
213
+ throw new Error(errors.join('\n============\n'));
208
214
  return result;
209
215
  }
210
216
  /**
@@ -212,7 +218,7 @@ async function collectDeps(patterns, projectRoot, srcDir, representation, verbos
212
218
  * @param entry 入口文件路径或 glob 模式(可选,相对于 src 目录)
213
219
  * @returns 文件信息、配置和目录信息
214
220
  */
215
- async function resolveNASLFiles(entry, depMode) {
221
+ async function resolveNASLFiles(entry, depMode, verbose) {
216
222
  // 加载配置
217
223
  const config = (0, utils_1.loadConfig)();
218
224
  const projectRoot = (0, utils_1.getProjectRoot)();
@@ -220,7 +226,7 @@ async function resolveNASLFiles(entry, depMode) {
220
226
  utils_1.Logger.info(`源代码目录: ${config.srcDir}`);
221
227
  const srcDir = path.join(projectRoot, config.srcDir);
222
228
  // 收集需要处理的文件
223
- let inputFiles = [];
229
+ let collectedFiles = [];
224
230
  if (!entry && depMode)
225
231
  entry = 'src/**/*.{ts,tsx}';
226
232
  if (entry) {
@@ -230,11 +236,11 @@ async function resolveNASLFiles(entry, depMode) {
230
236
  // 具体路径也转换为 glob 模式统一处理
231
237
  // 使用依赖分析收集文件
232
238
  try {
233
- inputFiles = await collectDeps([entry], projectRoot, srcDir, config.representation, depMode);
239
+ collectedFiles = await collectDeps(Array.isArray(entry) ? entry : [entry], projectRoot, srcDir, depMode || verbose);
234
240
  }
235
241
  catch (error) {
236
- utils_1.Logger.error(`依赖分析失败: ${error.message}`);
237
- throw error;
242
+ utils_1.Logger.error(`依赖分析失败:\n${error.message}`);
243
+ process.exit(1);
238
244
  }
239
245
  }
240
246
  else {
@@ -242,19 +248,18 @@ async function resolveNASLFiles(entry, depMode) {
242
248
  utils_1.Logger.info('扫描整个源代码目录...');
243
249
  const filePaths = await scanNASLFiles(srcDir, config.representation);
244
250
  filePaths.sort(compose_1.sorter);
245
- utils_1.Logger.debug(filePaths);
246
- inputFiles = filePaths.map((filePath) => ({
251
+ collectedFiles = filePaths.map((filePath) => ({
247
252
  path: filePath,
248
253
  content: (0, utils_1.readFileWithLog)(path.join(srcDir, filePath)),
249
254
  }));
250
- if (inputFiles.length === 0) {
255
+ if (collectedFiles.length === 0) {
251
256
  utils_1.Logger.warn('未找到 NASL 文件');
252
257
  process.exit(1);
253
258
  }
254
- utils_1.Logger.info(`找到 ${inputFiles.length} 个 NASL 文件`);
259
+ utils_1.Logger.info(`找到 ${collectedFiles.length} 个 NASL 文件`);
255
260
  }
256
261
  return {
257
- inputFiles,
262
+ collectedFiles,
258
263
  config,
259
264
  projectRoot,
260
265
  srcDir,
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/services/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/services/resolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export interface CommandOptions {
2
+ verbose?: boolean;
3
+ }
4
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +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;CACrB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/types/command.ts"],"names":[],"mappings":""}
@@ -8,7 +8,7 @@ exports.DEFAULT_CONFIG = {
8
8
  serverBaseURL: 'https://nasl.lcap.163yun.com/api/v1/nasl',
9
9
  representation: 'NaturalTS',
10
10
  namespaceResolution: 'filename-as-namespace',
11
- ideVersion: '4.1',
11
+ ideVersion: '4.3',
12
12
  srcDir: 'src',
13
13
  outDir: 'out',
14
14
  };
@@ -1,3 +1,4 @@
1
1
  export * from './config';
2
2
  export * from './api';
3
+ export * from './command';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC"}
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./config"), exports);
18
18
  __exportStar(require("./api"), exports);
19
+ __exportStar(require("./command"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,wCAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,wCAAsB;AACtB,4CAA0B"}
@@ -23,5 +23,6 @@ export declare class Logger {
23
23
  * 输出调试日志
24
24
  */
25
25
  static debug(...args: any[]): void;
26
+ static debugToFile(topic: string, ...args: any[]): void;
26
27
  }
27
28
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,MAAM;IACf,MAAM,CAAC,OAAO,IAAI,IAAI;IAItB;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIjC;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIpC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIjC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIlC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;CAKrC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,qBAAa,MAAM;IACf,MAAM,CAAC,OAAO,IAAI,IAAI;IAItB;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIjC;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIpC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIjC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIlC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAMlC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;CAgB1D"}
@@ -1,10 +1,46 @@
1
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
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
39
  exports.Logger = void 0;
7
40
  const chalk_1 = __importDefault(require("chalk"));
41
+ const fs = __importStar(require("fs-extra"));
42
+ const path = __importStar(require("path"));
43
+ const dayjs_1 = __importDefault(require("dayjs"));
8
44
  /**
9
45
  * 日志工具类
10
46
  */
@@ -44,6 +80,21 @@ class Logger {
44
80
  console.log(chalk_1.default.gray('[DEBUG]'), ...args);
45
81
  }
46
82
  }
83
+ static debugToFile(topic, ...args) {
84
+ if (process.env.DEBUG_TO_FILE) {
85
+ const baseDir = path.join(process.cwd(), '.nasl');
86
+ const currentHour = (0, dayjs_1.default)().format('YYYYMMDD_HH');
87
+ const prevHour = (0, dayjs_1.default)().subtract(1, 'hour').format('YYYYMMDD_HH');
88
+ let subdir = `${topic}_${currentHour}`;
89
+ const prevSubdir = `${topic}_${prevHour}`;
90
+ // 判断如果有上一个小时的 subdir,则自己汇聚到上一个小时的 subdir 中
91
+ if (fs.existsSync(path.join(baseDir, prevSubdir)))
92
+ subdir = prevSubdir;
93
+ const fileName = `${topic}_${(0, dayjs_1.default)().format('YYYYMMDD_HHmmss')}.log`;
94
+ const filePath = path.join(baseDir, subdir, fileName);
95
+ fs.outputFileSync(filePath, args.join(' '));
96
+ }
97
+ }
47
98
  }
48
99
  exports.Logger = Logger;
49
100
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B;;GAEG;AACH,MAAa,MAAM;IACf,MAAM,CAAC,OAAO;QACV,OAAO,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAW;QACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,IAAW;QACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAW;QACtB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,IAAW;QACvB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,IAAW;QACvB,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;CACJ;AAzCD,wBAyCC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,6CAA+B;AAC/B,2CAA6B;AAC7B,kDAA0B;AAE1B;;GAEG;AACH,MAAa,MAAM;IACf,MAAM,CAAC,OAAO;QACV,OAAO,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAW;QACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,IAAW;QACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAW;QACtB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,IAAW;QACvB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,IAAW;QACvB,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,KAAa,EAAE,GAAG,IAAW;QAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YAElD,MAAM,WAAW,GAAG,IAAA,eAAK,GAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAA,eAAK,GAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACnE,IAAI,MAAM,GAAG,GAAG,KAAK,IAAI,WAAW,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,GAAG,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC1C,2CAA2C;YAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBAAE,MAAM,GAAG,UAAU,CAAC;YAEvE,MAAM,QAAQ,GAAG,GAAG,KAAK,IAAI,IAAA,eAAK,GAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YACtD,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;CACJ;AA1DD,wBA0DC"}